English:
[0001] In augmented reality (AR) applications, a real world object is imaged and displayed on a screen along with computer generated information, such as an image or textual information. AR can be used to provide information, either graphical or textual, about a real world object, such as a building or product. Typically, the AR object that is rendered is dependent on the real-world object that is imaged. However, the context of that real-world object, e.g., the location or other surrounding objects, is not considered when rendering an AR object. It is desirable, however, to be able to display AR content that has context to the physical surroundings or proximity to other products.
[0003] Figs. 1A and IB illustrate a front side and back side, respectively, of a mobile platform capable of providing augmented reality applications based on the spatial relationships of real-world objects.
[0004] Fig. 2 illustrates a front side of the mobile platform displaying a captured image of two real world objects and an augmented object rendered based on the spatial relationship between the real world objects.
[0005] Fig. 3 is a flow chart of providing augmented reality applications based on the spatial relationships of real-world objects.
[0006] Fig. 4 illustrates a front side of the mobile platform displaying a captured image of three real world objects and different augmented objects rendered based on the spatial relationships between the real world objects.
[0007] Figs. 5A and 5B illustrate top views of mobile platform 100 separately imaging real world objects.
[0008] Fig. 6A and 6B illustrates the images that are displayed by mobile platform when separately imaging the objects of Figs. 5A and 5B, respectively.
[0010] Figs. 1A and IB illustrate a front side and back side, respectively, of a mobile platform 100 capable of providing augmented reality applications based on the spatial relationships of real-world objects. The mobile platform 100 in Figs. 1A and IB is illustrated as including a housing 101, a display 102, which may be a touch screen display. The mobile platform 100 may also include a speaker 104 and microphone 106, e.g., if the mobile platform 100 is a cellular telephone. The mobile platform 100 further includes a forward facing camera 108 to image the environment, which is displayed on display 102. The mobile platform 100 may further include motion sensors 1 10, such as accelerometers, gyroscopes or the like, which may be used to assist in determining the pose of the mobile platform 100 or equivalently the camera 108, which may have a known/calibrated position relationship to the motion sensors 1 10. The pose of the mobile platform 100 may also or alternatively be determined using vision based tracking techniques. It should be understood that the mobile platform 100 may be any portable electronic device such as a cellular or other wireless communication device, personal communication system (PCS) device, personal navigation device (PND), Personal Information Manager (PIM), Personal Digital Assistant (PDA), laptop, camera, or other suitable mobile device that is capable of augmented reality (AR).
[0011] Fig. 2 illustrates a front side of the mobile platform 100 held in landscape mode. The display 102 is illustrated as displaying a captured image of two real world objects, object A 120 and object B 122. By way of example, object A 120 and object B 122 may be products, such as boxes of cereal that are near each other on a grocery shelf 124. The display 102 is also illustrated as displaying a computer rendered AR object 126, in the form of an arrow. The captured image of the real world objects 120, 122 is produced by camera 108, while the AR object 126 is a computer rendered objects (or information). It should be understood that the captured image may be a single image, e.g., photograph, or one or more frames of video produced by camera 108.
[0012] The AR object 126 rendered and displayed by mobile platform 100 is dependent on, not only on the real world objects that are imaged, but the spatial relationships of the imaged objects. By way of example, the spatial relationships may be the proximity of other imaged objects. Thus, one type of AR object may be rendered when a real world object is near another complementary real world object, while a different AR object or different behavior of the AR object may be rendered when the objects are not near or when an incompatible real world object is near. For example, one type of AR object may be rendered when breakfast products are placed near each other, while a different AR object or different behavior of the AR object may be rendered when a breakfast product is located near a liquor bottle. The spatial relationships of the real world object may include other factors such the relative positions of the objects as well as other factors, such as the time of day or geographic location.
[0013] Fig. 3 is a flow chart of providing augmented reality applications based on the spatial relationships of real-world objects. As illustrated, a first object in an image captured by the camera of the mobile platform is detected and tracked (202). Once the object is detect it may be identified, e.g., by consulting an on-board database or by accessing a remote server. Tracking the object gives the mobile platform's position and orientation (pose) information relative to the object. The object may be a two- dimensional or three-dimensional object. By way of example, the object A 120 imaged by the mobile platform 100 in Fig. 2 is detected and tracked.
[0014] A second object in an image captured by the camera is also detected and tracked (204). Again, once detected, the second object may also be identified, e.g., by consulting an on-board database or by accessing a remote server. By way of example, the object B 122 imaged by the mobile platform 100 in Fig. 2 is detected and tracked. The second object may be an item that is located near and in the same frame of view, i.e., in the same captured image, as the first object. Additionally, the second object may be an item that is in a separate frame of view, i.e., the second object appears in a different captured image than the first object. Thus, for example, the first object may be imaged, detected and tracked. The mobile platform may then be moved to capture an image of the second object, which is detected and tracked.
[0015] The spatial relationship of the objects is then determined (206) to provide the context for the objects. If desired, the spatial relationship of the object may be determined only if the objects are identified as objects that have associated contextually dependent augmented reality objects, e.g., which may be determined by accessing an on-board or external database. The spatial relationships may be the proximity of the imaged objects. The first object and the second object may be considered to be proximate if at least portions of both objects are in the field of view of the camera at the same time. Alternatively, proximity may be determined as a quantitative distance between the first object and the second object. For example, the distance may be determined by comparing the distance between the objects to the size of the objects or using the pose information from tracking the first object and the second object. The distance may be compared to one or more thresholds to determine whether the objects are considered proximate. Additionally, if the first object and second object do not appear in the same image, the proximity of the objects may be determined based on the distance between the objects as determined using tracking information and data from the motion sensors 110 in the mobile platform 100. The spatial relationships may also or alternatively be the relative positions of the first object and the second object, e.g., whether the first object is in front of or above the second object. Additional contextual information may also be used, such as the presence (or absence) of one or more additional real world objects, the time of day, the ambient light, the geographic location of the mobile platform, etc.
[0016] Using the determined spatial relationships between the identified first object and the identified second object, the AR object to be rendered may be determined (208). For example, a database of AR objects may be maintained for different spatial relationships of specific real world objects. Once the spatial relationship of the real world objects is determined, the database may be accessed to determine the AR object to be rendered. The AR object may then be rendered and displayed by the mobile platform 100 (210).
[0017] By way of illustration, Fig. 2 shows an AR object 126 that is rendered and displayed based on the spatial relationship of identified object A 120 and identified object B 122. The AR object 126 is in the form of an arrow to indicate e.g., that object A 120 is compatible with object B 122. Fig. 4, on the other hand, illustrates mobile platform 100 producing an image similar to that shown in Fig. 2, except a third object is identified, object C 123, is detected and tracked and determined to be proximate to object B 122. A different AR object 128, which includes an arrow with a line through it, is rendered based on the spatial relationship, e.g., proximity, of object B 122 and incompatible object C 123. If desired, the AR object may be animated and the behavior of the animated AR object may change based on the spatial relationship of the real- world objects. Additionally, if desired, additional real-world objects may be detected and tracked and used to determine the AR object to be rendered.
[0018] Figs. 5A and 5B illustrate top views of mobile platform 100 separately imaging object A 120 and object B 122, respectively. Fig. 6A and 6B illustrates the images that are displayed on display 102 of mobile platform 100 when mobile platform 100 separately images object A 120 and object B 122, as illustrated in Figs. 5A and 5B, respectively. As illustrated in Fig. 5 A and 6A, the mobile platform 100 images and displays real world object A 120. As discussed above in step 202 of Fig. 3, the object A 120 is detected and tracked. Object 122 is not displayed in Fig. 6A because object 122 is outside camera's field of view 109 in Fig. 5 A. After moving the mobile platform 100 to place the real world object B 122 in the field of view 109, as illustrated in Fig. 5B, the object B 122 is imaged and displayed as shown in Fig. 6B. As discussed above in step 204 of Fig. 3, the object B 122 is detected and tracked. As illustrated in Fig. 5B, the spatial relationship of object A 120 and object B 122 is determined by determining the proximity of the objects (step 206 in Fig. 3). For example, the proximity may be determined as the distance between the object A 120 and object B 122, as illustrated by dashed arrows 130 and/or by the angular displacement between objects 120 and 122, illustrated by the dashed arrow 132. The distance 130 and/or angular displacement 132 may be determined using tracking information as well as data from the motion sensors 110 on the mobile platform. The desired AR object is deterred based on the determined spatial relationship, i.e., the proximity of the objects, (step 208 in Fig. 3), and then rendered and displayed (step 210 in Fig. 3). For example, as illustrated in Fig. 6B, an AR object 129 including a rendered image of the object A 120 and an arrow pointing in the direction of the object A 120 is displayed.
[0019] Fig. 7 is a block diagram of a mobile platform 100 capable of providing augmented reality applications based on the spatial relationship of real-world objects. The mobile platform 100 includes a means for capturing images of real world objects, such as camera 108, and motion sensors 110, such as accelerometers, gyroscopes, electronic compass, or other similar motion sensing elements. Mobile platform 100 may include other position determination methods such as object recognition using "computer vision" techniques. The mobile platform further includes a user interface 150 that includes a means for displaying captured images and rendered AR objects, such as the display 102. The user interface 150 may also include a keypad 152 or other input device through which the user can input information into the mobile platform 100. If desired, the keypad 152 may be obviated by integrating a virtual keypad into the display 102 with a touch sensor. The user interface 150 may also include a microphone 106 and speaker 104, e.g., if the mobile platform is a cellular telephone. Of course, mobile platform 100 may include other elements unrelated to the present disclosure, such as a wireless transceiver.
[0020] The mobile platform 100 also includes a control unit 160 that is connected to and communicates with the camera 108, motion sensors 1 10 and user interface 150. The control unit 160 accepts and processes data from the camera 108 and motion sensors 110 and controls the display 102 in response. The control unit 160 may be provided by a processor 161 and associated memory 164, hardware 162, software 165, and firmware 163. The control unit 160 may include an image processor 166 for processing the images from the camera 108 to detect real world objects. The control unit may also include a position processor 167 to determine and track the pose of the mobile platform 100 with respect to the real world objects e.g., based on data received form the motion sensors 1 10 and/or based on vision based tracking techniques using additional images captured by the camera 108. The position processor 167 may also determine the proximity of real world objects, as well as the spatial relations of the objects. The control unit 160 may further include a graphics engine 168, which may be, e.g., a gaming engine, to render desired AR objects with respect to the location and spatial relationship of the real world objects. The graphics engine 168 may retrieve AR objects from a database 169, which may be in memory 164, based on the spatial relationship of the real world objects, such as the proximity and/or relative positions of the objects, as well as any other desired factors, such as time of day (which may be determined based on clock 170), and geographic location (which may be determined based on data from an optional satellite position system (SPS) receiver 172). The image processor 166, position processor 167 and graphics engine are illustrated separately from processor 161 for clarity, but may be part of the processor 161 or implemented in the processor based on instructions in the software 165 which is run in the processor 161. It will be understood as used herein that the processor 161 can, but need not necessarily include, one or more microprocessors, embedded processors, controllers, application specific integrated circuits (ASICs), digital signal processors (DSPs), and the like. The term processor is intended to describe the functions implemented by the system rather than specific hardware. Moreover, as used herein the term "memory" refers to any type of computer storage medium, including long term, short term, or other memory associated with the mobile platform, and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.
[0022] The methodologies described herein may be implemented by various means depending upon the application. For example, these methodologies may be implemented in hardware 162, firmwarel63, software 165, or any combination thereof. For a hardware implementation, the processing units may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, or a combination thereof.
[0023] For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in memory 164 and executed by the processor 161. Memory may be implemented within or external to the processor 161.
[0024] If implemented in firmware and/or software, the functions may be stored as one or more instructions or code on a computer-readable medium. Examples include non- transitory computer-readable media encoded with a data structure and computer- readable media encoded with a computer program. For example, the computer-readable medium including program code stored thereon may include program code to display on the display an image of a first object and a second object, program code to detect and track the first object and to detect and track the second object, program code to determine a spatial relationship between the first object and the second object, program code to determine an augmentation object to render based on the spatial relationship between the first object and the second object, and program code to display on the display the augmentation object. The computer-readable medium may further include program code to determine a first pose with respect to the first object and a second pose with respect to the second object, wherein the program code to determine the distance between the first object and the second object uses the first pose and the second pose to determine the distance. The computer-readable medium may further include program code to compare the size of at least one of the first object and the second object to a space between the first object and the second object to determine the distance between the first object and the second object. Computer-readable media includes physical computer storage media. A storage medium may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer- readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer; disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

