TW202219704A - 擴展現實系統的使用者介面佈局和輸入的動態配置 - Google Patents
擴展現實系統的使用者介面佈局和輸入的動態配置 Download PDFInfo
- Publication number
- TW202219704A TW202219704A TW110135096A TW110135096A TW202219704A TW 202219704 A TW202219704 A TW 202219704A TW 110135096 A TW110135096 A TW 110135096A TW 110135096 A TW110135096 A TW 110135096A TW 202219704 A TW202219704 A TW 202219704A
- Authority
- TW
- Taiwan
- Prior art keywords
- physical object
- user
- hand
- input
- virtual content
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 149
- 238000012905 input function Methods 0.000 claims description 52
- 230000008569 process Effects 0.000 abstract description 33
- 238000007726 management method Methods 0.000 description 89
- 238000012545 processing Methods 0.000 description 37
- 210000003811 finger Anatomy 0.000 description 29
- 238000010586 diagram Methods 0.000 description 25
- 230000006870 function Effects 0.000 description 23
- 230000003190 augmentative effect Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 230000008054 signal transmission Effects 0.000 description 19
- 238000009877 rendering Methods 0.000 description 18
- 230000004044 response Effects 0.000 description 17
- 239000011521 glass Substances 0.000 description 13
- 238000005259 measurement Methods 0.000 description 13
- 210000003813 thumb Anatomy 0.000 description 13
- 210000000707 wrist Anatomy 0.000 description 13
- 210000004247 hand Anatomy 0.000 description 10
- 230000003993 interaction Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 5
- 239000003550 marker Substances 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 238000004873 anchoring Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 235000015067 sauces Nutrition 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000016776 visual perception Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 210000003128 head Anatomy 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 235000012149 noodles Nutrition 0.000 description 3
- 239000013589 supplement Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 235000002568 Capsicum frutescens Nutrition 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 229910003460 diamond Inorganic materials 0.000 description 2
- 239000010432 diamond Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004438 eyesight Effects 0.000 description 2
- 210000000811 metacarpophalangeal joint Anatomy 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- AVVWPBAENSWJCB-CGDLOXFJSA-N L-idofuranose Chemical compound OC[C@H](O)[C@H]1OC(O)[C@H](O)[C@H]1O AVVWPBAENSWJCB-CGDLOXFJSA-N 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000004932 little finger Anatomy 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 210000000236 metacarpal bone Anatomy 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 235000016709 nutrition Nutrition 0.000 description 1
- 230000035764 nutrition Effects 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/107—Static hand or arm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/28—Recognition of hand or arm movements, e.g. recognition of deaf sign language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Social Psychology (AREA)
- Psychiatry (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
提供了用於產生虛擬內容的系統和技術。例如,程序可以包括獲得現實世界環境中的實體物件的影像以及決定影像中實體物件的至少一個屬性。程序可以包括基於實體物件的至少一個屬性決定虛擬內容的介面佈局。程序可以包括基於所決定的介面佈局顯示虛擬內容。在一些情況下,程序可以包括基於實體物件的至少一個屬性決定輸入類型,接收與輸入類型相對應的輸入,以及基於所決定的輸入類型控制所顯示的虛擬內容。
Description
本專利申請案主張2020年9月30日提出申請的題為「DYNAMIC CONFIGURATION OF USER INTERFACE LAYOUTS AND INPUTS FOR EXTENDED REALITY SYSTEMS」的美國臨時申請案第63/085,944號的權益,該申請案的全部內容經由引用方式整個地併入本文。
本案的各態樣一般係關於配置擴展現實系統及/或其他系統的使用者介面佈局及/或輸入。
擴展現實技術可以用於向使用者呈現虛擬內容,及/或可以將來自實體世界的現實環境和虛擬環境進行組合以向使用者提供擴展現實體驗。術語擴展現實可以包含虛擬實境、擴增現實、混合現實等。擴展現實的這些形式中的每一個允許使用者體驗或與沉浸式虛擬環境或內容進行互動。例如,擴展現實體驗可以允許使用者與利用虛擬內容增強或擴增的現實或實體環境進行互動。
擴展現實技術可以被實現為在廣泛範圍的情境中增強使用者體驗,諸如娛樂、醫療保健、零售、教育、社交媒體等。在一些情況下,擴展現實系統(例如,擴增現實系統)的使用者介面從使用者角度可能難以使用。此類使用者介面對於正在被擴增的對象而言不是最佳化的。
揭示用於基於現實世界環境中的一或多個實體物件的屬性、基於使用者相對於一或多個實體物件的屬性、及/或基於其他因素,配置擴展現實系統(及/或其他系統)的使用者介面佈局及/或輸入的系統、裝置、方法和電腦可讀取媒體。根據至少一個實例,提供了用於產生虛擬內容的方法。方法包括:由設備獲得現實世界環境中的實體物件的影像;由設備決定影像中實體物件的至少一個屬性;基於實體物件的至少一個屬性決定虛擬內容的介面佈局;及基於所決定的介面佈局顯示虛擬內容。
在另一實例中,提供了用於產生虛擬內容的裝置,包括記憶體(例如,被配置為儲存資料,諸如虛擬內容資料、一或多個影像等)和與記憶體耦合(例如,在電路中實現)的一或多個處理器。一或多個處理器被配置為且能夠:獲得現實世界環境中的實體物件的影像;決定影像中實體物件的至少一個屬性;基於實體物件的至少一個屬性決定虛擬內容的介面佈局;及基於所決定的介面佈局使得虛擬內容被顯示。
在另一實例中,提供了其上儲存有指令的非暫時性電腦可讀取媒體,當指令由一或多個處理器執行時,使得一或多個處理器:獲得現實世界環境中的實體物件的影像;決定影像中實體物件的至少一個屬性;基於實體物件的至少一個屬性決定虛擬內容的介面佈局;及基於所決定的介面佈局使得虛擬內容被顯示。
在另一實例中,提供了用於產生虛擬內容的裝置。裝置包括:用於獲得現實世界環境中的實體物件的影像的部件;用於決定影像中實體物件的至少一個屬性的部件;用於基於實體物件的至少一個屬性決定虛擬內容的介面佈局的部件;及用於基於所決定的介面佈局顯示虛擬內容的部件。
在一些態樣中,當虛擬內容由設備或裝置的顯示器顯示時,現實世界環境是經由顯示器可查看的。
在一些態樣中,實體物件的至少一個屬性包括以下中的至少一個:實體物件的大小、實體物件的形狀、實體物件相對於設備或裝置的方向、實體物件相對於設備或裝置的位置、以及實體物件被使用者的手握持的能力。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:決定一或多個影像中的使用者的身體部位;決定一或多個影像中的使用者的身體部位的至少一個屬性;及基於實體物件的至少一個屬性和使用者的身體部位的至少一個屬性,決定虛擬內容的介面佈局。
在一些態樣中,身體部位的至少一個屬性包括以下中的至少一個:身體部位的大小、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於實體物件的位置、身體部位相對於設備或裝置的方向、以及身體部位相對於設備或裝置的位置。
在一些態樣中,使用者的身體部位是使用者的手,並且身體部位的至少一個屬性包括以下中的至少一個:手的大小、手相對於實體物件的方向、手相對於實體物件的位置、手相對於設備或裝置的方向、手相對於設備或裝置的位置、以及手是使用者的左手還是右手。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:決定一或多個影像中的使用者的手;決定手是使用者的左手還是右手;及基於手是使用者的左手還是右手,決定虛擬內容在介面佈局中的位置。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:決定手是使用者的左手;基於手是使用者的左手,決定虛擬內容相對於實體物件的右側的位置;及在介面佈局中相對於實體物件的右側顯示虛擬內容。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:決定手是使用者的右手;基於手是使用者的右手,決定虛擬內容相對於實體物件的左側的位置;及在介面佈局中相對於實體物件的左側顯示虛擬內容。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:決定在複數個影像中的實體物件的至少一個屬性。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:基於實體物件的至少一個屬性決定輸入類型;接收與輸入類型相對應的輸入;及基於輸入類型控制所顯示的虛擬內容。在一些態樣中,輸入類型包括滾動輸入。在一些態樣中,輸入類型包括點擊輸入。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:基於實體物件的至少一個屬性,決定輸入類型的輸入功能;及基於所決定的輸入類型的輸入功能,控制所顯示的虛擬內容。
根據另一實例,提供了用於產生虛擬內容的方法。方法包括:由設備獲得現實世界環境中的實體物件的影像;由設備決定影像中實體物件的至少一個屬性;由設備基於實體物件的至少一個屬性決定輸入類型;由設備接收與輸入類型相對應的輸入;及由設備基於所決定的輸入類型控制所顯示的虛擬內容。
在另一實例中,提供了用於產生虛擬內容的裝置,包括記憶體(例如,被配置為儲存資料,諸如虛擬內容資料、一或多個影像等)和與記憶體耦合(例如,在電路中實現)的一或多個處理器。一或多個處理器被配置為且能夠:獲得現實世界環境中的實體物件的影像;決定影像中實體物件的至少一個屬性;基於實體物件的至少一個屬性決定輸入類型;接收與輸入類型相對應的輸入;及基於所決定的輸入類型控制所顯示的虛擬內容。
在另一實例中,提供了其上儲存有指令的非暫時性電腦可讀取媒體,當指令由一或多個處理器執行時,使得一或多個處理器:獲得現實世界環境中的實體物件的影像;決定影像中實體物件的至少一個屬性;基於實體物件的至少一個屬性決定輸入類型;接收與輸入類型相對應的輸入;及基於所決定的輸入類型控制所顯示的虛擬內容。
在另一實例中,提供了用於產生虛擬內容的裝置。裝置包括:用於獲得現實世界環境中的實體物件的影像的部件;用於決定影像中實體物件的至少一個屬性的部件;用於基於實體物件的至少一個屬性決定輸入類型的部件;接收與輸入類型相對應的輸入;及用於基於所決定的輸入類型控制所顯示的虛擬內容的部件。
在一些態樣中,當虛擬內容由設備或裝置的顯示器顯示時,現實世界環境是經由顯示器可查看的。
在一些態樣中,實體物件的至少一個屬性包括以下中的至少一個:實體物件的大小、實體物件的形狀、實體物件相對於設備或裝置的方向、實體物件相對於設備或裝置的位置、以及實體物件被使用者的手握持的能力。
在一些態樣中,輸入類型包括滾動輸入。在一些態樣中,輸入類型包括點擊輸入。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:基於實體物件的至少一個屬性,決定輸入類型的輸入功能;及基於所決定的輸入類型的輸入功能,控制所顯示的虛擬內容。
在一些態樣中,輸入類型包括滾動輸入,並且輸入功能包括滾動輸入的方向。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:決定一或多個影像中的使用者的身體部位;決定一或多個影像中的使用者的身體部位的至少一個屬性;及基於實體物件的至少一個屬性和使用者的身體部位的至少一個屬性,決定輸入類型或輸入類型的輸入功能中的至少一個。
在一些態樣中,身體部位的至少一個屬性包括以下中的至少一個:身體部位的大小、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於實體物件的位置、身體部位相對於設備或裝置的方向、以及身體部位相對於設備或裝置的位置。
在一些態樣中,使用者的身體部位是使用者的手,並且身體部位的至少一個屬性包括以下中的至少一個:手的大小、手相對於實體物件的方向、手相對於實體物件的位置、手相對於設備或裝置的方向、手相對於設備或裝置的位置、以及手是使用者的左手還是右手。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:基於實體物件的至少一個屬性,決定虛擬內容的介面佈局;及基於所決定的介面佈局顯示虛擬內容。
在一些態樣中,以上描述的方法、裝置和電腦可讀取媒體中的一或多個亦包括:決定在複數個影像中的實體物件的至少一個屬性。
在一些態樣中,設備或裝置是擴展現實設備(例如,虛擬實境(VR)設備、擴增現實(AR)設備、或混合現實(MR)設備)、行動設備(例如,行動電話或所謂「智慧型電話」或其他行動設備)、可穿戴設備、個人電腦、膝上型電腦、伺服器電腦、攝像頭、車輛或車輛的計算設備或部件或者其他設備、是上述設備的部分及/或包括上述設備。在一些態樣中,裝置包括用於擷取一或多個影像的一個攝像頭或多個攝像頭。在一些態樣中,裝置包括用於顯示一或多個影像、虛擬內容、通知及/或其他可顯示資料的顯示器。在一些態樣中,以上描述的各裝置可以包括一或多個感測器。
本發明內容並不意欲標識請求項主題的關鍵或重要特徵,亦並不意欲用於隔離或決定請求項主題的範疇。應當經由參考本專利的整個說明書的適當部分、任何或所有附圖以及每項請求項來理解主題。
在參考以下說明書、請求項和附圖後,前述內容以及其他特徵和實施例將變得更加明顯。
下文提供了本案的某些態樣和實施例。這些態樣和實施例中的一些可以獨立地應用,並且其中一些可以組合應用,這對於本發明所屬領域中具有通常知識者是顯而易見的。在以下描述中,為瞭解釋的目的闡述了具體細節,以便提供對本案的實施例的透徹理解。然而,顯而易見的是,可以在沒有這些具體細節的情況下實施各種實施例。附圖和說明並不意欲是限制性的。
隨後的描述僅提供實例實施例,並不意欲限制本案的範疇、適用性或配置。相反,隨後對示例性實施例的描述將為本發明所屬領域中具有通常知識者提供實現示例性實施例的令人信服的描述。應當理解,在不脫離如所附請求項所闡述的應用的精神和範疇的情況下,可以對部件的功能和佈置進行各種改變。
擴展現實(XR)系統或設備可以向使用者提供虛擬內容及/或可以將現實世界或實體環境與(由虛擬內容構成的)虛擬環境進行組合以向使用者提供XR體驗。現實世界環境可以包括現實世界物件(亦被稱為實體物件),諸如人、車輛、建築物、桌子、椅子及/或其他現實世界或實體物件。XR系統或設備能夠促進與不同類型的XR環境的互動(例如,使用者可以使用XR系統或設備來與XR環境進行互動)。XR系統可以包括促進與虛擬實境(VR)環境的互動的VR系統、促進與擴增現實(AR)環境的互動的AR系統、促進與混合現實(MR)環境的互動的MR系統、及/或其他系統。如本文所使用的,術語XR系統和XR設備可互換地使用。XR系統或設備的實例包括頭戴式顯示器(HMD)、智慧眼鏡等。在一些情況下,XR系統可以追蹤使用者的部分(例如,使用者的手及/或指尖)以允許使用者與虛擬內容中的項目進行互動。
AR是經由在使用者對實體、現實世界場景或環境的視圖上提供虛擬或電腦產生的內容(稱為AR內容)的技術。AR內容可以包括任何虛擬內容,諸如視訊、影像、圖形內容、位置資料(例如,全球定位系統(GPS)資料或其他位置資料)、聲音、其任何組合及/或其他擴增內容。AR系統被設計為增強(或擴增)而不是取代人對現實的當前感知。例如,使用者可以經由AR設備顯示器看到現實的靜止或移動的實體物件,但是使用者對實體物件的視覺感知可以經由以下來擴增或增強:經由該物件的虛擬影像(例如,由DeLorean的虛擬影像替換的現實世界的汽車),經由添加到實體物件的AR內容(例如,添加到活體動物上的虛擬翅膀),經由相對於實體物件顯示的AR內容(例如,在建築物上的標誌附近顯示的資訊性虛擬內容,在一或多個影像中虛擬錨定在(例如,放在)現實世界桌子上的虛擬咖啡杯等),及/或經由顯示其他類型的AR內容。各種類型的AR系統可用於遊戲、娛樂及/或其他應用。
可用於提供AR內容的兩種類型的AR系統包括視訊透視(亦稱為視訊直通)顯示器和光學透視顯示器,兩者皆可用於增強使用者對現實世界或實體物件的視覺感知。在視訊透視系統中,顯示現實世界場景的即時視訊,包括在即時視訊上擴增或增強的一或多個物件。視訊透視系統可以使用行動設備(例如,行動電話顯示器上的視訊)、HMD或可以在視訊上顯示視訊和電腦產生的物件的其他合適的設備來實現。
具有AR特徵的光學透視系統可以直接在現實世界視圖上顯示AR內容,而不顯示視訊內容。例如,使用者可以經由顯示器(例如,眼鏡或鏡頭)查看實體物件,AR系統可以在顯示器上顯示AR內容(例如,投影或以其他方式顯示),為使用者提供一或多個現實世界物件的增強視覺感知。光學透視AR系統中使用的顯示器的實例包括AR眼鏡、HMD、另一AR頭戴式裝置或其他類似設備,這些設備可以包括每只眼睛前面的鏡頭或眼鏡(或雙眼上的單個鏡頭或眼鏡)以允許使用者直接看到現實世界或實體物件,同時亦允許該物件的增強影像或額外AR內容被投影到顯示器上,以擴增使用者對現實世界的視覺感知。
VR提供了在三維電腦產生的VR環境或圖示現實世界環境的虛擬版本的視訊中的完全沉浸式體驗。VR環境可以以看似現實或實體的方式進行互動。當正在體驗VR環境的使用者在現實世界中移動時,渲染在虛擬環境中的影像亦發生變化,給使用者一種正在VR環境中移動的感知。例如,使用者可以向左轉或向右轉、向上看或向下看、及/或向前移動或向後移動,從而改變使用者對VR環境的視角。呈現給使用者的VR內容可以相應地改變,使得使用者體驗和在現實世界中一樣無瑕疵。在一些情況下,VR內容可以包括VR視訊,這些視訊可以以非常高的品質被擷取和渲染,潛在地提供真正沉浸式的虛擬實境體驗。虛擬實境應用可以包括遊戲、培訓、教育、體育視訊、線上購物等。VR內容可以使用VR系統或設備(諸如VR HMD或其他VR頭戴式裝置)來渲染和顯示,這些設備在VR體驗期間完全覆蓋使用者的眼睛。
MR技術可以組合VR和AR的各個態樣,為使用者提供沉浸式體驗。例如,在MR環境中,現實世界和電腦產生的物件可以互動(例如,現實的人可以與虛擬的人進行互動,就像虛擬的人是現實的人一樣)。
一般而言,產生高品質和使用者友好的使用者介面涉及特徵的設計和適當應用,這些特徵向使用者傳達功能和回應選項。此類特徵可以稱為功能可見性(affordances),是使用者如何與現實世界和數字世界二者進行互動的基礎。例如,在現實世界中,門具有把手,指示門可以如何打開。在另一實例中,在數位世界中,帶底線的藍色本文經由超連結傳達更多資訊的可用性,以及帶底線的藍色本文可以被選擇的概念。此類功能可見性最初並不明顯,但部分地由於特徵的簡單本質隨著時間的推移被習得。
XR系統通常在XR通訊期決定渲染在使用者介面上的虛擬內容的類型、佈局和可控制性(基於不同類型的使用者輸入),不受現實世界環境中實體物件的影響。如本文所使用的,使用者介面包括經由XR系統的任何虛擬內容的顯示,諸如AR內容、VR內容及/或MR內容。例如,XR系統可以產生和顯示實體物件的虛擬副本或實體物件的一部分(例如,將實體物件的一部分(諸如營養標籤)複製並黏貼到表面(諸如桌子)上)。在一些情況下,XR系統可以基於虛擬內容在使用者介面上配置、提供對虛擬內容的存取及/或決定虛擬內容的輸入類型或功能。例如,某些虛擬內容可以與和現實世界環境中實體物件相關的補充資訊相關聯。
本案描述了用於配置XR系統(例如,HMD、AR眼鏡等)及/或其他系統(例如,車輛中的平視顯示器等)的使用者介面的系統、裝置、程序(亦稱為方法)和電腦可讀取媒體(本文統稱為「系統和技術」)。在一些情況下,系統和技術為XR系統提供了基於正在被擴增的實體物件的屬性及/或與實體物件互動的使用者的屬性來動態地配置使用者介面的能力。
例如,系統和技術可以基於現實世界環境中的實體物件(例如,由XR系統用虛擬內容正在擴增的物件)的一或多個屬性(例如,實體屬性)來決定使用者介面佈局、輸入類型及/或輸入功能。在一些情況下,XR系統可以基於以下屬性來決定虛擬內容的佈局及/或內容(基於一或多個使用者輸入)被如何控制:大小、形狀、相對於XR系統的方向(例如,XR系統的攝像頭及/或其他感測器)、相對於XR系統的位置(例如,XR系統的攝像頭及/或其他感測器)、實體物件被使用者的手握持的能力(例如,基於物件的大小和使用者單手或雙手的大小)、及/或將被顯示虛擬內容的實體物件的其他屬性。
在一些實例中,連同實體物件的屬性一起或者作為實體物件的屬性的替代,系統和技術可以基於與現實環境中的實體物件進行互動的使用者的一或多個屬性(例如,實體屬性)來決定使用者介面佈局、輸入類型及/或輸入功能。例如,XR系統可以基於以下屬性來決定虛擬內容的佈局及/或內容相對於實體物件將被如何控制:身體部位的大小(例如,一隻或多隻手、手臂、腿等)、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於XR系統的方向(例如,XR系統的攝像頭及/或其他感測器)、身體部位相對於XR系統的位置(例如,XR系統的攝像頭及/或其他感測器)、使用使用者的哪只手(右手或左手)來握持實體物件、及/或其他屬性。
輸入類型可以用於控制XR系統或以其他方式與XR系統進行互動。輸入類型可以包括各種類別的輸入,諸如基於滾動的輸入、基於點擊(tap)的輸入、基於手勢的輸入、基於音訊的輸入、及/或其他類型或類別的輸入。例如,XR系統可以基於實體物件的屬性及/或與實體物件進行互動(例如,握持)的使用者的屬性來決定滾動輸入將被用於控制相對於實體物件所顯示的虛擬內容。可以根據輸入類型決定輸入功能,諸如基於實體物件的屬性及/或與實體物件進行互動的使用者的屬性。例如,可以為輸入類型定義輸入功能,以控制輸入類型將如何操作(例如,基於滾動的輸入類型的輸入功能可以被限制為特定的滾動方向,諸如垂直捲動方向、水平滾動方向等)。
在一些實例中,本文描述的系統和技術可以以允許使用者操縱虛擬內容的方式產生虛擬內容。例如,XR系統可以產生虛擬內容,並且可以將虛擬內容耦合到第一實體物件(例如,經由將虛擬內容錨定到第一實體物件的一或多個特徵上)。基於接收到的使用者輸入(例如,捏合手勢、基於滾動的輸入等),XR系統可以將虛擬內容與第一實體物件解耦,並可以將虛擬內容耦合到第二實體物件。在另一實例中,基於接收到的使用者輸入(例如,捏合手勢、基於滾動的輸入等),XR系統可以偵測第一實體物件或第一實體物件的一部分,並產生實體物件或其一部分的虛擬表示。在一些情況下,基於接收到的使用者輸入,XR系統可以將虛擬內容與第一實體物件解耦,並可以將XR內容耦合到第二實體物件。
在一些實例中,系統和技術可以將實體物件上的標記與虛擬內容相關聯。例如,XR系統可以解釋與實體物件上標記的選擇相對應的使用者輸入,並可以基於使用者輸入產生虛擬內容。標記可以編碼到XR系統的指令,這些指令指示如何檢索額外內容以及使用者應如何與該內容互動(例如,水平滑動以查看更多資訊)。在一些情況下,標記可以包括本文、符號、徽標、統一資源定位符(URL)、社交網路辨識符(例如,Twitter
TM控制碼或使用者名等),其任何組合及/或其他項目。在一個說明性實例中,XR系統可以偵測與列印在實體物件的標籤上的URL(作為標記的實例)的選擇相對應的使用者輸入。基於偵測到的使用者輸入,XR系統可以顯示具有與所選URL相關的資訊的虛擬內容(例如,網頁、應用等)。
本文參照各種圖提供關於系統和技術的進一步細節。圖1是圖示根據本案的一些態樣的實例擴展現實系統100的圖。擴展現實系統100可以執行(或執行)XR應用和實現XR操作。在一些實例中,擴展現實系統100可以執行追蹤和定位、實體世界(例如,場景)的映射以及在顯示器109(例如,螢幕、可見平面/區域及/或其他顯示器)上定位和渲染虛擬內容作為XR體驗的一部分。例如,擴展現實系統100可以產生實體世界中場景的地圖(例如,三維(3D)地圖),追蹤擴展現實系統100相對於場景(例如,相對於場景的3D地圖)的姿勢(例如,定位和位置),在場景地圖上(一或多個)特定位置定位及/或錨定虛擬內容,以及在顯示器109上渲染虛擬內容,使得虛擬內容出現在場景中與場景地圖上的特定位置(在該處定位及/或錨定虛擬內容)相對應的位置處。顯示器109可以包括眼鏡、螢幕、鏡頭、投影儀及/或允許使用者查看現實世界環境以及亦允許在其上顯示XR內容的其他顯示機構。
在該說明性實例中,擴展現實系統100包括一或多個影像感測器102、加速計104、陀螺儀106、儲存裝置107、計算部件110、XR引擎120、介面佈局和輸入管理引擎122、影像處理引擎124和渲染引擎126。應注意,圖1中所示的部件102-部件126是為了說明和解釋目的而提供的非限制性實例,其他實例可以包括比圖1中所示的更多、更少或不同的部件。例如,在一些情況下,擴展現實系統100可以包括未在圖1中示出的一或多個其他感測器(例如,一或多個慣性量測單元(IMU)、雷達、光探測和測距(LIDAR)感測器、音訊感測器等)、一或多個顯示裝置、一或多個其他處理引擎、一或多個其他硬體部件及/或一或多個其他軟體及/或硬體部件。可由擴展現實系統100實現的實例架構和實例硬體部件在下文參照圖11進一步描述。
此外,出於簡單和解釋的目的,一或多個影像感測器102在本文中將被引用為影像感測器102(例如,以單數形式)。然而,本發明所屬領域中具有通常知識者將認識到,擴展現實系統100可以包括單個影像感測器或多個影像感測器。此外,以單數或複數形式對擴展現實系統100(或本文描述的其他系統)的任何部件(例如102-126)的引用不應解釋為限制由擴展現實系統100實現的此類部件的數量為一個或多於一個。例如,以單數形式對加速計104的引用不應解釋為限制由擴展現實系統100實現的加速計的數量為一個。本發明所屬領域中具有通常知識者將認識到,對於圖1中示出的部件102-部件126中的任何,擴展現實系統100可以包括此類部件中的僅一個或此類部件中的一個以上。
擴展現實系統100包括輸入設備108或者與輸入設備108進行(有線或無線)通訊。輸入設備108可以包括任何合適的輸入設備,例如觸控式螢幕、筆或其他指標裝置、鍵盤、滑鼠、按鈕或鍵、用於接收語音命令的麥克風、用於接收手勢命令的手勢輸入設備、其任何組合、及/或其他輸入設備。在一些情況下,影像感測器102可以擷取可被處理用於解釋手勢命令的影像。
擴展現實系統100可以是單個計算設備或多個計算設備的一部分或由其實現。在一些實例中,擴展現實系統100可以是電子設備(或多個設備)的一部分,諸如擴展現實頭戴式顯示器(HMD)設備、擴展現實眼鏡(例如,擴增現實或AR眼鏡)、攝像頭系統(例如,數碼攝像頭、IP攝像頭、視訊攝像頭、安全攝像頭等)、電話系統(例如,智慧型電話、蜂巢式電話、會議系統等)、桌上型電腦、膝上型電腦或筆記型電腦、平板電腦、機上盒、智慧電視、顯示裝置、遊戲控制台、視訊流式設備、物聯網路(IoT)設備、及/或任何其他合適的(一或多個)電子設備。
在一些實現中,一或多個影像感測器102、加速計104、陀螺儀106、儲存裝置107、計算部件110、XR引擎120、介面佈局和輸入管理引擎122、影像處理引擎124和渲染引擎126可以是同一計算設備的一部分。例如,在一些情況下,一或多個影像感測器102、加速計104、陀螺儀106、儲存裝置107、計算部件110、XR引擎120、介面佈局和輸入管理引擎122、影像處理引擎124和渲染引擎126可以整合到HMD、擴展現實眼鏡、智慧型電話、膝上型電腦、平板電腦、遊戲系統、及/或任何其他計算設備中。然而,在一些實現中,一或多個影像感測器102、加速計104、陀螺儀106、儲存裝置107、計算部件110、XR引擎120、介面佈局和輸入管理引擎122、影像處理引擎124和渲染引擎126可以是兩個或兩個以上獨立計算設備的一部分。例如,在一些情況下,部件102-部件126中的一些可以是一個計算設備的一部分或由一個計算設備實現,其餘部件可以是一或多個其他計算設備的一部分或由一或多個其他計算設備實現。
儲存裝置107可以是用於儲存資料的(一或多個)任何存放設備。此外,儲存裝置107可以儲存來自擴展現實系統100的任何部件的資料。例如,儲存裝置107可以儲存來自影像感測器102的資料(例如,影像或視訊資料)、來自加速計104的資料(例如,量測)、來自陀螺儀106的資料(例如,量測)、來自計算部件110的資料(例如,處理參數、首選項、虛擬內容、渲染內容、場景地圖、追蹤和定位資料、物件偵測資料、隱私資料、XR應用資料、人臉辨識資料、遮擋資料等)、來自XR引擎120的資料、來自介面佈局和輸入管理引擎122的資料、來自影像處理引擎124的資料及/或來自渲染引擎126的資料(例如,輸出訊框)。在一些實例中,儲存裝置107可以包括用於儲存訊框以供計算部件110處理的緩衝器。
一或多個計算部件110可以包括中央處理單元(CPU)112、圖形處理單元(GPU)114、數位訊號處理器(DSP)116、影像訊號處理器(ISP)118及/或其他處理器(例如,實現一或多個神經網路的神經處理單元(NPU))。計算部件110可以執行各種操作,諸如影像增強、電腦視覺、圖形渲染、擴展現實操作(例如,追蹤、定位、姿勢估計、映射、內容錨定、內容渲染等)、影像及/或視訊處理、感測器處理、辨識(例如,本文辨識、臉孔辨識、物件辨識、特徵辨識、追蹤或模式辨識、場景辨識、遮擋偵測等)、機器學習操作、濾波、及/或本文描述的任何各種操作。在一些實例中,計算部件110可以實現(例如,控制、操作等)XR引擎120、介面佈局和輸入管理引擎122、影像處理引擎124和渲染引擎126。在其他實例中,計算部件110亦可以實現一或多個其他處理引擎。
影像感測器102可以包括任何影像及/或視訊感測器或擷取裝置。在一些實例中,影像感測器102可以是多攝像頭部件(諸如雙攝像頭部件)的一部分。影像感測器102可以擷取影像及/或視訊內容(例如,原始影像及/或視訊資料),其隨後可以由如本文描述的計算部件110、XR引擎120、介面佈局和輸入管理引擎122、影像處理引擎124及/或渲染引擎126進行處理。
在一些實例中,影像感測器102可以擷取影像資料並可以基於影像資料產生影像(亦稱為訊框)及/或可以將影像資料或訊框提供給XR引擎120、介面佈局和輸入管理引擎122、影像處理引擎124及/或渲染引擎126進行處理。影像或訊框可以包括視訊序列的視訊訊框或靜止影像。影像或訊框可以包括表示場景的圖元陣列。例如,訊框可以是每圖元具有紅色、綠色和藍色顏色分量的紅綠藍(RGB)訊框;每圖元具有一個亮度分量和兩個色度(顏色)分量(色度紅和色度藍)的亮度、色度紅、色度藍(YCbCr)訊框;或者任何其他合適類型的彩色或單色圖片。
在一些情況下,影像感測器102(及/或擴展現實系統100的其他攝像頭)亦可以被配置為擷取深度資訊。例如,在一些實現中,影像感測器102(及/或其他攝像頭)可以包括RGB深度(RGB-D)攝像頭。在一些情況下,擴展現實系統100可以包括與影像感測器102(及/或其他攝像頭)分離並且可以擷取深度資訊的一或多個深度感測器(未圖示)。例如,此類深度感測器可以獨立於影像感測器102獲得深度資訊。在一些實例中,深度感測器可以實體安裝在與影像感測器102相同的一般位置,但可以以與影像感測器102不同的頻率或畫面播放速率操作。在一些實例中,深度感測器可以採用光源的形式,該光源可以將結構化或紋理光圖案(可能包括一或多條窄光帶)投影到場景中的一或多個物件上。隨後,可以經由利用由物件的表面形狀引起的投影圖案的幾何變形來獲得深度資訊。在一個實例中,深度資訊可以從諸如紅外結構光投影儀和註冊到攝像頭(例如,RGB攝像頭)的紅外攝像頭的組合的立體感測器獲得。
擴展現實系統100亦包括一或多個感測器。一或多個感測器可以包括一或多個加速計(例如,加速計104)、一或多個陀螺儀(例如,陀螺儀106)、及/或其他感測器。一或多個感測器可以向計算部件110提供速度、方向及/或其他位置相關資訊。例如,加速計104可以偵測擴展現實系統100的加速度,並且可以基於偵測到的加速度產生加速度量測。在一些情況下,加速計104可提供一或多個平移向量(例如,上/下、左/右、前/後),這些平移向量可用於決定擴展現實系統100的位置或姿勢。陀螺儀106可以偵測和量測擴展現實系統100的方向和角速度。例如,陀螺儀106可用於量測擴展現實系統100的俯仰、滾轉和偏航。在一些情況下,陀螺儀106可以提供一或多個旋轉向量(例如,俯仰、偏航、滾轉)。在一些實例中,影像感測器102及/或XR引擎120可以使用由加速計104獲得的量測(例如,一或多個平移向量)及/或陀螺儀106獲得的量測(例如,一或多個旋轉向量)來計算擴展現實系統100的姿勢。如前述,在其他實例中,擴展現實系統100亦可以包括其他感測器,諸如慣性量測單元(IMU)、磁強計、凝視及/或眼睛追蹤感測器、機器視覺感測器、智慧場景感測器、語音辨識感測器、碰撞感測器、衝擊感測器、位置感測器、傾斜感測器等。
如前述,在一些情況下,一或多個感測器可以包括至少一個IMU。IMU是一種電子設備,使用一或多個加速計、一或多個陀螺儀及/或一或多個磁強計的組合來量測擴展現實系統100的特定力、角速率及/或方向。在一些實例中,一或多個感測器可以輸出與由影像感測器102(及/或擴展現實系統100的其他攝像頭)擷取的影像的擷取相關聯的量測資訊及/或使用擴展現實系統100的一或多個深度感測器獲得的深度資訊。
一或多個感測器(例如,加速計104、陀螺儀106、一或多個IMU及/或其他感測器)的輸出可以被擴展現實引擎120用來決定擴展現實系統100的姿勢(亦稱為頭部姿勢)及/或影像感測器102(或擴展現實系統100的其他攝像頭)的姿勢。在一些情況下,擴展現實系統100的姿勢和影像感測器102(或其他攝像頭)的姿勢可以相同。影像感測器102的姿勢是指影像感測器102相對於參考訊框(例如,相對於物件202)的位置和方向。在一些實現中,可以決定6自由度(6DOF)的攝像頭姿勢,其指三個平移分量(例如,可以經由相對於參考訊框(諸如影像平面)的X(水平)、Y(垂直)和Z(深度)座標提供)和三個角度分量(例如,相對於同一參考訊框的滾轉、俯仰和偏航)。
在一些情況下,設備追蹤器(未圖示)可以使用來自一或多個感測器的量測和來自影像感測器102的影像資料來追蹤擴展現實系統100的姿勢(例如,6DOF姿勢)。例如,設備追蹤器可以融合來自影像資料的視覺資料(例如,使用視覺追蹤解決方案)和來自量測的慣性資料,來決定擴展現實系統100相對於實體世界(例如,場景)的位置和運動以及實體世界的地圖。如下文所述,在一些實例中,當追蹤擴展現實系統100的姿勢時,設備追蹤器可以產生場景(例如,現實世界)的三維(3D)地圖及/或產生場景的3D地圖的更新。3D地圖更新可以包括,例如但不限於,與場景及/或場景的3D地圖相關聯的新的或更新後的多個特徵及/或特徵或地標點、標識或更新擴展現實系統100在場景以及場景的3D地圖內的位置的定位更新等。3D地圖可以提供現實/實體世界中場景的數位表示。在一些實例中,3D地圖可以將基於位置的物件及/或內容錨定到現實世界座標及/或物件。擴展現實系統100可以使用映射的場景(例如,由3D地圖表示及/或與3D地圖相關聯的實體世界中的場景)來合併實體世界和虛擬世界,及/或將虛擬內容或物件與實體環境合併。
在一些態樣中,影像感測器102及/或作為整體的擴展現實系統100的姿勢可以由計算部件110使用基於影像感測器102(及/或擴展現實系統100的其他攝像頭)擷取的影像的視覺追蹤解決方案來決定及/或追蹤。例如,在一些實例中,計算部件110可以使用基於電腦視覺的追蹤、基於模型的追蹤及/或同時定位和映射(SLAM)技術來執行追蹤。例如,計算部件110可以執行SLAM,或者可以與SLAM引擎(未圖示)進行(有線或無線)通訊。SLAM指的是一類技術,其中在同時追蹤攝像頭(例如,影像感測器102)及/或擴展現實系統100相對於地圖的姿勢的情況下建立環境的地圖(例如,由擴展現實系統100建模的環境的地圖)。該地圖可以被稱為SLAM地圖,並且可以是三維(3D)的。SLAM技術可以使用由影像感測器102(及/或擴展現實系統100的其他攝像頭)擷取的彩色或灰階影像資料來執行,並可用於產生影像感測器102及/或擴展現實系統100的6DOF姿勢量測的估計。此類被配置為執行6DOF追蹤的SLAM技術可以稱為6DOF SLAM。在一些情況下,一或多個感測器(例如,加速計104、陀螺儀106、一或多個IMU及/或其他感測器)的輸出可用於估計、校正及/或以其他方式調整估計的姿勢。
在一些情況下,6DOF SLAM(例如,6DOF追蹤)可以將從來自影像感測器102(及/或其他攝像頭)的某些輸入影像中觀察到的特徵與SLAM地圖相關聯。例如,6DOF SLAM可以使用來自輸入影像的特徵點關聯來決定影像感測器102及/或擴展現實系統100對於輸入影像的姿勢(位置和方向)。亦可以執行6DOF映射來更新SLAM地圖。在一些情況下,使用6DOF SLAM維護的SLAM地圖可以包含從兩個或兩個以上影像三角化的3D特徵點。例如,可以從輸入影像或視訊串流中選擇關鍵訊框來代表觀察到的場景。對於每個關鍵訊框,可以決定與影像相關聯的相應6DOF攝像頭姿勢。可以經由將來自3D SLAM地圖的特徵投影到影像或視訊訊框中,並根據經驗證的2D-3D對應關係更新攝像頭姿勢來決定影像感測器102及/或擴展現實系統100的姿勢。
在一個說明性實例中,計算部件110可以從某些輸入影像(例如,每個輸入影像、輸入影像的子集等)或從每個關鍵訊框中提取特徵點。如本文使用的特徵點(亦稱為註冊點)是影像的可區分或可標識的部分,諸如手的一部分、桌子的邊緣等。從擷取的影像中提取的特徵可以表示沿三維空間的區分特徵點(例如,X、Y和Z軸上的座標),並且每個特徵點可以具有關聯的特徵位置。關鍵訊框中的特徵點匹配(相同或對應)或無法匹配先前擷取的輸入影像或關鍵訊框的特徵點。特徵偵測可用於偵測特徵點。特徵偵測可以包括用於檢查影像的一或多個圖元以決定特定圖元處是否存在特徵的影像處理操作。特徵偵測可用於處理整個擷取的影像或影像的某些部分。對於每個影像或關鍵訊框,一旦偵測到特徵,就可以提取特徵周圍的局部影像塊。可以使用任何合適的技術來提取特徵,諸如尺度不變特徵變換(SIFT)(其可以定位特徵並產生特徵的描述)、加速穩健特徵(SURF)、梯度位置-方向長條圖(GLOH)、正規化互相關(NCC)、或其他合適的技術。
在一些情況下,擴展現實系統100亦可以追蹤使用者的手及/或手指,以允許使用者在虛擬環境中與虛擬內容互動及/或控制虛擬內容。例如,擴展現實系統100可以追蹤使用者的手及/或指尖的姿勢及/或運動,以辨識或翻譯使用者與虛擬環境的互動。使用者互動可以包括,例如但不限於,移動虛擬內容項、調整虛擬內容項的大小、選擇虛擬使用者介面中的輸入介面元素(例如,行動電話的虛擬表示、虛擬鍵盤及/或其他虛擬介面)、經由虛擬使用者介面提供輸入等。
圖2是圖示手200的實例地標點的圖,地標點可用於追蹤手200的位置以及手200與虛擬或現實世界環境的互動,諸如現實世界環境中的實體物件、由擴展現實系統顯示的虛擬內容等。圖2中示出的地標點對應於手200的不同部分,包括手200的手掌上的地標點235、手200的拇指230上的地標點、手200的食指232上的地標點、手200的中指234上的地標點、手200的無名指236上的地標點以及手200的小指238上的地標點。手200的手掌可以在三個平移方向(例如,相對於平面(諸如影像平面)在X、Y和Z方向上量測)和三個旋轉方向(例如,相對於平面在偏航、俯仰和滾轉方向上量測)上移動,並且因此提供可用於註冊及/或追蹤的六個自由度(6DOF)。手掌的6DOF運動在圖2中例示為正方形,如圖例240所指示的。
手200的手指的不同關節允許不同程度的運動,如圖例240所示。如圖2中的菱形形狀(例如,菱形233)所例示的,每個手指的底部(對應於近節指骨與掌骨之間的掌指關節(MCP))具有兩個自由度(2DOF),對應於彎曲和伸展以及外展和內收。如圖2中的圓圈形狀(例如,圓圈231)所例示的,每個手指的每個上關節(對應於遠端、中部和近端指骨之間的指間關節)皆具有一個自由度(IDOF)相應的彎曲和伸展。因此,手200提供26個自由度(26DOF),從中追蹤手200以及手200與擴展現實系統100渲染的虛擬內容的互動。
擴展現實系統100可以使用手200上的一或多個地標點來追蹤手200(例如,追蹤手200的姿勢及/或運動),並且追蹤手200與由擴展現實系統100渲染的虛擬內容(例如,一或多個虛擬內容項)的互動及/或與現實世界環境中的實體物件的互動。如前述,由於偵測到手200上的一或多個地標點,可以建立地標的姿勢(並且因此手和手指)相對於擴展現實系統100的相對實體位置。例如,手200的手掌上的地標點(例如,地標點235)可以在影像中偵測到,並且可以相對於擴展現實系統100的影像感測器102決定地標點的位置。由擴展現實系統100渲染的虛擬內容項的點(例如,中心點,諸如質心或其他中心點)可以相對於針對手200的手掌上的地標點決定的位置轉換到擴展現實系統100(例如,圖1的顯示器109)的顯示器(或顯示器上的渲染)上的位置。
如下所述,擴展現實系統100亦可以將虛擬內容及/或手200註冊到現實世界環境中的點(如在一或多個影像中偵測到的)及/或使用者的其他部分。例如,在一些實現中,除了決定手200相對於擴展現實系統100(或擴展現實系統100)及/或虛擬內容項的實體姿勢之外,擴展現實系統100亦可以決定現實世界環境中其他地標的位置,諸如牆壁上的區分點(稱為特徵點)、物件的一或多個角、地板上的特徵、人臉上的點、附近設備上的點等。在一些情況下,擴展現實系統100可以將虛擬內容放置在相對於環境中偵測到的特徵點的某個位置內,該等特徵點可以對應於例如偵測到的物件及/或者環境中的人。
在一些實例中,可以使用例如來自影像感測器102的影像資料及/或來自一或多個感測器(諸如加速計104、陀螺儀106及/或一或多個其他感測器(例如,一或多個磁強計、一或多個慣性量測單元(IMU)等))的量測來決定擴展現實系統100(及/或使用者頭部)的姿勢。頭部姿勢可用於決定虛擬內容、手200及/或環境中的物件及/或人的位置。
XR引擎120、介面佈局和輸入管理引擎122、影像處理引擎124和渲染引擎126(以及任何影像處理引擎)的操作可由任何計算部件110實現。在一個說明性實例中,渲染引擎126的操作可由GPU 114實現,XR引擎120、介面佈局和輸入管理引擎122以及影像處理引擎124的操作可由CPU 112、DSP 116及/或ISP 118實現。在一些情況下,計算部件110可以包括其他電子電路或硬體、電腦軟體、韌體或其任何組合,以執行本文該的各種操作中的任何一種。
在一些實例中,XR引擎120可以基於來自影像感測器102、加速計104、陀螺儀106及/或擴展現實系統100上的一或多個感測器(諸如一或多個IMU、雷達等)的資料執行XR操作,以產生XR體驗。在一些實例中,XR引擎120可以執行追蹤、定位、姿勢估計、映射、內容錨定操作、及/或任何其他XR操作或功能性。XR體驗可以包括使用擴展現實系統100來在虛擬通訊期向使用者呈現XR內容(例如,虛擬實境內容、擴增現實內容、混合現實內容等)。在一些實例中,XR內容和體驗可以由擴展現實系統100經由(例如,由XR引擎120執行或實現的)XR應用來提供,XR應用提供特定XR體驗,諸如,例如,XR遊戲體驗、XR教室體驗、XR購物體驗、XR娛樂體驗、XR活動(例如,操作、故障排除活動等)等。在XR體驗期間,使用者可以使用擴展現實系統100查看及/或與虛擬內容進行互動。在一些情況下,使用者可以查看及/或與虛擬內容進行互動,同時亦能夠查看及/或與使用者周圍的實體環境進行互動,從而允許使用者在實體環境和與實體環境混合或整合的虛擬內容之間擁有沉浸式體驗。
介面佈局和輸入管理引擎122可以執行各種操作以決定(和管理)在XR體驗期間如何、在何處及/或何時呈現虛擬內容。如本文該,介面佈局和輸入管理引擎122可以基於正在用虛擬內容來擴增的一或多個實體物件的屬性及/或與一或多個實體物件進行互動的使用者的屬性,在XR通訊期動態地配置使用者介面。例如,介面佈局和輸入管理引擎122可以基於現實世界環境中的實體物件的一或多個屬性及/或基於與現實世界環境中的實體物件進行互動的使用者的一或多個屬性(例如,使用者的一或多個身體部位,諸如相對於實體物件的使用者的手)來決定使用者介面佈局、輸入類型及/或輸入功能。本文描述關於介面佈局和輸入管理引擎122的操作的進一步細節。
影像處理引擎124可以執行與在XR通訊期呈現的虛擬內容相關的及/或與其他影像內容相關的一或多個影像處理操作。例如,影像處理引擎124可以基於來自影像感測器102的資料執行影像處理操作。在一些情況下,影像處理引擎124可以執行影像處理操作,諸如,例如,濾波、去馬賽克化、縮放、顏色校正、顏色轉換、分割、降噪濾波、空間濾波、偽影校正等。渲染引擎126可以獲得由計算部件110、影像感測器102、XR引擎120、介面佈局和輸入管理引擎122及/或影像處理引擎124產生及/或處理的影像資料,並且可以渲染視訊及/或影像訊框以便在顯示裝置上呈現。
儘管擴展現實系統100被示出包括某些部件,但具有通常知識者將理解,擴展現實系統100可以包括比圖1中所示的部件更多或更少的部件。例如,在一些情況下,擴展現實系統100亦可以包括一或多個存放設備(例如,RAM、ROM、快取記憶體等)、一或多個聯網介面(例如,有線及/或無線通訊介面等)、一或多個顯示裝置、及/或圖1中未圖示的其他硬體或處理設備。下文參照圖9描述可以利用擴展現實系統100實現的計算系統和硬體部件的說明性實例。
圖3是圖示擴展現實系統100由使用者301佩戴的實例的圖。儘管擴展現實系統100在圖3中被示出為AR設備(例如,AR眼鏡),但是擴展現實系統100可以包括任何合適類型的XR設備,諸如HMD或其他XR設備。出於說明性目的,將使用AR描述下面描述的實例。然而,下面描述的各態樣可以應用於其他類型的XR,諸如VR和MR。圖3中所示的擴展現實系統100可以包括光學透視AR設備,其允許使用者301在佩戴擴展現實系統100的同時觀看現實世界。例如,使用者301可以在與使用者301相距一定距離處的平面304上觀看現實世界環境中的物件302。
如圖3所示和前述,擴展現實系統100具有影像感測器102和顯示器109。如前述,顯示器109可以包括眼鏡(或多塊眼鏡)、一或多個螢幕、一或多個鏡頭及/或允許使用者301看到現實世界環境並允許在其上顯示AR內容的一或多個其他顯示機構。AR內容(例如,影像、視訊、圖形、虛擬或AR物件或其他AR內容)可以投影或以其他方式顯示在顯示器109上。在一個實例中,AR內容可以包括物件302的擴增版本。在另一實例中,AR內容可以包括與物件302相關及/或與現實世界環境中的一或多個其他物件相關的額外的AR內容。儘管在圖3中圖示一個影像感測器102和一個顯示器109,但是在一些實現中,擴展現實系統100可以包括多個攝像頭及/或多個顯示器(例如,用於右眼的顯示器和用於左眼的顯示器)。
如上文關於圖1所描述的,介面佈局和輸入管理引擎122可以經由偵測或決定現實世界環境中被擴增的一或多個實體物件的屬性及/或與一或多個實體物件進行互動的使用者的屬性來配置XR通信期的使用者介面。例如,介面佈局和輸入管理引擎122可以基於實體物件及/或使用者的一或多個屬性來決定使用者介面佈局、輸入類型及/或輸入功能。實體物件的屬性可以包括物件的大小、物件的形狀、物件相對於介面佈局和輸入管理引擎122(例如,影像感測器102及/或引擎122的其他感測器)的方向、物件相對於介面佈局和輸入管理引擎122的位置、實體物件被使用者的手握持的能力(例如,基於物件的大小和使用者的一隻手或雙手的大小)、其任何組合,及/或將為其顯示虛擬內容的實體物件的其他屬性。使用者的一或多個屬性可以包括使用者的身體部位的大小(例如,一隻或多隻手、手臂、腿等)、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於介面佈局和輸入管理引擎122的方向、身體部位相對於介面佈局和輸入管理引擎122的位置、使用者是用右手、左手還是雙手在握持物件、及/或其他屬性。
如前述,介面佈局和輸入管理引擎122可以使用實體物件及/或使用者的屬性來決定使用者介面的介面佈局。例如,介面佈局和輸入管理引擎122可以基於使用者如何握持實體物件(例如,使用者是用左手還是右手握持物件)決定虛擬內容(例如,AR內容)相對於實體物件的放置或者改變虛擬內容相對於實體物件的放置。例如,若使用者用右手握持實體物件,則可以相對於實體物件的左側顯示虛擬內容(從而避免使用者的手阻擋、遮擋或以其他方式干擾虛擬內容的顯示)。在另一實例中,介面佈局和輸入管理引擎122可以基於實體物件的形狀、大小及/或其他屬性決定相對於實體物件顯示的虛擬內容的佈局。例如,虛擬內容可以以相對於實體物件的大小、形狀等的大小(例如,與實體物件具有相同的高度及/或寬度,與實體物件的一部分具有相同的高度及/或寬度,諸如圖4中所示的實體標籤412)來顯示。在另一實例中,介面佈局和輸入管理引擎122可以基於實體物件的形狀、大小及/或其他屬性以及基於該物件如何被使用者握持(指示給定使用者握持物件的方式,使用者可以多麼容易地與虛擬內容進行互動)決定相對於實體物件顯示的虛擬內容的佈局。
在一些實例中,介面佈局和輸入管理引擎122可以使用實體物件及/或使用者的屬性來決定用於控制或操縱相對於實體物件顯示的虛擬內容的輸入類型及/或決定輸入類型的一或多個輸入功能。在一個說明性實例中,介面佈局和輸入管理引擎122可以基於內容的佈局、基於實體物件的實體屬性及/或基於使用者的屬性來定義或改變基於滾動的輸入類型的方向(例如,水平或垂直捲動)。在另一實例中,介面佈局和輸入管理引擎122可以基於虛擬內容相對於實體物件的位置、基於物件的大小及/或形狀(連同其他屬性)、以及基於屬性如何允許或阻止某些輸入方法,將輸入類型定義為基於點擊的輸入類型(例如,允許使用者使用點擊實體物件來遍歷內容)。
輸入類型可以包括輸入類別(例如,基於滾動的輸入、基於點擊的輸入、基於手勢的輸入、基於音訊的輸入及/或其他類型或類別的輸入)。在一個說明性實例中,介面佈局和輸入管理引擎122可以基於實體物件的屬性及/或與實體物件進行互動(例如,握持)的使用者的屬性決定滾動輸入將用於控制相對於實體物件顯示的虛擬內容。
基於滾動的輸入可以包括垂直捲動(例如,向上及/或向下滾動)、水平滾動(例如,向左及/或向右滾動)、水平滾動及/或向其他方向滾動。基於點擊的輸入可以包括點擊虛擬物件或虛擬物件的一部分以執行選擇。基於手勢的輸入可以包括手勢,諸如放大及/或縮小的捏合手勢、滾動手勢、手部手勢、及/或由介面佈局和輸入管理引擎122的攝像頭或其他感測器偵測的其他手勢。基於音訊的輸入(或語音輸入)可以包括由介面佈局和輸入管理引擎122偵測和使用的、控制虛擬內容的音訊命令(由使用者提供)。介面佈局和輸入管理引擎122亦可以使用其他類型的輸入來控制虛擬內容。
可以為輸入類型決定輸入功能。使用基於滾動的輸入類型作為說明性實例,介面佈局和輸入管理引擎122可以決定基於滾動的輸入類型的輸入功能將限於一或多個滾動方向。例如,介面佈局和輸入管理引擎122可以基於實體物件的屬性及/或與實體物件進行互動(例如,握持)的使用者的屬性,決定用於控制相對於實體物件顯示的虛擬內容的滾動輸入將在垂直方向上(例如,允許在上下方向上垂直捲動)。
圖4是圖示擴增現實(AR)虛擬通信期的視圖的實例的圖。如所示的,擴展現實系統100顯示相對於現實世界環境中的實體物件402的虛擬內容414。實體物件402具有實體標籤412,實體標籤412具有與實體物件402相關的資訊。虛擬內容414可以包括補充標籤412上的資訊的資訊(例如,額外資訊)。如圖4中所示,佩戴擴展現實系統100的使用者用左手410握持實體物件402。介面佈局和輸入管理引擎122可以決定使用者用左手410握持實體物件402。在一些情況下,介面佈局和輸入管理引擎122可以決定實體物件402的屬性,諸如物件402的大小、物件402的形狀、物件402相對於使用者的左手410的位置及/或方向、及/或其他屬性。在一些情況下,介面佈局和輸入管理引擎122可以決定使用者的其他屬性,諸如使用者的左手410的大小(例如,手相對於實體物件402的大小)、使用者如何用左手410握持實體物件402、及/或其他屬性。
在一些情況下,介面佈局和輸入管理引擎122可以使虛擬內容414基於實體物件402的實體屬性被顯示。例如,如圖4中所示,介面佈局和輸入管理引擎122可以使擴展現實系統100顯示具有與標籤412相同高度且靠近標籤412的虛擬內容414,這可以向佩戴擴展現實系統100的使用者指示虛擬內容414資訊補充了標籤412上的資訊。可替換地或者補充地,介面佈局和輸入管理引擎122可以回應於決定使用者正在用使用者的左手410握持實體物件402,決定虛擬內容414相對於實體物件402的右側的位置。擴展現實系統100隨後可以相對於實體物件402的右側顯示虛擬內容414。因此,虛擬內容414朝向手410相反方向向外延伸,從而允許虛擬內容414容易地由使用者可查看,而不被物件402、使用者及/或現實世界環境中的其他實體物件遮擋。
如前述,在一些實例中,介面佈局和輸入管理引擎122可以基於實體物件402的大小或實體物件402的部分(例如,標籤412)決定用於顯示的虛擬內容414的大小。例如,介面佈局和輸入管理引擎122可以決定虛擬內容414的高度與標籤412的高度相等或(例如,在一定長度內,諸如1釐米、2釐米等)基本相等。在另一實例中,介面佈局和輸入管理引擎122可以決定虛擬內容414的寬度,使得虛擬內容414不與現實環境中的門420重疊(從而避免虛擬內容414被門420遮擋或及門420重疊)。
圖5是圖示AR虛擬通信期的視圖的另一實例的圖。與來自圖4的視圖類似,擴展現實系統100顯示相對於現實環境中的實體物件502的虛擬內容514。實體物件502上的實體標籤512包括與實體物件402相關的資訊。虛擬內容514可以包括補充標籤512上的資訊的資訊(例如,額外資訊)。如圖5中所示,擴展現實系統100的使用者用右手511握持實體物件402。介面佈局和輸入管理引擎122可以決定使用者用右手511握持實體物件502,並且亦可以決定使用者及/或物件502的其他屬性。例如,介面佈局和輸入管理引擎122可以決定實體物件502的大小、物件502的形狀、物件502相對於使用者的右手511的位置及/或方向、及/或其他屬性。在一些情況下,介面佈局和輸入管理引擎122可以決定使用者的右手511的大小(例如,手相對於物件502的大小)、使用者如何用右手511握持實體物件502、及/或其他屬性。
回應於決定使用者正用使用者的右手511握持實體物件502,介面佈局和輸入管理引擎122可以決定虛擬內容414相對於實體物件502左側的位置。如圖5中所圖示的,擴展現實系統100隨後可以相對於實體物件502的左側顯示虛擬內容514。與圖4中的實例類似,虛擬內容514以與右手511相反方向向外延伸,從而允許虛擬內容514容易地由使用者可查看,而不會被現實世界環境中的實體物件遮擋。在一些實例中,介面佈局和輸入管理引擎122可以基於實體物件402的大小、實體物件402的一部分(例如,標籤512)的大小、及/或現實世界環境中其他物件的定位、位置及/或大小決定用於顯示的虛擬內容514的大小。
在一些實例中,介面佈局和輸入管理引擎122可以回應於決定使用者已經改變了他們如何握持實體物件而改變虛擬內容的放置。例如,參照圖4,擴展現實系統100的使用者可以從用左手410握持實體物件402切換到用右手握持實體物件402(例如,如圖5中所示)。回應於決定使用者(在先前用左手410握持物件402之後)正在用右手握持實體物件402,介面佈局和輸入管理引擎122可以將虛擬內容414的放置從實體物件402右側的位置更改為實體物件402左側的位置(例如,類似於圖5中所示的位置)。在一些情況下,虛擬內容414可以顯示在相對於實體物件402的其他位置,諸如實體物件的上方及/或下方。
圖6A、圖6B和圖6C是圖示AR虛擬通信期的視圖的另一實例的圖。根據圖6A、圖6B和圖6C的實例,介面佈局和輸入管理引擎122可以基於實體物件的屬性及/或使用者的屬性來決定輸入類型及/或輸入類型的輸入功能。
圖6A圖示諸如基於虛擬內容的佈局、基於使用者的(一或多個)屬性及/或基於實體物件的(一或多個)屬性將滾動輸入類型定義(或改變)為垂直捲動輸入功能的實例。例如,如圖6A中所示,使用者正用使用者的左手610握持實體物件602。虛擬內容613在擴展現實系統100的顯示器上顯示在實體物件602上列印實體標籤的位置上(例如,阻擋實體標籤)。在一些實例中,虛擬內容613包括與實體物件602相關的補充資訊。例如,物件602可以包括一瓶辣椒醬,並且虛擬內容613(例如,虛擬標籤)可以包括辣椒醬的歷史。
介面佈局和輸入管理引擎122可以決定使用者正在用左手610握持實體物件602。在一些情況下,介面佈局和輸入管理引擎122亦可以決定左手610相對於實體物件602的位置及/或方向。例如,介面佈局和輸入管理引擎122可以決定使用者正在用手610的四個手指握持物件602,手610的四個手指在物件602後面,並且拇指在物件602前面。回應於決定使用者正用左手610握持實體物件602及/或手610的四個手指在物件602的後面並且拇指在物件602的前面,介面佈局和輸入管理引擎122可以設置或以其他方式決定用於控制及/或操縱虛擬內容613的輸入類型為滾動輸入。介面佈局和輸入管理引擎122亦可以設置或決定滾動輸入的輸入功能為垂直捲動功能(例如,允許使用者上下滾動,如圖6A中的箭頭所示)。使用者可以使用拇指或其他手指或輸入設備提供基於滾動的輸入來控制虛擬內容613。基於使用者握持物件602的方式,使用者的拇指可以被容易地用於垂直地滾動(在上下方向上)經由虛擬內容613顯示的資訊。在一些實例中,介面佈局和輸入管理引擎122可以設置或決定虛擬內容613的輸入功能為多個輸入功能,諸如基於滾動的輸入和基於觸摸的輸入(例如,從而使用者可以使用基於點擊的手勢(諸如使用使用者的拇指)來滾動虛擬內容並選擇某些內容)、基於滾動的輸入和基於手腕的輸入(下文描述)及/或輸入類型的其他組合。
在一些實例中,虛擬內容613可以顯示在實體物件602旁邊的位置(例如,在實體物件602的右側,諸如在圖4中顯示虛擬內容414的位置)。在此類實例中,介面佈局和輸入管理引擎122可以將帶有垂直捲動功能的基於滾動的輸入與實體物件602相關聯。使用基於滾動的輸入和垂直捲動功能,使用者可以經由在實體物件602上執行滾動手勢來滾動顯示在實體物件602旁邊的虛擬內容。
在一些實例中,除了基於滾動的輸入及/或基於觸摸的輸入之外,或者作為基於滾動的輸入及/或基於觸摸的輸入的替代,回應於決定使用者正在用左手610握持實體物件602及/或手610的四個手指在物件602後面並且拇指在物件602前面,介面佈局和輸入管理引擎122可以設置或以其他方式決定用於控制及/或操縱虛擬內容613的輸入類型為基於手腕的輸入。介面佈局和輸入管理引擎122亦可以設置或決定基於手腕的輸入的輸入功能為二維輸入功能。例如,基於手腕的輸入的二維輸入功能可以包括回應於使用者在第一方向(例如,在向前的方向上,使得實體物件602的頂部向前傾斜遠離使用者)上扭轉左手610的手腕的前向滾轉功能以及回應於使用者在第二方向(例如,在向後的方向上,使得實體物件602的頂部向後傾斜朝向使用者)扭轉左手610的手腕的向後滾動功能。在一個說明性實例中,使用者可以經由向前扭轉手腕以向前滾動實體物件602上顯示的一頁或多頁虛擬內容或向後滾動實體物件602上顯示的一頁或多頁虛擬內容來提供基於手腕的輸入。
圖6B圖示基於實體物件602及/或使用者的屬性定義(或更改)輸入類型及/或輸入功能的實例。例如,介面佈局和輸入管理引擎122可以基於虛擬內容的佈局、基於使用者的(一或多個)屬性及/或基於實體物件的(一或多個)屬性來更改及/或添加輸入類型,及/或更改及/或添加輸入類型的輸入功能(例如,將基於滾動的輸入的滾動方向從垂直更改為水平)。參照圖6B,使用者正在用使用者的左手610握持實體物件602,類似於圖6A。在圖6B中,使用者的左手611亦位於擴展現實系統100的視野(FOV)中(例如,在擴展現實系統100的一或多個攝像頭的FOV中)。左手611的食指位於顯示在實體物件602上的虛擬內容615附近。如前述,在一些情況下,虛擬內容615可以顯示在實體物件602旁邊(例如,在實體物件602的下方、右側、上方、其他位置)。在圖6B的說明性實例中,物件602包括一瓶辣椒醬,並且虛擬內容613(例如,虛擬標籤)包括關於辣椒醬類型的資訊。
介面佈局和輸入管理引擎122可以決定使用者正用左手610握持實體物件602,並且使用者的右手611在擴展現實系統100的視野內(例如,由擴展現實系統100的影像感測器102及/或其他感測器偵測到)。在一些情況下,介面佈局和輸入管理引擎122可以決定食指處於相對於虛擬內容615的位置(例如,在虛擬內容615的閾值距離內,諸如在1英寸、2英寸及/或其他距離內)。回應於決定使用者正用左手610握持實體物件602並且右手611在擴展現實系統100的視野內(並且在一些情況下食指相對於虛擬內容615定位),介面佈局和輸入管理引擎122可以設置或決定滾動輸入類型的輸入功能為水平滾動方向(允許使用者從左向右及/或從右向左滾動)。使用者可以使用右手611的食指、使用另一個手指或使用輸入設備來提供基於滾動的輸入以控制虛擬內容615。
在另一實例中,介面佈局和輸入管理引擎122可以基於虛擬內容的佈局、基於使用者的(一或多個)屬性及/或基於實體物件的(一或多個)屬性來定義或更改輸入類型(例如,定義或更改輸入類型為點擊功能)。例如,介面佈局和輸入管理引擎122可以將輸入類型設置為基於點擊或觸摸的輸入,以允許使用者經由點擊或觸摸實體物件來遍歷內容。再次參照圖6B,介面佈局和輸入管理引擎122可以決定使用者正在用左手610握持實體物件602,使用者的右手611在擴展現實系統100的視野內,並且在一些情況下,右手611的食指處於相對於虛擬內容615的位置(例如,在虛擬內容615的閾值距離內)。
回應於決定使用者正用左手610握持實體物件602並且右手611在擴展現實系統100的視野內(並且在一些情況下食指相對於虛擬內容615定位),介面佈局和輸入管理引擎122可以設置或決定輸入類型為基於點擊的輸入類型,允許使用者點擊實體物件602以與虛擬內容615進行互動。在一些情況下,介面佈局和輸入管理引擎122可以將輸入類型設置為基於點擊的輸入類型和基於滾動的輸入,允許使用者使用滾動輸入及/或點擊輸入與虛擬內容615進行互動。
圖6C圖示基於實體物件616及/或使用者的屬性定義(或更改)輸入類型的輸入功能的實例。如圖6C中所示,使用者正用使用者的左手610握持實體物件602。虛擬內容617在擴展現實系統100的顯示器上顯示在實體物件616上。在一些實例中,虛擬內容617可以顯示在實體物件616旁邊(例如,在實體物件616的右側、下方、上方、其他位置)。在圖6C的說明性實例中,物件616包括一盒麵條,並且虛擬內容617(例如,虛擬標籤)包括與該盒麵條相關的資訊。
圖6C中的實體物件616(盒子)與圖6A和圖6B中所示的實體物件602(瓶子)相比具有不同的功能可見性。實體物件602的瓶子形狀比實體物件616的盒子形狀更寬。根據實體物件616的盒子形狀以及基於使用者如何握持實體物件616,使用者可以容易地水平(向前和向後)滑動橫跨實體物件616的表面,而垂直捲動更適合於實體物件602。
介面佈局和輸入管理引擎122可以決定使用者正用左手610握持實體物件616。在一些情況下,介面佈局和輸入管理引擎122亦可以決定左手610相對於實體物件616的位置及/或方向。例如,介面佈局和輸入管理引擎122可以決定使用者正用手610的四個手指握持對象616,四個手指在物件616後面,並且拇指在物件616前面。回應於決定使用者用左手610握持實體物件616及/或手610的四個手指在物件616後面和拇指在物件616前面,介面佈局和輸入管理引擎122可以設置或以其他方式決定用於控制及/或操縱虛擬內容616的輸入類型為滾動輸入。介面佈局和輸入管理引擎122亦可以設置或決定滾動輸入的輸入功能為水平滾動功能(例如,允許使用者向左和向右滾動,如圖6C中的箭頭所示)。如所示的,虛擬內容617包括提醒使用者向左滑動輸入可用於存取與其他麵條選項相關的虛擬內容的本文。使用者可以使用拇指或其他手指或輸入設備提供基於滾動的輸入來控制虛擬內容617。
圖7是圖示將實體物件702上的標記720與虛擬內容相關聯的實例的圖。標記720包括社交網路辨識符(例如,Twitter
TM控制碼或使用者名)。標記720被實體地列印在實體物件702的標籤712上,實體物件702被使用者的左手710握持。介面佈局和輸入管理引擎122可以在實體物件702的影像中偵測或辨識標記720。
在一些情況下,回應於偵測或辨識到標記720,介面佈局和輸入管理引擎122可以產生標記720的虛擬版本,並且可以在擴展現實系統100的顯示器上,將標記720的虛擬版本相對於實體物件(例如,在實體標記720上)顯示。使用者可以提供輸入(例如,觸摸輸入、手勢輸入等)以選擇標記720的虛擬版本。回應於接收到輸入,介面佈局和輸入管理引擎122可以產生與標記720相關的虛擬內容。例如,介面佈局和輸入管理引擎122可以啟動網頁瀏覽器或應用以顯示與社交網路辨識符@hotsauce4life相關的資訊。
在一些實例中,標記720的虛擬版本的渲染可以是頭部鎖定的(例如,在這種情況下,虛擬內容隨著使用者移動擴展現實系統100而移動),或者可以連接到物件(例如,在這種情況下,虛擬內容隨設備移動)。在一些實例中,使用者可以向擴展現實系統100提供輸入,該輸入使得介面佈局和輸入管理引擎122將標記720的虛擬版本拖動到不同的位置,諸如實體物件702附近的桌子。
在一些實例中,介面佈局和輸入管理引擎122可以偵測相對於實體標記720的使用者輸入(例如,使用者點擊實體標記720)。在此類實例中,介面佈局和輸入管理引擎122可能不會產生和顯示標記720的虛擬版本。回應於接收到輸入,介面佈局和輸入管理引擎122可以產生與標記720相關的虛擬內容(例如,經由啟動網頁瀏覽器或應用來顯示與社交網路辨識符@hotsauce4life相關的資訊)。
圖8是圖示產生可由使用者操縱的虛擬內容的實例的圖。例如,在如前述的一些情況下,擴展現實系統100可以基於使用者輸入將虛擬內容從一個實體物件解耦,並且可以將虛擬內容耦合到另一個實體物件。在一些情況下,經由提供某個輸入(例如,經由將食指和拇指分開的捏合縮放手勢),使用者可以使擴展現實系統100擴大虛擬內容的大小,點擊虛擬內容中的連結等。如圖8中所示,使用者可以經由擴展現實系統100的顯示器查看現實世界環境中的實體物件802。標籤812被示出在實體物件802上。標籤812可以在包括與實體物件802相關的資訊。在一些實例中,標籤812是附著於實體物件802的實體標籤。在一些實例中,標籤812是由擴展現實系統100在實體物件802上顯示的虛擬標籤。
如圖8中所示,佩戴擴展現實系統100的使用者正用右手811握持實體物件802。使用者亦用左手810執行捏合手勢輸入(經由使食指和拇指相互靠近),以便選擇和拖動標籤812內容(例如,當標籤812是實體標籤時,是實體標籤的虛擬版本,或者當標籤812是虛擬標籤時,是虛擬標籤)到桌子825的表面上,以便更好地進行查看和內容操縱。
介面佈局和輸入管理引擎122可以決定或辨識使用者正在用左手810執行捏合手勢輸入。在一些實例中,(例如,使用擴展現實系統的影像感測器102及/或其他感測器的)手勢辨識可用於辨識手勢。在一些實例中,當標籤812是實體標籤時,介面佈局和輸入管理引擎122可以回應於決定或辨識到捏合手勢產生標籤812的虛擬版本。當使用者移動手勢時(如從圖8左側到圖8右側的轉變所示),介面佈局和輸入管理引擎122可以將標籤812的虛擬版本從實體物件802移動到桌子825的表面。在一些實例中,當標籤812是虛擬標籤時,回應於決定或辨識到捏合手勢並且當使用者移動手勢時,介面佈局和輸入管理引擎122可以將虛擬標籤812從實體物件802移動到桌子825的表面。介面佈局和輸入管理引擎122可以產生虛擬內容,使得內容可由使用者編輯及/或選擇。例如,使用者可以提供輸入以調整虛擬標籤或實體標籤的虛擬版本的大小(如經由虛擬標籤每個角附近的四個箭頭所指示的),選擇虛擬標籤的連結,及/或以其他方式進一步操作虛擬標籤的虛擬內容。
圖9是圖示用於使用本文描述的技術產生虛擬內容的程序900的實例的流程圖。在方塊902處,程序900包括(經由設備)獲得現實世界環境中的實體物件的影像。在一些情況下,當虛擬內容由設備的顯示器顯示時,現實世界環境是經由顯示器可查看的。
在方塊904處,程序900包括決定影像中實體物件的至少一個屬性。在一些實例中,程序900包括決定複數個影像(例如,視訊的多個訊框或者影像或訊框的其他序列)中的實體物件的至少一個屬性。在一些實例中,實體物件的至少一個屬性包括實體物件的大小、實體物件的形狀、實體物件相對於設備的方向、實體物件相對於設備的位置、實體物件被使用者的手握持的能力、其任何組合、及/或其他屬性。
在方塊906處,程序900包括基於實體物件的至少一個屬性決定虛擬內容的介面佈局。在一些情況下,程序900可以包括決定一或多個影像中的使用者的身體部位,決定一或多個影像中的使用者的身體部位的至少一個屬性,以及基於實體物件的至少一個屬性和使用者的身體部位的至少一個屬性決定虛擬內容的介面佈局。在一些實例中,身體部位的至少一個屬性包括身體部位的大小、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於實體物件的位置、身體部位相對於設備的方向、身體部位相對於設備的位置、其任何組合、及/或其他屬性。在一些實例中,使用者的身體部位是使用者的手。在此類實例中,身體部位的至少一個屬性包括手的大小、手相對於實體物件的方向、手相對於實體物件的位置、手相對於設備的方向、手相對於設備的位置、手是使用者的左手還是右手、其任何組合、及/或其他屬性。
在方塊908處,程序900包括基於所決定的介面佈局顯示虛擬內容。如前述,虛擬內容可以投影或以其他方式顯示在設備的顯示器上。
在一些實例中,程序900包括決定一或多個影像中的使用者的手,決定該手是使用者的左手還是右手,以及基於該手是使用者的左手還是右手決定虛擬內容在介面佈局中的位置。在一個說明性實例中,程序900包括決定手是使用者的左手。在此類實例中,程序900包括基於手是使用者的左手決定虛擬內容相對於實體物件的右側的位置,以及在介面佈局中相對於實體物件的右側顯示虛擬內容。在另一說明性實例中,程序900包括決定手是使用者的右手。在此類實例中,程序900包括基於手是使用者的右手決定虛擬內容相對於實體物件的左側的位置,以及在介面佈局中相對於實體物件的左側顯示虛擬內容。
在一些實例中,程序900可以包括基於實體物件的至少一個屬性決定輸入類型,接收與輸入類型相對應的輸入,以及基於輸入類型控制顯示的虛擬內容。在一些情況下,輸入類型包括滾動輸入。在一些情況下,輸入類型包括點擊輸入。輸入類型可以包括其他類型的輸入,諸如基於手腕的輸入(例如,使用者向前或向後轉動手腕等)、基於滑動的輸入(例如,使用者提供向左、向右、向上、向下、對角滑動的手勢等)及/或其他輸入。在一些實例中,程序900可以包括基於實體物件的至少一個屬性決定輸入類型的輸入功能,以及基於決定的輸入類型的輸入功能控制顯示的虛擬內容。
圖10是圖示用於使用本文描述的技術產生虛擬內容的程序1000的實例的流程圖。在方塊1002處,程序1000包括(經由設備)獲得現實世界環境中的實體物件的影像。在一些實例中,當虛擬內容由設備的顯示器顯示時,現實世界環境是經由顯示器可查看的。
在方塊1004處,程序1000包括決定影像中實體物件的至少一個屬性。在一些實例中,程序1000包括決定複數個影像(例如,視訊的多個訊框或者影像或訊框的其他序列)中的實體物件的至少一個屬性。在一些情況下,實體物件的至少一個屬性包括實體物件的大小、實體物件的形狀、實體物件相對於設備的方向、實體物件相對於設備的位置、實體物件被使用者的手握持的能力、其任何組合、及/或其他屬性。
在方塊1006處,程序1000包括基於實體物件的至少一個屬性決定輸入類型。在一個說明性實例中,輸入類型包括滾動輸入。在另一說明性實例中,輸入類型包括點擊輸入。輸入類型可以包括其他類型的輸入,諸如基於手腕的輸入(例如,使用者向前或向後轉動手腕等)、基於滑動的輸入(例如,使用者提供向左、向右、向上、向下、對角滑動的手勢等)及/或其他輸入。
在方塊1008處,程序1000包括接收與輸入類型相對應的輸入。在方塊1010處,程序1000包括基於決定的輸入類型控制顯示的虛擬內容。在一些實例中,程序1000包括基於實體物件的至少一個屬性決定輸入類型的輸入功能。在一個說明性實例中,輸入類型包括滾動輸入,並且輸入功能包括滾動輸入的方向。在此類實例中,程序1000可以包括基於決定的輸入類型的輸入功能來控制顯示的虛擬內容。
在一些實例中,程序1000包括決定一或多個影像中的使用者的身體部位,決定一或多個影像中的使用者的身體部位的至少一個屬性,以及基於實體物件的至少一個屬性和使用者的身體部位的至少一個屬性決定輸入類型或輸入類型的輸入功能中的至少一個。在一些情況下,身體部位的至少一個屬性包括以下中的至少一個:身體部位的尺寸、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於實體物件的位置、身體部位相對於設備的方向、身體部位相對於設備的位置、其任何組合、及/或其他屬性。
在一些實例中,使用者的身體部位是使用者的手,並且身體部位的至少一個屬性包括以下中的至少一個:手的大小、手相對於實體物件的方向、手相對於實體物件的位置、手相對於設備的方向、手相對於設備的位置、手是使用者的左手還是右手、其任何組合、及/或其他屬性。
在一些實例中,程序1000包括基於實體物件的至少一個屬性決定虛擬內容的介面佈局,以及基於所決定的介面佈局顯示虛擬內容。
在一些實例中,本文描述的程序(例如,程序900、程序1000及/或本文描述的其他程序)可由計算設備或裝置執行。在一個實例中,程序900及/或程序1000可由圖1的擴展現實系統100執行。在另一實例中,程序900及/或程序1000可由圖11中所示的計算系統1100執行。例如,具有圖11所示的計算系統架構的設備可以包括圖1的擴展現實系統100的各部件,並且可以實現圖9及/或圖10的操作。
設備或裝置可以是擴展現實設備,可以是擴展現實設備的一部分,或者可以包括擴展現實設備(例如,VR頭戴式設備、AR頭戴式設備、AR眼鏡、聯網的手錶或智慧手錶、或者其他可穿戴設備)。在一些情況下,設備或裝置可以是任何其他合適的設備,可以是任何其他合適的設備的一部分,或者可以包括任何其他合適的設備,諸如行動設備(例如,行動電話)、桌面計算設備、平板計算設備、可穿戴設備(例如,智慧手錶等)、伺服器電腦、車輛或車輛的計算設備或系統、機器人設備、電視及/或具有執行本文所述程序(包括程序900及/或程序1000)的資源能力的任何其他計算設備。在一些情況下,設備或裝置可以包括各種部件,諸如一或多個輸入設備、一或多個輸出設備、一或多個處理器、一或多個微處理器、一或多個微型電腦、一或多個攝像頭、一或多個感測器及/或被配置為執行本文所述的程序的步驟的其他(多個)部件。在一些實例中,設備可以包括顯示器、被配置為傳送及/或接收資料的網路介面、其任何組合、及/或其他(多個)部件。網路介面可被配置為傳送及/或接收基於網際網路協定(IP)的資料或其他類型的資料。
計算設備的部件可以在電路中實現。例如,部件可以包括及/或可以使用電子電路或其他電子硬體來實現,電子電路或其他電子硬體可以包括一或多個可程式設計電子電路(例如,微處理器、圖形處理單元(GPU)、數位訊號處理器(DSP)、中央處理單元(CPU)、及/或其他合適的電子電路),及/或可以包括及/或使用電腦軟體、韌體或其任何組合來實現,以執行本文所述的各種操作。
程序900和程序1000被例示為邏輯流程圖,其動作表示可在硬體、電腦指令或其組合中實現的操作序列。在電腦指令的上下文中,動作表示儲存在一或多個電腦可讀取儲存媒體上的電腦可執行指令,當電腦可執行指令由一或多個處理器執行時,執行所述操作。通常,電腦可執行指令包括執行特定功能或實現特定資料類型的常式、程式、物件、部件、資料結構等。操作被描述的順序並不意欲解釋為限制,並且任何數量的描述操作可以以任何順序及/或並行地組合以實現程序。
補充地,程序900、程序1000及/或本文描述的其他程序可以在配置有可執行指令的一或多個電腦系統的控制下執行,並且可以被實現為代碼(例如,可執行指令、一或多個電腦程式、或一或多個應用)在一或多個處理器上、由硬體、或其組合共同地執行。如前述,代碼可以例如以包括複數個可由一或多個處理器執行的指令的電腦程式的形式儲存在電腦可讀或機器可讀儲存媒體上。電腦可讀或機器可讀儲存媒體可以是非暫時的。
圖11是圖示用於實現本技術的某些態樣的系統的實例的圖。具體地,圖11圖示計算系統1100的實例,計算系統1100可以是構成例如內部計算系統、遠端計算系統、攝像頭、或其中系統的部件使用連接1105彼此進行通訊的任何部件的任何計算設備。連接1105可以是使用匯流排的實體連接,或者是到處理器1110的直接連接,諸如在晶片組架構中。連接1105亦可以是虛擬連接、網路連接或邏輯連接。
在一些實施例中,計算系統1100是分散式系統,其中本案中描述的各功能可以分佈在一個資料中心、多個資料中心、對等網路等內。在一些實施例中,所描述的系統部件中的一或多個表示許多此類部件,每個部件執行所描述部件所針對的功能中的一些或全部。在一些實施例中,部件可以是實體或虛擬裝置。
實例系統1100包括至少一個處理單元(CPU或處理器)1110和連接1105,連接1105將包括系統記憶體1115(諸如唯讀記憶體(ROM)1120和隨機存取記憶體(RAM)1125)的各種系統部件與處理器1110耦合。計算系統1100可以包括高速記憶體的快取記憶體1112,高速記憶體與處理器1110直接連接、靠近處理器1110或整合為處理器1110的一部分。
處理器1110可以包括任何通用處理器和硬體服務或軟體服務,諸如儲存在存放設備1130中的服務1132、1134和1136,其被配置為控制處理器1110以及軟體指令被合併到實際處理器設計中的專用處理器。處理器1110基本上可以是完全自足的計算系統,包含多個核或處理器、匯流排、記憶體控制器、快取記憶體等。多核處理器可以是對稱的或非對稱的。
為了實現使用者互動,計算系統1100包括輸入設備1145,其可以表示任何數量的輸入機構,諸如用於語音的麥克風、用於手勢或圖形輸入的觸摸敏感屏、鍵盤、滑鼠、運動輸入、語音等。計算系統1100亦可以包括輸出設備1135,其可以是多個輸出機構中的一或多個。在一些實例中,多模式系統可以使使用者能夠提供多種類型的輸入/輸出以與計算系統1100進行通訊。計算系統1100可以包括通訊介面1140,其通常可以治理和管理使用者輸入和系統輸出。通訊介面可以使用有線及/或無線收發器執行或促進接收及/或發送有線或無線通訊,有線及/或無線收發器包括使用了這些的收發器:音訊插孔/插頭、麥克風插孔/插頭、通用序列匯流排(USB)埠/插頭、Apple
®Lightning
®埠/插頭、乙太網路埠/插頭、光纖埠/插頭、專線埠/插頭、BLUETOOTH
®無線訊號傳輸、BLUETOOTH
®低能量(BLE)無線訊號傳輸、IBEACON
®無線訊號傳輸、射頻辨識(RFID)無線訊號傳輸、近場通訊(NFC)無線訊號傳輸、專用短程通訊(DSRC)無線訊號傳輸、802.11 Wi-Fi無線訊號傳輸、無線區域網路(WLAN)訊號傳輸、可見光通訊(VLC)、全球互通微波存取性(WiMAX)、紅外(IR)通訊無線訊號傳輸、公用交換電話網路(PSTN)訊號傳輸、整合式服務數位網路(ISDN)訊號傳輸、3G/4G/5G/LTE蜂巢資料網無線訊號傳輸、自組織網路訊號傳輸、無線電波訊號傳輸、微波訊號傳輸、紅外訊號傳輸、可見光訊號傳輸、紫外光訊號傳輸、沿電磁頻譜的無線訊號傳輸、或其一些組合。通訊介面1140亦可以包括一或多個全球導航衛星系統(GNSS)接收器或收發器,用於基於從與一或多個GNSS系統相關聯的一或多個衛星接收到的一或多個訊號決定計算系統1100的位置。GNSS系統包括但不限於美國的全球定位系統(GPS)、俄羅斯的全球導航衛星系統(GLONASS)、中國的北斗導航衛星系統(BDS)和歐洲的伽利略GNSS。對任何特定硬體設定的操作沒有限制,並且因此這裡的基本特徵隨著發展可以容易地被改進的硬體或韌體配置替代。
存放設備1130可以是非揮發性及/或非暫時性及/或電腦可讀存放設備,並且可以是硬碟或其他類型的電腦可讀取媒體,其可以儲存電腦可存取的資料,諸如盒式磁帶、閃式儲存卡、固態存放設備、數位多功能磁碟、盒式磁帶、軟碟、軟碟、硬碟、磁帶、磁條、任何其他磁性儲存媒體、閃式記憶體、憶阻器記憶體、任何其他固態記憶體、壓縮磁碟唯讀記憶體(CD-ROM)光碟、可重寫壓縮磁碟(CD)光碟、數位視訊光碟(DVD)光碟、藍光光碟(BDD)光碟、全息光碟、另一光學媒體、安全數位(SD)卡、微安全數位(microSD)卡、記憶棒
®卡、智慧卡晶片、EMV晶片、用戶辨識模組(SIM)卡、迷你型/微型/奈米/微微SIM卡、另一積體電路(IC)晶片/卡、隨機存取記憶體(RAM)、靜態RAM(SRAM),動態RAM(DRAM)、唯讀記憶體(ROM)、可程式設計唯讀記憶體(PROM)、可抹除可程式設計唯讀記憶體(EPROM)、電子可抹除可程式設計唯讀記憶體(EEPROM)、快閃記憶體EPROM(FLASHPROM)、快取緩衝記憶體(L1/L2/L3/L4/L5/L#)、電阻隨機存取記憶體(RRAM/ReRAM)、相變記憶體(PCM)、自旋轉移扭矩RAM(STT-RAM)、另一儲存晶片或盒式記憶體、及/或其組合。
存放設備1130可以包括軟體服務、伺服器、服務等,當定義這種軟體的代碼被處理器1110執行時,其使系統執行功能。在一些實施例中,執行特定功能的硬體服務可以包括儲存在電腦可讀取媒體中的軟體部件,該電腦可讀取媒體與執行該功能所需的硬體部件(諸如處理器1110、連接1105、輸出設備1135等)相連接。術語「電腦可讀取媒體」包括但不限於可攜式或非可攜式存放設備、光存放設備以及能夠儲存、包含或攜帶(一或多個)指令及/或資料的各種其他媒體。電腦可讀取媒體可以包括非暫時性媒體,其中可以儲存資料並且不包括以無線方式或經由有線連接傳播的載波及/或暫時性電子訊號。非暫時性媒體的實例可以包括但不限於磁碟或磁帶、諸如壓縮光碟(CD)或數位多功能光碟(DVD)的光學儲存媒體、閃式記憶體、記憶體或記憶體設備。電腦可讀取媒體可以在其上儲存代碼及/或機器可執行指令,其可以表示程序、函數、副程式、程式、常式、子常式、模組、套裝軟體、軟體部件、或指令、資料結構或程式語句的任何組合。程式碼片段可以經由傳遞及/或接收資訊、資料、參量、參數或記憶體內容而耦合到另一程式碼片段或硬體電路。資訊、參量、參數、資料等可以經由包括記憶體共享、訊息傳遞、符記傳遞、網路傳輸等的任何合適的方式來傳遞、轉發或傳輸。
在一些實施例中,電腦可讀存放設備、媒體和記憶體可以包括包含位元串流等的電纜或無線訊號。然而,當提及時,非暫時性電腦可讀取儲存媒體明確排除諸如能量、載波訊號、電磁波和訊號本身之類的媒體。
以上描述中提供了具體細節以提供對本文提供的實施例和實例的透徹理解。然而,本發明所屬領域中具有通常知識者將理解,可以在沒有這些具體細節的情況下實踐實施例。為了解釋的清楚性,在一些情況下,本技術可以被呈現為包括單個功能方塊,這些功能方塊包括設備、設備部件、以軟體體現的方法中的步驟或常式、或硬體和軟體的組合。可以使用圖中所示及/或本文所述以外的額外部件。例如,電路、系統、網路、程序和其他部件可以以方塊圖形式示出為部件,以避免在不必要的細節中模糊實施例。在其他實例中,可以在沒有不必要細節的情況下示出眾所周知的電路、程序、演算法、結構和技術,以避免混淆實施例。
以上各個實施例可以描述為流程圖、流程圖、資料流程圖、結構圖或方塊圖描述的程序或方法。儘管流程圖可以將操作描述為順序程序,但是許多操作可以並行或同時執行。此外,操作的順序可以重新安排。程序在其操作完成時終止,但可以具有未包括在圖中的額外步驟。程序可以對應於方法、函數、程序、子常式、副程式等。當程序對應於函數時,它的終止可以對應於函數返回到調用函數或主函數。
根據以上描述的實例的程序和方法可以使用儲存的或以其他方式可從電腦可讀取媒體獲得的電腦可執行指令來實現。此類指令可以包括例如使得或以其他方式配置通用電腦、專用電腦或處理設備執行特定功能或功能組的指令和資料。使用的電腦資源的部分可以是網路上可獲得的。電腦可執行指令例如可以是二進位、中間格式指令,諸如組合語言、韌體、原始程式碼。可以用於儲存指令、使用的資訊及/或在根據所描述實例的方法期間建立的資訊的電腦可讀取媒體的實例包括磁片或光碟、閃式記憶體、具有非揮發性記憶體的USB設備、聯網存放設備等。
實現根據這些揭示的程序和方法的設備可以包括硬體、軟體、韌體、中介軟體、微代碼、硬體描述語言或其任何組合,並且可以採用各種形式因素中的任何一種。當在軟體、韌體、中介軟體或微代碼中實現時,用於執行必要任務的程式碼或程式碼片段(例如,電腦程式產品)可以儲存在電腦可讀或機器可讀取媒體中。處理器可以執行必要的任務。形式因素的典型實例包括膝上型電腦、智慧型電話、行動電話、平板設備或其他小形式因素個人電腦、個人數位助手、機架式設備、獨立設備等。本文描述的功能性亦可以體現在周邊設備或外掛程式卡中。以進一步實例的方式,此類功能性亦可以在不同晶片或在單個設備中執行的不同程序當中的電路板上實現。
指令、用於傳送此類指令的媒體、用於執行它們的計算資源以及用於支援此類計算資源的其他結構是用於提供本案中描述的功能的實例裝置。
在前述描述中,參照本案的具體實施例描述了本案的各態樣,但是本發明所屬領域中具有通常知識者將認識到本案不限於此。因此,儘管本案的說明性實施例已在本文中詳細描述,但應當理解,發明構思可以以其他方式以各種方式體現和應用,並且所附請求項意欲被解釋為包括此類變型,除非受到現有技術的限制。以上描述的申請的各個特徵和態樣可以單獨或聯合使用。此外,在不脫離本說明書更廣泛的精神和範疇的情況下,實施例可以在本文描述的環境和應用之外的任何數量的環境和應用中利用。因此,說明書和附圖被認為是說明性的而非限制性的。為了說明的目的,以特定的順序描述了方法。應當理解,在替代實施例中,可以以與所描述的順序不同的循序執行方法。
具有通常知識者將理解,本文中使用的小於(「<」)和大於(「>」)符號或術語可以分別替換為小於或等於(「≦」)和大於或等於(「≧」)符號,而不脫離本說明的範疇。
當部件被描述為「被配置為」執行某些操作時,此類配置可以例如經由設計電子電路或其他硬體來執行操作、通程序式設計可程式設計電子電路(例如,微處理器或其他合適的電子電路)來執行操作、或其任何組合來完成。
短語「與…耦合」是指實體上直接或間接地連接到另一部件的任何部件,及/或直接或間接地與另一部件進行通訊的任何部件(例如,經由有線或無線連接連接到另一部件,及/或其他合適的通訊介面)。
陳述集合中的「至少一個」及/或集合中的「一或多個」的請求項語言或其他語言指示集合中的一個成員或集合中的多個成員(以任何組合)滿足該請求項。例如,陳述「A和B中的至少一個」或「A或B中的至少一個」的請求項語言是指A、B或A和B。在另一實例中,陳述「A、B和C中的至少一個」或「A、B或C中的至少一個」的請求項語言是指A、B、C、或A和B、或A和C、或B和C、或A和B和C。集合中的「至少一個」及/或集合中的「一或多個」的語言並不將集合限制為集合中列出的項目。例如,陳述「A和B中的至少一個」或「A或B中的至少一個」的請求項語言可以指的是A、B、或A和B,並且可以補充地包括未在A和B集合中列出的項目。
結合本文揭示的實例描述的各種說明性邏輯區塊、模組、電路和演算法步驟可以實現為電子硬體、電腦軟體、韌體或其組合。為了清楚地說明硬體和軟體的這種可互換性,上文就其功能性通常描述了各種說明性部件、方塊、模組、電路和步驟。此類功能是實現為硬體還是軟體取決於施加在整個系統上的特定應用和設計約束。本發明所屬領域中具有通常知識者可以針對每個特定應用以不同的方式實現所描述的功能,但是這種實現決策不應被解釋為脫離本案的範疇。
本文描述的技術亦可以在電子硬體、電腦軟體、韌體或其任何組合中實現。此類技術可以在各種設備中的任何一種中實現,諸如通用電腦、無線通訊設備手持設備或具有多種用途(包括應用在無線通訊設備手持設備和其他設備中)的積體電路設備。被描述為模組或部件的任何特徵可以在整合邏輯裝置中一起實現,或者作為個別但可交互動操作的邏輯裝置單獨實現。若以軟體實現,則這些技術可以至少部分地經由包括程式碼的電腦可讀取資料儲存媒體實現,該程式碼包括指令,當指令被執行時,執行上面描述的方法、演算法及/或操作中的一或多個。電腦可讀取資料儲存媒體可以形成電腦程式產品的一部分,其可以包括打包材料。電腦可讀取媒體可以包括記憶體或資料儲存媒體,諸如隨機存取記憶體(RAM),諸如同步動態隨機存取記憶體(SDRAM)、唯讀記憶體(ROM)、非揮發性隨機存取記憶體(NVRAM)、電子可抹除可程式設計唯讀記憶體(EEPROM)、閃式記憶體、磁性或光學資料儲存媒體等。補充地或者可替換地,這些技術可以至少部分地經由電腦可讀通訊媒體來實現,該電腦可讀通訊媒體以指令或資料結構的形式攜帶或傳輸程式碼,並且可以由電腦存取、讀取及/或執行,諸如傳播的訊號或波。
程式碼可由處理器執行,處理器可以包括一或多個處理器,諸如一或多個數位訊號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、現場可程式設計邏輯陣列(FPGA)或其他等效整合或個別邏輯電路。此類處理器可以被配置為執行本案中描述的任何技術。通用處理器可以是微處理器;但在替代方案中,處理器可以是任何一般處理器、控制器、微控制器或狀態機。處理器亦可以被實現為計算設備的組合,例如,DSP和微處理器的組合、複數個微處理器、一或多個微處理器與DSP核心的結合、或任何其他此類配置。因此,如本文使用的術語「處理器」可以指前述結構中的任何一種、前述結構的任何組合、或適合於實現本文所述技術的任何其他結構或裝置。
本案的說明性實例包括:
實例1:一種用於在一或多個訊框之間進行光流估計的裝置。該裝置包括記憶體(例如,在電路中實現)和與記憶體耦合的處理器(或多個處理器)。處理器(或多個處理器)被配置為:獲得現實世界環境中的實體物件的影像;決定影像中實體物件的至少一個屬性;基於實體物件的至少一個屬性決定虛擬內容的介面佈局;及基於所決定的介面佈局顯示虛擬內容。
實例2:根據實例1的裝置,其中當虛擬內容由裝置的顯示器顯示時,現實世界環境是經由顯示器可查看的。
實例3:根據實例1或實例2中任一項的裝置,其中實體物件的至少一個屬性包括以下中的至少一個:實體物件的大小、實體物件的形狀、實體物件相對於裝置的方向、實體物件相對於裝置的位置、以及實體物件被使用者的手握持的能力。
實施例4:根據實例1至3中任一項的裝置,其中一或多個處理器被配置為:決定一或多個影像中的使用者的身體部位;決定一或多個影像中的使用者的身體部位的至少一個屬性;及基於實體物件的至少一個屬性和使用者的身體部位的至少一個屬性來決定虛擬內容的介面佈局。
實例5:根據實例4的裝置,其中身體部位的至少一個屬性包括以下中的至少一個:身體部位的大小、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於實體物件的位置、身體部位相對於裝置的方向、以及身體部位相對於裝置的位置。
實例6:根據實例4的裝置,其中使用者的身體部位是使用者的手,並且其中身體部位的至少一個屬性包括以下中的至少一個:手的大小、手相對於實體物件的方向、手相對於實體物件的位置、手相對於裝置的方向、手相對於裝置的位置、以及手是使用者的左手還是右手。
實例7:根據實例1至6中任一項的裝置,其中一或多個處理器被配置為:決定一或多個影像中的使用者的手;決定該手是使用者的左手還是右手;及基於手是使用者的左手還是右手來決定虛擬內容在介面佈局中的位置。
實例8:根據實例7的裝置,其中一或多個處理器被配置為:決定手是使用者的左手;基於手是使用者的左手,決定虛擬內容相對於實體物件的右側的位置;及在介面佈局中相對於實體物件的右側顯示虛擬內容。
實例9:根據實例7的裝置,其中一或多個處理器被配置為:決定手是使用者的右手;基於手是使用者的右手,決定虛擬內容相對於實體物件的左側的位置;及在介面佈局中相對於實體物件的左側顯示虛擬內容。
實例10:根據實例1至9中任一項的裝置,其中一或多個處理器被配置為:決定複數個影像中實體物件的至少一個屬性。
實例11:根據實例1至10中任一項的裝置,其中一或多個處理器被配置為:基於實體物件的至少一個屬性決定輸入類型;接收與輸入類型相對應的輸入;及基於輸入類型控制所顯示的虛擬內容。
實例12:根據實例11的裝置,其中輸入類型包括滾動輸入。
實例13:根據實例11的設備,其中輸入類型包括點擊輸入。
實例14:根據實例11的裝置,其中一或多個處理器被配置為:基於實體物件的至少一個屬性決定輸入類型的輸入功能;及基於所決定的輸入類型的輸入功能控制所顯示的虛擬內容。
實例15:根據實例14的裝置,其中輸入類型包括滾動輸入,並且其中輸入功能包括滾動輸入的方向。
實例16:根據實例1至15中任一項的裝置,其中裝置包括擴展現實設備。
實例17:根據實例1至16中任一項的裝置,亦包括被配置為顯示虛擬內容的顯示器。
實例18:根據實例1至17中任一項的裝置,亦包括被配置為擷取一或多個影像的攝像頭。
實例19:一種產生虛擬內容的方法。該方法包括:由設備獲得現實世界環境中的實體物件的影像;由設備決定影像中實體物件的至少一個屬性;由設備基於實體物件的至少一個屬性決定虛擬內容的介面佈局;及基於所決定的介面佈局顯示虛擬內容。
實例20:根據實例19的方法,其中當虛擬內容由設備的顯示器顯示時,現實世界環境是經由顯示器可查看的。
實例21:根據實例19或20中任一項的方法,其中實體物件的至少一個屬性包括以下中的至少一個:實體物件的大小、實體物件的形狀、實體物件相對於設備的方向、實體物件相對於設備的位置、以及實體物件被使用者的手握持的能力。
實例22:根據實例19至21中任一項的方法,亦包括:決定一或多個影像中的使用者的身體部位;決定一或多個影像中的使用者的身體部位的至少一個屬性;及基於實體物件的至少一個屬性和使用者的身體部位的至少一個屬性決定虛擬內容的介面佈局。
實例23:根據實例22的方法,其中身體部位的至少一個屬性包括以下中的至少一個:身體部位的大小、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於實體物件的位置、身體部位相對於設備的方向、以及身體部位相對於設備的位置。
實例24:根據實例22的方法,其中使用者的身體部位是使用者的手,並且其中身體部位的至少一個屬性包括以下中的至少一個:手的大小、手相對於實體物件的方向、手相對於實體物件的位置、手相對於設備的方向、手相對於設備的位置、以及手是使用者的左手還是右手。
實例25:根據實例19至24中任一項的方法,亦包括:決定一或多個影像中的使用者的手;決定該手是使用者的左手還是右手;及基於手是使用者的左手還是右手決定虛擬內容在介面佈局中的位置。
實例26:根據實例25的方法,亦包括:決定手是使用者的左手;基於手是使用者的左手,決定虛擬內容相對於實體物件的右側的位置;及在介面佈局中相對於實體物件的右側顯示虛擬內容。
實例27:根據實例25的方法,亦包括:決定手是使用者的右手;基於手是使用者的右手,決定虛擬內容相對於實體物件的左側的位置;及在介面佈局中相對於實體物件的左側顯示虛擬內容。
實例28:根據實例19至27中任一項的方法,亦包括:決定多個影像中實體物件的至少一個屬性。
實例29:根據實例19至28中任一項的方法,亦包括:基於實體物件的至少一個屬性決定輸入類型;接收與輸入類型相對應的輸入;及基於輸入類型控制所顯示的虛擬內容。
實例30:根據實例19至29中任一項的方法,其中輸入類型包括滾動輸入。
實例31:根據實例19至30中任一項的方法,其中輸入類型包括點擊輸入。
實例32:根據實例19至31中任一項的方法,亦包括:基於實體物件的至少一個屬性決定輸入類型的輸入功能;及基於所決定的輸入類型的輸入功能控制所顯示的虛擬內容。
實例33:根據實例32的方法,其中輸入類型包括滾動輸入,並且其中輸入功能包括滾動輸入的方向。
實例34:一種儲存指令的電腦可讀取儲存媒體,當指令被執行時,使一或多個處理器執行實例19至實例33中的任何操作。
實例35:一種裝置,包括用於執行實例19至實例33中的任何操作的部件。
實例36:一種用於產生虛擬內容的裝置,包括記憶體和與記憶體耦合的處理器(或多個處理器),並且處理器(或多個處理器)被配置為:獲得現實世界環境中的實體物件的影像;決定影像中實體物件的至少一個屬性;基於實體物件的至少一個屬性決定輸入類型;接收與輸入類型相對應的輸入;及基於所決定的輸入類型控制所顯示的虛擬內容。
實例37:根據實例36的裝置,其中當虛擬內容由裝置的顯示器顯示時,現實世界環境是經由顯示器可查看的。
實例38:根據實例36或37中任一項的裝置,其中實體物件的至少一個屬性包括以下中的至少一個:實體物件的大小、實體物件的形狀、實體物件相對於裝置的方向、實體物件相對於裝置的位置、以及實體物件被使用者的手握持的能力。
實例39:根據實例36至38中任一項的裝置,其中輸入類型包括滾動輸入。
實例40:根據實例36至38中任一項的裝置,其中輸入類型包括點擊輸入。
實例41:根據實例36至40中任一項的裝置,其中一或多個處理器被配置為:基於實體物件的至少一個屬性決定輸入類型的輸入功能;及基於所決定的輸入類型的輸入功能控制所顯示的虛擬內容。
實例42:根據實例41的裝置,其中輸入類型包括滾動輸入,並且其中輸入功能包括滾動輸入的方向。
實例43:根據實例36至42中任一項的裝置,其中一或多個處理器被配置為:決定一或多個影像中的使用者的身體部位;決定一或多個影像中的使用者的身體部位的至少一個屬性;及基於實體物件的至少一個屬性和使用者的身體部位的至少一個屬性決定輸入類型或輸入類型的輸入功能中的至少一個。
實例44:根據實例43的裝置,其中身體部位的至少一個屬性包括以下中的至少一個:身體部位的大小、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於實體物件的位置、身體部位相對於裝置的方向、以及身體部位相對於裝置的位置。
實例45:根據實例43的裝置,其中使用者的身體部位是使用者的手,並且其中身體部位的至少一個屬性包括以下中的至少一個:手的大小、手相對於實體物件的方向、手相對於實體物件的位置、手相對於裝置的方向、手相對於裝置的位置、以及手是使用者的左手還是右手。
實例46:根據實例36至45中任一項的裝置,其中一或多個處理器被配置為:基於實體物件的至少一個屬性決定虛擬內容的介面佈局;及基於所決定的介面佈局使得虛擬內容被顯示。
實例47:根據實例36至46中任一項的裝置,其中一或多個處理器被配置為:決定複數個影像中實體物件的至少一個屬性。
實例48:根據實例36至47中任一項的裝置,其中裝置包括擴展現實設備。
實例49:根據實例36至48中任一項的裝置,亦包括被配置為顯示虛擬內容的顯示器。
實例50:根據實例36至49中任一項的裝置,亦包括配置為擷取一或多個影像的攝像頭。
實例51:一種產生虛擬內容的方法。該方法包括:由設備獲得現實世界環境中的實體物件的影像;由設備決定影像中實體物件的至少一個屬性;由設備基於實體物件的至少一個屬性決定輸入類型;由設備接收與輸入類型相對應的輸入;及由設備基於所決定的輸入類型控制所顯示的虛擬內容。
實例52:根據實例51的方法,其中當虛擬內容由設備的顯示器顯示時,現實世界環境是經由顯示器可查看的。
實例53:根據實例51或52中任一項的方法,其中實體物件的至少一個屬性包括以下中的至少一個:實體物件的大小、實體物件的形狀、實體物件相對於設備的方向、實體物件相對於設備的位置、以及實體物件被使用者的手握持的能力。
實例54:根據實例51至53中任一項的方法,其中輸入類型包括滾動輸入。
實例55:根據實例51至53中任一項的方法,其中輸入類型包括點擊輸入。
實例56:根據實例51至55中任一項的方法,亦包括:基於實體物件的至少一個屬性決定輸入類型的輸入功能;及基於所決定的輸入類型的輸入功能控制所顯示的虛擬內容。
實例57:根據實例56的方法,其中輸入類型包括滾動輸入,並且其中輸入功能包括滾動輸入的方向。
實例58:根據實例51至57中任一項的方法,亦包括:決定一或多個影像中的使用者的身體部位;決定一或多個影像中的使用者的身體部位的至少一個屬性;及基於實體物件的至少一個屬性和使用者的身體部位的至少一個屬性決定輸入類型或輸入類型的輸入功能中的至少一個。
實例59:根據實例58的方法,其中身體部位的至少一個屬性包括以下中的至少一個:身體部位的大小、身體部位相對於實體物件的方向、身體部位相對於實體物件的位置、身體部位相對於實體物件的位置、身體部位相對於設備的方向、以及身體部位相對於設備的位置。
實例60:根據實例58的方法,其中使用者的身體部位是使用者的手,並且其中身體部位的至少一個屬性包括以下中的至少一個:手的大小、手相對於實體物件的方向、手相對於實體物件的位置、手相對於設備的方向、手相對於設備的位置、以及手是使用者的左手還是右手。
實例61:根據實例51至60中任一項的方法,亦包括:基於實體物件的至少一個屬性決定虛擬內容的介面佈局;及基於所決定的介面佈局顯示虛擬內容。
實例62:根據實例51至61中任一項的方法,亦包括:決定複數個影像中實體物件的至少一個屬性。
實例63:根據實例51至62中任一項的方法,其中設備包括擴展現實設備。
實例64:根據實例51至63中任一項的方法,其中設備亦包括被配置為顯示虛擬內容的顯示器。
實例65:根據實例51至64中任一項的方法,其中設備亦包括被配置為擷取一或多個影像的攝像頭。
實例66:一種儲存指令的電腦可讀取儲存媒體,當指令被執行時,使一或多個處理器執行實例51至實例66中的任何操作。
實例67:一種裝置,包括用於執行實例51至實例66中的任何操作的部件。
100:擴展現實系統
102:影像感測器
104:加速計
106:陀螺儀
107:儲存裝置
108:輸入設備
109:顯示器
110:計算部件
112:CPU
114:GPU
116:DSP
118:ISP
120:XR引擎
122:介面佈局和輸入管理引擎
124:影像處理引擎
126:渲染引擎
200:手
230:拇指
231:圓圈
232:食指
233:菱形
234:中指
235:地標點
236:無名指
238:小指
240:圖例
301:使用者
302:物件
304:平面
402:實體物件
410:左手
412:實體標籤
414:虛擬內容
420:門
502:實體物件
511:右手
512:實體標籤
514:虛擬內容
602:實體物件
610:左手
611:左手
613:虛擬內容
615:虛擬內容
616:實體物件
617:虛擬內容
702:實體物件
710:左手
712:標籤
720:標記
802:實體物件
810:左手
811:右手
812:標籤
825:桌子
900:程序
902:方塊
904:方塊
906:方塊
908:方塊
1000:程序
1002:方塊
1004:方塊
1006:方塊
1008:方塊
1010:方塊
1100:計算系統
1105:連接
1110:處理器
1112:快取記憶體
1115:系統記憶體
1120:唯讀記憶體(ROM)
1125:隨機存取記憶體(RAM)
1130:存放設備
1132:服務
1134:服務
1135:輸出設備
1136:服務
1140:通訊介面
1145:輸入設備
下文參照以下附圖詳細描述本案的說明性實施例:
圖1是根據本案的一些實例的圖示實例擴展現實系統的方塊圖;
圖2是根據本案的一些實例的圖示可以用來追蹤手的位置和手與虛擬環境的互動的實例手的地標點的圖;
圖3是根據本案的一些實例的圖示由使用者佩戴著擴展現實系統的實例的圖;
圖4是根據本案的一些實例的圖示基於物件的屬性及/或使用者的屬性虛擬內容相對於現實世界或實體物件顯示的實例的圖;
圖5是根據本案的一些實例的圖示基於物件的屬性及/或使用者的屬性虛擬內容相對於現實世界或實體物件顯示的另一實例的圖;
圖6A、圖6B和圖6C是根據本案的一些實例的圖示與基於物件的屬性及/或使用者的屬性所決定的虛擬內容相關聯的輸入類型及/或功能的實例的圖;
圖7是根據本案的一些實例的圖示可選擇用於產生虛擬內容的實體物件的部分的實例的圖;
圖8是根據本案的一些實例的圖示產生虛擬內容的實例的圖;
圖9是根據本案的一些實例的圖示用於產生虛擬內容的程序的實例的圖;
圖10圖示根據本案的一些實例的實例計算系統;及
圖11是圖示用於實現本案的某些態樣的系統的實例的圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
100:擴展現實系統
102:影像感測器
104:加速計
106:陀螺儀
107:儲存裝置
108:輸入設備
109:顯示器
110:計算部件
112:CPU
114:GPU
116:DSP
118:ISP
120:XR引擎
122:介面佈局和輸入管理引擎
124:影像處理引擎
126:渲染引擎
Claims (34)
- 一種用於產生虛擬內容的裝置,包括: 一記憶體;及 一或多個處理器,與該處理器耦合並且被配置為: 獲得一現實世界環境中的一實體物件的一影像; 決定該影像中該實體物件的至少一個屬性; 基於該實體物件的該至少一個屬性決定虛擬內容的一介面佈局;及 基於所決定的介面佈局使得該虛擬內容被顯示。
- 根據請求項1之裝置,其中當該虛擬內容由該裝置的一顯示器顯示時,該現實世界環境是經由該顯示器可查看的。
- 根據請求項1之裝置,其中該實體物件的該至少一個屬性包括以下中的至少一個:該實體物件的一大小、該實體物件的一形狀、該實體物件相對於該裝置的一方向、該實體物件相對於該裝置的一位置、以及該實體物件被一使用者的一手握持的一能力。
- 根據請求項1之裝置,其中該一或多個處理器被配置為: 決定一或多個影像中的一使用者的一身體部位; 決定該一或多個影像中的該使用者的該身體部位的至少一個屬性;及 基於該實體物件的該至少一個屬性和該使用者的該身體部位的該至少一個屬性,決定該虛擬內容的該介面佈局。
- 根據請求項4之裝置,其中該身體部位的該至少一個屬性包括以下中的至少一個:該身體部位的一大小、該身體部位相對於該實體物件的一方向、該身體部位相對於該實體物件的一位置、該身體部位相對於該裝置的一方向、以及該身體部位相對於該裝置的一位置。
- 根據請求項4之裝置,其中該使用者的該身體部位是該使用者的一手,並且其中該身體部位的該至少一個屬性包括以下中的至少一個:該手的一大小、該手相對於該實體物件的一方向、該手相對於該實體物件的一位置、該手相對於該裝置的一方向、該手相對於該裝置的一位置、以及該手是該使用者的一左手還是一右手。
- 根據請求項1之裝置,其中該一或多個處理器被配置為: 決定一或多個影像中的一使用者的一手; 決定該手是該使用者的一左手還是一右手;及 基於該手是該使用者的左手還是右手,決定該虛擬內容在該介面佈局中的一位置。
- 根據請求項7之裝置,其中該一或多個處理器被配置為: 決定該手是該使用者的左手; 基於該手是該使用者的左手,決定該虛擬內容相對於該實體物件的一右側的位置;及 在該介面佈局中相對於該實體物件的該右側顯示該虛擬內容。
- 根據請求項7之裝置,其中該一或多個處理器被配置為: 決定該手是該使用者的右手; 基於該手是該使用者的右手,決定該虛擬內容相對於該實體物件的一左側的位置;及 在該介面佈局中相對於該實體物件的該左側顯示該虛擬內容。
- 根據請求項1之裝置,其中該一或多個處理器被配置為: 決定在複數個影像中的該實體物件的該至少一個屬性。
- 根據請求項1之裝置,其中該一或多個處理器被配置為: 基於該實體物件的該至少一個屬性決定一輸入類型; 接收與該輸入類型相對應的輸入;及 基於該輸入類型控制所顯示的虛擬內容。
- 根據請求項11之裝置,其中該輸入類型包括一滾動輸入。
- 根據請求項11之裝置,其中該輸入類型包括一點擊輸入。
- 根據請求項11之裝置,其中該一或多個處理器被配置為: 基於該實體物件的該至少一個屬性,決定該輸入類型的一輸入功能;及 基於所決定的該輸入類型的輸入功能,控制所顯示的虛擬內容。
- 根據請求項14之裝置,其中該輸入類型包括一滾動輸入,並且其中該輸入功能包括該滾動輸入的一方向。
- 根據請求項1之裝置,其中該裝置包括一擴展現實設備。
- 根據請求項1之裝置,亦包括被配置為顯示該虛擬內容的一顯示器。
- 根據請求項1之裝置,亦包括被配置為擷取一或多個影像的一攝像頭。
- 一種產生虛擬內容的方法,該方法包括以下步驟: 由一設備獲得一現實世界環境中的一實體物件的一影像; 由該設備決定該影像中該實體物件的至少一個屬性; 基於該實體物件的該至少一個屬性決定虛擬內容的一介面佈局;及 基於所決定的介面佈局顯示該虛擬內容。
- 根據請求項19之方法,其中當該虛擬內容由該設備的一顯示器顯示時,該現實世界環境是經由該顯示器可查看的。
- 根據請求項19之方法,其中該實體物件的該至少一個屬性包括以下中的至少一個:該實體物件的一大小、該實體物件的形狀、該實體物件相對於該設備的一方向、該實體物件相對於該設備的一位置、以及該實體物件被一使用者的一手握持的一能力。
- 根據請求項19之方法,亦包括以下步驟: 決定一或多個影像中的一使用者的一身體部位; 決定該一或多個影像中的該使用者的該身體部位的至少一個屬性;及 基於該實體物件的該至少一個屬性和該使用者的該身體部位的該至少一個屬性,決定該虛擬內容的該介面佈局。
- 根據請求項22之方法,其中該身體部位的該至少一個屬性包括以下中的至少一個:該身體部位的一大小、該身體部位相對於該實體物件的一方向、該身體部位相對於該實體物件的一位置、該身體部位相對於該設備的一方向、以及該身體部位相對於該設備的一位置。
- 根據請求項22之方法,其中該使用者的該身體部位是該使用者的一手,並且其中該身體部位的該至少一個屬性包括以下中的至少一個:該手的一大小、該手相對於該實體物件的一方向、該手相對於該實體物件的一位置、該手相對於該設備的一方向、該手相對於該設備的一位置,以及該手是該使用者的一左手還是一右手。
- 根據請求項19之方法,亦包括以下步驟: 決定一或多個影像中的一使用者的一手; 決定該手是該使用者的一左手還是一右手;及 基於該手是該使用者的左手還是右手,決定該虛擬內容在該介面佈局中的一位置。
- 根據請求項25之方法,亦包括以下步驟: 決定該手是該使用者的左手; 基於該手是該使用者的左手,決定該虛擬內容相對於該實體物件的一右側的位置;及 在該介面佈局中相對於該實體物件的該右側顯示該虛擬內容。
- 根據請求項25之方法,亦包括以下步驟: 決定該手是該使用者的右手; 基於該手是該使用者的右手,決定該虛擬內容相對於該實體物件的一左側的位置;及 在該介面佈局中相對於該實體物件的該左側顯示該虛擬內容。
- 根據請求項19之方法,亦包括以下步驟: 決定複數個影像中該實體物件的該至少一個屬性。
- 根據請求項19之方法,亦包括以下步驟: 基於該實體物件的該至少一個屬性決定一輸入類型; 接收與該輸入類型相對應的一輸入;及 基於該輸入類型控制所顯示的虛擬內容。
- 根據請求項29之方法,其中該輸入類型包括一滾動輸入。
- 根據請求項29之方法,其中該輸入類型包括一點擊輸入。
- 根據請求項29之方法,亦包括以下步驟: 基於該實體物件的該至少一個屬性,決定該輸入類型的一輸入功能;及 基於所決定的該輸入類型的輸入功能,控制所顯示的虛擬內容。
- 根據請求項32之方法,其中該輸入類型包括一滾動輸入,並且其中該輸入功能包括該滾動輸入的一方向。
- 根據請求項19之方法,其中該設備包括一擴展現實設備。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063085944P | 2020-09-30 | 2020-09-30 | |
US63/085,944 | 2020-09-30 | ||
US17/481,029 | 2021-09-21 | ||
US17/481,029 US20220100265A1 (en) | 2020-09-30 | 2021-09-21 | Dynamic configuration of user interface layouts and inputs for extended reality systems |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202219704A true TW202219704A (zh) | 2022-05-16 |
Family
ID=80821202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110135096A TW202219704A (zh) | 2020-09-30 | 2021-09-22 | 擴展現實系統的使用者介面佈局和輸入的動態配置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220100265A1 (zh) |
EP (1) | EP4222581A1 (zh) |
KR (1) | KR20230075440A (zh) |
CN (1) | CN116194867A (zh) |
TW (1) | TW202219704A (zh) |
WO (1) | WO2022072200A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625806B2 (en) * | 2019-01-23 | 2023-04-11 | Qualcomm Incorporated | Methods and apparatus for standardized APIs for split rendering |
US11872929B2 (en) * | 2020-01-14 | 2024-01-16 | Qualcomm Incorporated | Collaborative vehicle headlight directing |
US11176755B1 (en) | 2020-08-31 | 2021-11-16 | Facebook Technologies, Llc | Artificial reality augments and surfaces |
US11409405B1 (en) * | 2020-12-22 | 2022-08-09 | Facebook Technologies, Llc | Augment orchestration in an artificial reality environment |
US11521361B1 (en) | 2021-07-01 | 2022-12-06 | Meta Platforms Technologies, Llc | Environment model with surfaces and per-surface volumes |
GB2609009B (en) * | 2021-07-16 | 2024-01-03 | Sony Interactive Entertainment Inc | Head-mountable display systems and methods |
US12056268B2 (en) | 2021-08-17 | 2024-08-06 | Meta Platforms Technologies, Llc | Platformization of mixed reality objects in virtual reality environments |
US11622095B1 (en) * | 2021-09-22 | 2023-04-04 | International Business Machines Corporation | Technology for assistance with a view obstructed by a users hand |
US11798247B2 (en) | 2021-10-27 | 2023-10-24 | Meta Platforms Technologies, Llc | Virtual object structures and interrelationships |
US11748944B2 (en) | 2021-10-27 | 2023-09-05 | Meta Platforms Technologies, Llc | Virtual object structures and interrelationships |
US12093447B2 (en) | 2022-01-13 | 2024-09-17 | Meta Platforms Technologies, Llc | Ephemeral artificial reality experiences |
US12026527B2 (en) | 2022-05-10 | 2024-07-02 | Meta Platforms Technologies, Llc | World-controlled and application-controlled augments in an artificial-reality environment |
WO2024123665A1 (en) * | 2022-12-05 | 2024-06-13 | Meta Platforms, Inc. | Smart content rendering on augmented reality systems, methods, and devices |
US20240211090A1 (en) * | 2022-12-23 | 2024-06-27 | Rovi Guides, Inc. | Methods and systems for displaying virtual elements in an xr environment |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100045705A1 (en) * | 2006-03-30 | 2010-02-25 | Roel Vertegaal | Interaction techniques for flexible displays |
CN102203850A (zh) * | 2008-09-12 | 2011-09-28 | 格斯图尔泰克公司 | 相对于用户而定向所显示的元素 |
US20120102438A1 (en) * | 2010-10-22 | 2012-04-26 | Robinson Ian N | Display system and method of displaying based on device interactions |
US20120113223A1 (en) * | 2010-11-05 | 2012-05-10 | Microsoft Corporation | User Interaction in Augmented Reality |
JP5724543B2 (ja) * | 2011-03-31 | 2015-05-27 | ソニー株式会社 | 端末装置、オブジェクト制御方法及びプログラム |
US10019962B2 (en) * | 2011-08-17 | 2018-07-10 | Microsoft Technology Licensing, Llc | Context adaptive user interface for augmented reality display |
US10133342B2 (en) * | 2013-02-14 | 2018-11-20 | Qualcomm Incorporated | Human-body-gesture-based region and volume selection for HMD |
US9952042B2 (en) * | 2013-07-12 | 2018-04-24 | Magic Leap, Inc. | Method and system for identifying a user location |
US10304163B2 (en) * | 2014-09-08 | 2019-05-28 | Apple Inc. | Landscape springboard |
US11106273B2 (en) * | 2015-10-30 | 2021-08-31 | Ostendo Technologies, Inc. | System and methods for on-body gestural interfaces and projection displays |
US10140773B2 (en) * | 2017-02-01 | 2018-11-27 | Accenture Global Solutions Limited | Rendering virtual objects in 3D environments |
WO2019079790A1 (en) * | 2017-10-21 | 2019-04-25 | Eyecam, Inc | ADAPTIVE GRAPHIC USER INTERFACE SYSTEM |
US10754418B1 (en) * | 2018-04-11 | 2020-08-25 | Amazon Technologies, Inc. | Using body surfaces for placing augmented reality content |
US12105869B2 (en) * | 2018-08-24 | 2024-10-01 | Sony Corporation | Information processing apparatus and information processing method |
US11348316B2 (en) * | 2018-09-11 | 2022-05-31 | Apple Inc. | Location-based virtual element modality in three-dimensional content |
US10921879B2 (en) * | 2019-06-07 | 2021-02-16 | Facebook Technologies, Llc | Artificial reality systems with personal assistant element for gating user interface elements |
US11023035B1 (en) * | 2019-07-09 | 2021-06-01 | Facebook Technologies, Llc | Virtual pinboard interaction using a peripheral device in artificial reality environments |
-
2021
- 2021-09-21 US US17/481,029 patent/US20220100265A1/en active Pending
- 2021-09-22 WO PCT/US2021/051592 patent/WO2022072200A1/en unknown
- 2021-09-22 TW TW110135096A patent/TW202219704A/zh unknown
- 2021-09-22 CN CN202180065128.4A patent/CN116194867A/zh active Pending
- 2021-09-22 KR KR1020237010222A patent/KR20230075440A/ko active Search and Examination
- 2021-09-22 EP EP21790741.9A patent/EP4222581A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220100265A1 (en) | 2022-03-31 |
KR20230075440A (ko) | 2023-05-31 |
CN116194867A (zh) | 2023-05-30 |
EP4222581A1 (en) | 2023-08-09 |
WO2022072200A1 (en) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220100265A1 (en) | Dynamic configuration of user interface layouts and inputs for extended reality systems | |
US12020390B2 (en) | Virtual content generation | |
US11481931B2 (en) | Virtual private space for extended reality | |
US11861070B2 (en) | Hand gestures for animating and controlling virtual and graphical elements | |
JP7008730B2 (ja) | 画像に挿入される画像コンテンツについての影生成 | |
EP4248405A1 (en) | Personalized avatar real-time motion capture | |
WO2022108806A1 (en) | Body animation sharing and remixing | |
TW201346640A (zh) | 影像處理裝置及電腦程式產品 | |
TW202206978A (zh) | 用於擴展現實的隱私控制介面 | |
US11960652B2 (en) | User interactions with remote devices | |
US20240242443A1 (en) | Proximity-based protocol for enabling multi-user extended reality (xr) experience | |
US20240346751A1 (en) | Generating and/or displaying virtual interactions with virtual objects | |
US20240070302A1 (en) | Collaborative object associated with a geographical location | |
TW202435035A (zh) | 用於擴展實境系統的對象的姿態預測 | |
TW202309732A (zh) | 擴展現實介面的遠端地標呈現 | |
WO2024220161A1 (en) | Generating and/or displaying virtual interactions with virtual objects |