微软专利介绍HoloLens用于视差重投影的时间校正系统和方法

HoloLens QQ群493967447

查看引用/信息源请点击:映维网

视差重投影的时间校正系统和方法

映维网 2021年12月31日)尽管现有的混合现实系统可以配置不同类型的摄像头,但通过混合现实设备呈现摄像头捕获的图像依然存在众多挑战。由于摄像头的物理定位与用户眼睛的物理定位属于物理分离,所以不能简单地直接向用户渲染捕获的图像。具体地说,用户眼睛定位和立体摄像头定位之间的垂直偏移将导致视图误差,所以用户将会感知到具有不正确深度的真实世界对象。

在名为“Systems and methods for temporal corrections for parallax reprojection”的专利申请中,微软介绍了一种相关主题的发明。具体来说,其主要解释了一种用于视差重投影的时间校正系统和方法。

现在注意图4A,图4A示出了头显400生成包括物理对象405的环境的深度映射410。头显400包括立体摄像头对(例如任何模态的摄像头),所述立体摄像头对配置为捕获立体图像对,头显400配置为在其上执行深度计算(例如立体匹配)以生成深度映射410。

深度映射410包括物理对象405的深度信息415。深度信息415表示在拍摄用于生成深度映射410的图像(例如立体图像)时从头显400的角度看头显400和物理对象405的各种表面之间的距离。图4A将用于生成深度映射410的图像的拍摄时间表示为“时间点1”,并且图4A将头显400在时间点1期间的姿势表示为“姿势1”。头显400可以使用传感器250来识别姿势,例如惯性和/或视觉追踪系统。

图4B示出了头显400获取包括物理对象405的环境的捕获图像420。在一个实例中,使用用于捕获用于生成深度映射410的立体图像对的同一立体摄像头对来捕获捕获图像420。例如,图4B的捕获图像420可以表示由用于生成深度映射410的立体摄像头对捕获的后续立体图像对。因此,捕获的图像420可以由任何形态的一个或多个摄像头捕获,例如可见光摄像头210、微光摄像头215、热成像摄像头220、近红外(NIR)摄像头(在800 nm到2 um范围内)、紫外(UV)摄像头225和/或其他。

拍摄图像420包括物理对象405的纹理信息425。纹理信息425从与时间点2的姿势2相关联的头显400的视角表示物理对象405的各种表面的外观、特征、颜色、一致性等。如图4B所示,在时间点1之后的第二时间点(时间点2)捕获捕获图像420。另外,图4B示出头显400在时间点2与姿势2相关联,其与姿势1不同。

图4C描绘了第三时间点(时间点3)和第三姿势(姿势3)的头显400。时间点3在时间点1和2之后,并且如图4C所示,姿势3不同于姿势1和2。图4C以虚线在时间点3和姿势3描绘HMD 400。在一个实例中,时间点3是未来时间点,并且姿势3是预测在未来时间点3与头显400关联的预测姿势。头显400可以基于对在时间点3之前头显400的姿势变化的分析来识别预测的姿势。

图4C示出,在时间点3,头显400正在显示或将显示包括物理对象405的表示的显示图像430。在这个意义上,图4C的时间点3可以视为系统将在其上显示显示图像430的显示时间点,并且图4C的姿势3可以视为显示姿势。

在一个实施例中,显示图像430是环境的合成透视图像,并且头显400使用来自深度映射410的深度信息415和来自捕获图像420的纹理信息425生成显示图像430。在一个实施例中,显示图像430是经视差校正的图像,而在其他实例中,不执行视差校正以生成显示图像430。

图4C的显示图像430示出了用于在显示图像430内描绘物理对象405的预期位置435。但作为说明,图4C示出了显示图像430、捕获图像420和深度映射410之间存在时间偏移的情况。例如,图4C示出了显示图像430内的物理对象405的描绘的预期位置435与捕获图像420内和深度映射410内的物理对象405的描绘位置之间的差异。例如,深度应黑色410内的物理对象405的描绘在深度图410的左侧区域,拍摄图像420内的物理对象405的描绘在拍摄图像420的中心区域,并且显示图像430内的物理对象405的描绘的预期位置435在显示图像430的右侧区域中。

例如,由于深度映射410与姿势1相关联,捕获图像420与姿势2相关联,并且显示图像430与姿势3相关联,因此可能发生这种差异,这在图4C中示为在不同时间点发生的不同姿势。

图5A-5C示出了用于寻址潜在时间偏移的示例性技术。

