微软专利分享HoloLens 2立体图像深度信息的“孔径、遮挡”解决方案

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

密集深度计算

映维网 2021年12月29日)用于校正视差问题的一种方法涉及执行从立体摄像头视角到用户眼睛视角的摄像头重投影。这需要执行校准步骤以确定立体摄像头和用户眼睛之间的物理定位差异。然后,在使用立体摄像头捕获立体图像对之后,执行基于立体图像对计算深度信息(例如深度映射)的步骤(例如,通过执行立体匹配)。随后,系统可以重新投影计算出的深度信息以对应于用户的左眼和右眼的透视图。

然而,基于立体图像对计算深度信息存在众多挑战。例如,对立体图像对执行立体匹配以生成深度信息涉及识别立体图像对的特定像素之间的差异。视差值包括一个图像中的像素与另一个图像中代表环境中公共3D点的对应像素之间的像素坐标差。

立体匹配算法可以识别以环境水平结构的像素为中心的第一图像中的像素块,并且可以确定第二图像中沿着相同扫描线和相同水平结构的多个像素块对应于第一图像的像素块。所以,立体匹配算法可能无法准确识别表示环境中相同3D点的不同图像中的像素对,特别是对于与扫描方向对齐的环境中的结构。这个问题通常被称为“孔径问题”。

除了孔径问题外,基于立体图像对计算深度信息存在其他挑战。例如,一对立体摄影头中只有一个捕获环境中的特定3D点。在一个示例中,对于靠近立体摄像头对的对象,一个摄像头可以捕获对象的一部分,而对象的一部分可以被另一个摄像头的视场遮挡。这个问题通常被称为“遮挡问题”。

在名为“Dense depth computations aided by sparse feature matching”的专利申请中,微软介绍了一种相应的解决方案。

请注意图4A-4C。头显400可包括左微光摄像头405、右微光摄像头410和热摄像头415。头显400可以使用左微光摄像头405、右微光摄像头410和热摄像头415拍摄图像,以生成稀疏视差图和/或密集视差图(参见图6A-7B)。在这方面,可以使用不同模式的摄像头来捕获不同的图像。例如在一个实例中,头显使用左微光摄像头405捕获左微光图像,使用右微光摄像头410捕获右微光图像,以及使用热摄像头415捕获热图像。另外,在其他实例中,头显400使用左(或右)微光图像和热图像生成稀疏视差图,或使用左、右微光图像和稀疏视差图生成密集视差图。

密集视差图指由尝试为每个视差图的像素获取视差值的算法所生成的视差图。例如,密集视差图可以存储视差图的所有像素的深度信息,或者至少一定百分比的视差图像素,例如超过50%的像素。相反,疏视差图指由不尝试为每个视差图的像素获取视差值的算法所生成的视差图。例如,稀疏视差图可以存储视差图的一定百分比像素的深度信息,例如小于50%的像素,或者甚至更优选地,小于5%的像素。

图4B示出了头显400的左微光摄像头405和右微光摄像头410。在一个实施例中,左微光摄像头405和右微光摄像头410是一对立体微光摄像头,其配置为捕捉用于执行立体匹配的立体微光图像对,以识别水平方向的像素差异。图4C示出了头显400的热摄像头415,其配置成捕获热图像。

平面435具有相对于头显400的平面对准。平面430和435相对并平行于头显400的主对准445定位/定向,使得当头显400定位在直立的主对准中以供使用时,平面430和435为水平面。但在使用期间,头显400将随着用户的头部移动,使得头显400的对准改变。在这种移动期间,平面430和435将在头显400的主对准445改变的同时改变,从而从用户头部对准的角度捕捉由摄像头(405、410、415)捕获的图像。

在其他实施例中,平面430和435为共面,使得三个参考摄像头都在相对于头显的相同水平面对齐。

图4C将平面435描绘为根据垂直偏移440与平面430的偏移。头显400的热摄像头415配置为从与由左微光摄像头405和/或右微光摄像头410捕获的微光图像的透视图垂直偏移的透视图捕获热图像。所以,系统在非水平方向计算由头显400捕获的热图像和微光图像之间的像素差异。因此,由热摄像头415捕获的热图像能够提供至少部分补偿孔径问题的基础。

