/ Nweon / 0浏览

微软XR专利分享:准确对齐头显摄像头、控制器摄像头的图像,改善MR透视画面



映维网Nweon
2024年12月18日

)现在的AR/VR控制器已经开始搭载传感器并实现自追踪功能。换句话说,控制器摄像头和头显摄像头可以同时捕获环境。

通过结合并对齐两个摄像头捕获的图像,系统可以改善头显的透视画面。然而,由于头显摄像头和控制器摄像头彼此独立移动,所以准确对齐图像以生成复合透视图像存在诸多挑战。

在日前公布的两份专利申请中,
微软
就介绍了一种准确对齐头显摄像头和控制器摄像头的图像,从而改善头显的透视画面的方法,涉及确定用于对齐由不同图像传感器捕获的场景内容的运动模型,以及用于选择运动模型以对齐不同图像传感器捕获的场景内容。

在一个实施例中,系统通过从两个图像中提取特征,使用提取的特征确定图像之间的特征对应,并使用特征对应来计算可用于将像素从一个图像映射到另一个图像的运动模型,将由头显摄像头捕获的图像与控制器摄像头捕获的图像对齐。运动模型可以定期更新/计算,以方便不同摄像头拍摄的图像连续对齐。

如上所述,系统摄像头和控制器摄像头在位置上彼此偏移,并且彼此独立地移动。图2提供了位置上彼此偏移的头显摄像头202和控制器摄像头204的概念表示。图2同时描绘了场景内的前景对象场景点206和背景对象场景点208,它们均由控制器摄像头204捕获。

由于前景对象场景点206和背景对象场景点208的场景深度不同,所以可以在头显摄像头202的图像平面214的不同位置210和212放置由控制器摄像头204捕获的场景部分的描述。这取决于前景对象场景点206或背景对象场景点208是否对用于生成描述的运动模型具有更大的影响。

由于运动模型不断更新以方便控制器摄像头204和头显摄像头202捕获的图像对齐,所以不同场景深度的不同对象(特征)对运动模型计算的影响可能会发生变化。

不同深度的不同对象对运动模型计算的贡献变化可导致控制器摄像头204在头显图像捕获的场景内容描述定位突然中断,而这种中断和/或振荡会通过引入分散注意力的伪影来减损用户体验。

在微软提出的发明中,可以利用来自不同摄像头捕获的图像的特征对应的不同子集来生成同一时间点的不同运动模型。例如,一个运动模型的参数可以主要基于在第一深度的一个或多个对象的特征对应来生成,而第二个运动模型的参数可以主要基于在第二深度的一个或多个对象的特征对应来生成。

为与单个时间点相关的图像对提供替代运动模型可允许系统将在一个控制器摄像头图像中捕获的场景内容的不同描述覆盖到头显图像。

另外,可以从多个可用的运动模型中进行选择,以基于时间数据和/或基于控制器摄像头图像中的焦点生成输出图像。这样的功能可以有益地减少描绘由多个摄像头捕获的场景内容的输出图像中的分散振荡伪影,并可以提高这样的输出图像的准确性。


确定运动模型

图3示出,用户302操作头显304和用户仪器306以参与混合现实体验。在图3的示例中,用户仪器306包括配置为与头显304一起使用的手持控制器。

在图3的示例中,头显304和用户仪器306各自包括相应的图像传感器,均配置为捕获用户302所处环境的图像。例如,图3示出了由头显304的图像传感器捕获的图像320和由用户仪器306的图像传感器捕获的图像330。

在图3的示例中,以暂时同步的方式进行图像320和330的采集。球308和盒310相对于头显304和用户仪器306的图像传感器位于场景内的不同深度,其中球308位于离图像传感器较近的位置(在前景中),而盒位于离图像传感器较远的位置(在背景中)。

图3进一步描述了在捕获图像320之前由头显304的图像传感器捕获的先前图像340,在捕获图像330之前由用户仪器306的图像传感器捕获的前面图像350。因此,头显304和用户仪器306的图像传感器可以捕获暂时连续的图像帧。