中文:
[0001]在增强现实(AR)应用中,现实世界对象被成像并连同计算机生成的信息(诸如图像或文本信息)一起显示在屏幕上。AR可被用来提供关于现实世界对象(诸如建筑物或产品)的图形信息或文本信息。通常,所呈现的AR对象依赖于被成像的现实世界对象。然而,该现实世界对象的上下文,例如位置或其它周围对象,在呈现AR对象时未被考虑。然而,希望能够显示具有关于物理环境或至其它产品的接近度的上下文的AR内容。
[0003]图1A和1B分别示出了移动平台的正面和背面,该移动平台能够基于现实世界对象的空间关系来提供增强现实应用。
[0004]图2示出了移动平台的正面,该移动平台显示了被捕捉的两个现实世界对象的图像,以及基于现实对象之间的空间关系所呈现的增强对象。
[0005]图3是基于现实世界对象的空间关系来提供增强现实应用的流程图。
[0006]图4示出了移动平台的正面,该移动平台显示了被捕捉的三个现实世界对象的图像,以及基于现实对象之间的空间关系所呈现的不同的增强对象。
[0007]图5A和5B示出了分别成像现实世界对象的移动平台100的俯视图。
[0008]图6A和6B分别示出了在分别成像图5A和5B的对象时由移动平台显示的图像。
[0010]图1A和1B分别示出了移动平台100的正面和背面,该移动平台能够基于现实世界对象的空间关系来提供增强现实应用。图1A和1B中的移动平台100被示为包括外壳101,可以是触摸屏显示器的显示器102。移动平台100还可包括扬声器104和麦克风106,例如,如果移动平台100是蜂窝电话。移动平台100还包括对环境进行成像的面向前的相机108,该环境被显示在显示器102中。移动平台100还可包括运动传感器110,诸如加速度计、陀螺仪等,它们可被用于辅助确定移动平台100的姿态或等同地相机108的姿态,相机108具有已知的/经校准的相对于运动传感器110的位置关系。移动平台100的姿态还可以或可替换地使用基于视觉的跟踪技术来确定。可以理解,移动平台100可以是任何便携式电子设备,诸如蜂窝或其它无线通信设备、个人通信系统(PCS)设备、个人导航设备(PND)、个人信息管理器(PIM)、个人数字助理(PDA)、膝上电脑、相机,或其它合适的能够增强现实(AR)的移动设备。
[0011]图2示出了按横向模式持握的移动平台100的正面。显示器102被示为显示两个现实世界对象(对象A120和对象B122)的被捕捉的图像。作为示例,对象A120和对象B122可以是产品,诸如食品货架124上相互靠近的谷类食品的盒子。显示器102也被示为以箭头的形式显示计算机呈现的AR对象126。现实世界对象120、122的被捕捉的对象由相机108产生,而AR对象126是计算机呈现的对象(或信息)。应该可以理解,所捕捉的对象可以是单个图像,例如,由相机108产生的照片或一个或多个视频帧。
[0012]由移动平台100呈现并显示的AR对象126不仅依赖于被成像的现实世界对象,也依赖于被成像对象的空间关系。作为示例,空间关系可以是其它被成像的对象的接近度。因此,当现实世界对象接近另一个补充现实世界对象时,可呈现一种类型的AR对象,而当对象不接近或当不兼容的现实世界对象接近时,可呈现不同的AR对象或AR对象的不同行为。例如,当早餐产品被彼此接近地放置时可呈现一种类型的AR对象,而当早餐产品被放置于接近液体瓶子的时候,可呈现不同的AR对象或AR对象的不同行为。现实世界对象的空间关系可包括其它因素,诸如对象的相对位置以及其它因素,诸如一天里的时间或地理位置。
[0013]图3是基于现实世界对象的空间关系来提供增强现实应用的流程图。如所示,由移动平台的相机捕捉的图像中的第一对象被检测和跟踪(202)。一旦对象被检测,它可例如通过查阅板载数据库或通过访问远程服务器来被标识。跟踪对象给出了移动平台相对于该对象的位置和朝向(姿态)信息。对象可以是二维或三维对象。作为示例,图2中由移动平台100成像的对象A120被检测和跟踪。
[0014]由相机捕捉的图像中的第二对象也被检测和跟踪(204)。再次,一旦第二对象被检测,第二对象也可例如通过查阅板载数据库或通过访问远程服务器来被标识。作为示例,图2中由移动平台100成像的对象B122被检测和跟踪。第二对象可以是位于附近并在与第一对象相同的视野框架中(即,在被捕捉的同一图像中)的项目。此外,第二对象可以是分开的视野框架中的项目,即,第二对象显现在不同于第一对象的被捕捉的图像中。因此,例如,第一对象可被成像、检测和跟踪。移动平台可随后被移动以捕捉被检测和跟踪的第二对象的图像。
[0015]对象的空间关系随后被确定(206)以提供对象的上下文。如果希望,则仅当对象被标识为具有相关联的上下文依赖的增强现实对象的对象时,对象的空间关系才可被确定,例如,可通过访问板载或外部数据库来确定。空间关系可以是被成像对象的接近度。如果第一对象和第二对象的至少诸部分在同一个时间都在相机的视野中,则第一对象和第二对象可被认为接近。替换地,接近度可被确定为第一对象和第二对象之间的定量距离。例如,可以通过将对象之间的距离与对象的大小进行比较,或使用来自跟踪第一对象和第二对象的姿态信息来确定距离。该距离可与一个或多个阈值进行比较以确定这些对象是否被认为接近。此外,如果第一对象和第二对象没有显现在同一图像中,则可基于对象之间的距离来确定对象的接近度,对象之间的距离是使用来自移动平台100中的运动传感器100的跟踪信息和数据来确定的。空间关系也可以,或者可替换地,是第一对象和第二对象的相对位置,例如,第一对象是在第二对象之前还是在第二对象之上。也可使用附加上下文信息,诸如一个或多个附加现实世界对象的存在(或不存在)、一天中的时间、环境光,移动平台的地理位置等。
[0016]使用所标识的第一对象和所标识的第二对象之间的所确定的空间关系,可确定要被呈现的AR对象(208)。例如,对于特定现实世界对象的不同空间关系,AR对象的数据库可被维持。一旦现实世界对象的空间关系被确定,数据库就可被访问以确定要被呈现的AR对象。AR对象可随后被呈现并被移动平台100显示(210)。
[0017]作为解说,图2示出基于所标识的对象A120和所标识的对象B122的空间关系来呈现和显示的AR对象126。AR对象126是以箭头的形式指示例如对象A120与对象B122兼容。另一方面,图4示出了产生除了第三对象被标识之外类似于图2所示的图像的移动平台100,对象C123被检测和跟踪并被确定为接近对象B122。基于空间关系(例如对象B122和不兼容的对象C123的接近度),呈现包括具有贯穿它的线的箭头的不同的AR对象128。如果希望,AR对象可被动画化,并且已被动画化的AR对象的行为可基于现实世界对象的空间关系而改变。此外,如果希望,附加的现实世界对象可被检测和跟踪,并被用于确定要呈现的AR对象。
[0018]图5A和5B分别示出了分别对对象A120和对象B122成像的移动平台100的俯视图。图6A和6B分别示出了在如图5A和5B所示的移动平台100分别对对象A120和对象B122成像时在移动平台100的显示器102上显示的图像。如图5A和6A所示,移动平台100成像并显示现实世界对象A120。如以上在图3的步骤202中讨论的,对象A120被检测和跟踪。对象122没有显示在图6A中,因为对象122在图5A中的相机视野109之外。在移动移动平台100以将现实世界对象B122放入视野109中之后,如图5B所示,对象B122被成像和显示,如图6B所示。如以上在图3的步骤204中讨论的,对象B122被检测和跟踪。如图5B所示,通过确定对象的接近度来确定对象A120和对象B122的空间关系(图3中的步骤206)。例如,接近度可被确定为如虚线箭头130所示的对象A120和对象B122之间的距离和/或如虚线箭头132所示的对象120和122之间的角位移。距离130和/或角位移132可使用跟踪信息以及来自移动平台上的运动传感器110的数据来确定。基于所确定的空间关系,即对象的接近度,所希望的AR对象被确定(图3中的步骤208),并且随后被呈现和显示(图3中的步骤210)。例如,如图6B所示,包括对象A120的已呈现图像和指向对象A120方向的箭头的AR对象129被显示。
[0019]图7是能够基于现实世界对象的空间关系来提供增强现实应用的移动平台100的框图。移动平台100包括诸如相机108之类的用于捕捉现实世界对象的装置,和诸如加速度计、陀螺仪、电子罗盘,或其它类似的运动感测元件之类的运动传感器110。移动平台100可包括其它位置确定方法,诸如使用“计算机视觉”技术的对象识别。移动平台进一步包括用户接口150,该用户接口包括用于显示已捕捉图像和已呈现AR对象的装置,诸如显示器102。用户接口150也可包括按键板152或其它输入设备,用户可以通过它们将信息输入到移动平台100中。如果希望,通过将虚拟按键板整合到具有触摸传感器的显示器102中,可以除去按键板152。用户接口150还可包括麦克风106和扬声器104,例如,如果移动平台100是蜂窝电话。当然,移动平台100可包括与本发明不相关的其它元件,诸如无线收发器。
[0020]移动平台100还包括与相机108、运动传感器110和用户接口150连接并与它们通信的控制单元160。控制单元160接受并处理来自相机108和运动传感器110的数据,并且作为响应,控制显示器102。控制单元160可由处理器161和相关联的存储器164、硬件162、软件165和固件163提供。控制单元160可包括图像处理器166,用于处理来自相机108的图像以检测现实世界对象。控制单元还可以包括位置处理器167以例如基于从运动传感器110接收的数据和/或基于基于视觉的跟踪技术使用由相机108捕捉的附加图像来确定并跟踪移动平台100相对于现实世界对象的姿态。位置处理器167也可确定现实世界对象的接近度以及对象的空间关系。控制单元160还可以包括图形引擎168,其可以是例如游戏引擎,以相对于现实世界对象的位置和空间关系来呈现希望的AR对象。图形引擎168可基于现实世界对象的空间关系和任何其它希望的因素,从可在存储器164中的数据库169中检索AR对象,其中现实世界对象的空间关系诸如是对象的接近度和/或相对位置,而其它希望的因素诸如是一天中的时间(可基于时钟170来确定)和地理位置(可基于来自可任选的卫星定位系统(SPS)接收器172的数据来确定)。为清楚起见,图像处理器166、位置处理器167和图形引擎与处理器161分开示出,但是可以是处理器161的一部分或基于处理器161中运行的软件165中的指令在处理器中实现。可以理解,如本文使用的,处理器161可以但不必包括一个或多个微处理器、嵌入式处理器、控制器、专用集成电路(ASIC)、数字信号处理器(DSP)等。术语处理器旨在描述由系统实现的功能而非特定硬件。此外,如本文所使用的,术语“存储器”是指任何类型的计算机存储介质,包括长期、短期,或与移动平台相关联的其他存储器,且并不限于任何特定类型的存储器或特定数目的存储器、或记忆存储在其上的介质的类型。
[0022]本文中所描述的方法体系取决于应用可藉由各种手段来实现。例如,这些方法体系可在硬件162、固件163、软件165、或其任何组合中实现。对于硬件实现,这些处理单元可以在一个或更多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、电子器件、设计成执行本文中所描述功能的其他电子单元、或其组合内实现。
[0023]对于固件和/或软件实现,这些方法体系可用执行本文中描述的功能的模块(例如,规程、函数等等)来实现。任何有形地体现指令的机器可读介质可被用来实现本文中所描述的方法体系。例如,软件代码可被存储在存储器164中并由处理器161执行。存储器可在处理器161的内部或外部实现。
[0024]如果以固件和/或软件实现,则各功能可作为一条或更多条指令或代码存储在计算机可读介质上。各示例包括编码成具有数据结构的计算机可读介质和编码成具有计算机程序的非瞬态计算机可读介质。例如,包括存储于其上的程序代码的计算机可读介质可包括在显示器上显示第一对象和第二对象的图像的程序代码、检测和跟踪第一对象并检测和跟踪第二对象的程序代码、确定第一对象和第二对象之间的空间关系的程序代码、基于第一对象和第二对象之间的空间关系来确定要呈现的增强对象的程序代码,以及在显示器上显示增强对象的程序代码。计算机可读介质还可包括确定相对于第一对象的第一姿态和相对于第二对象的第二姿态的程序代码,其中确定第一对象和第二对象之间的距离的程序代码使用第一姿态和第二姿态来确定距离。计算机可读介质还可包括将第一对象和第二对象中的至少一者的大小与第一对象和第二对象之间的空间进行比较以确定第一对象和第二对象之间的距离的程序代码。计算机可读介质包括物理计算机存储介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,此类计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来存储指令或数据结构形式的期望程序代码且能被计算机访问的任何其他介质;如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘常常磁学地再现数据,而碟用激光光学地再现数据。上述设备的组合也应当被包括在计算机可读介质的范围内。