另外,由于热摄像头415提供附加透视图(例如,附加于左微光摄像头405和右微光摄像头410的透视图),由热摄像头415捕获的热图像提供了至少部分补偿遮挡问题的基础。

图5示出了使用左微光摄像头405、右微光摄像头410和热摄像头415拍摄微光环境555的图像。微光环境555是一个简单的环境,包括位于建筑物房间内的桌子560和球565。

如上所述,由于头显400的摄像头安装在头显400的不同位置,因此头显400的摄像头的透视图彼此至少略有不同。例如,图5示出了与左微光摄像头405相关联的左微光视场505,与右微光摄像头410相关联的右微光视场510,与热摄像头415相关联的热视场515。其中,这三个视场均存在偏移情况。

图6A示出了由头显摄像头捕获图5微光环境555的图像。例如,图6A示出了使用左微光摄像头405捕获/生成的左微光图像605、使用右微光摄像头410捕获/生成的右微光图像610以及使用热摄像头415捕获/生成的热图像615。

左微光图像605和右微光图像610似乎放大了微光环境555中的环境光,提供了使用户能够更准确地感知微光环境555中的对象的图像。例如,当用户在没有帮助的情况下查看微光环境555时可能难以感知桌子560(参见图5),用户可以更容易地感知在左微光图像605(参见图6A)中表示的桌子660A。

在一个实例中,热图像615提供在微光环境555中的对象的热特征的视觉表示。例如,热图像615的桌子660C包括桌子560在微光环境555中的热特征的视觉表示。就此而言,热图像615中表示的纹理不同于左微光图像605和右微光图像610中表示的纹理。

如上所述,系统使用热图像615和左微光图像605或右微光图像610中的至少一个生成稀疏视差图。

图6B示出了识别左微光图像605和热图像615的特征点和特征描述符的示例。在一个实例中,特征点是指图像中包含丰富纹理信息(例如边缘、角和/或其他易于识别的结构)的像素。特征描述符(或称为“特征向量”)是从识别的特征点周围的局部图像/像素块提取图像数据/统计信息的结果。特征描述符可以用作特征点的标识符,特征描述符围绕该特征点居中。可以基于以特征点为中心的图像块内像素的梯度幅度(例如强度和/或颜色的变化)和/或方向(例如边缘方向)的直方图来识别特征描述符。

系统可采用各种技术来识别特征点和/或特征描述符,例如SIFT和SURF等。

图6B示出了与左微光图像605的桌子660A相关联的各种特征点。例如,图6B示出了桌子660A一角的特征点620A、620E和620F。图6B同时示出了桌子660A边缘的特征点620B、620C和620D。另外,图6B示出了分别与特征点620A、620B、620C、620D、620E和620F相关联的特征描述符625A、625B、625C、625D、625D、625E和625F。

图6B进一步示出了与热图像615的桌子660C相关联的各种特征点。例如,图6B示出了桌子660A一角的特征点630A、630E和630F。图6B同时示出了桌子660A边缘的特征点630B、630C和630D。另外,图6B示出了分别与特征点630A、630B、630C、630D、630E和630F相关联的特征描述符635A、635B、635C、635D、635D、635E和635F。

如图6B所示,尽管热图像615和左微光图像605是使用不同模式的摄像头拍摄,热图像615的桌子660C的特征点630A-630F和特征描述符635A-635F对应于左微光图像605的桌子660A的特征点620A-620F和特征描述符625A-625F。换句话说,桌子660C的特征点630A-630F和桌子605的特征点620A-620F分别表示捕获环境的相同3D点。

在一个实例中,使用一个模态的摄像头捕获的图像可能无法表示在使用不同模态摄像头捕获的图像中的特征。例如,热图像可能无法捕获等温环境部分的边缘和/或角,而微光图像则可能捕获这一类边缘和/或角。