尽管用户仪器306和头显304在物理上彼此不受束缚,但可以计算一个或多个运动模型,以促进由用户仪器306和头显304图像传感器捕获场景内容的对齐。可以利用这种运动模型来生成描述、高亮、覆盖或以其他方式强调由两个图像传感器捕获的场景部分的输出图像。

用户仪器306的图像传感器可称为参考图像传感器或参考摄像头,所以捕获的图像称为参考图像/参考图像。类似地,头显304的图像传感器称为匹配图像传感器或匹配摄像头,所以捕获的图像称为匹配图像/匹配图像。

图4A示出了基于不同图像传感器捕获的图像的特征对应生成运动模型。特别地,图4A示出了图像320(由头显304的匹配摄像头捕获)和图像330(由用户仪器306的参考摄像头捕获)。

基于所提取的特征描述符,系统可以执行描述符匹配以获得特征对应402。特征对应402包括来自不同图像320和330的特征描述符对,所述图像320和330被确定为描述所捕获场景中的相同物理点或对象。

图4A显示,特征对应402可以基于前景特征404(例如在图像320和330中表示的球308)、背景特征406(例如在图像320和330中表示的盒子310)和/或场景中任何深度的任何对象。可以根据发明利用任何合适的特征提取技术,

图4A描述了系统可以利用特征对应402来执行运动模型计算408。运动模型计算408可以采用各种技术。例如当运动模型计算408利用RANSAC时,运动模型计算408涉及确定特征对应的内值集410和特征对应的离群值集412。

在一个实施例中,内值集410和离群集412与来自图像320和330所表示的场景内不同深度的不同对象的特征相关联。例如,内值集410可主要包括用于球308的特征的特征对应,而离群集412可主要包括用于与盒310相关联的特征对应的特征对应,反之亦然。

可以通过从输入特征对应402随机采样并使用随机采样的特征对应拟合初步运动模型来确定内值集410,其中特征对应试图将一个图像中的特征点/描述符映射到另一个图像中的相应特征点/描述符。

然后可以针对初步运动模型测试剩余特征对应402以计算每个剩余特征对应的误差。导致满足一个或多个阈值/条件的错误的特征对应可以认为是内值集,并用于确定初步运动模型的初步模型参数。导致误差未能满足阈值/条件的特征对应视为初步离群值,不用于确定初步运动模型的初步模型参数。

在确定初步运动模型的初步模型参数后,根据所有特征对应402对初步运动模型进行测试,以确定初步运动模型对整个集合的拟合程度。可以将产生令人满意的误差值的特征对应添加到先验集410中,将剩余的特征对应分配给离群集412。

如果所述先验集410满足预定条件,则可使用所述先验集410确定由所述运动模型计算408输出的运动模型414的参数416。否则,运动模型计算408可以迭代任意次数,以尝试收敛于合适的运动模型414。

运动模型414可以采取各种形式,例如3D旋转模型、单应变换模型、仿射或相似变换,和/或任何参数化或其他类型的模型(例如,实现平移、旋转、缩放和/或其他组件的模型)。

利用特征对应402通过运动模型计算408确定的运动模型414可用于将来自参考图像330的像素映射到匹配图像320以生成输出图像。然而,所捕获场景中的对象可能会影响运动模型414。随着时间的推移,不同深度的不同对象的特征可能主要促成了内值集410,这可能导致运动模型414随时间的快速变化。随着时间的推移,运动模型414的快速变化会导致输出图像中的伪影。

所以,可以使用相同的特征对应计算一个或多个额外的运动模型,并选择运动模型以强制时间一致性的方式生成输出图像。

图4B示出基于来自参考摄像头和匹配摄像头捕获的图像的特征对应的子集生成第二运动模型。具体而言,图4B示出了一组修改后的特征对应418,其描述为包括通过运动模型计算408确定的特征对应的离群集412(并省略了先验集410)。