图5A示出了使用与姿势1和时间点1相关联的深度映射510生成物理对象405的3D表示505的头显500。头显500对应于上文所述的头显400。具有深度信息515的深度映射510对应于图4A-4C中具有深度信息415的深度映射410。物理对象405(或场景中的其他对象)的3D表示505可以采用任何合适的形式,例如,多边形网格、点云、非均匀有理B样条曲面模型等。

如图5A所示,头显500通过将深度映射510中表示的深度信息515取消投影到3D空间来生成物理对象405的3D表示505。例如,图5A示出了在深度映射510的深度信息515的各个点上执行的非投影操作540。

在一个实施例中,对深度信息点515执行非投影操作540可概念化为将光线从基于深度信息点515的姿势相关原点延伸到基于与深度信息点515相关联的深度值的距离。例如,头显500可基于姿势1将姿势相关原点识别为光学中心,姿势1是用于生成深度映射510的图像被捕捉的姿势。在一个实施例中,光学中心取决于非投影操作540操作的深度信息515点的一组坐标(例如一组像素坐标)。头显500可以基于深度信息515的点从姿势相关原点投射光线。头显500可以基于与深度信息515的点相关联的深度值将射线投射到一定距离,从而在3D空间中提供3D表示505的3D点。

图5B示出了当头显500与姿势2相关联时,从在时间点2捕获的物理对象405的2D捕获图像520识别纹理信息525的头显500。

如图5B所示,头显500通过基于姿势2投影3D表示505,从捕获图像520识别纹理信息525。图5B示出了在3D表示505的各个点上执行的投影操作550。

在一个实施例中,投影操作550可以是与上述非投影操作540相反的操作。例如,投影操作550可以概念化为将光线从三维表示505的三维点向姿势相关点延伸。头显500可基于姿势2将姿势相关点识别为光学中心,姿势2是捕获图像520的姿势。头显500可以从3D表示505的3D点向识别出的姿势相关点投射光线,并且射线可以从捕获图像520识别纹理信息525的点。头显500然后可以将纹理信息525的识别点与光线从中投射的3D表示505的3D点相关联。

由于投影操作550是基于与拍摄图像520相关联的姿势(即姿势2)执行,即使在时间偏移引起捕获图像520内和用于生成3D表示的深度图510内的物理对象405的描绘位置存在差异,投影操作550都可以将表示物理对象405的部分的3D表示505的3D点与表示物理对象405的相同部分的纹理信息525的对应2D点对齐。

图5C示出了创建环境的合成图像570的头显500,所述环境包括表示物理对象405的渲染对象575。图5C同时示出了头显500在显示时间点(即时间点3)显示合成图像570。如上所述,头显500识别与显示合成图像570的显示时间点(即时间点3)相关联的显示姿势(即姿势3)。例如,显示时间点可以是未来时间点,并且显示姿势可以是与未来时间点相关联的预测姿势。

图5C示出,头显500至少部分地通过使用姿势3(即,显示姿势)投影3D表示505来创建合成图像570。例如,在一个实施例中,头显500对3D表示505的3D点执行投影操作560。

投影操作560基于姿势3而不是姿势2执行(例如与投影操作550相反)。例如,头显500可基于姿势3识别姿势相关视点,姿势3是头显500将显示合成图像570的姿势。姿势相关视点可以基于用户的一只或多只眼睛的定位,而头显500与姿势3相关联。头显500可以从3D表示505的3D点向所识别的姿势相关视点投射光线,并且射线可以识别合成图像570的一组像素坐标。

头显500使用识别出的合成图像570的像素坐标集以及与3D表示的投影3D点相关联的几何体和/或纹理信息来构建合成图像570的像素。

由于投影操作560是基于显示姿势(即姿势3)执行的,因此投影操作560将表示物理对象405的三维表示505的三维点与用于在合成图像570内描绘物理对象405的预期位置435对齐。即使在时间偏移引起合成图像570、捕获图像520和/或深度图510内的物理对象405的描绘位置或预期位置存在差异,都将发生所述对准。

图5C示出了应用纹理信息580的渲染对象575的合成图像570。如上所述,3D表示505的至少一些3D点与来自捕获图像520的纹理信息525相关联。因此,图5C示出,应用于合成图像570的渲染对象575的纹理信息580基于与根据投影操作550和560投影的3D表示505的3D点相关联的纹理信息525。