现在注意图6C,图6C示出了执行特征匹配680以识别左微光图像605和热图像615内彼此对应的特征点。为清楚起见,图6C集中于执行特征匹配680以识别热图像615内的单个特征点(即特征点630B),其对应于左微光图像605内的单个特征点(即特征点620B)。

对于第一摄像头图像的特征点,第二摄像头图像中的对应特征点将位于第二摄像头图像中的极线。在这方面,极线可以定义用于识别由一个摄像头捕获的图像中的特征点的搜索范围,所述特征点对应于由另一个摄像头捕获的图像中的特征点。与在整个图像搜索对应的特征点相比,使用极线定义用于识别对应特征点的搜索范围可以提高计算效率。

再次参考图6C,系统执行特征匹配680,以通过识别热图像615中的极线640B来识别热图像615中与左微光图像620B中的特征点620B相对应的特征点。例如系统可以通过从左微光摄像头405的光学中心投射光线穿过特征点620B,并将光线投射到热摄像头415的前图像平面来识别外极线640B。

在一个实例中,系统沿着极线640B搜索与以特征点620B为中心的图像片具有最高对应性的图像片。例如在一个实例中,系统通过沿对极线640B搜索来确定热图像615的特征描述符635B与左微光图像605的特征描述符625B具有最高对应性。因此,系统确定特征点630B(与特征描述符635B相关联)对应于特征点620B(与特征描述符625B相关联)。

如上所述,系统可执行特征匹配680以查找热图像615内与左微光图像内的特征点相对应的任意数量的特征点。例如,系统可基于左微光图像605的一组特征点(例如,图6B中的特征点620A-620F)识别热图像615内的一组极线。系统同时可以沿着热图像615中的极线搜索,以识别热图像615中对应于与左微光图像605的特征点集相关联的特征描述符的集合。

图6D示出了基于左微光图像605和热图像615的匹配特征点生成稀疏视差图650的示例。图6D的稀疏视差图650包括特征视差值690。在一个实现中,系统基于左微光图像605中的匹配特征点对和热图像615中的对应特征点识别特征视差值690。

图7A和7B示出了基于稀疏视差图650生成密集视差图750的示例。在一个实现中,系统(应用左微光图像605、右微光图像610和稀疏视差图650作为用于生成密集视差图750的输入。然后,系统执行立体匹配操作780以应用左微光图像605、右微光图像610和稀疏视差图650作为用于生成密集视差图750的输入。

图8示出,在一个实例中,系统以附加或替代方式应用稀疏视差图650以生成密集视差图750。具体地,图8示出了应用空间滤波830来识别密集视差图750的一个或多个像素的视差值的系统。

图8示出了密集视差图750的像素810,对于所述像素,来自图7A的立体匹配操作780未能获得视差值(例如由于遮挡问题)。像素810表示图5中的表560的边缘,所述边缘可能从左微光摄像头405的透视图中可见,但在右微光摄像头410和热摄像头415的透视图中被遮挡。

系统识别围绕密集视差图750的像素810的像素坐标815A的窗口。系统进一步识别稀疏视差图650中像素坐标815B的对应窗口,并识别像素坐标815B的对应窗口内像素的特征视差值690。

在一个实例中,系统使用稀疏视差图650的像素坐标815B的对应窗口内的像素的特征视差值690来执行空间滤波830,以生成密集视差图750的像素810的视差值。例如,系统可以应用中值滤波器、平均滤波器和/或任何其他类型的空间滤波器,以基于像素坐标815B的对应窗口内的像素的特征视差值690来生成像素810的视差值。应当注意,尽管在图8中没有明确描述,但用于生成像素810的视差值的空间滤波830可以利用密集视差图750的像素坐标815A窗口内围绕像素810的一个或多个像素的视差值。

通过上面的描述,系统可以通过稀疏特征匹配来帮助密集计算深度。名为“Dense depth computations aided by sparse feature matching”的专利申请最初在2020年6月提交,并在日前由美国专利商标局公布。

相关专利

Microsoft Patent | Dense depth computations aided by sparse feature matching

https://patent.nweon.com/21463