在一个实施例中,系统利用修改后的特征对应集418执行运动模型计算420,以生成具有单独参数428的另一运动模型426。运动模型计算420可以采用与运动模型计算408类似的技术,以确定运动模型426的参数428。

通过实施上述技术,可以获得多个运动模型,其中包括基于与位于不同深度的场景中对象相关联的特征对应的参数。例如,在前景特征404主要贡献于内值集410的示例中,离群集412可以主要包括背景特征406。

所以,运动模型414可主要受前景特征404的影响,运动模型426可主要受背景特征406的影响。通过基于在单个时间点捕获的图像的特征获得多个运动模型,系统可以选择多个运动模型,以一种能够随时间强制执行运动模型的时间一致性的方式为单个时间点生成输出图像。

图4C示出了基于匹配摄像头和参考摄像头分别捕获的前面图像340和350而生成的前面运动模型430。可以利用用于生成运动模型414和/或426的技术来生成上述运动模型430,例如通过利用从上述图像340和350确定的上述特征对应来执行运动模型计算。

匹配摄像头和参考摄像头的位置在捕获上述图像340和350与捕获图像320和330之间变化。所以,可以利用匹配摄像头和参考摄像头的惯性追踪数据432(或其他位置数据)来修改或更新先前运动模型430,以解释惯性追踪数据432中表示的位置变化,从而产生对齐的先前运动模型434。

可利用对齐的先前运动模型434来强制在先前时间点和当前时间点的输出图像之间的时间一致性。

例如,图4D示出基于运动模型414与对齐的先前运动模型434之间的比较436,和运动模型426与对齐的先前运动模型434之间的比较438识别最终运动模型440。

比较436和438可以利用任何技术或功能来评估两个模型之间的相似性。在一个实施例中,其中对齐的先前运动模型434和运动模型414和426包括3D旋转矩阵,比较436可以包括计算对齐的先前运动模型434的外观向量与运动模型414之间的角度,并且比较438可以包括计算对齐的先前运动模型434的外观向量与运动模型426之间的角度。

基于比较436和438,系统可以从运动模型414和426中选择最终运动模型440作为与对齐的前运动模型434相似性最大的运动模型。这种功能可以增强与连续时间点相关的运动模型的时间一致性,从而减少输出图像中的振荡和/或其他伪影。

图4E示出使用最终运动模型440和分别由匹配摄像头和参考摄像头捕获的图像320和330生成输出图像450。在图示例中,输出图像450包括由参考摄像头覆盖在匹配摄像头捕获的匹配图像320。如上所述,输出图像可以采取其他形式,这样的参考图像330使用最终运动模型440叠加到匹配图像320。

对于系统选择的用于使用匹配图像320和参考图像330生成输出图像的最终运动模型,其可以用作用于选择随后的最终运动模型,以使用随后的匹配图像和随后的参考图像生成随后的输出图像的先前运动模型。


选择运动模型

在一个实施例中,从可用的运动模型中选择运动模型以生成特定时间点的输出图像是有利的。用户可以依赖输出图像来描述由参考摄像头和匹配摄像头捕获的场景部分,以确定参考摄像头指向的场景中的对象。

然而,用于生成此类输出图像的运动模型可能会受到参考摄像头捕获的非参考摄像头视场中心对象的严重影响。例如在参考图像330中,盒子310的边缘和角可以比球308的内值集提供更多的特征对应。所以,输出图像可能无法准确地表示参考摄像头的视场中心指向场景中球308的一部分。

所以,可以选择运动模型,从而以对焦于准确表示由参考摄像头捕获场景部分的方式生成输出图像。例如,从参考图像(中心)定义参考patch,并将参考patch与与不同运动模型关联获得的匹配patch进行比较。可以选择与与参考patch最相似的匹配patch相关联的运动模型来对齐参考图像和匹配图像以生成输出图像。

图5A描绘了从参考图像330的图像数据定义的参考patch502。参考patch 502包括参考图像330的连续像素的子集。例如,参考patch502可以包括位于任何尺寸的参考图像330的中心的像素patch。

