如果大家有关注微软的专利探索,这家公司曾多次提出一种集成式摄像头/系统摄像头+分离式摄像头/外部摄像头的系统理念。其中,集成式摄像头/系统摄像头是指物理集成到头显的摄像;分离式摄像头/外部摄像头则是指与头显分离的摄像头。
例如在一个场景中,可以将分离式摄像头捆绑或以其他方式放置在用户的胸部。在另一个场景中,分离式摄像头可以不放置在用户的身体上,而是由用户握持的工具上。
对于这种配置,系统需要对准来自不同源的图像,并在用户视图中快速获取目标,亦即帮助用户快速精确地定位期望的目标,这样用户就不再需要花费时间进行观察搜索。例如,当用户需要使用枪械瞄准镜时,快速对齐枪械瞄准镜和头显摄像头的图像,并快速定位瞄准镜瞄准的目标。
在名为“Rapid target acquisition using gravity and north vector”的专利申请中,微软就介绍了一种使用重力和北向向量来快速获取目标的方法。
在一个实施例中,确定第一摄像头的第一重力向量和第二摄像头的第二重力向量。实施例从第一摄像头获得第一摄像头图像,从第二摄像头获得第二摄像头图像。执行第一对准过程以将第一摄像头的定向与第二摄像头的定向部分对准。所述过程是通过对齐重力矢量来执行,从而消除了相对3D方向的两个自由度。
实施例同时识别两个图像之间的视觉对应关系。执行第二对准过程以完全对准取向。所述过程是通过使用所识别的视觉对应来识别和消除相对3D定向的第三自由度来执行。实施例进一步通过将第一或第二摄像头图像中包括的内容叠加到另一个摄像头中包括的对应内容,从而生成叠加图像。
图9示出了用于对准由两个摄像头生成的图像的示例方法900的流程图,其中通过计算两个摄像头之间的相对三维(3D)方位来执行对准。
方法900包括确定第一摄像头的第一重力矢量的动作(动作905)。“重力矢量”是指在任何给定空间中施加给对象的重力。在这种情况下,实施例能够识别第一摄像头的重力矢量。可以使用与第一摄像头相关联的惯性测量单元(IMU)来执行重力矢量的确定。
与动作905并行,存在确定与第一摄像头物理分离的第二摄像头的第二重力向量的动作910。所述重力矢量也可以使用与第二摄像头相关联的IMU来确定。换句话说,可以使用第一惯性测量单元(IMU)来确定第一重力矢量,并且可以使用第二IMU来确定第二重力矢量。
与动作905和910并行,存在从第一摄像头获得第一摄像头图像和从第二摄像头获得第二摄像头图像的动作915。当生成第一摄像头图像时,第一摄像头具有第一方位,而当生成第二摄像头图像时第二摄像头具有第二方位。
动作920涉及执行第一对准过程,以通过将第一重力向量与第二重力向量对准来将第一取向与第二取向部分对准。执行所述过程导致相对3D定向的两个自由度被消除。作为对准两个不同摄像头的重力矢量的结果,求解三自由度确定中的滚转角和俯仰角。
图10示出了构成上述第一对准工艺的工艺1000。第一对准过程用于通过将第一重力向量与第二重力向量对准来将第一取向与第二取向部分对准。过程1000包括将第一摄像头图像中的每个像素取消投影到3D空间中以生成第一组3D点的动作(动作1005)。
动作1010与动作1005并行执行,并且包括将第二摄像头图像中的每个像素不投影到3D空间中以生成第二组3D点。
动作1015然后包括将第一组3D点和第二组3D点投影回2D平面。然而,该D平面垂直于第一重力矢量和第二重力矢量。作为执行投影的结果,两个投影的点集现在沿着2D空间中的重力向量彼此对齐。这种对准消除了可能存在的任何滚转或俯仰角,从而消除了两个摄像头之间的相对3D定向的三个自由度中的两个。
图12提供了用于第一对准过程的有用图示。具体地,图12示出了系统(第一)照摄像头1200和外部(第二)照摄像头1205。实施例能够确定系统摄像头1200的重力矢量1210和外部摄像头1205的重力矢量1215。
如前所述,然后可以执行各种非投影和投影操作,以便将系统摄像头1200生成的像素与外部摄像头1205生成的像素沿着相同的重力向量对齐,如对齐的重力向量1220所示。
返回图9,方法900包括识别第一摄像头图像和第二摄像头图像之间的视觉对应关系的动作(动作925)。
图13示出了图像1300,其包括像素1300A。实施例能够识别图像1300内的特征点,如特征点1315所示。实施例能够识别第一摄像头图像1305中的特征点,并且识别第二摄像头图像1310中的对应特征点。共同识别的特征点称为视觉对应1325。换句话说,视觉对应1325是指共同存在于第一摄像头图像1305和第二摄像头图像1310中的像素内容。
在图9中,方法900然后包括执行第二对准过程的动作(动作930),以通过使用所识别的视觉对应来识别和消除相对3D取向的第三自由度(例如偏转角),从而将第一取向与第二取向完全对准。
图14示出了概述在执行第二对准过程中涉及的操作的示例过程1400,第二对准处理通过使用所识别的视觉对应来识别和消除相对3D定向的第三自由度,从而将第一定向与第二定向完全对准。
过程1400包括将第一像素(例如,对于第一摄像头图像中的第一像素)取消投影到三维(3D)空间中以生成第一组3D点的动作(动作1405)。对于第二摄像头图像中的第二像素,动作1410涉及将第二像素不投影到3D空间中以生成第二组3D点。
图15示出了由2D空间1510中的一组像素1505表示的2D对象1500(即图像)。实施例将像素1505从2D空间1510取消投影1515到3D空间1520。因此,在3D空间1520中生成包括3D点1530的3D对象1525。可以针对第一摄像头图像中的像素和针对第二摄像头图像的像素执行这样的操作。
返回图14,在动作1415中,实施例在3D空间中沿着第一(或第二)重力矢量旋转第一/第三组3D点(或可选地第二/第四组3D点)。执行沿着第一(或第二)重力矢量旋转第一/第三(或第二/第四)组3D点的过程,尝试通过计算使第一/第三组3D点与第二/第四组3D点最佳对准的旋转角度来消除相对3D定向的第三自由度。
图16示出了包括来自第一摄像头图像的未投影像素的3D空间1600A,如第一图像3D点1605所示。第一图像3D点1605基于重力矢量1610A进行对准。
如动作1415中所述,实施例能够沿着重力向量旋转3D空间中的第一图像3D点1605和/或第二图像3D点1615中的一个或两个,然后执行比较,如比较1625所示。旋转角度1620和1630象征着沿着重力矢量旋转点的能力。
执行旋转是为了尝试将第一图像3D点1605与第二图像3D点1615对准,或者反之亦然。换句话说,实施例执行旋转并计算使第一图像3D点或第二图像3D点与第一图像3D点通过的另一个图像3D点最佳对准的角度。实施例选择旋转角度1620,然后将处于该角度的点与包括在第二图像3D点1615中的点进行比较1625。
作为执行第二对准过程的结果,实施例现在已经完全对准了来自第一和第二图像的像素,亦即已经消除了在两个摄像头之间的相对3D取向的三个自由度中可能存在的任何差异。换言之,实施例消除了在两个摄像头的取向之间可能存在的偏航、俯仰和滚转方面的任何差异。
返回图9,方法900然后包括在执行第一对准过程和第二对准过程之后执行的动作(动作935)。动作935包括通过将第一摄像头图像或第二摄像头图像中包括的内容叠加到另一个摄像头中包括的对应内容上来生成叠加图像。
图17至图18示出了用于对准图像的另一种技术。特别地,图17聚焦于用于对准由两个摄像头生成的图像的方法1700,其中通过计算两个摄像头之间的相对三维(3D)取向来执行对准。
方法1700包括确定第一摄像头的第一重力矢量的动作(动作1705)。动作1710涉及确定与第一摄像头物理分离的第二摄像头的第二重力向量。动作1715涉及从第一摄像头获得第一摄像头图像和从第二摄像头获得第二摄像头图像。当生成第一摄像头图像时,第一摄像头具有第一方位,而当生成第二摄像头图像时第二摄像头具有第二方位。注意,动作1705、1710和1715分别对应于动作905、910和915。
然后,动作1720涉及执行第一对准过程以将第一定向与第二定向部分对准。第一对准是通过将第一重力矢量与第二重力矢量对准来执行,从而导致相对3D定向的两个自由度被消除。动作1720对应于图9中的动作920。
然后,动作1725包括为第一摄像头确定第一北向矢量。类似地,动作1730包括确定用于第二摄像头的第二北向量。所谓的“北方矢量”可以使用磁力计(即一种指南针)来确定哪个方向是北方。因此,除了识别重力矢量之外,实施例同时识别北方矢量。
然后在动作1735中执行第二对准过程。执行第二对准过程是为了将第一取向与第二取向完全对准。同时,通过将第一北向量与第二北向量对准来执行过程,从而导致消除了相对3D取向的第三自由度。
在执行第一对准处理和第二对准处理之后,动作1740包括通过将包括在第一摄像头图像或第二摄像头图像之一中的内容叠加到包括在第一照摄像头图像或第二摄像头图像中的另一个中的对应内容上来生成叠加图像。图18和19提供
图18示出了系统摄像头1800(例如,第一摄像头)和外部摄像头1805(例如,第二摄像头)。如前所述,实施例能够使用系统照摄像头1800的IMU来确定系统照摄像头1800中的重力矢量1810。除了确定重力矢量1810之外,实施例同时配置为确定系统摄像头1800的北向矢量1815。相关地,实施例能够确定外部摄像头1805的重力矢量1820和北向矢量1825。
为了确定北向矢量,系统摄像头1800和外部摄像头1805分别配备有磁力计,如磁力计1830所示。磁力计1830被校准并且可以周期性地重新校准以确保其准确性,如校准1835所示。
在识别了重力矢量和北向矢量之后,实施例能够以先前描述的方式对准重力矢量,如现在由对准的重力矢量1840所示。类似地,实施例能够对准北向矢量,如对准的北方矢量1845所示。以类似于第一对准过程的方式执行第二对准过程,除了现在依赖于北向矢量之外,第二对准处理执行以通过将第一北向矢量与第二北向矢量对准来将第一方位与第二方位完全对准。
图18示出了作为执行两个对准过程的结果而实现的最终对准1850。值得注意的是,仅基于重力矢量和北向矢量来对准图像可能导致视差1855存在于两个图像之间的情况,从而在组合图像时导致偏斜或未对准。
因此,为了解决可能存在于两个图像之间的任何视差1855,实施例可以使用一系列的技术来附加地识别存在于两幅图像之间的视觉对应1860。利用视觉对应1860,实施例然后可以执行各种变换,以便调整图像内容以校正视差1855。
相关专利:Microsoft Patent | Rapid target acquisition using gravity and north vectors
名为“Rapid target acquisition using gravity and north vector”的微软专利申请最初在2021年11月提交,并在日前由美国专利商标局公布。