CN112166397A - 用于加速头戴式显示器的位置跟踪的装置、系统和方法 - Google Patents
用于加速头戴式显示器的位置跟踪的装置、系统和方法 Download PDFInfo
- Publication number
- CN112166397A CN112166397A CN201880093718.6A CN201880093718A CN112166397A CN 112166397 A CN112166397 A CN 112166397A CN 201880093718 A CN201880093718 A CN 201880093718A CN 112166397 A CN112166397 A CN 112166397A
- Authority
- CN
- China
- Prior art keywords
- mounted display
- hardware device
- dedicated hardware
- image frame
- display system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 37
- 230000003190 augmentative effect Effects 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 87
- 238000001514 detection method Methods 0.000 claims description 28
- 230000008859 change Effects 0.000 claims description 17
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000005259 measurement Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 238000003702 image correction Methods 0.000 claims description 2
- 238000010348 incorporation Methods 0.000 claims 1
- 230000009467 reduction Effects 0.000 description 16
- 238000003384 imaging method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000000872 buffer Substances 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 230000001934 delay Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013329 compounding Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004270 retinal projection Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 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
- G06F3/012—Head tracking input arrangements
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/211—Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/212—Input arrangements for video game devices characterised by their sensors, purposes or types using sensors worn by the player, e.g. for measuring heart beat or leg activity
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/213—Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
- A63F13/525—Changing parameters of virtual cameras
- A63F13/5255—Changing parameters of virtual cameras according to dedicated instructions from a player, e.g. using a secondary joystick to rotate the camera around a player's character
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/65—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
-
- 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/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Heart & Thoracic Surgery (AREA)
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
所公开的专用硬件设备可以包括图像信号处理器,该图像信号处理器从头戴式显示系统的相机设备接收物理环境的图像帧。专用硬件设备还可以包括位置跟踪部件,该位置跟踪部件(1)将图像帧的至少一部分存储在专用硬件设备的高速缓存中,该高速缓存具有比专用硬件设备的主存储器更快的访问速度,(2)基于存储在高速缓存中的图像帧的部分,跟踪头戴式显示系统在物理环境内的位置的变化,以及(3)将头戴式显示系统的位置的变化存储在主存储器中,用于生成一个或更多个增强现实帧。专用硬件设备还可以包括帧输出接口,该帧输出接口将增强现实帧馈送到头戴式显示系统的显示设备。
Description
背景
在过去的几年里,头戴式显示器彻底改变了人们体验各种数字媒体的方式。例如,头戴式显示器可以允许虚拟现实用户在玩视频游戏的同时、在飞行模拟训练期间或甚至在与全球的同事互动时,体验逼真、沉浸式虚拟环境。除了这种虚拟现实应用之外,头戴式显示器还可以使用户能够增强现实和/或将现实的某些方面与虚拟世界的那些方面相结合。
尽管这种技术取得了令人难以置信的进步,但传统的头戴式显示器仍然存在某些缺陷,这些缺陷对整体用户体验产生了负面影响。例如,一些传统的头戴式显示器在位置和/或定向发生某些变化后可能会表现出明显的视觉延迟。更具体地说,因为这些头戴式显示器在将虚拟内容结合到图像和/或视频中时经常考虑位置的变化,所以在获得用于确定这种位置的变化的信息时的任何延迟最终可能会减慢整个图像处理周期。
使问题更加复杂的是,一些传统的头戴式显示器可能需要大量的功率和/或计算资源来精确地确定位置和/或定向的变化。为了减少延迟和功耗,这些传统的头戴式显示器可能会通过基于低分辨率图像数据确定某些位置的变化来牺牲位置跟踪系统的精确度。
因此,本公开识别并解决了对用于加速头戴式显示器的位置跟踪的附加装置、系统和方法的需求。
概述
如下文将更详细描述的,本公开总体上涉及用于加速头戴式显示器中的位置跟踪的装置、系统和方法。在一些实施例中,专用硬件设备可以实现这个目标和/或可以提供各种其他特征。例如,专用硬件设备可以包括图像信号处理器,该图像信号处理器从头戴式显示系统的相机设备接收头戴式显示系统周围的物理环境的图像帧。专用硬件设备还可以包括位置跟踪部件,该位置跟踪部件将图像帧的至少一部分存储在专用硬件设备的高速缓存中。该高速缓存可以具有比专用硬件设备的主存储器更快的访问速度。位置跟踪部件还可以至少部分地基于图像帧的存储在专用硬件设备的高速缓存中的部分来跟踪头戴式显示系统在物理环境内的位置的变化。然后,位置跟踪部件可以将头戴式显示系统的位置的变化存储在主存储器中,以用于生成要呈现给佩戴头戴式显示系统的用户的一个或更多个增强现实帧。此外,专用硬件设备可以包括帧输出接口,该帧输出接口将增强现实帧馈送到头戴式显示系统的显示设备。
在一些示例中,位置跟踪部件可以识别物理环境的一个或更多个特征,该特征表示位于物理环境内的物理对象的至少部分。位置跟踪部件还可以在专用硬件设备的主存储器内维护图像地图(image map),该图像地图标识物理环境内的特征的一个或更多个物理位置。
在一些实施例中,位置跟踪部件可以包括硬件加速的特征检测部件。当输入图像帧被接收到并存储在专用硬件设备的高速缓存中时,该特征检测部件可以在输入图像帧内检测物理环境的特征中的至少一个特征。然后,特征检测部件可以将检测到的特征传递到专用硬件设备的主存储器,以便于将检测到的特征合并到图像地图中。
位置跟踪部件还可以包括硬件加速的图像处理部件。当输入图像帧被接收到并存储在专用硬件设备的高速缓存中时,该图像处理部件可以创建输入图像帧的至少一个低分辨率版本。然后,图像处理部件可以将输入图像帧的低分辨率版本传递到专用硬件设备的主存储器,以便于跟踪头戴式显示系统的位置的变化。
在一些示例中,位置跟踪部件可以识别物理环境内有助于跟踪头戴式显示系统的位置的变化的一组关键特征。在这些示例中,位置跟踪部件可以(1)识别物理环境的至少一个关键特征的表示在由相机设备捕获的初始图像帧内的初始位置,(2)识别物理环境的该关键特征的表示在由相机设备捕获的后续图像帧内的后续位置,以及然后(3)将该关键特征的表示的初始位置与该关键特征的表示的后续位置进行比较。
在一个实施例中,位置跟踪部件可以通过以下方式来识别关键特征的表示在后续图像帧内的后续位置:(1)基于关键特征的表示在初始图像帧内的初始位置,确定物理环境的关键特征可能在其中被表示的后续图像帧的预期区域,以及然后(2)通过搜索后续图像帧的预期区域来识别关键特征的表示在后续图像帧内的具体位置。
在一些示例中,位置跟踪部件可以生成一个或更多个图像块(patch),该图像块从不同的视角表示物理环境内的关键特征的物理外观。在一个实施例中,位置跟踪部件可以将这些图像块存储在专用硬件设备的主存储器内。
在一些实施例中,位置跟踪部件可以包括图像搜索单元。图像搜索单元可以通过以下方式来识别关键特征的表示在后续图像帧内的具体位置:(1)扭曲(warp)至少一个图像块,使得该图像块类似于从相机设备捕获后续图像帧的视角来看的关键特征的当前物理外观,然后(2)识别后续图像帧内扭曲的图像块的像素值最接近地匹配后续图像帧的对应像素值的位置。在一个示例中,图像搜索单元可以通过以下方式来识别关键特征的表示在后续图像帧内的子像素位置:(1)对后续图像帧的预期区域内的像素值执行子像素插值分析,以及然后(2)基于子像素插值分析,确定扭曲的图像块的像素值最接近地匹配后续图像帧的对应像素值的子像素位置。
在一些示例中,图像搜索单元可以确定物理环境的附加关键特征预期在后续图像帧的预期区域内被表示。在这些示例中,图像搜索单元可以将后续图像帧的预期区域加载到专用硬件设备的高速缓存中。然后,图像搜索单元可以通过在专用硬件设备的高速缓存内搜索后续图像帧的预期区域来识别关键特征的表示在后续图像帧内的具体位置和附加关键特征的表示在后续图像帧内的具体位置两者。
在一些实施例中,专用硬件设备可以包括硬件加速的搜索部件。该搜索部件可以专用于识别关键特征的表示在后续图像帧内的具体位置,以及识别关键特征在物理环境内的物理位置。在一个示例中,搜索部件可以通过以下方式来识别关键特征在物理环境内的物理位置:(1)识别关键特征的表示在由相机设备捕获的先前图像帧内的具体位置,以及然后(2)基于关键特征的表示在先前图像帧内的具体位置来执行对极搜索(epipolarsearch)以找到关键特征在物理环境内的三维位置。
在一些示例中,专用硬件设备可以包括帧生成单元。该帧生成单元可以在专用硬件设备的主存储器内检索头戴式显示系统的位置。在生成要呈现给用户的增强现实帧的同时,帧生成单元可以调整增强现实帧的至少一个方面,以考虑头戴式显示系统的位置的变化。
相应的头戴式显示系统可以包括至少一个相机设备,该至少一个相机设备捕获头戴式显示系统周围的物理环境的图像帧。头戴式显示系统还可以包括通信地耦合到相机设备的专用硬件设备。当从相机设备接收到图像帧时,专用硬件设备可以将图像帧的至少一部分存储在专用硬件设备内的高速缓存中。在一个实施例中,该高速缓存可以具有比专用硬件设备的主存储器更快的访问速度。专用硬件设备还可以至少部分地基于图像帧的存储在高速缓存中的部分来跟踪头戴式显示系统在物理环境内的位置的变化。专用硬件设备还可以将头戴式显示系统的位置的变化存储在主存储器中,以用于生成要呈现给佩戴头戴式显示系统的用户的至少一个增强现实帧。此外,头戴式显示系统可以包括通信地耦合到专用硬件设备的显示设备。该显示设备可以从专用硬件设备接收增强现实帧,然后将增强现实帧呈现给佩戴头戴式显示系统的用户。
在一些示例中,头戴式显示系统可以包括通信地耦合到独立主机设备的通信接口,该独立主机设备向头戴式显示系统馈送虚拟图像内容。头戴式显示系统还可以包括至少一个附加的相机设备,该附加的相机设备从佩戴头戴式显示系统的用户的视角捕获一个或更多个图像帧。在一些实施例中,从佩戴头戴式显示系统的用户的视角来看,专用硬件设备可以通过将从独立主机设备接收的虚拟图像内容覆盖在图像帧上来生成要呈现给用户的增强现实帧。在一个示例中,头戴式显示系统还可以包括硬件加速的图像校正部件,该部件至少部分地基于头戴式显示系统的位置的变化,对虚拟图像内容应用异步时间扭曲或异步空间扭曲。
在一些实施例中,头戴式显示系统可以包括通信地耦合到专用硬件设备的惯性测量单元。在这样的实施例中,专用硬件设备还可以基于惯性测量单元所提供的数据来跟踪头戴式显示系统的位置的变化。
相应的方法可以包括:(1)由专用硬件设备从头戴式显示系统的相机设备接收头戴式显示系统周围的物理环境的图像帧,(2)当从相机设备接收到图像帧时,由专用硬件设备将图像帧的至少一部分存储在专用硬件设备的高速缓存中,该高速缓存具有比专用硬件设备的主存储器更快的访问速度,(3)由专用硬件设备至少部分地基于存储在高速缓存中的图像帧的部分来跟踪头戴式显示系统在物理环境内的位置的变化,(4)由专用硬件设备将头戴式显示系统的位置的变化存储在主存储器中,以用于生成要呈现给佩戴头戴式显示系统的用户的至少一个增强现实帧,以及然后(5)由专用硬件设备将增强现实帧馈送给头戴式显示系统的显示设备,使得显示设备将增强现实帧呈现给佩戴头戴式显示系统的用户。
根据本文描述的一般原理,来自上面提到的实施例中的任一个的特征可以与彼此组合地被使用。通过结合附图和权利要求阅读以下详细描述,将会更全面地理解这些和其他实施例、特征和优点。
附图简述
附图示出了多个示例性实施例,并且是说明书的一部分。这些附图连同下面的描述一起展示并解释了本公开的各种原理。
图1是根据一些实施例的用于加速头戴式显示器的位置跟踪的示例性专用硬件设备的框图。
图2是根据一些实施例的示例性头戴式显示器的图示,该示例性头戴式显示器结合了用于加速头戴式显示器的位置跟踪的专用硬件设备。
图3是根据一些实施例的示例性头戴式显示器的框图,该示例性头戴式显示器结合了用于加速头戴式显示器的位置跟踪的专用硬件设备。
图4是根据一些实施例的用于加速头戴式显示器的位置跟踪的示例性实现的框图。
图5是根据一些实施例的用于加速头戴式显示器的位置跟踪的示例性实现的框图。
图6是根据一些实施例的用于加速头戴式显示器的位置跟踪的示例性实现的框图。
图7是根据一些实施例的用于加速头戴式显示器的位置跟踪的示例性实现的框图。
图8是根据一些实施例的由专用硬件设备用来检测头戴式显示器的位置的变化的示例性图像帧的图示。
图9是根据一些实施例的用于加速头戴式显示器的位置跟踪的示例性实现的框图。
图10是根据一些实施例的用于加速头戴式显示器的位置跟踪的示例性方法的流程图。
在所有附图中,相同的参考标记和描述表示相似但不一定相同的元件。虽然本文描述的示例性实施例易于进行各种修改和替代形式,但是在附图中已经通过示例的方式示出了具体实施例,并且将在本文对这些具体实施例进行详细描述。然而,本文描述的示例性实施例并不旨在局限于所公开的特定形式。更确切地,本公开覆盖了落入所附权利要求的范围内的所有修改、等同物和替代物。
示例性实施例的详细描述
本公开总体上涉及用于加速头戴式显示器的位置跟踪的装置、系统和方法。如下文将更详细解释的,本文公开的装置、系统和方法可以减少跟踪头戴式显示器的位置的变化时所涉及的动态随机存取存储器(DRAM)访问的次数。具体地,这些装置、系统和方法可以将输入的图像数据进行高速缓存,而不是将数据缓冲在DRAM中。通过基于该高速缓存的数据执行位置跟踪算法的至少一部分,所公开的装置、系统和方法可以减少或最小化所需的DRAM访问的次数。因为DRAM访问通常比在高速缓存中执行在线(in-line)操作更耗费资源,所以这些装置、系统和方法可以减少头戴式显示器的处理时间和功耗。
本公开的实施例可以通过仅高速缓存和分析输入图像帧的相关部分来进一步提高执行位置跟踪算法的效率。更具体地,所公开的装置、系统和方法可以将输入的图像帧划分成图块(tile),然后高速缓存包含与执行诸如特征跟踪的计算机视觉操作相关的数据的图块。通过提高位置跟踪算法的效率,这些装置、系统和方法可以使头戴式显示器能够处理高分辨率图像数据,从而产生比传统位置跟踪系统更精确和准确的位置跟踪数据。
附加地或替代地,这些装置、系统和方法可以实现硬件加速的计算机视觉单元,其经由一个或更多个集成电路或硬件块(block)有效地跟踪头戴式显示器的位置。特别地,该硬件加速的单元对于不同的处理步骤可以重复使用某些硬件块(例如,单个硬件块可以被配置为执行位置跟踪算法的两个或更多个步骤)。通过这样做,所公开的装置、系统和方法可以减少在执行位置跟踪算法时消耗的功率和计算机视觉单元的片上存在。
现在将参考各种示例性实施例,其示例在附图中示出。在以下描述中,阐述了许多具体细节,以便提供对各种所描述的实施例的理解。然而,对于本领域的普通技术人员来说显而易见的是,可以在没有这些具体细节的情况下实施各种所描述的实施例。在其他情况下,没有详细描述众所周知的系统、方法、过程、部件、电路和网络,以免不必要地模糊实施例的方面。
参考图1-9,下面将提供对用于加速头戴式显示器的位置跟踪的示例性装置、系统和/或相应实现的详细描述。将结合图10提供对用于加速头戴式显示器的位置跟踪的方法的详细描述。
图1示出了根据一些实施例的用于加速位置跟踪的示例性专用硬件设备100。在某些示例中,专用硬件设备100可以被结合在头戴式显示器中和/或表示头戴式显示器的一部分。在这样的示例中,专用硬件设备100可以负责跟踪头戴式显示器的位置、定向和/或惯性的变化。
专用硬件设备100通常表示被设计成执行各种图像处理操作和/或位置跟踪算法的电路、系统和/或硬件加速器。在一些示例中,专用硬件设备100可以包括和/或表示片上系统(SoC)和/或专用集成电路(ASIC)。例如,专用硬件设备100可以通过SoC和/或ASIC的方式实现计算机视觉(CV)加速器。在一些实施例中,术语“CV加速器”可以指执行位置跟踪算法的任何基于软件和/或硬件的部件或设备。
除了CV加速器之外,SoC和/或ASIC还可以包括处理图像以供头戴式显示器显示时所涉及的多种其他计算部件。这种计算部件的示例包括但不限于高级精简指令集计算机(RISC)机器(ARM)处理器、中央处理单元(CPU)、图像信号处理器(ISP)、数字信号处理器(DSP)、显示成像流水线、视频编码器、视频解码器、硬件加速的处理部件、它们中的一个或更多个的组合或变体和/或任何其他合适的部件。
如图1所示,专用硬件设备100可以包括图像信号处理器102、位置跟踪部件104和帧输出接口106。在一些示例中,图像信号处理器102可以从头戴式显示器上装载的相机接收图像帧。图像信号处理102可以可选地对图像帧执行一个或更多个图像处理操作(例如重新格式化和/或重新缩放图像),然后将图像帧传递给位置跟踪部件104。位置跟踪部件104可以基于接收到的图像来检测头戴式显示器的位置的变化。例如,位置跟踪部件104可以基于接收到的图像来检测在头戴式显示器周围的物理环境内的各种特征(例如,物理对象或物理对象的部分)。然后,位置跟踪部件104可以基于随时间跟踪图像帧内特征的表示来计算和/或推断头戴式显示系统的位置的变化。
在一些实施例中,专用硬件设备100的一个或更多个附加部件可以使用由位置跟踪部件104生成的位置跟踪信息来创建用于呈现给头戴式显示器的用户的图像帧。例如,专用硬件设备100内的帧生成部件(图1中未明确示出)可以基于头戴式显示器的位置的变化来更新和/或校正虚拟现实、混合现实(mixed-reality)和/或增强现实图像帧。然后,帧输出接口106可以将这些图像帧发送、传输和/或馈送到被集成和/或结合到头戴式显示器中的显示设备。通过这样做,帧输出接口106可以使得显示设备能够显示所生成的帧,以呈现给佩戴头戴式显示器的用户。在一个示例中,帧输出接口106可以包括和/或表示移动产业处理器接口(MIPI)显示器串行接口(DSI)。
图2示出了根据一些实施例的由用户204佩戴的示例性头戴式显示系统200。如图2所示,头戴式显示系统200可以包括耦合到头戴式显示器202的带206。在该示例中,头戴式显示器202可以包括捕获用户204的周围环境的图像和/或视频的一个或更多个相机210。在一些实施例中,相机210可以被定位和/或成角度以捕获头戴式显示器202周围的宽视场(例如,360°视场)。以这种方式,相机210可以有助于跟踪头戴式显示器202在任何和/或所有方向上的移动。
在一些实施例中,相机210也可以从用户204的视角捕获图像和/或视频。例如,相机210中的至少一个可以与用户204的视线对齐。因此,相机210可以促进透视(see-through)功能或特征,和/或使头戴式显示器202能够充当混合现实门户,其中用户204的真实世界环境与虚拟世界内容相融合。相机210的示例包括但不限于数码相机、RGB相机、互补金属氧化物半导体(CMOS)图像传感器、电荷耦合器件(CCD)图像传感器、成像传感器阵列、它们中的一个或更多个的变体或组合、它们中的一个或更多个的组合和/或任何其他合适的相机。
如图2所示,头戴式显示系统200可以包括一个或更多个惯性测量单元(IMU),例如IMU 208。IMU 208通常表示测量力(例如主体的角速度和比力(specific force))的任何类型或形式的传感器、仪器和/或设备。例如,当被并入和/或附接到头戴式显示器202时,IMU208可以检测头戴式显示器202的惯性的变化。IMU 208可以使用各种机构和/或工具(例如加速度计、陀螺仪、磁力计和/或电子罗盘)来检测这些变化。在一些实施例中,由IMU 208生成的惯性测量数据可以指示和/或用于确定头戴式显示器202的位置和/或定向的变化。
在一些示例中,术语“头戴式显示器”可以指佩戴在用户的面部上或周围并向用户显示视觉内容的任何类型或形式的显示设备或系统。头戴式显示器可以以任何合适的方式显示内容,包括通过屏幕(例如,LCD或LED屏幕)、投影仪、阴极射线管、光学混合器等。头戴式显示器可以以一种或更多种媒体格式显示内容。例如,头戴式显示器202可以显示视频、照片、计算机生成的影像(CGI)和/或它们的组合。
头戴式显示器可以提供多样化和独特的用户体验。一些头戴式显示器可以提供虚拟现实体验(即,它们可以显示计算机生成或预先记录的内容),而其他头戴式显示器可以提供真实世界体验(即,它们可以显示来自物理世界的实况影像)。头戴式显示器也可以提供实况内容和虚拟内容的任何混合。例如,虚拟内容可以(例如,通过光学或视频透视)被投影到物理世界上,以提供和/或促进增强现实或混合现实体验。在一些实施例中,术语“增强现实”和“混合现实”都可以指将虚拟内容与真实世界内容相组合和/或结合的任何类型或形式的内容和/或体验。因此,为了本公开的可读性的目的,术语“增强现实”和“混合现实”可以互换和/或同义使用。
头戴式显示器可以被配置成以多种方式安装到用户的头部。一些头戴式显示器可以被结合到眼镜或面罩(visors)中。其他头戴式显示器可以被结合到头盔、帽子或其他头戴式装备中。
如图2所示,用户204可以将头戴式显示系统200放置在用户的头部上,使得头戴式显示器202位于和/或置于用户的面部上。通过以这种方式将头戴式显示系统200放置在他或她的面部上,用户204可以将头戴式显示器202放置在他或她的眼睛上,以体验和/或观看头戴式显示器202上呈现的虚拟内容。用户204还可以通过将带206缠绕在用户的后脑勺周围来将头戴式显示器202固定在正确的位置。
图3示出了根据一些实施例的被结合到头戴式显示器202中用于加速位置跟踪的示例性部件。如图3所示,头戴式显示器202可以包括专用硬件设备100、相机210和显示设备318。在一些示例中,显示设备318可以包括渲染图像帧(例如虚拟现实、增强现实和/或混合现实帧)以呈现给佩戴头戴式显示器202的用户的屏幕。显示设备318的示例包括但不限于液晶显示器(LCD)、发光二极管(LED)显示器、视网膜投影显示器、它们中的一个或更多个的变体或组合、和/或任何其他合适的显示设备。
如图3所示,专用硬件设备100可以包括各种部件和/或硬件加速的设备。例如,专用硬件设备100可以包括图像信号处理器102、相机接口302、CV加速器304、视频编码器306、视频解码器308、中央处理单元312、数字信号处理器314、显示成像流水线310、通信路径320和帧输出接口106。当执行诸如跟踪头戴式显示器202的位置和/或生成要呈现给头戴式显示器202的用户的图像帧的任务时,这些部件的全部或一部分可以单独操作或彼此结合操作。
在一些实施例中,CV加速器304可以包括负责执行各种图像处理操作的各种硬件加速的位置跟踪部件。例如,CV加速器304可以被专门设计用于执行头戴式显示器202的位置跟踪。在一些实施例中,短语“位置跟踪”可以指检测设备相对于该设备所处的物理环境的位置、定向和/或惯性的变化的任何技术或算法。例如,位置跟踪可用于检测佩戴头戴式显示器的用户何时转动了他或她的头部(从而改变了头戴式显示器的定向和/或惯性)。附加地或替代地,位置跟踪可用于检测用户何时(例如,通过迈出一步)移动到了新位置,从而改变了用户和用户附近的一个或更多个物理对象之间的距离。
位置跟踪信息常常可用于向头戴式显示器的用户提供更逼真和/或沉浸式的虚拟现实体验。例如,CV加速器304可以将关于头戴式显示器202的位置信息传递给专用硬件设备100的一个或更多个其他部件(例如显示器成像流水线310)。当生成要呈现给用户的增强现实帧时,这些部件可以校正和/或更新增强现实帧,以更准确地反映和/或对应于头戴式显示器202的当前位置。
许多传统的头戴式显示系统都利用图形处理单元(GPU)执行位置跟踪,这与利用SoC和/或ASIC相反。然而,因为GPU实质上是通用计算部件,所以它们不是被专门设计来在虚拟现实、增强现实和/或混合现实环境中执行这种操作的。因此,当GPU被部署在虚拟现实、增强现实和/或混合现实环境中时,GPU可能结合和/或实现减慢这种操作的某些特征和/或功能,从而潜在地导致或促成虚拟内容和真实内容的滞后和/或不准确融合。例如,位置跟踪系统所表现出的延迟可能导致头戴式显示器滞后于用户的实际物理运动。这种滞后(有时称为动显延迟(motion-to-photon latency))可能是一个性能问题,其影响了许多使用GPU驱动的位置跟踪系统的头戴式显示器的用户体验。
作为这个缺陷的一个具体示例,传统的头戴式显示器可以包括GPU,该GPU被编程为基于由头戴式显示器的一个或更多个相机捕获的图像帧来执行位置跟踪。该GPU可以被设计成使得在从相机接收到图像帧之后,GPU在DRAM中临时存储和/或缓冲图像帧。然后,GPU可以基于存储在DRAM中的图像帧为头戴式显示器执行位置跟踪算法。在一些示例中,在位置跟踪算法的各个步骤之后和/或之间,GPU可以访问DRAM中的图像帧和/或将从图像帧提取的信息保存到DRAM。
如上面所提及的,许多头戴式显示系统可能在生成要呈现给用户的增强现实帧的同时利用位置跟踪信息。因此,在检测头戴式显示器的运动时的延迟可能导致增强现实帧内的动显延迟和/或不准确性,尤其是相对于头戴式显示器的位置和/或定向。不幸的是,传统的GPU驱动的位置跟踪系统可能会在每次DRAM访问(无论是读取还是写入)时出现延迟或时间损失(time penalty)。因此,在该GPU驱动的实施例中,生成增强现实帧所需的时间量可能会被延长和/或拉长,这至少部分是由于GPU的通用架构和/或其对DRAM缓冲器的严重依赖。
在一些应用(例如GPU驱动的电视或计算机监视器)中,这种延迟可能对整体用户体验的影响很小(如果有的话)。事实上,这种延迟可能完全不引人注意。然而,在虚拟现实、增强现实和/或混合现实环境中,这种延迟对一些用户来说可能是引人注意的,或甚至是明显的,这潜在地导致不连贯的用户体验,让他们感觉不舒服。
为了解决这个缺陷,头戴式显示器202可以包括和/或结合专用硬件设备100(例如,SoC和/或ASIC),其执行传统上由GPU负责的许多位置跟踪操作。如下文将更详细解释的,由于各种原因,SoC和/或ASIC驱动的CV系统可以优于和/或改进传统的GPU驱动的CV系统。
图4示出了根据一些实施例的用于加速头戴式显示器的位置跟踪的位置跟踪部件104的示例性实现400。如图4所示,实现400可以包括CV加速器304、图像帧402和存储器设备418。存储器设备418通常表示能够存储数据和/或计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。在一个示例中,存储器设备418可以包括和/或表示DRAM设备和/或缓冲器。存储器设备418的其他示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存、固态驱动器(SSD)、光驱、高速缓存、它们中的一个或更多个的变体或组合、和/或任何其他合适的储存存储器。
如图4所示,CV加速器304可以包括图像处理部件404、图像缩小部件406、定向FAST旋转BRIEF(ORB,oriented FAST and rotated BRIEF)描述符单元408、特征检测部件410、搜索部件412和光束法平差单元(bundle adjustment unit)414。这些单元和部件的全部或一部分可以专用于执行位置跟踪算法的一个或更多个步骤。此外,这些部件和单元可以在硬件和/或软件内实现。例如,图像处理部件404、图像缩小部件406、特征检测部件410和/或搜索部件412可以单独或主要在硬件中实现。这种基于硬件的实现可以加速部件被分派去执行的操作或步骤。相反,ORB描述符单元408和/或光束法平差单元414可以单独或主要在软件中实现。这种基于软件的实现可以使这些单元能够被可编程地更新。
在实现400中,图像帧402通常表示由头戴式显示器202的相机210中的一个或更多个捕获的图像帧。当图像帧402被专用硬件设备100接收(例如,被专用硬件设备100内的图像信号处理器102接收)时,专用硬件设备100可以将图像帧402传递给CV加速器304。然后,CV加速器304内的部件和单元可以基于图像帧402中的一个或更多个来执行位置跟踪算法。该位置跟踪算法可以检测头戴式显示器202的位置的变化。作为该算法的一部分和/或在该算法期间,CV加速器304的部件和/或单元可以读取从图像帧402提取的数据,和/或将从图像帧402提取的数据写入到存储器设备418。此外,CV加速器304可以将检测到的头戴式显示器202的位置的变化存储在存储器设备418内。这些变化稍后可以由专用硬件设备100的一个或更多个附加部件(例如显示成像流水线310)来访问。
图5示出了根据一些实施例的用于加速头戴式显示器的位置跟踪的CV加速器304的示例性实现500。具体而言,图5示出了前端处理部件502。前端处理部件502通常表示任何类型或形式的处理单元或设备,其在图像帧402被CV加速器304接收时分析图像帧402的全部或一部分。具体而言,在图像帧402被存储在专用硬件设备100的主存储器(例如,DRAM510)内之前,前端处理部件502可以对图像帧402执行一个或更多个在线操作。相反,许多传统的位置跟踪系统可以在处理图像帧之前首先在DRAM或类似类型的存储器的一部分内存储和/或缓冲接收到的图像帧。通过避免该初始存储步骤,专用硬件设备100可以减少跟踪头戴式显示器202的位置的变化所涉及的时间和/或计算资源。
在一个实施例中,前端处理部件502可以表示硬件加速的部件。例如,前端处理部件502可以表示被专门设计和制造来对输入图像帧执行初始图像处理操作的集成设备或电路。
在实现500中,前端处理部件502可以包括图像处理部件404、图像缩小部件406、特征检测部件410和高速缓存508。前端处理部件502可以包括用于任何合适目的的任何附加或替代的处理单元、部件和/或存储器的部分。例如,前端处理部件502可以包括图4所示的ORB描述符单元408、搜索部件412和/或光束法平差单元414。
高速缓存508通常表示快速存取存储器或存储装置的任何部分。例如,高速缓存508可以表示和/或包括静态随机存取存储器(SRAM)的一部分。在一些实施例中,高速缓存508可以具有比DRAM 510更快的访问时间。换句话说,相比于读取存储在DRAM 510内的数据,专用硬件设备100可以更快速地读取存储在高速缓存508内的数据。在一些示例中,当从相机210接收到图像帧402时,前端处理部件502可以将图像帧402加载到高速缓存508中。然后,前端处理部件502的一个或更多个部件可以对高速缓存508内的图像帧402执行一个或更多个在线图像处理操作。
在一个实施例中,图像处理部件404可以表示和/或包括轻量级图像信号处理器。在该实施例中,图像处理部件404可以使用诸如伽马校正、高斯模糊和/或声发射信号处理的图像信号处理来处理图像帧402。这样的处理可以使前端处理部件502的附加部件能够更有效和/或准确地分析和/或进一步处理图像帧402。
在一个示例中,图像处理部件404可以将图像帧402的处理后的版本传递给图像缩小部件406。在其他示例中,图像缩小部件406可以直接从图像信号处理器102接收图像帧402(从而绕过图像处理部件404所执行的处理操作)。在接收到图像帧402之后,图像缩小部件406可以生成图像帧402的一个或更多个低分辨率版本。例如,图像缩小部件406可以对图像帧402进行采样和/或以其他方式降低图像帧402的分辨率。
在一些实施例中,图像缩小部件406可以生成图像帧402的多个缩小版本。图像帧402的这些缩小版本中的每一个可以具有不同的分辨率。作为示例,如果图像帧402之一最初由256个像素组成,则图像处理部件404可以将该图像帧缩小到128个像素、64个像素和32个像素(创建图像帧的总共四个版本)。这种生成图像帧的多个缩小版本的过程可以被称为生成图像帧的金字塔。在对图像帧402之一执行金字塔生成过程之后,图像缩小部件406可以(例如,经由DRAM访问504)将所得图像帧写入到DRAM 510。
前端处理部件502内的特征检测部件410通常表示专用于检测图像帧402内的一个或更多个特征的任何硬件加速的部件、集成电路和/或设备。在一些实施例中,术语“特征”可以指在头戴式显示器周围的物理环境内的物理对象和/或物理对象的一部分。例如,特征可以表示物理对象的点(point)或角(corner),该点或角在该对象内在视觉上是可区分的,和/或与相邻对象在视觉上是可区分的。
特征检测部件410可以以多种方式检测图像帧内的特征。在一个示例中,特征检测部件410可以通过执行图像帧的非最大值抑制分析(non-maxima suppression analysis)来识别图像帧内的一个或更多个特征。该分析可以涉及计算图像帧内像素值的梯度,然后识别图像帧内像素值梯度高于(例如,更陡)某个阈值和/或高于周围位置的像素值梯度的位置。特征检测部件410可以使用任何附加的或替代的图像处理技术来检测图像帧402内的特征。
在一些示例中,特征检测部件410可以识别图像帧402内的一组关键特征。根据某些实施例,术语“关键特征”通常可以指作为位置跟踪算法的一部分而被选择用于跟踪和/或分析的特征。在一些实施例中,特征检测部件410可以识别并然后跟踪一定数量的关键特征(例如20个关键特征)。在这些实施例中,在编译一组关键特征之后,CV加速器304可以尝试在输入图像帧内识别每个关键特征的表示。
特征检测部件410可以以多种方式检测关键特征。在一个实施例中,特征检测部件410可以通过检测特别不同的特征(例如,与图像帧内的其他特征相比)来识别关键特征。附加地或替代地,特征检测部件410可以通过在一个或更多个图像帧402内检测新特征来识别关键特征。例如,特征检测部件410可以在输入图像帧中搜索尚未被识别并存储在DRAM 510内的特征。在一个实施例中,特征检测部件410可以在前端处理部件502接收到的每个图像帧内搜索新特征。在其他实施例中,特征检测部件410可以在某些关键图像帧(例如,由前端处理部件502接收的每三个图像帧)内搜索新特征。
在一个示例中,搜索部件412可以将一个或更多个关键特征合并到图像地图中,例如图5所示的图像地图514。在一些实施例中,术语“图像地图”可以指在物理环境内一个或更多个关键特征的物理位置(例如,三维位置)的表示或描述。在一个示例中,图像地图514可以指示关键特征的绝对物理位置。例如,图像地图514可以指示关键特征在房间内或在头戴式显示器202周围的其他区域内的位置。附加地或替代地,图像地图514可以指示关键特征的相对物理位置。例如,图像地图514可以指示关键特征相对于头戴式显示器202的距离和/或定向。
搜索部件412可以以多种方式计算关键特征的物理位置。在一个实施例中,搜索部件412可以执行对极搜索以找到关键特征的三维位置。在一些示例中,术语“对极搜索”可以指基于物理环境的多个二维表示(例如,图像)来识别对象在物理环境内的三维位置的任何类型或形式的分析。
在图5的示例中,搜索部件412可以包含和/或表示至少部分被专用于执行对极搜索的硬件加速的部件。在该示例中,搜索部件412可以通过基于图像帧402中包含关键特征的表示的两个或更多个图像帧执行对极搜索,来识别该关键特征的物理位置。然后,搜索部件412可以将该关键特征的位置合并到图像地图514中。
在一些实施例中,当特征检测部件410在图像帧402内检测到关键特征时,搜索部件412可以将关键特征合并到图像地图514中。此外,搜索部件412可以出于各种原因,例如确定已经识别出新的关键特征、确定该关键特征在输入图像帧内不再被表示、和/或在自从该关键特征被合并到图像地图514中已经过去了一定量的时间之后,而从图像地图514中移除关键特征。如下文将更详细解释的,通过维护在头戴式显示器202周围的物理环境内的特征的物理位置的图像地图,CV加速器304可以跟踪头戴式显示器202在该物理环境内的位置和/或定向。
在实现500中,搜索部件412可以从DRAM 510读取数据和向DRAM 510写入数据。在一个实施例中,搜索部件412可以(例如,经由DRAM访问506)读取由图像缩小部件406生成并存储的图像帧402的缩小版本和/或由特征检测部件410检测到并存储的关键特征。此外,搜索部件412可以(例如,经由DRAM访问512)将关键特征的位置写入到图像地图514。相反,因为前端处理部件502对图像帧402执行初始在线处理操作,所以前端处理部件502可以避免和/或减少从DRAM 510的读取。
图6示出了根据一些实施例的前端处理部件502的示例性实现600。具体而言,图6示出了前端处理部件502处理图像帧402时图像帧402的流程。在该示例中,前端处理部件502可以包含两个不同的处理路径,图像帧402可以沿着这两个路径被引导。在一个实施例中,前端处理部件502可以沿着处理路径602引导图像帧402中的一个或更多个图像帧。处理路径602可以涉及将图像帧402直接写入到主存储器(例如,DRAM 510)。在一些示例中,处理路径602可以表示和/或类似于传统位置跟踪系统的处理路径,该传统位置跟踪系统在处理图像帧之前在DRAM内缓冲输入图像帧。替代地,前端处理部件502可以沿着处理路径604引导图像帧402的全部或一部分。处理路径604可以涉及在图像帧402被写入到DRAM510之前对图像帧402执行一个或更多个在线操作(如上面结合图5所讨论的)。
如图6所示,处理路径604可以将图像帧402传递给图像处理部件404。在图像处理部件404对图像帧402执行一个或更多个图像信号处理操作(例如伽马校正和/或高斯模糊)之后,图像处理部件404可以将处理后的图像帧传递给图像缩小部件406、特征检测部件410和/或变换单元606。在一些实施例中,图像缩小部件406、特征检测部件410和变换单元606可以同时处理和/或分析图像帧402。例如,这些部件和单元可以独立地和/或并行地工作。
如结合图5所讨论的,图像缩小部件406可以生成输入图像帧的一个或更多个低分辨率版本。在图6的示例中,图像缩小部件406可以生成低分辨率图像608,然后将低分辨率图像608写入到DRAM 510。此外,特征检测部件410可以检测输入图像帧内的一个或更多个关键特征。在图6的示例中,特征检测部件410可以检测到关键特征610,然后将关键特征610的指示写入到DRAM 510(例如通过存储关键特征610内的像素的像素值)。
在一些示例中,处理路径604可以可选地包括将图像帧402从图像处理部件404传递到变换单元606。变换单元606通常表示任何硬件加速的部件,其专用于在将图像帧的全分辨率版本写入到DRAM 510之前变换和/或处理该全分辨率版本。在一个实施例中,变换单元606可以对输入图像帧执行有限Legendre变换(FLT)。然后,变换单元606可以将所得图像帧(即,全分辨率图像612)写入到DRAM 510。变换单元606可以对图像帧402执行任何附加的或替代的图像处理和/或图像变换算法。
在一些实施例中,专用硬件设备100可以使图像帧402中的一个或更多个图像帧多次传递通过前端处理部件502。例如,在图像缩小部件406生成低分辨率图像608之后,专用硬件设备100可以沿着数据路径614转发低分辨率图像608。数据路径614可以引导低分辨率图像608通过图像处理部件404和/或特征检测部件410。在一些示例中,特征检测部件410可以重新计算关键特征610在低分辨率图像608内的存在和/或位置。然后,特征检测部件410可以将关键特征610的所得低分辨率版本存储在DRAM510内。在一些实施例中,前端处理部件502可以沿着数据路径614传递由图像缩小部件406生成的图像帧的每个低分辨率版本。
在一些示例中,专用硬件设备100可以包括前端处理部件502的多个实例。例如,专用硬件设备100可以对于相机210中的每个相机包括前端处理部件502的一个实例。以这种方式,CV加速器304可以同时处理和/或分析从每个相机接收的图像帧。在这些示例中,前端处理部件502的每个实例可以将关于输入图像帧的数据写入到DRAM(即,DRAM 510)的同一部分。
图7示出了根据一些实施例的搜索部件412的示例性实现700。在该示例中,搜索部件412可以表示CV加速器304的基于软件和/或硬件的部件,其专用于确定图像帧402内关键特征的表示的位置。在一些实施例中,术语“关键特征的表示”可以指图像帧内关键特征的描绘和/或图像。因此,关键特征的表示的位置可以指图像帧内描绘关键特征的像素的位置(而不是关键特征在物理环境内的位置)。
在实现700中,搜索部件412可以识别图像帧702内关键特征610的表示的位置。图像帧702通常表示由前端处理部件502接收到和/或处理过的任何图像帧。例如,图像帧702可以表示图6中的全分辨率图像612和/或低分辨率图像608。在一些实施例中,在高分辨率图像帧和一个或更多个低分辨率图像帧内搜索关键特征610的表示可以有助于更准确和/或更精确地跟踪头戴式显示器202的位置。
如图7所示,搜索部件412可以访问DRAM 510内的图像帧702。搜索部件412还可以访问DRAM 510内的一个或更多个图像块,例如图像块704。在一些实施例中,术语“图像块”可以指关键特征的表示、描绘和/或图像。例如,图像块可以包含和/或表示图像帧中描绘特定关键特征的部分。在一个示例中,图像块可以表示从特定的视角和/或观看角度来看的关键特征的物理外观。例如,图像块704可以表示和/或指示关键特征610相对于头戴式显示器202在特定角度和/或特定距离的物理外观。
在一些实施例中,CV加速器304可以对于被合并到图像地图514中的每个关键特征生成和/或存储多个图像块。这些图像块中的每一个可以表示不同视角下的关键特征。此外,CV加速器304可以生成和/或存储各种分辨率的图像块。
如图7所示,搜索部件412可以包括块搜索单元708和块扭曲单元710。在一个示例中,块扭曲单元710可以加载和/或访问DRAM 510内的图像块704。然后,块扭曲单元710可以扭曲图像块704,使得图像块704与关键特征610的当前物理外观类似和/或匹配。在实现700中,该扭曲过程可以生成扭曲的图像块712。
在一个实施例中,块扭曲单元710可以通过调整和/或改变图像块704内的一个或更多个像素来生成扭曲的图像块712,使得与图像块704内描绘的关键特征610的外观相比,图像块704更接近地类似于关键特征610的当前物理外观(例如,从头戴式显示器202的当前视角来看的关键特征610的外观)。块扭曲单元710可以使用任何类型或形式的图像处理技术(例如抗锯齿滤波(anti-aliasing filtering)和/或像素插值)来执行这种扭曲。
在块扭曲单元710生成扭曲的图像块712之后,块搜索单元708可以基于扭曲的图像块712来识别图像帧702内关键特征610的表示的位置。在一些示例中,块搜索单元708可以在分析在高速缓存、缓冲器和/或快速存取存储器的其他部分内的图像帧702的同时识别该位置。在实现700中,块搜索单元708可以将图像帧702的全部或一部分从DRAM 510加载到高速缓存714中。在该示例中,高速缓存714可以表示专用于搜索部件412和/或可由搜索部件412访问的高速缓存(与图5中的可以被包含在前端处理部件502内的高速缓存508相反)。
块搜索单元708可以以多种方式搜索图像帧702内关键特征610的表示的位置。在一些示例中,块搜索单元708可以识别图像帧702内扭曲的图像块712的像素值最接近地匹配图像帧702的对应像素值的位置。在一些实施例中,术语“像素值”可以指表示和/或指示像素的亮度和/或颜色的数值。
块搜索单元708可以实现各种算法和/或图像处理技术,以准确地和/或有效地将扭曲的图像块712的像素值与图像帧702的像素值进行比较。在一些示例中,块搜索单元708可以实现平方差和(SSD)算法或类似类型的算法。在一个实施例中,执行该SSD算法可以代表初始分析。块搜索单元708可以使用诸如像素插值、抛物线拟合和/或Kanade-Lucas-Tomasi(KLT)特征跟踪算法的技术来改进该初始分析。在一些实施例中,执行这些后续分析可以使块搜索单元708能够识别在图像帧702内关键特征610的表示所处的子像素位置。此外,在一些示例中,块搜索单元708可以对一个或更多个上面提及的分析执行多次迭代(例如,四次迭代),从而提高关键特征610的表示的位置的精确度和/或准确度。
虽然图7仅示出了扭曲的图像块712,但是搜索部件412可以生成和/或利用任何附加的或替代的图像块。例如,块扭曲单元710可以生成多个扭曲的图像块,每个扭曲的图像块从不同的视角和/或以不同的分辨率表示关键特征610的物理外观。然后,块搜索单元708可以基于这些扭曲的图像块的全部或一部分来搜索图像帧702以获得关键特征610的表示。
如图7所示,块搜索单元708可以输出运动向量716。运动向量716通常表示和/或指示图像帧702内关键特征610的表示的确定位置和该表示的预期位置之间的任何类型或形式的差异。例如,运动向量716可以指示图像帧702内关键特征610的表示的位置和先前接收的图像帧内关键特征610的表示的位置之间的偏移。在一些实施例中,搜索部件412可以使用运动向量716来预测和/或估计关键特征610的表示在后续图像帧内的位置。
在确定图像帧702内关键特征610的表示的位置之后,搜索部件412可以确定头戴式显示器202的当前物理位置。例如,搜索部件412可以推断和/或计算头戴式显示器202在图像地图514内的位置。该位置可以对应于和/或指示头戴式显示器202在由图像地图514描述的物理环境内的最新物理位置。搜索部件412可以以多种方式确定该位置。在一个实施例中,基于跨多个图像帧跟踪关键特征610的表示(或一组关键特征的表示),搜索部件412可以确定头戴式显示器202已经相对于关键特征610物理地改变了位置。搜索部件412可以基于运动向量716、由图像地图514指示的关键特征610的物理位置和/或任何附加的或替代的位置数据来确定头戴式显示器202已经移动的量和/或方向。
在一些示例中,搜索部件412可以将头戴式显示器202的当前物理位置和/或物理位置的变化传递给专用硬件设备100的一个或更多个附加部件(例如显示器成像流水线310)。例如,搜索部件412可以在DRAM 510内存储头戴式显示器202的当前物理位置的指示。附加地或替代地,搜索部件412可以直接将头戴式显示器202的当前物理位置转发给显示成像流水线310。在一些示例中,搜索部件412可以继续基于由CV加速器304接收到的新的图像帧来检测头戴式显示器202的位置的变化和/或更新头戴式显示器202的当前位置。
在一些实施例中,搜索部件412的一个或更多个部件可以专用于执行位置跟踪算法的多个步骤。例如,如上面所讨论的,搜索部件412可以执行对极搜索以识别头戴式显示器202周围的物理环境内的关键特征的物理位置。在一个实施例中,搜索部件412内的块搜索单元708可以执行该搜索。因此,块搜索单元708可以专用于执行图像块搜索和对极搜索。例如,块搜索单元708可以表示和/或包括硬件加速的部件,该部件被设计成高效地执行两种类型的搜索中所涉及的数学操作。通过将专用硬件设备100的某些部件专用于和/或重复用于多种功能,所公开的位置跟踪系统可以减少专用硬件设备100的功耗和片上空间。
如上面所提及的,块搜索单元708可以将图像帧702的全部或一部分加载到高速缓存714中。在一个实施例中,块搜索单元708可以将图像帧702的特定部分加载到高速缓存714中(然后对其进行搜索)。图像帧702的这一部分可以被称为图块。在一些实施例中,术语“图块”可以指图像帧中预期包含一个或更多个关键特征的表示的区域。
图8示出了图像帧702内的示例性图块802。如图8所示,图块802可以包含搜索区域804和搜索区域806。在该示例中,搜索区域804可以表示图像帧702中关键特征610的表示预期位于其中的区域。例如,搜索部件412可以确定在先前接收的图像帧内的对应和/或相似区域内找到了关键特征610的表示。这样,搜索部件412可以确定关键特征610的当前表示可能在该先前识别的区域内和/或附近。
在图8的示例中,搜索部件412可以确定附加关键特征的表示可能位于搜索区域806内。此外,搜索部件412可以确定搜索区域804和搜索区域806至少部分重叠和/或在彼此的某个接近度(proximity)内。因此,搜索部件412可以选择和/或分配图块802,使得图块802包含搜索区域804和搜索区域806。然后,搜索部件412可以将图块802加载到高速缓存714中。以这种方式,搜索部件412可以基于被加载到高速缓存中的数据来识别关键特征610的表示的位置和附加关键特征的表示的位置。通过将图像帧702划分成图块,搜索部件412可以确保图像帧702的每个部分仅被加载到高速缓存中一次,从而减少跟踪图像帧内的关键特征所涉及的时间和计算资源。
如以上结合图2所讨论的,头戴式显示器202可以包括和/或配备有IMU 208。在一些示例中,IMU 208可以将惯性测量数据传递给专用硬件设备100。例如,当用户操作头戴式显示器202时,IMU 208可以周期性地或连续地监控头戴式显示器202的惯性的变化。然后,IMU 208可以将该数据实时转发给专用硬件设备100的一个或更多个部件,例如CV加速器304和/或显示成像流水线310。
在一些实施例中,专用硬件设备100可以利用由IMU 208生成的惯性测量数据来检测头戴式显示器202的位置和/或定向的变化。例如,由IMU 208提供的惯性测量数据可以指示头戴式显示器202移动和/或改变方向的速度和/或加速度。通过处理(例如,整合)由IMU208提供的数据,CV加速器304和/或显示成像流水线310可以确定头戴式显示器202相对于初始位置的位置。在一些实施例中,专用硬件设备100可以将由IMU 208提供的惯性测量数据与由搜索部件412生成的特征跟踪数据进行组合和/或比较。以这种方式,专用硬件设备100可以更准确地和/或更有效地确定头戴式显示器202的物理位置。
图9示出了根据一些实施例的用于加速头戴式显示器的位置跟踪的专用硬件设备100的示例性实现900。如图9所示,实现900可以包括和/或涉及经由通信链路908彼此通信的头戴式显示器202和独立主机设备906。在一个示例中,独立主机设备906可以表示外部设备,该外部设备提供计算机生成的影像(例如虚拟图像内容904)以覆盖在由头戴式显示器202捕获的图像帧上。例如,独立主机设备906可以提供被专用硬件设备100用来生成混合现实和/或增强现实帧的影像。在实现900中,独立主机设备906可以表示个人计算机(PC)和/或游戏控制台。在该示例中,独立主机设备906可以包括物理处理器930、通信接口932和存储器940。
如图9所示,头戴式显示器202可以包括专用硬件设备100、相机210、通信接口934和存储器设备418。在一个示例中,独立主机设备906和头戴式显示器202可以分别通过通信接口932和934建立和/或形成彼此之间的通信链路908。在该示例中,头戴式显示器202上的相机210中的一个或更多个可以捕获图像帧902。图像帧902可以从佩戴头戴式显示器202的用户的视角来被捕获。在一个实施例中,图像帧902可以不同于被捕获用于跟踪头戴式显示器202的位置的图像帧402。
在一个示例中,独立主机设备906可以经由通信链路908将计算机生成的影像馈送给头戴式显示器202,以便头戴式显示器202能够将该影像与图像帧902融合。最终的体验对用户来说可以看起来是现实和虚拟现实的混合。因此,头戴式显示器202可以有效地用作透视相机,其使得用户能够观看他或她的被从独立主机设备906馈送的虚拟对象修改的周围环境。
在生成混合现实和/或增强现实帧的同时,专用硬件设备100可以基于由CV加速器304生成和/或输出的信息来识别头戴式显示器202的当前位置和/或定向。例如,专用硬件设备100内的显示成像流水线310可以访问DRAM 510内的头戴式显示器202的当前位置信息。在一些实施例中,该信息可以使显示成像流水线310能够更有效地和/或更准确地将独立主机设备906所提供的计算机生成的影像覆盖到图像帧902上。
作为一个特定的用例示例,用户可以在他或她的起居室佩戴和/或操作头戴式显示器202。在该示例中,头戴式显示器202可以捕获他或她的周围环境(包括例如起居室家具)的视频,然后将该视频与从附近的PC馈送的虚拟对象融合。在完成相应的处理和/或融合之后,在头戴式显示器202内向用户显示的视频可以显示和/或渲染在起居室中他或她的沙发上的虚拟覆盖物(或所谓的皮肤),从而从用户的视角操纵沙发的外观。基于由CV加速器304提供的头戴式显示器202的精确和实时位置信息,专用硬件设备100可以精确地和有效地调整和/或显示虚拟内容,例如视频内虚拟覆盖物的大小和/或位置。因此,所公开的装置和系统可以改善佩戴头戴式显示器202的用户的整体体验。
图10是根据本文所公开的任何实施例的用于加速头戴式显示器的位置跟踪的示例性方法1000的流程图。图10中所示的步骤可以由结合到头戴式显示器中的专用硬件设备(例如ASIC或SoC)来执行。此外,图10中所示的步骤还可以结合和/或涉及与以上结合图1-图9所描述的描述一致的各种子步骤和/或变体。
如图10所示,在步骤1010,专用硬件设备可以从头戴式显示系统的相机设备接收头戴式显示系统周围的物理环境的图像帧。例如,相机210可以捕获图像帧402,然后将其转发给专用硬件设备100。当图像帧402到达时,专用硬件设备100可以接收和/或处理图像帧402,作为位置跟踪算法的一部分和/或为位置跟踪算法做准备。
在图10中的步骤1020,当从相机设备接收到图像帧时,专用硬件设备可以将图像帧的至少一部分存储在专用硬件设备的高速缓存中。例如,专用硬件设备100可以将图像帧702存储在前端处理部件502的高速缓存508内。在该示例中,高速缓存508可以比DRAM 510具有更快的访问时间。
在图10中的步骤1030,专用硬件设备可以至少部分地基于存储在高速缓存中的图像帧的部分来跟踪头戴式显示系统在物理环境内的位置的变化。例如,专用硬件设备100的前端处理部件502可以基于存储在高速缓存508中的图像帧402来识别一组关键特征(包括关键特征610)。然后,搜索部件412可以至少部分地基于跨多个图像帧跟踪关键特征610的表示的位置来跟踪头戴式显示器202的位置。
在图10中的步骤1040,专用硬件设备可以将头戴式显示系统的位置的变化存储在主存储器中,以用于生成要呈现给佩戴头戴式显示系统的用户的至少一个增强现实帧。例如,搜索部件412可以将关于头戴式显示器202的当前位置跟踪信息写入到DRAM 510。然后,专用硬件设备100的显示成像流水线310和/或附加部件可以使用存储在DRAM 510内的信息生成增强现实帧。
在图10中的步骤1050,专用硬件设备可以将增强现实帧馈送给头戴式显示系统的显示设备,使得显示设备向佩戴头戴式显示系统的用户呈现增强现实帧。例如,专用硬件设备100可以将增强现实帧传递和/或转发给头戴式显示器202的显示设备318。一旦接收到增强现实帧,显示设备318可以向用户204显示增强现实帧。
本公开的实施例可以包括人工现实系统或者结合人工现实系统来实现。人工现实是一种在呈现给用户之前已经以某种方式进行了调整的现实形式,其可以包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混杂现实(hybrid reality)或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或者与所捕获的(例如,真实世界)内容组合地生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,它们中的任何一个都可以在单个通道或多个通道中(例如向观看者产生三维效果的立体视频)呈现。此外,在一些实施例中,人工现实还可以与应用、产品、附件、服务或其某种组合相关联,这些应用、产品、附件、服务或其某种组合用于例如在人工现实中创建内容和/或在人工现实中以其他方式被使用(例如在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(HMD)、独立的HMD、移动设备或计算系统、或者能够向一个或更多个观看者提供人工现实内容的任何其他硬件平台。
在本文描述和/或示出的过程参数和步骤的顺序仅作为示例被给出,并且可以根据需要而变化。例如,虽然在本文示出和/或描述的步骤可以以特定顺序被示出或讨论,但这些步骤不一定需要以所示出或讨论的顺序来被执行。本文描述和/或示出的各种示例性方法也可以省略在本文描述或示出的一个或更多个步骤,或者包括除了那些所公开的步骤之外的附加步骤。
提供前面的描述以使本领域中的其他技术人员能够最好地利用本文公开的示例性实施例的各种方面。该示例性描述并不旨在是穷尽的或受限于所公开的任何精确形式。在不脱离本公开的精神和范围的情况下,许多修改和变化是可能的。本文公开的实施例应当在所有方面被认为是说明性的而不是限制性的。在确定本公开的范围时,应当参考所附权利要求及其等同物。
除非另有说明,否则如在说明书和权利要求中使用的术语“连接到”和“耦合到”(及其派生词)应被解释为允许直接和间接(即,经由其他元件或部件)的连接。此外,如在说明书和权利要求中使用的术语“一个(a)”或“一个(an)”应被解释为意指“......中的至少一个”。最后,为了容易使用,如在说明书和权利要求中使用的术语“包括(including)”和“具有”(及其派生词)与词“包括(comprising)”可互换并具有与词“包括(comprising)”相同的含义。
Claims (20)
1.一种专用硬件设备,包括:
图像信号处理器,其从头戴式显示系统的相机设备接收所述头戴式显示系统周围的物理环境的图像帧;
位置跟踪部件,其通信地耦合到所述图像信号处理器,其中所述位置跟踪部件:
当从所述图像信号处理器接收到所述图像帧时,将所述图像帧的至少一部分存储在所述专用硬件设备的高速缓存中,所述高速缓存具有比所述专用硬件设备的主存储器更快的访问速度;
至少部分地基于所述图像帧的存储在所述高速缓存中的所述部分,跟踪所述头戴式显示系统在所述物理环境内的位置的变化;和
将所述头戴式显示系统的位置的变化存储在所述主存储器中,以用于生成要呈现给佩戴所述头戴式显示系统的用户的至少一个增强现实帧;和
帧输出接口,其与所述位置跟踪部件通信地耦合,其中所述帧输出接口将所述增强现实帧馈送到所述头戴式显示系统的显示设备,以呈现给用户。
2.根据权利要求1所述的专用硬件设备,其中,所述位置跟踪部件:
识别所述物理环境的一个或更多个特征,所述一个或更多个特征表示位于所述物理环境内的物理对象的至少部分;和
在所述专用硬件设备的主存储器内维护图像地图,所述图像地图标识所述物理环境内的特征的一个或更多个物理位置。
3.根据权利要求2所述的专用硬件设备,其中,所述位置跟踪部件包括硬件加速的特征检测部件,所述硬件加速的特征检测部件:
在输入图像帧被接收到并存储在所述专用硬件设备的高速缓存中时,在所述输入图像帧内检测所述物理环境的特征中的至少一个特征;和
将检测到的特征传递到所述专用硬件设备的主存储器,以便于将检测到的特征合并到所述图像地图中。
4.根据权利要求1所述的专用硬件设备,其中,所述位置跟踪部件包括硬件加速的图像处理部件,所述硬件加速的图像处理部件:
在输入图像帧被接收到并存储在所述专用硬件设备的高速缓存中时,创建所述输入图像帧的至少一个低分辨率版本;和
将所述输入图像帧的低分辨率版本传递到所述专用硬件设备的主存储器,以便于跟踪所述头戴式显示系统的位置的变化。
5.根据权利要求2所述的专用硬件设备,其中,所述位置跟踪部件识别所述物理环境内的一组关键特征,所述一组关键特征有助于跟踪所述头戴式显示系统的位置的变化。
6.根据权利要求5所述的专用硬件设备,其中,所述位置跟踪部件通过以下方式跟踪所述头戴式显示系统的位置的变化:
识别所述物理环境的至少一个关键特征的表示在由所述相机设备捕获的初始图像帧内的初始位置;
识别所述物理环境的所述关键特征的表示在由所述相机设备捕获的后续图像帧内的后续位置;和
将所述关键特征的表示的初始位置与所述关键特征的表示的后续位置进行比较。
7.根据权利要求6所述的专用硬件设备,其中,所述位置跟踪部件通过以下方式识别所述关键特征的表示在所述后续图像帧内的后续位置:
基于所述关键特征的表示在所述初始图像帧内的初始位置,确定所述后续图像帧的、所述物理环境的所述关键特征可能在其中被表示的预期区域;和
通过搜索所述后续图像帧的所述预期区域来识别所述关键特征的表示在所述后续图像帧内的具体位置。
8.根据权利要求7所述的专用硬件设备,其中,所述位置跟踪部件:
生成一个或更多个图像块,所述一个或更多个图像块从不同的视角表示所述物理环境的所述关键特征的物理外观;和
将所述图像块存储在所述专用硬件设备的主存储器内。
9.根据权利要求8所述的专用硬件设备,其中,所述位置跟踪部件包括图像搜索单元,所述图像搜索单元通过以下方式识别所述关键特征的表示在所述后续图像帧内的具体位置:
扭曲至少一个图像块,使得所述图像块类似于从所述相机设备捕获所述后续图像帧的视角来看的所述关键特征的当前物理外观;和
识别在所述后续图像帧内、扭曲的图像块的像素值最接近地匹配所述后续图像帧的对应像素值的位置。
10.根据权利要求9所述的专用硬件设备,其中,所述图像搜索单元通过以下方式识别所述关键特征的表示在所述后续图像帧内的具体位置:
对所述后续图像帧的所述预期区域内的像素值执行子像素插值分析;和
基于所述子像素插值分析,确定所述扭曲的图像块的像素值最接近地匹配所述后续图像帧的对应像素值的子像素位置。
11.根据权利要求10所述的专用硬件设备,其中,所述图像搜索单元:
确定所述物理环境的附加关键特征预期将在所述后续图像帧的所述预期区域内被表示;
将所述后续图像帧的所述预期区域加载到所述专用硬件设备的高速缓存中;和
通过在所述专用硬件设备的高速缓存内搜索所述后续图像帧的所述预期区域,识别所述关键特征的表示在所述后续图像帧内的具体位置和所述附加关键特征的表示在所述后续图像帧内的具体位置。
12.根据权利要求7所述的专用硬件设备,还包括专用于以下两者的硬件加速的搜索部件:
识别所述关键特征的表示在所述后续图像帧内的具体位置;和
识别所述关键特征在所述物理环境内的物理位置。
13.根据权利要求12所述的专用硬件设备,其中,所述硬件加速的搜索部件通过以下方式识别所述关键特征在所述物理环境内的物理位置:
识别所述关键特征的表示在由所述相机设备捕获的先前图像帧内的具体位置;和
基于所述关键特征的表示在所述先前图像帧内的具体位置,执行对极搜索以找到所述关键特征在所述物理环境内的三维位置。
14.根据权利要求1所述的专用硬件设备,还包括帧生成单元,所述帧生成单元:
在所述专用硬件设备的主存储器内检索所述头戴式显示系统的位置的变化;和
在生成所述增强现实帧的同时,调整所述增强现实帧的至少一个方面,以考虑所述头戴式显示系统的位置的变化。
15.一种头戴式显示系统,包括:
至少一个相机设备,其捕获所述头戴式显示系统周围的物理环境的图像帧;
专用硬件设备,其通信地耦合到所述相机设备,其中所述专用硬件设备:
在从所述相机设备接收到所述图像帧时,将所述图像帧的至少一部分存储在所述专用硬件设备内的高速缓存中,所述高速缓存具有比所述专用硬件设备的主存储器更快的访问速度;
至少部分地基于所述图像帧的存储在所述高速缓存中的所述部分,跟踪所述头戴式显示系统在所述物理环境内的位置的变化;和
将所述头戴式显示系统的位置的变化存储在所述主存储器中,以用于生成要呈现给佩戴所述头戴式显示系统的用户的至少一个增强现实帧;和
显示设备,其通信地耦合到所述专用硬件设备,其中所述显示设备:
从所述专用硬件设备接收所述增强现实帧;和
向佩戴所述头戴式显示系统的用户呈现所述增强现实帧。
16.根据权利要求15所述的头戴式显示系统,还包括至少一个通信接口,所述至少一个通信接口通信地耦合到独立主机设备,所述独立主机设备将虚拟图像内容从所述独立主机设备馈送到所述头戴式显示系统。
17.根据权利要求16所述的头戴式显示系统,其中:
所述头戴式显示系统还包括至少一个附加的相机设备,所述至少一个附加的相机设备从佩戴所述头戴式显示系统的用户的视角捕获一个或更多个图像帧;和
从佩戴所述头戴式显示系统的用户的所述视角来看,所述专用硬件设备通过将从所述独立主机设备接收的虚拟图像内容覆盖在所述图像帧上来生成所述增强现实帧。
18.根据权利要求17所述的头戴式显示系统,其中,所述专用硬件设备还包括硬件加速的图像校正部件,所述硬件加速的图像校正部件至少部分地基于所述头戴式显示系统的位置的变化,对所述虚拟图像内容应用异步时间扭曲或异步空间扭曲。
19.根据权利要求15所述的头戴式显示系统,还包括通信地耦合到所述专用硬件设备的惯性测量单元,其中所述专用硬件设备还基于由所述惯性测量单元提供的数据来跟踪所述头戴式显示系统的位置的变化。
20.一种方法,包括:
由专用硬件设备从头戴式显示系统的相机设备接收所述头戴式显示系统周围的物理环境的图像帧;
当从所述相机设备接收到所述图像帧时,由所述专用硬件设备将所述图像帧的至少一部分存储在所述专用硬件设备的高速缓存中,所述高速缓存具有比所述专用硬件设备的主存储器更快的访问速度;
由所述专用硬件设备至少部分地基于所述图像帧的存储在所述高速缓存中的所述部分来跟踪所述头戴式显示系统在所述物理环境内的位置的变化;
由所述专用硬件设备将所述头戴式显示系统的位置的变化存储在所述主存储器中,以用于生成要呈现给佩戴所述头戴式显示系统的用户的至少一个增强现实帧;和
由所述专用硬件设备将所述增强现实帧馈送到所述头戴式显示系统的显示设备,使得所述显示设备将所述增强现实帧呈现给佩戴所述头戴式显示系统的用户。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/985,733 US10678325B2 (en) | 2018-05-22 | 2018-05-22 | Apparatus, system, and method for accelerating positional tracking of head-mounted displays |
US15/985,733 | 2018-05-22 | ||
PCT/US2018/036975 WO2019226184A1 (en) | 2018-05-22 | 2018-06-11 | Apparatus, system, and method for accelerating positional tracking of head-mounted displays |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112166397A true CN112166397A (zh) | 2021-01-01 |
Family
ID=68613690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880093718.6A Pending CN112166397A (zh) | 2018-05-22 | 2018-06-11 | 用于加速头戴式显示器的位置跟踪的装置、系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10678325B2 (zh) |
EP (1) | EP3572916B1 (zh) |
CN (1) | CN112166397A (zh) |
WO (1) | WO2019226184A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9132352B1 (en) | 2010-06-24 | 2015-09-15 | Gregory S. Rabin | Interactive system and method for rendering an object |
US10319109B2 (en) * | 2017-03-31 | 2019-06-11 | Honda Motor Co., Ltd. | Interaction with physical objects as proxy objects representing virtual objects |
US10559276B2 (en) | 2018-02-03 | 2020-02-11 | Facebook Technologies, Llc | Apparatus, system, and method for mitigating motion-to-photon latency in head-mounted displays |
US11265487B2 (en) | 2019-06-05 | 2022-03-01 | Mediatek Inc. | Camera view synthesis on head-mounted display for virtual reality and augmented reality |
US20210192681A1 (en) * | 2019-12-18 | 2021-06-24 | Ati Technologies Ulc | Frame reprojection for virtual reality and augmented reality |
WO2022040921A1 (zh) * | 2020-08-25 | 2022-03-03 | 南京翱翔信息物理融合创新研究院有限公司 | 一种分布式增强现实的定位终端、定位装置及定位系统 |
US11822713B2 (en) | 2021-06-11 | 2023-11-21 | Rockwell Collins, Inc. | Pose augmentation of head worn display video for latency reduction |
CN114442808A (zh) * | 2022-01-26 | 2022-05-06 | 深圳市慧鲤科技有限公司 | 一种位姿跟踪模块的测试方法、装置、设备、系统和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130201291A1 (en) * | 2012-02-08 | 2013-08-08 | Microsoft Corporation | Head pose tracking using a depth camera |
US20170200308A1 (en) * | 2016-01-12 | 2017-07-13 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
WO2017139871A1 (en) * | 2016-02-18 | 2017-08-24 | Vrvana Inc. | Head-mounted display for virtual and mixed reality with inside-out positional, user body and environment tracking |
US20170345220A1 (en) * | 2016-05-29 | 2017-11-30 | Google Inc. | Time-warping adjustment based on depth information in a virtual/augmented reality system |
US20180082482A1 (en) * | 2016-09-22 | 2018-03-22 | Apple Inc. | Display system having world and user sensors |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3745117B2 (ja) | 1998-05-08 | 2006-02-15 | キヤノン株式会社 | 画像処理装置及び画像処理方法 |
US7312766B1 (en) | 2000-09-22 | 2007-12-25 | Canadian Space Agency | Method and system for time/motion compensation for head mounted displays |
FR2840753A1 (fr) | 2002-06-06 | 2003-12-12 | Artabel | Procede et dispositif pour traiter des signeaux video numeriques generes par un ensemble d'ordinateurs pour produire une image numerique |
JP2007219082A (ja) | 2006-02-15 | 2007-08-30 | Canon Inc | 複合現実感表示システム |
KR100809479B1 (ko) | 2006-07-27 | 2008-03-03 | 한국전자통신연구원 | 혼합 현실 환경을 위한 얼굴 착용형 디스플레이 장치 |
JP4857196B2 (ja) | 2007-05-31 | 2012-01-18 | キヤノン株式会社 | 頭部装着型表示装置、及びその制御方法 |
US8327071B1 (en) | 2007-11-13 | 2012-12-04 | Nvidia Corporation | Interprocessor direct cache writes |
JP5078147B2 (ja) | 2008-03-04 | 2012-11-21 | 株式会社リコー | 画像処理装置及び画像撮像装置 |
US8207983B2 (en) | 2009-02-18 | 2012-06-26 | Stmicroelectronics International N.V. | Overlaying videos on a display device |
WO2014160342A1 (en) | 2013-03-13 | 2014-10-02 | The University Of North Carolina At Chapel Hill | Low latency stabilization for head-worn displays |
US9514571B2 (en) | 2013-07-25 | 2016-12-06 | Microsoft Technology Licensing, Llc | Late stage reprojection |
AU2013273829A1 (en) | 2013-12-23 | 2015-07-09 | Canon Kabushiki Kaisha | Time constrained augmented reality |
US9386234B2 (en) | 2014-07-31 | 2016-07-05 | Apple Inc. | Auto filter extent management |
US9659411B2 (en) | 2015-01-14 | 2017-05-23 | Oculus Vr, Llc | Passive locators for a virtual reality headset |
US10013808B2 (en) | 2015-02-03 | 2018-07-03 | Globus Medical, Inc. | Surgeon head-mounted display apparatuses |
US20160238852A1 (en) | 2015-02-13 | 2016-08-18 | Castar, Inc. | Head mounted display performing post render processing |
US11956414B2 (en) | 2015-03-17 | 2024-04-09 | Raytrx, Llc | Wearable image manipulation and control system with correction for vision defects and augmentation of vision and sensing |
AU2016250919A1 (en) | 2015-04-22 | 2017-11-09 | Esight Corp. | Methods and devices for optical aberration correction |
KR20160128119A (ko) | 2015-04-28 | 2016-11-07 | 엘지전자 주식회사 | 이동 단말기 및 이의 제어방법 |
CN107431798A (zh) | 2015-05-04 | 2017-12-01 | 谷歌公司 | 捕获图像的直通显示 |
KR20160139461A (ko) | 2015-05-27 | 2016-12-07 | 엘지전자 주식회사 | 헤드 마운티드 디스플레이 및 그 제어 방법 |
WO2016201423A1 (en) | 2015-06-12 | 2016-12-15 | Google Inc. | Electronic display stabilization for head mounted display |
US9984499B1 (en) * | 2015-11-30 | 2018-05-29 | Snap Inc. | Image and point cloud based tracking and in augmented reality systems |
EP3335098A1 (en) | 2016-02-22 | 2018-06-20 | Google LLC | Separate time-warping for a scene and an object for display of virtual reality content |
US10496156B2 (en) | 2016-05-17 | 2019-12-03 | Google Llc | Techniques to change location of objects in a virtual/augmented reality system |
US9858637B1 (en) | 2016-07-29 | 2018-01-02 | Qualcomm Incorporated | Systems and methods for reducing motion-to-photon latency and memory bandwidth in a virtual reality system |
US10379611B2 (en) | 2016-09-16 | 2019-08-13 | Intel Corporation | Virtual reality/augmented reality apparatus and method |
US10869026B2 (en) | 2016-11-18 | 2020-12-15 | Amitabha Gupta | Apparatus for augmenting vision |
US10242654B2 (en) | 2017-01-25 | 2019-03-26 | Microsoft Technology Licensing, Llc | No miss cache structure for real-time image transformations |
US10152822B2 (en) | 2017-04-01 | 2018-12-11 | Intel Corporation | Motion biased foveated renderer |
US10152775B1 (en) | 2017-08-08 | 2018-12-11 | Rockwell Collins, Inc. | Low latency mixed reality head wearable device |
-
2018
- 2018-05-22 US US15/985,733 patent/US10678325B2/en active Active
- 2018-06-11 WO PCT/US2018/036975 patent/WO2019226184A1/en active Application Filing
- 2018-06-11 CN CN201880093718.6A patent/CN112166397A/zh active Pending
- 2018-11-22 EP EP18207788.3A patent/EP3572916B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130201291A1 (en) * | 2012-02-08 | 2013-08-08 | Microsoft Corporation | Head pose tracking using a depth camera |
US20170200308A1 (en) * | 2016-01-12 | 2017-07-13 | Qualcomm Incorporated | Systems and methods for rendering multiple levels of detail |
WO2017139871A1 (en) * | 2016-02-18 | 2017-08-24 | Vrvana Inc. | Head-mounted display for virtual and mixed reality with inside-out positional, user body and environment tracking |
US20170345220A1 (en) * | 2016-05-29 | 2017-11-30 | Google Inc. | Time-warping adjustment based on depth information in a virtual/augmented reality system |
US20180082482A1 (en) * | 2016-09-22 | 2018-03-22 | Apple Inc. | Display system having world and user sensors |
Also Published As
Publication number | Publication date |
---|---|
EP3572916A2 (en) | 2019-11-27 |
US20190361518A1 (en) | 2019-11-28 |
US10678325B2 (en) | 2020-06-09 |
EP3572916A3 (en) | 2019-12-11 |
EP3572916B1 (en) | 2023-08-30 |
WO2019226184A1 (en) | 2019-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3572916B1 (en) | Apparatus, system, and method for accelerating positional tracking of head-mounted displays | |
US11380068B2 (en) | Technique for recording augmented reality data | |
JP7443602B2 (ja) | 仮想コンテンツワーピングを伴う複合現実システムおよびそれを使用して仮想コンテンツを生成する方法 | |
US11978175B2 (en) | Mixed reality system with color virtual content warping and method of generating virtual content using same | |
US11151776B2 (en) | Prediction and throttling adjustments based on application rendering performance | |
JP6860488B2 (ja) | 複合現実システム | |
CN111656433B (zh) | 减轻头戴式显示器中动显延迟的装置、系统和方法 | |
AU2022200841A1 (en) | Mixed reality system with multi-source virtual content compositing and method of generating virtual content using same | |
US10754420B2 (en) | Method and device for displaying image based on virtual reality (VR) apparatus | |
WO2014105646A1 (en) | Low-latency fusing of color image data in a color sequential display system | |
CN110771145A (zh) | 事件摄像机 | |
US20150207988A1 (en) | Interactive panoramic photography based on combined visual and inertial orientation tracking | |
TW202019167A (zh) | 產生和修改擴增實境或虛擬實境場景中的物件的表示方式 | |
WO2020248442A1 (zh) | 用于电子设备的图像处理方法、装置及电子设备 | |
US11218691B1 (en) | Upsampling content for head-mounted displays | |
EP3652583B1 (en) | A system and method for correcting a rolling display effect | |
CN110969706B (zh) | 增强现实设备及其图像处理方法、系统以及存储介质 | |
EP3522150A2 (en) | Apparatus, system, and method for mitigating motion-to-photon latency in head-mounted displays | |
US11187914B2 (en) | Mirror-based scene cameras | |
JP2005135052A (ja) | 複合現実空間でのfog効果の実現手法 | |
CN116708737A (zh) | 立体影像播放装置及其立体影像产生方法 | |
JP2005165973A (ja) | 画像処理方法、画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Yuan Platform Technology Co.,Ltd. Address before: California, USA Applicant before: Facebook Technologies, LLC |