CN113574863A - 使用深度信息渲染3d图像的方法和系统 - Google Patents
使用深度信息渲染3d图像的方法和系统 Download PDFInfo
- Publication number
- CN113574863A CN113574863A CN202080021529.5A CN202080021529A CN113574863A CN 113574863 A CN113574863 A CN 113574863A CN 202080021529 A CN202080021529 A CN 202080021529A CN 113574863 A CN113574863 A CN 113574863A
- Authority
- CN
- China
- Prior art keywords
- image
- display
- depth buffer
- offset
- disparity
- 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
- 238000009877 rendering Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 title claims description 74
- 239000000872 buffer Substances 0.000 claims abstract description 103
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000009499 grossing Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 2
- 230000015654 memory Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 12
- 239000013598 vector Substances 0.000 description 11
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000011521 glass Substances 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000003708 edge detection Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/128—Adjusting depth or disparity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- 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/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/243—Image signal generators using stereoscopic image cameras using three or more 2D image sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/332—Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
- H04N13/344—Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0081—Depth or disparity estimation from stereoscopic image signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种系统可以包括设备和图形处理单元(GPU)。该设备可以被配置为从一个或更多个相机接收对应于第一视图的第一图像,并且从一个或更多个相机接收对应于第二视图的第二图像。GPU可以包括运动估计器,并且被配置为接收第一图像和第二图像,并且被配置为接收第一图像和第二图像。运动估计器可以被配置为确定第一图像的第一视差偏移和第二图像的第二视差偏移。该设备可以被配置为生成从第一视差偏移导出的用于第一图像的第一深度缓冲器和从第二视差偏移导出的用于第二图像的第二深度缓冲器,以用于使用第一图像和第二图像渲染3D图像。
Description
相关申请的交叉引用
本申请要求于2019年3月18日提交的美国申请第62/820,052号和于2020年1月28日提交的美国申请第16/774,885号的优先权,出于所有目的,这些申请的内容通过引用以其整体并入本文。
背景
本公开总体上涉及增强现实(AR)系统。AR系统可用于向用户呈现各种图像,包括三维(3D)图像。例如,AR头戴装置可用于以覆盖在现实世界环境的视图上的方式向用户呈现图像。为了渲染令人信服的逼真的AR图像,AR系统可以在图像中的适当深度提供对象或特征。
概述
本发明针对根据所附权利要求的方法、系统以及包括处理器可执行指令的计算机可读介质。本发明的实施例涉及一种方法。该方法可以包括由设备从一个或更多个相机接收对应于第一视图的第一图像并且从一个或更多个相机接收对应于第二视图的第二图像。该方法可以包括由设备将第一图像和第二图像提供给运动估计器,运动估计器确定第一图像的第一视差偏移(disparity offset)和第二图像的第二视差偏移。该方法可以包括由设备生成从第一视差偏移导出的用于第一图像的第一深度缓冲器(depth buffer)和从第二视差偏移导出的用于第二图像的第二深度缓冲器,以用于使用第一图像和第二图像渲染三维(3D)图像。
在本发明的另一个方面,该方法可以进一步包括由3D渲染器使用第一深度缓冲器来重新投影对应于第一图像的第一显示图像,以供第一显示器呈现,并且使用第二深度缓冲器来重新投影对应于第二图像的第二显示图像,以供第二显示器呈现。
在本发明的又一实施例中,该方法该方法可以进一步包括由设备校正(rectify)第一图像或第二图像之一。
在本发明的另一个实施例中,该方法可以进一步包括由设备将第一深度缓冲器、第一图像、第二深度缓冲器和第二图像作为图像输入提供给3D渲染器,以在一个或更多个显示器上显示一个或更多个3D图像。该方法可以进一步包括由3D渲染器使用第一深度缓冲器重新投影对应于第一图像的第一显示图像以供第一显示器呈现,并且使用第二深度缓冲器重新投影对应于第二图像的第二显示图像以供第二显示器呈现。
在本发明的另一个实施例中,该方法可以进一步包括由设备将第一深度缓冲器、第一图像、第二深度缓冲器和第二图像作为图像输入提供给3D渲染器,以在一个或更多个显示器上显示一个或更多个3D图像。该方法还可以包括由设备至少基于第一图像的第一时间戳或第二图像的第二时间戳来确定与第一图像和第二图像相对应的场景的一个或更多个元素的一个或更多个历史姿态,并将该一个或更多个历史姿态提供给3D渲染器,用于生成一个或更多个3D图像。
在本发明的另一个实施例中,该方法可以进一步包括由设备校正第一图像或第二图像之一。
在本发明的又一实施例中,该方法可以进一步包括由设备校正第一图像或第二图像之一。
在本发明的又一实施例中,该方法可以进一步包括对第一视差偏移或第二视差偏移中的一个或更多个进行滤波或平滑中的一项。
在本发明的又一实施例中,该方法可以进一步包括由设备处理从运动估计器输出的第一视差偏移或第二视差偏移之一,以去除一个或更多个伪影(artifact)。
在本发明的又一实施例中,该方法还可以包括由运动估计器,通过将第一图像与第二图像进行比较来确定第一视差偏移,并且通过将第二图像与第一图像进行比较来确定第二视差偏移。
本发明的另一方面涉及一种系统。在本发明的实施例中,该系统可以包括设备和图形处理单元(GPU)。该设备可以被配置为从一个或更多个相机接收对应于第一视图的第一图像,并且从一个或更多个相机接收对应于第二视图的第二图像。GPU可以包括运动估计器,并且被配置为接收第一图像和第二图像,并且被配置为接收第一图像和第二图像。运动估计器可以被配置为确定第一图像的第一视差偏移和第二图像的第二视差偏移。该设备可以被配置为生成从第一视差偏移导出的用于第一图像的第一深度缓冲器和从第二视差偏移导出的用于第二图像的第二深度缓冲器,以用于使用第一图像和第二图像渲染3D图像。
在本发明的另一个实施例中,3D渲染器可以被配置为使用第一深度缓冲器来重新投影第一图像,并且使用第二深度缓冲器来重新投影第二图像,以生成第一显示图像和第二显示图像。
在本发明的又一个实施例中,图形处理单元还可以被配置为至少基于第一图像的第一时间戳或第二图像的第二时间戳来确定与第一图像和第二图像相对应的场景的一个或更多个元素的一个或更多个历史姿态,并将该一个或更多个历史姿态提供给3D渲染器,用于生成第一显示图像和第二显示图像。
在本发明的又一实施例中,图形处理单元还可以被配置为校正第一图像或第二图像中的至少一个。
在本发明的又一实施例中,图形处理单元还可以被配置为从第一视差偏移或第二视差偏移中的至少一个中去除伪影。
在本发明的另一实施例中,运动估计器还可以被配置为通过将第一图像与第二图像进行比较来确定第一视差偏移,并且通过将第二图像与第一图像进行比较来确定第二视差偏移。
本发明的另一方面涉及一种计算机可读介质。在本发明的实施例中,该计算机可读介质包括处理器可执行指令,当由一个或更多个处理器执行时,该指令使该一个或更多个处理器从一个或更多个相机接收对应于第一视图的第一图像并且从一个或更多个相机接收对应于第二视图的第二图像,将第一图像和第二图像提供给运动估计器,运动估计器确定第一图像的第一视差偏移和第二图像的第二视差偏移,并且生成从第一视差偏移导出的用于第一图像的第一深度缓冲器和从第二视差偏移导出的用于第二图像的第二深度缓冲器,以用于使用第一图像和第二图像渲染3D图像。
在本发明的另一个实施例中,计算机可读介质还可以包括指令,该指令使一个或更多个处理器使用第一深度缓冲器来重新投影对应于第一图像的第一显示图像,以供第一显示器呈现,并且使用第二深度缓冲器来重新投影第二显示图像,以供第二显示器呈现。
在本发明的又一实施例中,计算机可读介质还可以包括指令,该指令使一个或更多个处理器使一个或更多个处理器校正第一图像或第二图像之一。
在本发明的另一实施例中,计算机可读介质还可以包括指令,该指令使一个或更多个处理器从输出自运动估计器的第一视差偏移或第二视差偏移中去除一个或更多个伪影。
在本发明的另一个实施例中,计算机可读介质还可以包括指令,该指令使一个或更多个处理器至少基于第一图像的第一时间戳或第二图像的第二时间戳来确定与第一图像和第二图像相对应的场景的一个或更多个元素的一个或更多个历史姿态,并将该一个或更多个历史姿态提供给3D渲染器以生成第一显示图像和第二显示图像。
在本发明的另一实施例中,计算机可读介质还可以包括指令,该指令使一个或更多个处理器对第一视差偏移或第二视差偏移中的一个或更多个进行滤波或平滑。
本发明的另一方面涉及一种方法。该方法包括从第一相机和第二相机接收第一图像。第一相机被设置在与第二相机不同的位置。该方法还包括从第一图像与第二图像的比较中确定第一视差偏移,使用第一视差偏移和第一图像提供第一深度缓冲器,从第二图像与第一图像的比较中确定第二视差偏移,以及使用第二视差偏移和第一图像提供第二深度缓冲器。该方法还包括在合成器中,从第一图像和第一深度缓冲器生成第一显示图像,并且从第二图像和第二深度缓冲器生成第二显示图像,该合成器被配置为提供位置时间扭曲操作。
下面详细讨论这些和其他方面、实施例和实现。前述信息和以下详细描述包括各种方面和实现的说明性示例,并且提供了用于理解所要求保护的方面和实现的性质和特征的概述或框架。附图提供了对各种方面和实施例的说明和进一步理解,并且被结合在本说明书中并构成本说明书的一部分。
附图简述
附图不旨在按比例绘制。各个附图中相似的参考数字和命名指示相似的元件。为了清楚起见,并非每个组件都可以在每个附图中进行标记。在附图中:
图1是根据本公开的实现的显示系统的框图。
图2是根据本公开的实现的头戴式显示器(HMD)系统的示意图。
图3是根据本公开的实现的使用运动估计器根据图像生成深度缓冲器的方法的流程图。
图4是根据本公开的实现的计算环境的框图。
详细描述
在转向详细示出某些实施例的附图之前,应当理解,本公开不限于在描述中阐述或在附图中示出的细节或方法。还应该理解,这里使用的术语仅仅是为了描述的目的,而不应该被认为是限制性的。
AR系统可以使用HMD(也可以称为头戴式显示器(head-worn display,HWD))在适当的深度向用户呈现图像。HMD可以确定场景中的对象或特征的深度信息,并且在所确定的深度渲染那些对象和特征(例如,至少部分地响应于深度信息)。例如,HMD可以用于呈现可以被立体地观看的图像,例如通过顺序地或同时地呈现左眼图像和右眼图像,使得用户能够感知3D环境。HMD或AR系统可以包括一个或更多个相机,这些相机从多个视角捕获图像(例如左眼图像和右眼图像)。在一些实施例中,HMD有利地使用所捕获的具有足够保真度的图像来生成关于现实世界对象的深度信息,同时还将尺寸、重量和功率(SWAP)以及延迟保持在期望的基准以下。在一些实施例中,HMD有利地利用图形处理器的视频编码器来提取深度信息或立体对应关系(stereo correspondence),而不需要额外的硬件。
根据本解决方案的某些方面的系统和方法可用于为佩戴HMD时观看的现实世界对象生成具有改善的深度感的图像,例如用于AR系统。例如,该系统可以向视频编码器(例如,图形处理单元(GPU)视频编码器)的运动估计器提供由一个或更多个相机捕获的第一视图的第一图像和第二视图的第二图像。运动估计器可以计算第一图像和第二图像之间的第一和第二视差偏移,就好像运动估计器正在计算连续图像之间的运动向量一样。视差偏移可以被处理、被滤波和被平滑以去除伪影。该系统可以生成分别对应于第一和第二视差偏移的第一和第二深度缓冲器,然后使用相应的第一和第二深度缓冲器重新投影第一和第二图像,以生成可以呈现给用户的显示图像,从而使用户能够感知3D图像。该系统可以使用图像的时间戳来计算历史姿态(例如,6自由度变换)。该系统可以向3D渲染器或合成器提供层,该层包括来自相机的图像(例如,在校正和裁剪之后)、生成的深度缓冲器和历史姿态,该渲染器或合成器可以在该层上执行位置时间扭曲,以使用所提供的深度缓冲器来重新投影图像。
该系统可用于为佩戴HMD时观看的现实世界对象计算更好的深度感。例如,在一些实施例中,该系统可以分析由HMD上的面向前方的相机对提供的图像,并重新投影图像内容以具有更精确的视差偏移(parallax offset),从而匹配用户的瞳孔间距离(IPD)。该系统可以在整个处理流水线中保持期望的性能特征,例如保持至少30Hz的帧速率。该系统可以校正和裁剪从相机接收到的图像,同时解决相机视野中的失真,例如鱼眼镜头失真。
现在参考图1,系统100可以包括多个图像捕获设备104a…n、处理电路116以及一个或更多个显示器148。系统100可以使用参考图2描述的HMD系统200来实现。系统100可以使用参考图4描述的计算环境来实现。系统100可以结合虚拟现实(VR)系统的特征,并用于实现虚拟现实系统的特征。处理电路116的至少一部分可以使用图形处理单元(GPU)来实现。处理电路116的功能可以使用多个处理单元以分布式方式被执行。
处理电路116可以包括一个或更多个电路、处理器和/或硬件组件。处理电路116可以实现任何逻辑、功能或指令来执行本文描述的任何操作。处理电路116可以包括可由任何电路、处理器或硬件组件执行的任何类型和形式的可执行指令。可执行指令可以是任何类型的,包括应用、程序、服务、任务、脚本、库进程和/或固件。预处理器120、视频编码器124、运动估计器128、深度缓冲器生成器132、图像渲染器136和姿态计算器140中的任何一个都可以是电路和可执行指令的任意组合或布置,以执行它们各自的功能和操作。
图像捕获设备104a…n可以是相机,包括摄像机。图像捕获设备104a…n可以是生成相对低质量(例如,相对低的清晰度、分辨率或动态范围)的图像的相机,这可以有助于减少系统100的SWAP。例如,图像捕获设备104a…n可以生成具有数百像素×数百像素的量级的分辨率的图像。同时,如本文所述的由系统100执行的过程可用于生成显示图像以呈现给用户,该显示图像具有期望的质量特征,包括深度特征。
图像捕获设备104a…n(在本文中通常被称为图像捕获设备104)可以包括任何类型的一个或更多个相机。相机可以是可见光相机(例如,彩色或黑白)、红外相机或其组合。图像捕获设备104a…n可以各自包括一个或更多个相机104的一个或更多个透镜108a…j(在本文中通常被称为透镜108)。在一些实施例中,图像捕获设备104可以包括用于每个透镜108的相机。在一些实施例中,图像捕获设备104包括具有多个透镜108a…j的单个相机。在一些实施例中,图像捕获设备104可以包括多个相机,每个相机具有多个透镜108。图像捕获设备104的一个或更多个相机可以被选择或被设计成预定分辨率和/或具有预定视场。在一些实施例中,一个或更多个相机被选择和/或被设计成具有用于跟踪对象的分辨率和视场,例如在用于增强现实的HMD的视场中。一个或更多个相机可以用于多种目的,例如跟踪由图像捕获设备捕获的场景或环境中的对象,并执行本文描述的深度缓冲器生成技术。在这些情况中的一些情况下,图像捕获设计的分辨率和设计可能适合于跟踪目标,而不太适合深度缓冲器生成或以其他方式不被选择用于深度缓冲器生成,并且本解决方案的深度缓冲器生成技术改进并克服了用于跟踪对象的较低质量的相机。在一些实施例中,图像捕获设备104a…n是被配置为提供用于头部跟踪操作的图像的由内向外跟踪相机(inside outtracking camera)。在一些实施例中,用于头部跟踪操作的图像也被用于深度缓冲器生成。
图像捕获设备104的一个或更多个相机和透镜108可以被安装、被集成、被结合或被布置在HMD上,以对应于HMD的用户或佩戴者的左眼视图和该用户或佩戴者的右眼视图。例如,HMD可以包括第一相机和第二相机,第一相机具有第一透镜,其被面向前方安装在对应于或靠近佩戴者左眼的HMD的左侧,第二相机具有第二透镜,其被面向前方安装在对应于或靠近佩戴者右眼的HMD的右侧。左相机和右相机可以形成一对面向前方的相机,用于提供立体图像捕获。在一些实施例中,HMD可以具有一个或更多个额外的相机,例如在第一和第二相机之间的第三相机,其朝向HMD的顶部供给并且在第一、第二和第三相机之间形成三角形。该第三相机可以用于在执行本解决方案的深度缓冲器生成技术时的三角测量技术,以及用于对象跟踪。
系统100可以包括第一图像捕获设备104a和第二图像捕获设备104b,第一图像捕获设备104a包括第一透镜108a,第一图像捕获设备104a被布置成捕获第一视图的第一图像112a,第二图像捕获设备104b包括第二透镜108b,第二图像捕获设备104b被布置成捕获第二视图的第二图像112b。第一视图和第二视图可以对应于不同的视角,使得能够从第一图像112a和第二图像112b提取深度信息。例如,第一视图可以对应于左眼视图,并且第二视图可以对应于右眼视图。系统100可以包括第三图像捕获设备104c,其包括第三透镜108c,第三图像捕获设备104c被布置成捕获第三视图的第三图像112c。如参考图2所述,第三视图可以对应于与第一透镜108a和第二透镜108b之间的轴间隔开的顶部视图,这可以使系统100能够更有效地处理可能难以利用第一图像捕获设备104a和第二图像捕获设备104b解决的深度信息,例如基本平行于第一透镜108a和第二透镜108b之间的轴的边缘(例如,桌子的边缘)。
要由图像捕获设备104a…n捕获的图像的光可以通过一个或更多个透镜108a…j被接收。图像捕获设备104a…n可以包括传感器电路,包括但不限于电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)电路,该传感器电路可以检测经由一个或更多个透镜108a…j接收的光,并基于接收到的光生成图像112a…k。例如,图像捕获设备104a…n可以使用传感器电路来生成对应于第一视图的第一图像112a和对应于第二视图的第二图像112b。一个或更多个图像捕获设备104a…n可以向处理电路116提供图像112a…k。一个或更多个图像捕获设备104a…n可以向图像112a…k提供对应的时间戳,这可以在对图像112a…k执行图像处理时促进图像112a…k的同步,以例如识别表示第一和第二视图并且具有相同时间戳的特定的第一和第二图像112a、112b,该特定的第一和第二图像112a、112b应该彼此进行比较以计算深度信息。
处理电路116可以包括预处理器120。预处理器120可以在执行进一步的图像处理之前,例如在从包括第一图像112a和第二图像112b的图像112a…k计算视差偏移之前,修改图像112a…k。预处理器120可以用于去除图像112a…k中的失真,例如鱼眼透镜失真。在一些实施例中,处理电路116是图形处理单元(GPU),并且可以使用GPU来执行预处理器120。
预处理器120可以校正从一个或更多个图像捕获设备104a…n接收的图像112a…k。例如,预处理器120可以将每个图像112a…k变换到公共图像平面中,例如通过执行平面校正、柱面校正或极性校正(polar rectification)。通过校正图像112a…k,预处理器120可以变换图像112a…k,使得图像112a…k中的对应点具有相同的垂直坐标。预处理器120可以检索被保持在处理电路116的存储器中的每个图像捕获设备104a…n的预定位置和取向,并且基于预定位置和取向来校正图像112a…k。通过校正图像112a…k,预处理器120可以便于计算图像112a…k之间的视差偏移(例如,如下面参考运动估计器128的操作所述)。
预处理器120可以裁剪图像112a…k。例如,预处理器120识别每个图像112中要裁剪的一部分,并输出不包括所识别部分的裁剪后的图像112。预处理器120可以裁剪图像112a…k,以移除图像112a…k的外部部分(outer portion),例如失真(例如鱼眼透镜失真)更普遍的部分。预处理器120可以基于被保持在处理电路116的存储器中的预定裁剪方案,例如识别图像112a…k中要裁剪的像素(例如,对应于图像112a…k的周边部分的像素)的预定裁剪方案,来识别每个图像112中要裁剪的部分。预定裁剪方案可以基于由用于生成图像112a…k的特定图像捕获设备104a…n的操作导致的图像112a…k的预期失真。通过裁剪图像112a…k,预处理器120可以移除图像112a…k的部分,与图像112a…k的其余部分相比,该部分中的深度信息可能具有相对更大的失真。
处理电路116可以包括视频编码器124。视频编码器124可以接收第一图像112a和第二图像112b,例如通过响应于预处理器120进行的预处理而接收第一图像112a和第二图像112b。视频编码器124可以对接收到的图像112a…k进行编码,例如将接收到的图像112a…k转换成预定的格式。
视频编码器124可以将接收到的图像112转换成期望的格式或规格,例如分辨率、帧速率和编解码器(codec)。视频编码器124可以使用与图像112相关联的时间戳来将在时间上对应的第一和第二图像112a、112b同步,例如通过对第一图像112a或第二图像112b之一应用延迟。视频编码器124可以包括运动估计器128。运动估计器128可以基于接收的图像计算运动向量。例如,运动估计器128可以基于用于计算图像帧之间的运动向量的运动估计器来实现,例如在增强现实(AR)和虚拟现实(VR)系统中。尽管运动估计器128被示为视频编码器的一部分,但是运动估计器128可以被实现为单独的组件,例如运动估计器硬件单元或在处理电路(例如CPU或GPU)上执行的可执行指令。
运动估计器128可以使用运动向量作为视差偏移。例如,运动估计器128可以通过将第一图像112a与第二图像112b进行比较来计算第一视差偏移,例如通过将第二图像112b用作与第一图像112a进行比较的基线。运动估计器128可以通过将第二图像112b与第一图像112a进行比较来计算第二视差偏移,例如通过将第一图像112a用作与第二图像112b进行比较的基线。运动估计器128可以基于第一图像112a和第二图像112b具有相同的时间戳(或者具有彼此在阈值时间差(例如图像捕获设备104a…n提供图像112a…k的帧速率的量级的阈值差)内的时间戳)来选择用于比较的第一图像112a和第二图像112b。在一些实施例中,第一图像来自图像捕获设备104a…n的第一相机,并且第二图像来自图像捕获设备104a…n的第二相机。在一些实施例中,第一和第二图像112a、112b可以同时或几乎同时被捕获,并且第一相机104a具有第一视点或位置,第二相机104b具有第二视点或位置。在一些实施例中,位置或视点的差异是已知的值。
第一和第二视差偏移可以是立体视差偏移,例如以指示对应于第一图像的第一视图和对应于第二图像的第二视图之间的透视差异,该透视差异可以用于提供深度信息。例如,第一和第二视差偏移可以对应于第一和第二视图,该第一和第二视图对应于用户要感知的3D图像的立体图(stereographic view)或立体视图(stereoscopic view)。
运动估计器128可以通过比较第一图像112a和第二图像112b的对应元素来计算第一视差偏移和第二视差偏移。图像112a…k的元素可以包括单独的像素、像素组或由像素组表示的特征(例如对象)。例如,运动估计器128可以执行特征识别算法(例如,对象识别算法、边缘检测、拐角检测等)来识别由一个或更多个像素表示的特征,并且通过将第一图像112a中表示该特征的一个或更多个第一像素与第二图像112b中表示该特征的一个或更多个第二像素进行比较来计算第一视差偏移。像素可以表示场景中的现实世界对象、结构、身体部位、计算机设备等。在一些实施例中,可以基于相似的尺寸、形状、灰度强度和颜色来确定每个图像中的对应特征。运动估计器128可以将视差偏移分配给针对其计算视差偏移的像素。
运动估计器128可以生成第一视差偏移,以指示在第一图像112a和第二图像112b的像素布置中表示的一个或更多个维度中的像素的差异。例如,如果第一图像112a和第二图像112b被布置在x-y坐标系中,第一图像112a的第一像素具有[3,6]的第一坐标,并且对应于第一像素的第二图像112b的第二像素具有[4,7]的第二坐标,则运动估计器128可以例如通过从第一坐标中减去第二坐标,将第一视差偏移生成为向量[-1,-1]。运动估计器128可以例如通过从第二坐标中减去第一坐标,将第二视差偏移生成为向量[1,1]。视差偏移可以被确定为绝对值(例如,元素、位置和/或像素之间的绝对差异)。运动估计器128可以生成第一视差偏移以指示从第一像素到对应的第二像素的角度和距离,并且可以生成第二视差偏移以指示从第二像素到对应的第一像素的角度和距离。
在图像112a、112b的元素包括第一图像112a的多个第一像素和第二图像112b的多个第二像素的情况下,运动估计器128可以生成包括一个或更多个向量(或角度和距离值)的第一视差偏移,该一个或更多个向量(或角度和距离值)对应于将每个第一像素与每个对应的第二像素进行比较,或者对应于将一个或更多个代表性第一像素与一个或更多个代表性第二像素进行比较。运动估计器128可以通过执行各种功能来识别代表性第一像素和代表性第二像素,这些功能包括但不限于计算像素的质心、识别拐角像素或识别边缘像素。
视频编码器124可以从视差偏移中去除伪影。例如,视频编码器124可以执行各种滤波器(例如空间滤波器)或平滑算法来去除不期望的伪影。
处理电路116可以包括深度缓冲器生成器132。深度缓冲器生成器132可以从视频编码器124接收视差偏移,并且基于视差偏移为每个图像生成深度缓冲器(例如,深度图)。例如,深度缓冲器生成器132可以基于第一图像112a的第一视差偏移生成第一深度缓冲器,并且基于第二图像112b的第二视差偏移生成第二深度缓冲器。深度缓冲器生成器132可以生成具有相对低数量的像素的深度缓冲器(例如,相对于图像112a…k的可以是几百像素×几百像素的量级的图像尺寸,深度缓冲器具有80×60个像素)。
深度缓冲器生成器132可以基于关于用来捕获图像112a…k的图像捕获设备104a…n的信息以及视差偏移来生成深度缓冲器。例如,深度缓冲器生成器132可以通过基于第一视差偏移、经由其捕获第一图像112a的第一透镜108a和经由其捕获第二图像112b的第二透镜108b之间的基线距离以及第一透镜108a的焦距计算深度值,来生成第一深度缓冲器。深度缓冲器生成器132可以通过向第一图像112a的至少一个对应像素分配深度值来生成第一深度缓冲器,并且通过向第二图像112b的至少一个对应像素分配深度值来生成第二深度缓冲器。例如,深度缓冲器生成器132可以将第一深度缓冲器生成为与第一图像112a的像素相对应的像素的矩阵,每个第一深度缓冲器像素具有被分配的深度值。深度缓冲器生成器132可以生成具有比图像112a…k更低分辨率的深度缓冲器。
处理电路116可以包括姿态计算器140。姿态计算器140可以从经由处理电路116处理、管理或存储的姿态历史中识别、确定或计算一个或更多个姿态。姿态可以是以电子方式表示由图像捕获设备104捕获的场景或视图的任何类型和形式的数据。该姿态可以至少基于佩戴者上的HMD在空间中的位置或取向来识别经由HMD的一个或更多个相机可观看的对象、场景或环境的视图。姿态的数据可以包括或识别在当前时刻来自HMD的视图的6自由度(6Dof)视角。姿态的数据可以包括用于至少基于HMD佩戴者的视角、位置、取向和时间来渲染场景、视图或环境中的任何一个或更多个对象的图像数据。姿态可以包括6Dof变换,该变换表示在一个时刻,场景、视图或环境中的一个或更多个对象基于HMD的位置和取向的平移和取向。处理电路116可以在存储器或存储装置中使用例如时间戳来存储基于时间的姿态历史。
来自姿态历史的图像数据可以被图像渲染器136用于基于由图像捕获设备104捕获的图像112来渲染显示图像。姿态计算器140可以使用由图像捕获设备104捕获的并且由处理电路116获得、接收的或提供给处理电路116的任何图像的时间戳来识别对3D渲染过程有用的任何一个或更多个历史姿态,例如通过基于HMD相对于一个或更多个对象、场景或环境的位置和取向从6Dof视角提供图像数据。姿态计算器140可以基于捕获的图像和/或姿态的一个或更多个时间戳、HMD相对于姿态和/或视图或场景中的对象的位置和取向、以及任何相关联的图像数据的质量和/或分辨率来选择一个或更多个姿态。姿态计算器140可以从先前捕获的任何图像数据(包括数据的部分或数据到6Dof表示的变换,诸如与图像捕获设备104捕获的用于由图像渲染器136经由显示器148显示的图像相关的任何图像数据)中计算、生成或运算任何一个或更多个姿态。
处理电路116可以包括图像渲染器136。图像渲染器136可以是3D图像渲染器。图像渲染器136可以使用图像相关输入数据来处理、生成和渲染显示或呈现图像,以例如经由HMD在一个或更多个显示设备上显示或呈现。图像渲染器136可以生成或创建场景或视图的2D图像,用于在显示器148上显示,并以3D方式表示场景或视图。要渲染的显示或呈现数据可以包括场景或视图中的3D对象的几何模型。图像渲染器136可以确定、计算或运算要渲染的显示或图像数据的像素值,以提供期望的或预定的3D图像,例如由图像捕获设备104捕获的图像112的3D显示数据。图像渲染器136可以接收图像(例如,从预处理器120接收经预处理的图像)和来自深度缓冲器生成器132的深度缓冲器,并使用这些图像和深度缓冲器生成显示图像。图像渲染器136可以使用这些图像和深度缓冲器以及从姿态计算器140计算的姿态来生成要经由显示器148呈现或显示的显示图像。
图像渲染器136可以基于时间和/或空间参数将显示数据的帧渲染到一个或更多个显示器。图像渲染器136可以按时间顺序(例如对应于图像捕获设备104捕获图像的时间)渲染图像数据的帧。图像渲染器136可以基于图像捕获设备104的位置和/或取向(例如HMD的位置和取向)的变化,来渲染显示数据的帧。图像渲染器136可以基于左眼视图和右眼视图渲染显示数据的帧,例如在显示左眼视图之后显示右眼视图,反之亦然。
图像渲染器136可以使用重新投影或帧速率平滑技术来减少计算(CPU/GPU)处理时间或要求,同时生成期望质量的或者对应于从图像处理流水线生成时的质量的显示数据。重新投影是一种可以在发送到显示器148之前修改要渲染的显示数据的技术,以针对在图像数据被捕获之后发生的头部或HMD移动进行修正(correct)或调整。显示数据的这种修改可以被称为扭曲。重新投影可以针对HMD中或HMD的佩戴者的视图中的位置移动进行修正或调整,称为异步时间扭曲。重新投影可以针对HMD中或HMD的佩戴者的视图中的位置和旋转移动进行修正或调整,称为位置时间扭曲(PSW)。在重新投影中,图像渲染器136可以从任何输入(例如经预处理的图像数据、深度缓冲器和姿态)进行外推,以考虑在捕获图像数据的时刻或时间之后且在将显示数据渲染到显示器148之前在HMD中发生的位置和/或旋转移动。
图像渲染器136可以接收图像112a…k(例如,从预处理器120接收经预处理的图像112a…k)和来自深度缓冲器生成器132的深度缓冲器。例如,图像渲染器136可以接收图像112a…k、对应的深度缓冲器和对应的历史姿态作为输入层。图像渲染器136可以使用图像和深度缓冲器(以及历史姿态)来生成显示图像。例如,图像渲染器136可以使用第一图像112a和第一深度缓冲器生成第一显示图像,并且使用第二图像112b和第二深度缓冲器生成第二显示图像。图像渲染器136可以使用图像合成器来实现。
图像渲染器136可以通过使用对应的深度缓冲器重新投影图像112a…k来生成显示图像。例如,图像渲染器136可以重新投影图像112a…k,以将图像112a…k定位在正确的图像空间或当显示图像被显示时HMD的用户被预期感知的图像空间中。图像渲染器136可以使用对应于一个或更多个图像捕获设备104的相机矩阵来重新投影图像112a…k,该相机矩阵将信息从三维空间(例如,使用图像112a…k和深度缓冲器)映射到二维空间(例如,显示图像)。图像渲染器136可以基于一个或更多个图像捕获设备104的特性,例如焦距,来确定相机矩阵。在一些实施例中,图像渲染器136通过将图像112a…k连同深度缓冲器一起从三维空间投影到二维空间来重新投影图像112a…k,包括使用关于HMD的运动数据来识别与图像112a…k的视角相比的显示图像的对应视角。图像渲染器136可以使用诸如异步重新投影算法的各种算法来重新投影图像112a…k,该算法可以使用诸如头部的旋转跟踪、相机平移和头部平移之类的信息来确定如何重新投影显示图像。
图像渲染器136可以通过执行位置时间扭曲(PTW)算法来重新投影图像112a…k。例如,图像渲染器136可以识别第一图像112a的第一像素,识别第一深度缓冲器的对应第一深度值,并且调整用于在第一显示图像中呈现第一图像112a的第一像素的信息的第一显示像素。例如,图像渲染器136可以基于第一深度值将第一显示像素定位在与第一像素不同的位置(例如,不同的像素坐标)。图像渲染器136可以在包括图像112a…k、对应的深度缓冲器和对应的历史姿态的层上执行PTW算法。
图像渲染器136可以使用关于捕获图像112a…k的图像捕获设备104a…n的移动的运动数据来生成显示图像。例如,图像捕获设备104a…n可能由于佩戴包括图像捕获设备104a…n的HMD的用户的头部的移动而在位置或取向中的至少一个上改变(例如,如参考图2的HMD系统200所描述的)。处理电路116可以从位置传感器(例如,参考图2描述的位置传感器220)接收运动数据。图像渲染器136可以使用运动数据来计算图像112a…k被捕获的第一时间点和显示图像将被显示的第二时间点之间的位置或取向中的至少一个的变化,并且使用计算的变化来生成显示图像。图像渲染器136可以使用运动数据来相对于图像112a…k内插和/或外推显示图像。
虽然图像渲染器被示出为处理电路116的一部分,但是图像渲染器可以被形成为单独设备或组件(例如,例如在HMD内的显示设备)的其他处理电路的一部分。
预处理器120、视频编码器124或图像渲染器136中的任何一个都可以利用来自图像捕获、经预处理的图像和/或姿态的数据来修正、调整或修改深度缓冲器、经预处理的图像或要渲染的显示数据,以改善图像的细节、分辨率的质量。例如,图像捕获设备104和处理电路116可以随着时间的推移获得和处理不同分辨率和质量的图像,并使用来自这些图像的数据来填充当前正在被处理的图像的细节。例如,分辨率和质量可以根据可用处理能力的量或每秒兆指令(MIPS)进行调整。
处理电路116的组件,例如视频编码器124、运动估计器128、深度缓冲器生成器132和图像渲染器136,可以独立地处理第一图像112a和第二图像112b。例如,在运动估计器128使用第二图像112b作为用于计算第一图像112a的第一视差偏移的基线并且使用第一图像112a作为用于计算第二图像112b的第二视差偏移的基线之后,处理电路116可以单独生成下游参数和数据对象,例如第一和第二深度缓冲器以及第一和第二显示图像。这可以使处理电路116能够处理其中由于去遮挡(disocclusion)或其他因素而导致的运动向量和深度缓冲器不对称的情况(例如,第一视差偏移不等同于第二视差偏移的版本,其中第二视差偏移由于对应元素之间的距离而移位,并且由于计算视差偏移的方向相反而具有相反的符号),因为处理电路116可以避免将深度缓冲器和其他参数进行关联或融合。通过独立地处理第一图像112a和第二图像112b,处理电路116可以减少处理周期,因为可以不需要将信息从第一视图(例如,第一只眼)的图像空间重新投影或重新扭曲到第二视图(例如,第二只眼)的图像空间,反之亦然。
系统100可以包括一个或更多个显示器148。一个或更多个显示器148可以是任何类型和形式的电子视觉显示器。显示器可以具有或被选择成具有预定的分辨率、刷新率和尺寸。一个或更多个显示器可以具有任何类型的技术,例如基于LCD、LED、ELED或OLED的显示器。一个或更多个显示器的形式因子可以适合作为眼镜或护目镜装配在HMD内,其中显示器倾斜在眼镜或护目镜的框架内。显示器148可以具有与处理电路116或图像渲染器136或图像捕获设备104a…n的刷新率或帧速率相同或不同的刷新率
现在参考图2,HMD系统200可以包括HMD主体202、左图像捕获设备104a、右图像捕获设备104b和显示器148。HMD主体202可以具有各种形式因子,例如眼镜或头戴装置。图像捕获设备104a、104b可以安装或集成在HMD主体202中。左图像捕获设备104a可以捕获对应于第一视图(例如,左眼视图)的第一图像,并且右图像捕获设备104b可以捕获对应于第二视图(例如,右眼视图)的图像。
HMD系统200可以包括顶部图像捕获设备104c。顶部图像捕获设备104c可以捕获对应于不同于第一视图或第二视图的第三视图的图像。例如,顶部图像捕获设备104c可以位于左图像捕获设备104a和右图像捕获设备104b之间,并且位于左图像捕获设备104a和右图像捕获设备104b之间的基线上方。这可以使顶部图像捕获设备104c能够捕获具有深度信息的图像,该深度信息可能不容易从由左图像捕获设备104a和右图像捕获设备104b捕获的图像中提取。例如,在边缘(例如,桌子的边缘)平行于左图像捕获设备104a和右图像捕获设备104b之间的基线的情况下,可能难以从由左图像捕获设备104a和右图像捕获设备104b捕获的图像中有效地提取深度信息。与左图像捕获设备104a和右图像捕获设备104b相比,与基线间隔开的顶部图像捕获设备104c可以捕获具有不同视角的第三图像,并因此使得能够从第三图像中提取不同的深度信息。
HMD系统200可以包括处理电路116,处理电路116可以执行参考图1描述的至少一些功能,包括从图像捕获设备104a、104b和104c接收图像,以及处理接收到的图像以生成深度缓冲器,用于使用接收到的图像渲染3D图像。
HMD系统200可以包括通信电路204。通信电路204可用于向客户端设备208或服务器212中的至少一个发送电子通信信号和从其接收电子通信信号。通信电路204可以包括有线或无线接口(例如,插孔、天线、发射器、接收器、收发器、有线终端),用于与各种系统、设备或网络进行数据通信。例如,通信电路204可以包括以太网卡和端口,用于经由基于以太网的通信网络发送和接收数据。通信电路204可以经由局域网(例如,建筑物LAN)、广域网(例如,互联网、蜂窝网络)进行通信,和/或进行直接通信(例如,NFC、蓝牙)。通信电路204可以进行有线和/或无线通信。例如,通信电路204可以包括一个或更多个无线收发器(例如,Wi-Fi收发器、蓝牙收发器、NFC收发器、蜂窝收发器)。例如,通信电路204可以与客户端设备208或服务器212中的至少一个建立有线或无线连接。通信电路204可以与客户端设备208建立USB连接。
HMD系统200可以使用不同的架构进行部署。在一些实施例中,HMD(例如,HMD主体202和附接到HMD主体202的组件)包括处理电路116,并且是独立的(self-contained)便携式单元。在一些实施例中,HMD具有处理电路116的部分,该部分与具有处理电路或其部分的任何类型的便携式或移动计算设备或伴随设备(例如以分级设备、移动电话或可穿戴计算设备的形式)协作地或结合地工作。在一些实施例中,HMD具有处理电路116的与桌面计算设备的处理电路或其部分协作地或结合地工作的部分。在一些实施例中,HMD具有处理电路的与服务器计算设备的处理电路或其部分协作地或结合地工作的部分,服务器计算设备可以远程部署在数据中心或云计算环境中。在任何上述实施例中,HMD或结合HMD工作的任何计算设备可以在执行本文描述的任何功能和操作时与一个或更多个服务器通信。
客户端设备208可以是任何形式因子的任何类型和形式的通用或专用计算设备,例如,移动设备或便携式设备(电话、平板电脑、膝上型电脑等),或者桌面或个人计算(PC)设备。在一些实施例中,客户端设备可以是专用设备,例如分级设备的形式,其可以具有处理电路或其部分。专用设备可以被设计成由用户在佩戴HMD时携带,例如通过经由任何类型和形式的辅助附件将客户端设备208附接到衣服或身体。客户端设备208可以用于执行结合图1和图3描述的图像和渲染处理流水线的任何部分。HMD可以执行图像和渲染处理流水线的一些或其他部分,例如图像捕获和渲染到显示器148。HMD可以与客户端设备108一起发送和接收数据,以利用客户端设备108的计算能力和资源,这些计算能力和资源可以具有比HMD的计算能力和资源更高的规格。
服务器212可以是向一个或更多个客户端设备208或充当客户端的其他设备提供应用、功能或服务的任何类型形式的计算设备。在一些实施例中,服务器212可以是客户端设备208。服务器212可以部署在可经由一个或更多个网络访问的数据中心或云计算环境中。HMD和/或客户端设备208可以使用和利用服务器212的计算能力和资源。HMD和/或客户端设备208可以实现结合图1和图3描述的图像和渲染处理流水线的任何部分。服务器212可以实现结合图1和图3描述的图像和渲染处理流水线的任何部分,并且在一些情况下,可以实现不由客户端设备208或HMD执行的图像和渲染处理流水线的任何部分。服务器212可以用于用对HMD和/或客户端设备208上的应用、软件、可执行指令和/或数据的任何更新来更新HMD和/或客户端设备208。
系统200可以包括位置传感器220。位置传感器220可以输出主体202的位置或取向中的至少一个。由于图像捕获设备104a、104b、104c可以固定到主体202(例如,在相对于位置传感器220的预定位置),位置传感器220可以输出每个图像捕获设备104a、104b、104c的位置或取向中的至少一个。位置传感器220可以包括惯性测量单元(IMU)、加速度计、陀螺仪或磁力计(例如,磁罗盘)中的至少一个。
现在参考图3,方法300可以包括以下步骤中的一个或更多个。方法300可以包括由一个或更多个图像捕获设备捕获图像(305)。该方法可以包括对图像进行预处理(310)。方法300可以包括确定图像的视差偏移(315)。方法300可以包括从图像中去除伪影(320)。该方法可以包括为每个图像生成深度缓冲器(325)。该方法可以包括计算历史姿态(330)。该方法可以包括渲染显示图像(335)。方法300可以使用这里描述的各种设备和系统(包括系统100、处理电路116和系统200)来执行。方法300可以被执行来独立地或单独地确定每个图像的参数,例如视差偏移(例如,运动向量)和深度缓冲器,这可以避免将由去遮挡导致的图像误差,并且可以降低处理要求。
在305,图像由一个或更多个图像捕获设备捕获。可以通过在传感器处经由透镜接收光、并使用传感器来基于接收到的光生成图像(例如通过生成将通过透镜的视场接收的光表示为像素的数据结构的图像),来捕获图像。图像可以被连续捕获。图像可以以预定的帧速率被捕获。第一图像可以以第一帧速率被捕获,并且第二图像可以以第二帧速率被捕获,第二帧速率可以不同于第一帧速率。一个或更多个相机可以捕获可以对应于第一视图的第一图像以及可以对应于第二视图的第二图像。图像可以是视频图像。图像可以以不同的帧速率被捕获。一个或更多个相机可以包括透镜,通过该透镜接收光以(例如,通过使用图像传感器)生成图像。一个或更多个相机可以被安装、被集成、被结合或被布置在HMD上,以对应于HMD的用户或佩戴者的左眼视图和该用户或佩戴者的右眼视图。例如,HMD可以包括第一相机和第二相机,第一相机具有第一透镜,其被面向前方安装在对应于或靠近佩戴者左眼的HMD的左侧,第二相机具有第二透镜,其被面向前方安装在对应于或靠近佩戴者右眼的HMD的右侧。左相机和右相机可以形成一对面向前方的相机,用于提供立体图像捕获。在一些实施例中,HMD可以具有一个或更多个额外的相机,例如在第一和第二相机之间的第三相机,其朝向HMD的顶部供给并且在第一、第二和第三相机之间形成三角形。该第三相机可以用于在执行本解决方案的深度缓冲器生成技术方面的三角测量技术,以及用于对象跟踪。相机可以向图像提供对应的时间戳,这可以在对图像执行图像处理时促进图像的同步,以例如识别表示第一和第二视图并且具有相同时间戳的特定的第一和第二图像,该特定的第一和第二图像应该彼此进行比较以计算深度信息。
在310,可以对图像进行预处理,以便为各种处理算法准备图像。可以去除图像中的失真,例如鱼眼镜头失真。例如,第一图像和第二图像可以例如通过将第一图像和第二图像变换到公共图像平面中而被校正。
可以裁剪第一图像和第二图像。可以识别每个图像中要裁剪的一部分,并且可以输出不包括所识别部分的裁剪后的图像。可以裁剪图像以移除图像的外部部分,例如失真(例如鱼眼透镜失真)更普遍的部分。可以基于识别图像中要裁剪的像素(例如,对应于图像的周边部分的像素)的预定裁剪方案来识别每个图像中要裁剪的部分。预定裁剪方案可以基于由用于生成图像的特定图像捕获设备的操作导致的图像的预期失真。
在315,可以为图像确定视差偏移。可以使用视频编码器的运动估计器来确定视差偏移,这可以使用GPU来执行。例如,可以为第一图像确定第一视差偏移,并且可以为第二图像确定第二视差偏移。第一视差偏移可以通过使用第二图像作为基线将第一图像与第二图像进行比较来计算。第二视差偏移可以通过使用第一图像作为基线将第二图像与第一图像进行比较来计算。第一和第二视差偏移可以是立体视差偏移,例如指示对应于第一图像的第一视图和对应于第二图像的第二视图之间的透视差异,该透视差异可以用于提供深度信息。例如,第一和第二视差偏移可以对应于第一和第二视图,第一和第二视图对应于用户要感知的3D图像的立体图或立体视图。第一视差偏移和第二视差偏移可以通过比较第一图像和第二图像的对应元素来计算。图像的元素可以包括单独的像素、像素组或由像素组表示的特征(例如对象)。例如,特征识别算法(例如,对象识别算法、边缘检测、拐角检测等)可以被执行以识别由一个或更多个像素表示的特征,并且第一视差偏移可以通过将第一图像中表示该特征的一个或更多个第一像素与第二图像中表示该特征的一个或更多个第二像素进行比较来计算。视差偏移可以被分配给针对其计算视差偏移的像素。可以生成视差偏移来指示在图像的像素布置中表示的一个或更多个维度中的像素的差异。例如,视差偏移可以被表示为对应于图像的坐标方案中的向量(例如,x-y坐标)。视差偏移可以被表示为角度和距离值。视差偏移可以作为绝对值(例如,元素、位置和/或像素之间的绝对差异)来提供。在图像的元素包括第一图像的多个第一像素和第二图像的多个第二像素的情况下,第一视差偏移可以被生成为包括一个或更多个向量(或者角度和距离值),该一个或更多个向量(或者角度和距离值)对应于将每个第一像素与每个对应的第二像素进行比较,或者对应于将一个或更多个代表性第一像素与一个或更多个代表性第二像素进行比较。
在320,可以从视差偏移中去除伪影。例如,可以执行各种滤波器(例如空间滤波器)或平滑算法,以去除不期望的伪影。
在325,可以为每个图像生成深度缓冲器(例如,深度图)。可以基于视差偏移来生成深度缓冲器。例如,可以基于第一图像的第一视差偏移生成第一深度缓冲器,并且可以基于第二图像的第二视差偏移生成第二深度缓冲器。深度缓冲器基于关于用来捕获图像的图像捕获设备的信息以及视差偏移。例如,可以通过基于第一视差偏移、经由其捕获第一图像的第一透镜和经由其捕获第二图像的第二透镜之间的基线距离以及第一透镜的焦距计算深度值,来确定第一深度缓冲器。深度缓冲器可以被生成为与为其生成深度缓冲器的图像的至少一个像素相对应的像素的矩阵,每个像素具有深度值。
在330,可以计算历史姿态。姿态可以是以电子方式表示由图像捕获设备捕获的场景或视图的任何类型和形式的数据。该姿态可以至少基于佩戴者上的HMD在空间中的位置或取向来识别经由HMD的一个或更多个相机可观看的对象、场景或环境的视图。姿态的数据可以包括或识别在当前时刻来自HMD的视图的6自由度(6Dof)视角。姿态的数据可以包括用于至少基于HMD佩戴者的视角、位置、取向和时间来渲染场景、视图或环境中的任何一个或更多个对象的图像数据。
在335,可以使用图像、深度缓冲器和历史姿态来渲染显示图像。显示图像可以使用图像渲染器(例如3D渲染器或合成器)来渲染。可以基于时间和/或空间参数来渲染显示数据的帧并将其提供给一个或更多个显示器。可以基于左眼视图和右眼视图来渲染显示数据的帧,例如在显示左眼视图之后显示右眼视图,反之亦然,或者同时显示左眼视图和右眼视图。可以使用重新投影来渲染显示图像,例如以将显示图像定位在正确的图像空间中。可以通过执行PTW算法来重新投影显示图像。例如,可以识别第一图像的第一像素,可以识别第一深度缓冲器的对应第一深度值,并且可以调整用于在第一显示图像中呈现第一图像的第一像素的信息的第一显示像素。PTW算法可以在包括图像、对应的深度缓冲器和对应的历史姿态的层上被执行。可以使用关于图像捕获设备的移动的运动数据来渲染显示图像。例如,从位置传感器接收的运动数据可以用于考虑由头部移动导致的HMD的位置或取向中的至少一个的变化。显示图像可以以各种速率被渲染,这些速率可以不同于从一个或更多个相机接收图像的速率。可以以对应于一个或更多个相机的移动速率的速率来渲染显示图像,例如随着移动速率的增加而增加显示图像渲染的速率,这可以有助于减少运动模糊(例如,通过在对应于从一个或更多个相机接收的图像的帧之间内插更多的帧)。在一些实施例中,渲染显示图像以相对于从一个或更多个相机接收的图像进行内插或外推。例如,可以执行第一重新投影以生成第一显示图像(对应于第一图像)和第二显示图像(对应于第二图像)。响应于生成第一显示图像和第二显示图像,可以将直到预期接收到新图像(并且为了生成视差偏移而处理新图像)的时间与时间阈值进行比较,并且响应于该时间满足或超过时间阈值,可以执行第二重新投影以生成第三显示图像(对应于第一显示图像)和第四显示图像(对应于第二显示图像),使得能够在接收和处理附加的现实世界图像的同时显示附加的帧。所渲染的显示图像可以使用各种显示器(例如HMD)来呈现。
这里描述的各种操作可以在计算机系统上实现。图4示出了可用于实现本公开的代表性服务器系统400和客户端计算机系统414的框图。服务器系统400或类似系统可以实现这里描述的服务或服务器、或其部分。客户端计算机系统414或类似系统可以实现这里描述的客户端。这里描述的系统100、200和其他系统中的每一个都可以结合系统400、414的特征。
服务器系统400可以具有结合多个模块402(例如,刀片服务器(blade server)中的刀片)的模块化设计;虽然示出了两个模块402,但是可以提供任意数量的模块402。每个模块402可以包括处理单元404和本地储存器406。
处理单元404可以包括单个处理器(其可以具有一个或更多个内核)或者多个处理器。处理单元404可以包括通用主处理器以及一个或更多个专用协处理器,例如图形处理器、数字信号处理器等。一些或所有处理单元404可以使用例如专用集成电路(ASIC)或现场可编程门阵列(FPGA)的定制电路来实现。这些集成电路执行存储在电路本身上的指令。处理单元404可以执行存储在本地储存器406中的指令。处理单元404中可以包括以任何组合的任何类型的处理器。
本地储存器406可以包括易失性存储介质(例如,传统的DRAM、SRAM、SDRAM等)和/或非易失性存储介质(例如,磁盘或光盘、闪存等)。结合在本地储存器406中的存储介质可以是固定的、可移动的或可根据需要升级的。本地储存器406可以在物理上或逻辑上被划分成各种子单元,例如系统存储器、只读存储器(ROM)和永久存储设备。系统存储器可以是读写存储器设备或易失性读写存储器,例如动态随机存取存储器。系统存储器可以存储处理单元404在运行时需要的一些或所有指令和数据。ROM可以存储处理单元404所需的静态数据和指令。永久存储设备可以是非易失性读写存储器设备,即使当模块402断电时,该设备也可以存储指令和数据。这里使用的术语“存储介质”包括其中可以无限期地(遭受盖写、电干扰、功率损失等情况下)存储数据的任何介质,并且不包括以无线方式或通过有线连接传播的载波和瞬态电子信号。
本地储存器406可以存储将由处理单元404执行的一个或更多个软件程序,例如操作系统和/或实现各种服务器功能(例如系统100、或这里描述的任何其他系统、或与系统100或这里描述的任何其他系统相关联的任何其他服务器的功能)的程序。
“软件”通常指指令序列,当由处理单元404执行时,这些指令序列使服务器系统400(或其部分)执行各种操作,从而定义了运行和执行软件程序的操作的一个或更多个特定机器实现。这些指令可以作为驻留在只读存储器中的固件和/或存储在非易失性存储介质中的程序代码来存储,该程序代码可以被读入易失性工作存储器中以供处理单元404执行。软件可以被实现为单个程序、或根据需要进行交互的独立程序或程序模块的集合。为了执行上述各种操作,处理单元404可以从本地储存器406(或下面描述的非本地储存器)中检索要执行的程序指令和要处理的数据。
在一些服务器系统400中,多个模块402可以经由总线或其他互连408进行互连,形成支持模块402和服务器系统400的其他组件之间的通信的局域网。互连408可以使用各种技术(包括服务器机架、集线器、路由器等)来实现。
广域网(WAN)接口410可以在局域网(互连408)和更大的网络(例如互联网)之间提供数据通信能力。可以使用常规或其他活动技术,包括有线技术(例如以太网、IEEE 802.3标准)和/或无线技术(例如Wi-Fi、IEEE 802.11标准)。
本地储存器406可以为处理单元404提供工作存储器,提供对要处理的程序和/或数据的快速访问,同时减少互连408上的流量。可以通过可以连接到互连408的一个或更多个大容量存储子系统412,来在局域网上提供对大量数据的存储。大容量存储子系统412可以基于磁、光、半导体或其他的数据存储介质。可以使用直接附接的存储、存储区域网络、网络附接的存储等。这里描述的由服务或服务器产生、消费或维护的任何数据存储或其他数据集合可以被存储在大容量存储子系统412中。额外的数据存储资源可以经由WAN接口410访问(潜在地具有增加的延迟)。
服务器系统400可以响应于经由WAN接口410接收的请求而操作。例如,模块402中的一个可以实现管理功能,并响应于接收到的请求,将离散任务分配给其他模块402。可以使用传统的工作分配技术。当请求被处理时,结果可以经由WAN接口410被返回给请求者。这种操作通常可以被自动化。WAN接口410可以将多个服务器系统400相互连接,提供能够管理大量活动的可扩展系统。可以使用用于管理服务器系统和服务器群(合作的服务器系统的集合)的传统或其他技术,包括动态资源分配和重新分配。
服务器系统400可以经由诸如互联网的广域网与各种用户拥有的或用户操作的设备交互。用户操作的设备的示例在图4中被示为客户端计算系统414。客户端计算系统414可以被实现为例如消费设备,诸如智能手机、其他移动电话、平板计算机、可穿戴计算设备(例如,智能手表、眼镜)、台式计算机、膝上型计算机等。
例如,客户端计算系统414可以经由WAN接口410进行通信。客户端计算系统414可以包括传统的计算机组件,例如处理单元416、存储设备418、网络接口420、用户输入设备422和用户输出设备424。客户端计算系统414可以是以各种形式因子实现的计算设备,例如台式计算机、膝上型计算机、平板计算机、智能手机、其他移动计算设备、可穿戴计算设备等。
处理器416和存储设备418可以类似于上述的处理单元404和本地储存器406。可以基于对被放置在客户端计算系统414上的要求来选择合适的设备;例如,客户端计算系统414可以被实现为具有有限处理能力的“瘦”客户端,或被实现为高能力计算设备。客户端计算系统414可以配备有可由处理单元416执行的程序代码,以实现与消息管理服务的服务器系统400的各种交互,例如访问消息、对消息执行动作以及上述其他交互。一些客户端计算系统414也可以独立于消息管理服务而与消息服务交互。
网络接口420可以提供到广域网(例如,互联网)的连接,服务器系统400的WAN接口410也连接到该广域网。网络接口420可以包括有线接口(例如以太网)和/或无线接口,该无线接口实现各种RF数据通信标准,例如Wi-Fi、蓝牙或蜂窝数据网络标准(例如3G、4G、LTE等)。
用户输入设备422可以包括用户可以经由其向客户端计算系统414提供信号的任何设备(或多个设备);客户端计算系统414可以将信号解释为对特定用户请求或信息的指示。用户输入设备422可以包括键盘、触摸板、触摸屏、鼠标或其他定点设备、滚轮、点击轮、拨号盘、按钮、开关、小键盘、麦克风等中的任何一个或全部。
用户输出设备424可以包括客户端计算系统414可以经由其向用户提供信息的任何设备。例如,用户输出设备424可以包括显示器,以显示由客户端计算系统414生成或传送到客户端计算系统414的图像。显示器可以结合各种图像生成技术(例如液晶显示器(LCD)、包括有机发光二极管(OLED)的发光二极管(LED)、投影系统、阴极射线管(CRT)等)以及支持电子器件(例如数模或模数转换器、信号处理器等)。可以使用既用作输入设备又用作输出设备的诸如触摸屏的设备。除了显示器之外或者代替显示器,可以提供输出设备424。示例包括指示器灯、扬声器、触觉“显示”设备、打印机等。
一些实现包括电子组件,例如微处理器、储存器和将计算机程序指令存储在计算机可读存储介质中的存储器。本说明书中描述的许多特征可以被实现为被指定为编码在计算机可读存储介质上的一组程序指令的过程。当这些程序指令由一个或更多个处理单元执行时,它们使处理单元执行程序指令中指示的各种操作。程序指令或计算机代码的示例包括(诸如由编译器产生的)机器代码、以及文件,该文件包括由计算机、电子组件或使用解释器的微处理器执行的高级代码。通过适当的编程,处理单元404和416可以为服务器系统400和客户端计算系统414提供各种功能,包括这里描述的由服务器或客户端执行的任何功能,或者与消息管理服务相关联的其他功能。
应当理解,服务器系统400和客户端计算系统414是说明性的,并且变化和修改是可能的。结合本公开使用的计算机系统可以具有这里没有具体描述的其他能力。此外,虽然参考特定的块描述了服务器系统400和客户端计算系统414,但是应当理解,这些块是为了描述方便而定义的,并不旨在暗示组成部分的特定物理布置。例如,不同的块可以位于但不一定位于同一设施中、同一服务器机架中或同一母板上。此外,这些块不需要对应于物理上不同的组件。块可以被配置成(例如通过对处理器进行编程或提供适当的控制电路)执行各种操作,并且根据如何获得初始配置,各个块可以是或可以不是可重新配置的。本公开的实现可以在各种装置中被实现,包括使用电路和软件的任意组合实现的电子设备。
现在已经描述了一些说明性的实现,显然前述是说明性的而不是限制性的,已经通过示例的方式给出。具体而言,尽管本文呈现的许多示例涉及方法动作或系统元素的特定组合,但是那些动作和那些元素可以以其他方式组合来实现相同的目标。结合一个实现讨论的动作、元素和特征不旨在被排除在其他实现或实现中的类似角色之外。
用于实现结合本文公开的实施例描述的各种过程、操作、说明性逻辑、逻辑块、模块和电路的硬件和数据处理组件可以用通用单芯片或多芯片处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或其设计用于执行本文描述的功能的任何组合来实现或执行。通用处理器可以是微处理器,或者任何传统的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP内核结合的一个或更多个微处理器、或者任何其他这样的配置。在一些实施例中,特定的过程和方法可以由特定于给定功能的电路来执行。存储器(例如,存储器、存储器单元、存储设备等)可以包括一个或更多个设备(例如,RAM、ROM、闪存、硬盘储存设备等),用于存储数据和/或计算机代码,以完成或促进本公开中描述的各种过程、层和模块。存储器可以是或包括易失性存储器或非易失性存储器,并且可以包括数据库组件、目标代码组件、脚本组件或用于支持本公开中描述的各种活动和信息结构的任何其他类型的信息结构。根据示例性实施例,存储器经由处理电路可通信地连接到处理器,并且包括用于(例如,通过处理电路和/或处理器)执行本文描述的一个或更多个过程的计算机代码。
本公开设想了用于完成各个操作的方法、系统和在任何机器可读介质上的程序产品。可以使用现有计算机处理器、或通过为此目的或另一目的所引入的恰当系统的专用计算机处理器或通过硬接线的系统来实现本公开的实施例。本公开的范围之内的实施例包括程序产品,其包括用于携带或具有存储于其上的机器可执行指令或数据结构的机器可读介质。这种机器可读介质可以是任意可用介质,其可通过通用或专用计算机或具.有处理器的其他机器访问。举例来讲,这种机器可读介质可包括RAM、ROM、EPROM、EEPROM或其他光盘储存器、磁盘储存器或其他磁存储设备、或可用于携带或存储以机器可执行指令或数据结构形式的所期望的程序代码的且可以通过通用或专用计算机或具有处理器的其他机器访问的任何其他介质。上面的组合也被包括在机器可读介质的范围内。机器可执行指令包括例如使通用计算机、专用计算机或专用处理机器执行某一功能或一组功能的指令和数据。
本文所使用的措辞和术语是为了描述的目的,且不应被视为限制性的。本文中对“包括”、“包含”、“具有”、“包含”、“涉及”、“以......为特征”、“特征在于”及其变型的使用意味着包含其后列出的项目、其等同物和附加项目,以及仅由其后列出的项目组成的替代实现。在一个实现中,本文描述的系统和方法由一个、多于一个的每个组合或者所有描述的元件、动作或组件组成。
本文中以单数形式提及的对系统和方法的实现或元素或动作的任何引用也可以包括包含多个这些元素的实现,并且本文中以复数形式对任何实现或元素或动作的任何引用也可以包括仅包含单个元素的实现。单数或复数形式的引用不旨在将当前公开的系统或方法、它们的组件、动作或元素限制为单个或更多个配置。对基于任何信息、动作或元素的任何动作或元素的引用可以包括其中动作或元素至少部分基于任何信息、动作或元素的实现。
本文公开的任何实现可以与任何其他实现或实施例组合,并且对“实现”、“一些实现”、“一个实现”等的引用不一定是互斥的,并且旨在指示结合该实现描述的特定特征、结构或特性可以被包括在至少一个实现或实施例中。这里使用的这些术语不一定都指同一实现。任何实现都可以以与这里公开的方面和实现相一致的任何方式,包括性地或排他地与任何其他实现相结合。
在附图、详细描述或任何权利要求中的技术特征后面带有参考标记的地方,已经包括参考标记以增加附图、详细描述和权利要求的可理解性。因此,参考标记及其缺失都不会对任何权利要求元素的范围有任何限制性影响。
在不脱离其特征的情况下,本文描述的系统和方法可以以其他特定形式体现。另外的相对平行、垂直、竖直或其他定位或取向描述包括纯竖直、平行或垂直定位的+/-10%或+/-10度内的变化。除非另有明确说明,否则对“大约(approximately)”、“约(about)”、“基本上”或其他程度术语的提及包括给定测量值、单位或范围的+/-10%的变化。耦合元件可以彼此直接电耦合、机械耦合或物理耦合,或者利用中间元件电耦合、机械耦合或物理耦合。因此,本文描述的系统和方法的范围由所附权利要求而不是前面的描述来指示,并且落入权利要求的等同物的含义和范围内的变化包含在其中。
术语“耦合”及其变体包括两个构件直接或间接地彼此连接(join)。这种连接可以是静止的(例如,永久的或固定的)或可移动的(例如,可移除的或可释放的)。这种连接可以通过两个构件直接耦合或相互耦合来实现,也可以通过两个构件使用单独的中间构件彼此耦合和使用任何附加的中间构件彼此耦合来实现,或者通过两个构件使用与两个构件中的一个构件一体形成为单一单元体的中间构件彼此耦合来实现。如果“耦合”或其变型由附加术语(例如,直接耦合)来修饰,则上面提供的“耦合”的一般定义由附加术语的简单语言含义来修饰(例如,“直接耦合”是指两个构件在没有任何单独的中间构件的情况下的连接),导致比上面提供的“耦合”的一般定义更窄的定义。这种耦合可以是机械的、电的或流体的。
对“或”的提及可被解释为包含性的,因此,使用“或”描述的任何术语可以指示单个、多于一个和所有所述术语中的任何一个。对“‘A’和‘B’中的至少一个”的提及可以只包括“A”,只包括“B”,以及同时包括“A”和“B”。这种与“包括”或其他开放术语一起使用的引用可以包括附加项目。
在本质上不脱离本文公开的主题的教导和优点的情况下,可以对所描述的元件和动作进行修改,例如各种元件的尺寸、大小、结构、形状和比例、参数值、安装布置、材料使用、颜色、取向的变化。例如,显示为一体形成的元件可以由多个部分或元件构成,元件的位置可以颠倒或以其他方式改变,并且分立元件的性质或数量或位置可以改变或变化。在不脱离本公开的范围的情况下,还可以在所公开的元件和操作的设计、操作条件和布置中进行其他替换、修改、改变和省略。
本文中对元件位置(例如,“顶部”、“底部”、“上面”、“下面”)的提及仅用于描述附图中各种元件的取向。根据其他示例性实施例,各种元件的取向可以不同,并且这种变化旨在被本公开所包含。
Claims (15)
1.一种方法,包括:
由设备从一个或更多个相机接收对应于第一视图的第一图像,并且从所述一个或更多个相机接收对应于第二视图的第二图像;
由所述设备将所述第一图像和所述第二图像提供给运动估计器,所述运动估计器确定所述第一图像的第一视差偏移和所述第二图像的第二视差偏移;和
由所述设备生成从所述第一视差偏移导出的用于所述第一图像的第一深度缓冲器和从所述第二视差偏移导出的用于所述第二图像的第二深度缓冲器,以用于使用所述第一图像和所述第二图像渲染三维(3D)图像。
2.根据权利要求1所述的方法,还包括由所述设备将所述第一深度缓冲器、所述第一图像、所述第二深度缓冲器和所述第二图像作为图像输入提供给3D渲染器,以在一个或更多个显示器上显示一个或更多个3D图像。
3.根据权利要求2所述的方法,还包括由所述3D渲染器,使用所述第一深度缓冲器重新投影对应于所述第一图像的第一显示图像以供第一显示器呈现,并且使用所述第二深度缓冲器重新投影对应于所述第二图像的第二显示图像以供第二显示器呈现。
4.根据权利要求2所述的方法,还包括由所述设备至少基于所述第一图像的第一时间戳或所述第二图像的第二时间戳来确定与所述第一图像和所述第二图像相对应的场景的一个或更多个元素的一个或更多个历史姿态,并将所述一个或更多个历史姿态提供给所述3D渲染器以生成所述一个或更多个3D图像。
5.根据权利要求1所述的方法,还包括由所述设备校正所述第一图像或所述第二图像之一。
6.根据权利要求1所述的方法,还包括对所述第一视差偏移或所述第二视差偏移中的一个或更多个进行滤波或平滑中的一项。
7.根据权利要求1所述的方法,还包括由所述设备处理从所述运动估计器输出的所述第一视差偏移或所述第二视差偏移之一,以去除一个或更多个伪影。
8.根据权利要求1所述的方法,还包括由所述运动估计器,通过将所述第一图像与所述第二图像进行比较来确定所述第一视差偏移,并且通过将所述第二图像与所述第一图像进行比较来确定所述第二视差偏移。
9.一种系统,包括:
设备,其被配置为从一个或更多个相机接收对应于第一视图的第一图像,并且从所述一个或更多个相机接收对应于第二视图的第二图像;
图形处理单元,其包括运动估计器,并被配置为接收所述第一图像和所述第二图像;
其中,所述运动估计器被配置为确定所述第一图像的第一视差偏移和所述第二图像的第二视差偏移;和
其中,所述设备被配置为生成从所述第一视差偏移导出的用于所述第一图像的第一深度缓冲器和从所述第二视差偏移导出的用于所述第二图像的第二深度缓冲器,以用于使用所述第一图像和所述第二图像渲染三维(3D)图像。
10.根据权利要求9所述的系统,其中,所述3D渲染器被配置为使用所述第一深度缓冲器重新投影所述第一图像,并且使用所述第二深度缓冲器重新投影所述第二图像,以生成第一显示图像和第二显示图像。
11.根据权利要求9所述的系统,其中,所述图形处理单元还被配置为至少基于所述第一图像的第一时间戳或所述第二图像的第二时间戳来确定与所述第一图像和所述第二图像相对应的场景的一个或更多个元素的一个或更多个历史姿态,并将所述一个或更多个历史姿态提供给所述3D渲染器,用于生成第一显示图像和第二显示图像。
12.根据权利要求9所述的系统,其中,所述图形处理单元还被配置为校正所述第一图像或所述第二图像中的至少一个。
13.根据权利要求9所述的系统,其中,所述图形处理单元还被配置为从所述第一视差偏移或所述第二视差偏移中的至少一个中去除伪影。
14.根据权利要求9所述的系统,其中,所述运动估计器还被配置为通过将所述第一图像与所述第二图像进行比较来确定所述第一视差偏移,并且通过将所述第二图像与所述第一图像进行比较来确定所述第二视差偏移。
15.一种计算机可读介质,其包括处理器可执行指令,所述处理器可执行指令在被一个或更多个处理器执行时使所述一个或更多个处理器执行根据权利要求1至8中任一项所述的方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962820052P | 2019-03-18 | 2019-03-18 | |
US62/820,052 | 2019-03-18 | ||
US16/774,885 US11315328B2 (en) | 2019-03-18 | 2020-01-28 | Systems and methods of rendering real world objects using depth information |
US16/774,885 | 2020-01-28 | ||
PCT/US2020/021663 WO2020190553A1 (en) | 2019-03-18 | 2020-03-09 | Method and system for rendering a 3d image using depth information |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113574863A true CN113574863A (zh) | 2021-10-29 |
Family
ID=72515216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080021529.5A Pending CN113574863A (zh) | 2019-03-18 | 2020-03-09 | 使用深度信息渲染3d图像的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11315328B2 (zh) |
EP (1) | EP3942796A1 (zh) |
JP (1) | JP2022524683A (zh) |
KR (1) | KR20210139369A (zh) |
CN (1) | CN113574863A (zh) |
WO (1) | WO2020190553A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11792511B2 (en) | 2015-03-21 | 2023-10-17 | Mine One Gmbh | Camera system utilizing auxiliary image sensors |
EP3586269A4 (en) | 2017-02-22 | 2021-04-14 | Mine One GmbH | IMAGE RECONSTRUCTION FOR VIRTUAL 3D |
EP3422711A1 (en) * | 2017-06-29 | 2019-01-02 | Koninklijke Philips N.V. | Apparatus and method for generating an image |
WO2021006191A1 (ja) * | 2019-07-10 | 2021-01-14 | 株式会社ソニー・インタラクティブエンタテインメント | 画像表示装置、画像表示システムおよび画像表示方法 |
EP4018645A4 (en) * | 2019-08-20 | 2023-08-16 | Mine One GmbH | CAMERA SYSTEM USING AUXILIARY IMAGE SENSORS |
US11816757B1 (en) * | 2019-12-11 | 2023-11-14 | Meta Platforms Technologies, Llc | Device-side capture of data representative of an artificial reality environment |
US11190748B1 (en) * | 2020-11-20 | 2021-11-30 | Rockwell Collins, Inc. | Dynamic parallax correction for visual sensor fusion |
KR20220093985A (ko) * | 2020-12-28 | 2022-07-05 | 삼성전자주식회사 | 이미지 지연 보정 방법 및 이를 이용한 장치 |
CN112822480B (zh) * | 2020-12-31 | 2022-05-17 | 青岛小鸟看看科技有限公司 | Vr系统及其定位追踪方法 |
US11908100B2 (en) * | 2021-03-15 | 2024-02-20 | Qualcomm Incorporated | Transform matrix learning for multi-sensor image capture devices |
US20220327784A1 (en) * | 2021-04-09 | 2022-10-13 | Varjo Technologies Oy | Image reprojection method, and an imaging system |
KR20220156331A (ko) * | 2021-05-18 | 2022-11-25 | 삼성전자주식회사 | 이미지 지연을 보정하기 위한 전자 장치 및 방법 |
US20230128288A1 (en) * | 2021-10-27 | 2023-04-27 | Meta Platforms Technologies, Llc | Compositor layer extrapolation |
WO2024177293A1 (ko) * | 2023-02-21 | 2024-08-29 | 삼성전자주식회사 | 디스플레이를 통해 표시되는 가상 공간 상에 외부 공간에 대응하는 이미지를 표시하기 위한 전자 장치, 방법, 및 컴퓨터 판독 가능 저장 매체 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130169748A1 (en) * | 2011-12-30 | 2013-07-04 | Stmicroelectronics (Canada), Inc. | System and method for adjusting perceived depth of stereoscopic images |
US20130249904A1 (en) * | 2010-12-09 | 2013-09-26 | Seiji Kobayashi | Image processing device, image processing method, and program |
US20130301906A1 (en) * | 2012-05-11 | 2013-11-14 | Electronics And Telecommunications Research Institute | Apparatus and method for reconstructing three dimensional faces based on multiple cameras |
CN105474273A (zh) * | 2013-07-25 | 2016-04-06 | 微软技术许可有限责任公司 | 后期重投影 |
US20170276956A1 (en) * | 2012-08-06 | 2017-09-28 | Sony Corporation | Image display apparatus and image display method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100950046B1 (ko) * | 2008-04-10 | 2010-03-29 | 포항공과대학교 산학협력단 | 무안경식 3차원 입체 tv를 위한 고속 다시점 3차원 입체영상 합성 장치 및 방법 |
US9355436B2 (en) * | 2011-10-24 | 2016-05-31 | Texas Instruments Incorporated | Method, system and computer program product for enhancing a depth map |
US9401041B2 (en) * | 2011-10-26 | 2016-07-26 | The Regents Of The University Of California | Multi view synthesis method and display devices with spatial and inter-view consistency |
US20130176300A1 (en) | 2012-01-10 | 2013-07-11 | Thomson Licensing | Disparity maps in uniform areas |
GB2554633B (en) | 2016-06-24 | 2020-01-22 | Imperial College Sci Tech & Medicine | Detecting objects in video data |
US10401954B2 (en) * | 2017-04-17 | 2019-09-03 | Intel Corporation | Sensory enhanced augmented reality and virtual reality device |
US10437065B2 (en) * | 2017-10-03 | 2019-10-08 | Microsoft Technology Licensing, Llc | IPD correction and reprojection for accurate mixed reality object placement |
-
2020
- 2020-01-28 US US16/774,885 patent/US11315328B2/en active Active
- 2020-03-09 WO PCT/US2020/021663 patent/WO2020190553A1/en unknown
- 2020-03-09 EP EP20716313.0A patent/EP3942796A1/en not_active Withdrawn
- 2020-03-09 JP JP2021533511A patent/JP2022524683A/ja active Pending
- 2020-03-09 CN CN202080021529.5A patent/CN113574863A/zh active Pending
- 2020-03-09 KR KR1020217033128A patent/KR20210139369A/ko not_active Application Discontinuation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130249904A1 (en) * | 2010-12-09 | 2013-09-26 | Seiji Kobayashi | Image processing device, image processing method, and program |
US20130169748A1 (en) * | 2011-12-30 | 2013-07-04 | Stmicroelectronics (Canada), Inc. | System and method for adjusting perceived depth of stereoscopic images |
US20130301906A1 (en) * | 2012-05-11 | 2013-11-14 | Electronics And Telecommunications Research Institute | Apparatus and method for reconstructing three dimensional faces based on multiple cameras |
US20170276956A1 (en) * | 2012-08-06 | 2017-09-28 | Sony Corporation | Image display apparatus and image display method |
CN105474273A (zh) * | 2013-07-25 | 2016-04-06 | 微软技术许可有限责任公司 | 后期重投影 |
Also Published As
Publication number | Publication date |
---|---|
KR20210139369A (ko) | 2021-11-22 |
JP2022524683A (ja) | 2022-05-10 |
US20200302682A1 (en) | 2020-09-24 |
US11315328B2 (en) | 2022-04-26 |
WO2020190553A1 (en) | 2020-09-24 |
EP3942796A1 (en) | 2022-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11315328B2 (en) | Systems and methods of rendering real world objects using depth information | |
US11410331B2 (en) | Systems and methods for video communication using a virtual camera | |
US20200051269A1 (en) | Hybrid depth sensing pipeline | |
EP2992508B1 (en) | Diminished and mediated reality effects from reconstruction | |
CN109660783B (zh) | 虚拟现实视差校正 | |
JPWO2012056686A1 (ja) | 3次元画像補間装置、3次元撮像装置および3次元画像補間方法 | |
US8681182B2 (en) | Alternate viewpoint rendering | |
CN105516579A (zh) | 一种图像处理方法、装置和电子设备 | |
JPWO2021076757A5 (zh) | ||
CN109495733B (zh) | 三维影像重建方法、装置及其非暂态电脑可读取储存媒体 | |
KR20230097163A (ko) | 자동입체 텔레프레즌스 시스템들을 위한 3차원(3d) 얼굴 피처 추적 | |
CN110969706B (zh) | 增强现实设备及其图像处理方法、系统以及存储介质 | |
JP6168597B2 (ja) | 情報端末装置 | |
CN108027646A (zh) | 一种终端显示防抖方法及装置 | |
US20240236288A9 (en) | Method And Apparatus For Generating Stereoscopic Display Contents | |
US20240233205A1 (en) | Perspective Correction With Depth Clamping | |
WO2024054443A1 (en) | Temporally stable perspective correction | |
WO2024050105A1 (en) | Perspective correction with gravitational smoothing |
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 |
Address after: California, USA Applicant after: Yuan Platform Technology Co.,Ltd. Address before: California, USA Applicant before: Facebook Technologies, LLC |
|
CB02 | Change of applicant information |