图5A所示的运动模型可视为候选运动模型,可潜在地用于对齐参考图像330和匹配图像320的图像内容以生成输出图像。如上所述,系统可以生成与每个候选运动模型相关联的匹配patch,以便与参考patch进行比较,从而确定要使用哪个运动模型来生成输出图像。

图5A示出了使用运动模型414和参考patch502来生成与运动模型414关联的匹配patch504。具体地,图5A描绘了参考patch502的像素坐标530,并描绘了像素坐标530与匹配图像320的相应像素坐标532的映射。

在图5A示例中,在确定像素坐标530对应的像素坐标532的情况下,系统使用匹配图像320在对应像素坐标532处的像素值来定义匹配patch504的像素538。像素538与参考patch502的像素坐标530具有相同的像素坐标。

参考patch502的所有像素坐标可通过运动模型414映射到匹配图像320的相应像素坐标,并可利用相应像素坐标定义匹配patch504的像素值。

图5B说明,可以执行与上述参考图5A讨论的技术类似的技术,以利用运动模型426将参考patch502的像素坐标映射到匹配图像320的相应像素坐标,从而确定匹配图像320的像素值,并定义匹配patch506的像素值,以便与运动模型426相关联。

图5C类似地示出利用对齐的前运动模型434将参考patch502的像素坐标映射到匹配图像320的相应像素坐标,以确定匹配图像的像素值,从而用于定义匹配patch508的像素值,以便与对齐的前运动模型434相关联。

图5D描绘了与不同运动模型相关联的不同匹配patch。如上所述,可以将与不同运动模型相关联的不同匹配patch与参考patch进行比较,以确定要使用哪个运动模型来基于参考图像330和匹配图像320生成输出图像。图5D描述了确定参考patch502与匹配patch504之间的相似度510,确定参考patch502与匹配patch506之间的相似度512,以及确定参考patch502与匹配patch508之间的相似度514。

图5D同时描述了基于参考patch502与各种匹配patch504、506和508之间测量的相似度510、512和514选择最终运动模型516。例如,最终运动模型516可以包括与和参考patch502具有最大相似性的匹配patch相关联的运动模型。

在一个实施例中,相似性510、512和514的确定是通过归一化互相关获得。例如,系统可以通过使用基于参考patch502的原始像素值确定的一组平均像素值修改参考patch502的像素值来生成偏移归一化参考patch。例如,系统可以从参考patch502的原始像素值中减去平均像素值集。所述平均像素值集可以包括一组加权平均像素值。然后,系统可以利用偏移归一化参考patch的像素值来确定参考patch向量。

可以遵循类似的过程来确定匹配patch504、506和508中的每个匹配patch向量。例如,为了获得匹配patch504的匹配patch向量,系统可以使用基于匹配patch504的原始像素值确定的一组(加权)平均像素值来修改匹配patch504的像素值,从而生成偏移归一化匹配patch。

可以类似地为其他匹配patch506和508计算匹配patch向量。可以将参考patch502的参考patch向量与不同匹配patch504、506和508的匹配patch向量进行比较,以获得相似点510、512和514。例如,可以通过计算向量之间的点积将参考patch向量与每个匹配patch向量进行比较,以获得每个匹配patch向量的相似性得分。最终运动模型516可以基于这样的相似分数来选择。

有时候,没有一个运动模型提供与参考patch502高度相似的匹配patch。在这种情况之下,对于系统避免自动选择提供与参考patch502最相似的匹配patch的运动模型可能是有利的。相反,通过选择与前一个运动模型最相似的运动模型,对系统强制时间一致性可能是有利的。

因此,图5E示出了确定是否强制时间一致性或利用最终运动模型516来使用参考图像330和匹配图像320生成输出图像。特别是,系统可以确定与最终运动模型516相关联的匹配patch与参考patch502之间的相似性是否满足一个或多个相似性条件。