头显500在创建和/或显示合成图像570时执行附加操作。例如,在一个实现中,头显500修改3D表示的投影(和/或执行附加重投影),以基于用户的一个或多个眼睛的透视图生成一个或多个经视差校正的合成图像570。

所以,头显500可以以各种方式基于3D表示505的投影(根据投影操作560)和纹理信息580(基于纹理信息525)生成用于在显示时间点显示的合成图像570。例如,在一个实例中,头显500基于3D表示505的投影(根据投影操作560)直接修改捕获图像520(例如通过应用每像素变换),从而生成合成图像570。

在其他情况下,头显500渲染三维表示505以提供三维表示505的二维视图,并根据捕获图像520生成/更新/修改具有纹理信息525的UV贴图。然后,头显可以将UV贴图应用于渲染的3D表示505。在一个实例中,渲染3D表示和生成/更新/修改UV映射以提供合成图像570(而不是修改捕获图像520),这可以至少部分地将生成合成图像570的计算负担分配给GPU,从而有利地为具有有限资源的系统分配计算开销。

图6A示出了当头显600与姿势3相关联时,从在时间点3捕获的物理对象405的附加捕获图像630识别附加纹理信息635的头显600。在图5C中,时间点3和姿势3分别指HMD将显示合成图像的显示时间点和显示姿势。相比之下,图6A中的时间点3和姿势3分别指捕捉环境的附加捕获图像630的时间点和姿势。

图6A示出了附加捕获图像630中描绘的物理对象405的纹理信息635不同于捕获图像620的纹理信息625。例如,捕获图像620和附加捕获图像630可以使用不同模式的摄像头(例如一个或多个微光摄像头和一个或多个热成像摄像头)捕获。

如图6A所示,头显600通过基于姿势3执行投影操作640,将三维表示605的三维点与来自附加捕获图像630的附加纹理信息635相关联。图6A的投影操作640类似于上文参考图5B描述的投影操作550。然而,它是基于姿势3而不是姿势2执行投影操作640(例如与投影操作550相反)。省

头显600执行一组投影操作(例如投影操作550)以从3D表示605的点的捕获图像620识别纹理信息625,并且随后执行一组投影操作640,以从至少一个点的附加捕获图像630识别附加纹理信息635三维表示605的至少一些相同的三维点。因此,3D表示605可与来自多个源的纹理信息。

用于捕获捕获图像620和附加捕获图像630的摄像头可以同步,使得由两个摄像头捕获的图像具有公共时间戳。然而,由于不同的摄像头具有不同的位置,头显依然可以执行单独的投影操作,以从不同摄像头捕获的图像获得纹理信息。

图6B示出了头显600创建和显示包括表示物理对象405的渲染对象675的合成图像670。在一个实例中,包括渲染对象675的合成图像670是通过基于显示时间点处的显示姿势在3D表示605的点上执行投影操作660来生成。

图6B的姿势4和时间点4可分别视为用于显示合成图像670的显示姿势和显示时间点。此外,在3D点上执行的投影(例如投影操作660)以生成用于在显示时间点和显示姿势处显示的合成图像可被视为显示投影。

图6B示出,在一个实现中,合成图像670的渲染对象675包括基于多个纹理信息源的纹理。例如图6B示出了渲染对象675的纹理信息680,其包括来自捕获图像620的纹理信息625和来自附加捕获图像630的附加纹理信息635的纹理分量。因此,合成图像670可以以补偿不同捕获图像之间的任何时间偏移的方式组合来自不同捕获图像(或其他源)的多个纹理。

如图6B所示,与捕获图像620和附加捕获图像630相关联的姿势和时间点(分别在时间点2和3的姿势2和3)位于显示姿势和显示时间点之前。然而,与捕获图像620和附加捕获图像630相关联的姿势和时间点可以在与用于生成3D表示605的深度映射相关联的第一姿势和第一时间点之后。因此,与提供用于生成合成图像的纹理信息的捕获图像相关联的姿势和时间点可分别视为中间姿势和中间时间点。类似地,在3D点上执行的用于从3D点的捕获图像识别纹理信息的投影可被视为中间投影。

相关专利Microsoft Patent | Systems and methods for temporal corrections for parallax reprojection

通过上面描述的方式,系统可以执行用于视差重投影的时间校正。名为“Systems and methods for temporal corrections for parallax reprojection”的微软专利申请最初在2020年6月提交,并在日前由美国专利商标局公布。

HoloLens QQ交流群493967447

更多阅读推荐......

专栏