为了确定与最终运动模型516相关联的相似性满足相似性条件,系统可以继续利用最终运动模型516将参考图像330与匹配图像320对齐以生成输出图像。相反,为了确定与最终运动模型516相关的相似性未能满足相似条件,系统可以根据对齐的先前运动模型434与运动模型414和426之间的相似性,通过从运动模型414和426中选择最终运动模型来强制时间一致性。

对于系统选择的用于使用匹配图像320和参考图像330生成输出图像的最终运动模型,其可以用作用于选择随后的最终运动模型,以使用随后的匹配图像和随后的参考图像生成随后的输出图像的先前运动模型。

图6、7、8和9描述了相关的流程。

602包括访问第一运动模型,第一运动模型基于一组特征对应生成,所述一组特征对应包括一个内值集和一个离群集,所述内值集用于确定第一运动模型的模型参数。

604包括定义一修改的特征对应集,修改的特征对应集包括来自该特征对应集的离群值集。

606包括使用修改后的特征对应集生成第二运动模型,以确定第二运动模型的模型参数

608包括访问先前的运动模型。

610包括通过使用惯性追踪数据修改前面的运动模型来生成对齐的前面的运动模型。

612包括基于对齐的先前运动模型与第一运动模型之间的比较,以及对齐的先前运动模型与第二运动模型之间的比较,从第一运动模型和第二运动模型中选择最终运动模型。

614包括利用最终运动模型来生成用于显示给用户的输出图像。

616包括利用最终运动模型作为之前的运动模型,以方便根据随后获得的一组特征对应从随后生成的运动模型对中选择随后的最终运动模型。

702包括使用第一图像图像传感器获得第一图像。

704包括通过对第一图像执行特征提取来确定第一组特征。

706包括使用第二图像传感器获得第二图像。

708包括通过对第二图像执行特征提取来确定第二组特征。

710包括通过对第一组特征和第二组特征执行描述符匹配来确定一组特征对应。

712包括通过从特征对应的集合确定一个内值集来生成第一运动模型,并使用内值集来确定第一运动模型的模型参数。

714包括通过从特征对应集确定离群值集来生成第二运动模型,并使用离群值集来确定第二运动模型的模型参数。

716包括获得先前的运动模型。

718包括通过使用惯性追踪数据修改前面的运动模型来生成对齐的前面的运动模型。

720包括基于对齐的先前运动模型与第一运动模型之间的比较,以及对齐的先前运动模型与第二运动模型之间的比较,从第一运动模型和第二运动模型中选择最终运动模型。

722包括利用最终运动模型来生成用于显示给用户的输出图像。

802包括生成多个运动模型。其中,所述多个运动模型的每个运动模型包括使用来自一组特征对应的不同特征对应子集确定的各自的模型参数。

804包括基于多个运动模型中的每一个与前一个运动模型的比较来选择最终运动模型。

806包括利用最终运动模型来生成用于显示给用户的输出图像。

图9示出了一个示例流程图900,描绘了与选择运动模型相关联的动作,用于对齐由不同图像传感器捕获的场景内容。流程图900的动作可以利用一个或多个系统(例如,系统100)的一个或多个组件来执行。

902包括访问由第一图像传感器捕获的第一图像和由第二图像传感器捕获的第二图像。

904包括访问一组运动模型。

906包括在第二图像内定义参考patch。

908包括为所述运动模型集的每个运动模型生成各自的匹配patch。

910包括确定第二图像内每个各自匹配patch和参考patch之间的相似性。

912包括基于第二图像内每个各自匹配patch与参考patch之间的相似性,从运动模型集合中选择最终运动模型。

914包括利用最终运动模型来生成用于显示给用户的输出图像。

916包括利用最终运动模型作为之前的运动模型,以方便从随后的一组运动模型中选择随后的最终运动模型。


相关专利


Microsoft Patent | Systems and methods for determining motion models for aligning scene content captured by different image sensors


相关专利


Microsoft Patent | Systems and methods for selecting motion models for aligning scene content captured by different image sensors

所述两份
微软专利
申请均在2023年4月提交,并在日前由美国专利商标局公布。