查看
用于提高图像对齐效率的方法
(映维网资讯)如果大家有关注
例如在一个的场景中,可以将分离式摄像头捆绑或以其他方式放置在用户的胸部。在另一个场景中,分离式摄像头可以不放置在用户的身体上,而是由用户握持或者安装在自拍杆或另一种类型的延长杆上。
集成式摄像头+分离式摄像头的设置可以提升头显的扫描范围和质量,优化全息图的放置和生成。但显然,对于这种图像合并和叠加,系统需要对齐两个摄像头的内容,并实现快速目标捕获。
在名为“Imagealignmentusingstaggeredfeatureextraction”和“Aggregatingfeaturesfrommultipleimagestogeneratehistoricaldataforacamera”的专利申请中,微软介绍了用于提高图像对齐效率的方法。
这两份发明属于同一解决方案,只是侧重于保护不同方面。前者涉及使用交错特征提取进行图像对齐;后者涉及从多个图像中聚合特征,从而为摄像头生成历史数据。
图3示出建筑物300、第一响应者305和另一第一响应者310。在这个示例场景中,第一响应者305和310希望测量建筑物300。图4显示了执行策略操作的一个示例技术。
图4显示了在400A环境中佩戴头显400的第一响应者。头显400包括一个系统摄像头405。此外,第一响应者正在使用包括外部摄像头415的工具410。
在图中,工具410是一个抓钩枪,它可以发射一根绳子和钩子到建筑物上。通过将外部摄像头415生成的图像内容与系统摄像头405生成的图像内容对齐,用户将能够更好地辨别工具410瞄准的位置。
图5示出安装在头显的第一摄像头500,其中第一摄像头500代表图4的系统摄像头405。应当注意,第二摄像头505的光轴是如何与工具的瞄准方向对齐。所以,由第二摄像头505生成的图像可用于确定工具的瞄准位置。
在图5中,第一摄像头500和第二摄像头505都瞄准目标510。注意,第一个摄像头的FOV515比第二个摄像头的FOV520大。通常,第二个摄像头505提供了一个非常对焦的视图,类似于瞄准镜,即高水平的角度分辨率。
有必要将从外部摄像头获得的图像与系统摄像头生成的图像重叠并对齐,以生成重叠并对齐的图像。两个图像之间的重叠使得系统能够生成多个图像,然后将来自一个图像的图像内容叠加到另一个图像之上,以便生成具有增强特征的复合图像或叠加图像。
例如,系统摄像头图像提供宽视场,而外部摄像头图像为对焦区域(即工具瞄准的瞄准区域)提供高分辨率和像素密度。通过结合两幅图像,得到的图像将具有宽视场和瞄准区域高像素密度的优点。
应当注意,尽管本文主要介绍了两个图像的对齐,但发明能够对齐来自具有重叠区域的两个以上图像的内容,亦即不限于仅两个图像或两个摄像头。
作为另一个例子,假设系统摄像头为弱光摄像头,进一步假设外部摄像头为热成像摄像头。实施例能够选择性地从热成像摄像头图像中提取图像内容,并将所述图像内容叠加到所述弱光摄像头图像。
在这方面,热成像内容可用于增强或补充弱光图像内容,从而向用户提供增强图像。另外,由于外部摄像头相对于系统摄像头具有更高的分辨率,所得到的叠加图像将为外部摄像头图像中的像素叠加到系统摄像头图像的区域来提供更高的清晰度。
可以使用不同的技术来执行对齐。一种技术是“视觉对齐”技术,这涉及到特征点的检测。另一种技术是基于IMU的技术,它根据各自摄像头的确定姿势对图像进行对齐。视觉对齐技术通常产生更准确的结果。
关于视觉对齐技术,为了合并或对齐图像,实施例能够分析纹理图像以试图找到任意数量的特征点。
任何类型的特征检测器都可以编程来识别特征点。在一个实施例中,特征检测器可能是机器学习算法。
根据发明的原理,实施例检测任意数量的特征点,然后尝试识别在系统摄像头图像中检测到的特征点与在外部摄像头图像中识别的特征点之间的相关性或对应关系。
然后,实施例将特征或图像对应拟合到运动模型,以便将一个图像叠加到另一个图像,以形成增强的叠加图像。可以使用任何类型的运动模型。一般来说,运动模型是一种转换矩阵,它使模型、已知场景或对象能够投影到不同的模型、场景或对象之上。特征点作为图像重投影时的参考点。
在一个实施例中,运动模型可能只是一个旋转运动模型。使用旋转模型,实施例能够将一个图像移动任意数量的像素,以便将一个图像叠加到另一个图像上。
例如,一旦识别了图像对应,实施例可以识别特征点或对应的像素坐标。一旦确定了坐标,则实施例可以使用上述旋转运动模型方法将外部摄像头瞄准具的图像叠加到头显摄像头的图像。
另一种对齐图像的技术包括使用IMU数据来预测系统摄像头和外部摄像头的姿势。一旦估计或确定了这两个姿势,实施例可以使用姿势来将图像的一个或多个部分彼此对齐。
一旦对齐,则将一个图像的一个或多个部分叠加到另一个图像的相应部分之上,从而生成增强的覆盖图像。在这方面,IMU可以用来确定相应摄像头的姿势,然后姿势可以用来执行对齐过程。
图8示出所得到的叠加图像800,图像800包括系统摄像头图像805和外部摄像头图像810。提供增强的叠加图像800允许快速目标获取,如图9中的目标获取900所示。
换句话说,可以以一种快速的方式获得目标,即工具精确地瞄准期望的目标,因为用户不再需要花时间通过工具的瞄准镜查看相关区域。
图10显示了所讨论图像的抽象版本,并着重于视觉对齐方法。具体地,图10示出具有特征点1005的第一摄像头图像1000和具有与特征点1005对应的特征点1015的第二摄像头图像1010。所述实施例能够使用特征点1005和1015在第一摄像头图像1000和第二摄像头图像1010之间执行视觉对齐1020。
视觉对齐1020可通过重投影1020A操作来执行。其中,将包含在第一摄像头图像1000中的姿态1020B和/或包含在第二摄像头图像1010中的姿态重投影到新位置,以使图像之一与另一图像对齐。
可以使用运动数据来促进重投射1020A。例如,可以收集IMU数据来描述在拍摄第一摄像头图像1000的时间和拍摄第二摄像头图像1010的时间之间发生的任何移动。然后,IMU数据1020C可用于转换运动模型1020D,以执行重投影1020A。
视觉对齐1020还可以依赖于确保来自第二摄像头图像1010的特征的阈值1020E数量对应于在第一摄像头图像1000中发现的类似特征。
执行视觉对齐1020的结果是产生叠加图像1025。所述叠加图像1025包括从所述第一摄像头图像1000提取或获得的部分和从所述第二摄像头图像1010提取或获得的部分。注意,叠加的图像1025包括包围从第二摄像头图像1010和/或从第一摄像头图像1000获得的像素的边界元素1030。
刚刚描述了识别特征和使用特征对齐图像的不同过程,现在将注意力转向图11A、11B和11C,它们说明了执行交错特征提取的各种过程。
图11A示出了涉及第一摄像头1100和第二摄像头1105的示例场景。如图所示,第一摄像头1100在时间T1产生图像1105A。所述实施例对图像1105A进行处理以生成一组特征1105B。注意,生成特征1105B的时间将在T1之后,因为需要进行特征提取的处理时间以及图像预处理的时间。
时间同时可以取决于预处理和特征提取步骤计划何时运行。执行特征提取所需的时间可以根据不同的因素而变化,例如图像的复杂性,图像的分辨率,图像类型,历史数据是否可用等等。
在时间T3时,第一摄像头1100产生另一幅图像1110A,并产生另一组特征1110B。同样,在T5时刻,生成另一幅图像1115A,以及相应的一组特征1115B。值得注意的是,特征集1115B通常是在图像到达后生成。
第二摄像头1105显示为在时间T0产生图像1120A。从图像1120A中识别出一组特征1120B。在T2时刻,第二摄像头1105生成另一幅图像1125A,生成另一组特征1125B。同样,在T4时刻生成另一个图像1130A,以及相应的特征集1130B。
涉及分析各种不同图像和生成特征的处理可以以各种不同的方式执行。在一个实施例中,依赖于单个计算线程来执行处理。在其他实施例中,需要依赖多个线程。例如,第一线程可负责分析由第一摄像头1100生成的图像,第二线程可负责分析由第二摄像头1105生成的图像。
图11B示出正在执行图像对齐操作1145的场景。图像对齐操作1145使用前面描述的过程执行,并基于特征之间已识别的相关性。注意,即便图像1105A在图像1120A之后到达,都会执行这个图像对齐操作1145。所述实施例能够以前面描述的方式使用IMU数据重新投影所述特征1120B,以使所述图像1120A的姿态与所述图像1105A的姿态相匹配。
图11C显示了一种新的图像对齐操作1150。根据发明原理,实施例能够重用先前使用的一组特征来执行随后的图像对齐操作。例如,图11C显示了所述实施例如何重用所述特征1120B而不是使用较新的特征1125B。尽管所述特征1120B比所述特征1125B更旧,但所述实施例依然可以使用IMU数据来执行各种重投影,以便正确对齐所述姿态。
重用一组已经使用过的特性是有益的,原因很多。例如,不同摄像头的帧率可能完全不同;或许一个摄像头以每秒60帧的速度运行,而另一个以每秒30帧的速度运行。
通过重用特征,所述实施例可以避免必须等待直到在新图像中识别出一组新的特征。所以,实施例可以避免所述等待所涉及的延迟。
作为另一个示例,所述实施例可以避免或减少与等待新帧生成有关的延迟,以及与在新帧执行特征提取有关的延迟。
随着时间的推移,摄像头将生成多个帧,并生成多个特征。换句话说,从每一帧中,可以识别出一组特征。根据发明原理,所述实施例有益地能够聚合由于对单个摄像头生成的多个图像执行特征提取而随时间产生的特征。然后,所述实施例可以存储或缓存特征的历史以用于各种有益的用途。
图12显示了三组特征,即特征1200、1205和1210。所述特征是由单个摄像头生成的图像生成。例如,特征1200对应于与图像1105A相关联的特征1105B。特征1205对应于与图像1110A相关联的特征1110B。特征1210对应于与图像1115A相关联的特征1115B。图像1105A、1110A和1115A都是由同一个摄像头生成,即1100摄像头。
所述实施例能够为所述摄像头产生的每个图像获取IMU数据。然后,实施例可以使用IMU数据将图像中的姿态重新投影为公共姿态。结果是所有的特征都投射到相同的姿势中。
接下来,所述实施例可以形成各种特征的联合或聚合,以形成特征1215的聚合历史。可以存储功能的历史记录1215。所以,一组特征可以缓存并且可用于在多次图像对齐操作期间重复使用。
由于各种原因,存储聚合的特性集是有益的。例如,假设摄像头在低光环境中工作,或者在等温或低对比度环境中工作。在图像的特征提取过程中,特征提取器可能只可以识别单个图像中选定的几个特征。如果只使用几个特性尝试视觉对齐,则视觉对齐可能会失败。
另一方面,如果特征提取器可以从多个不同的图像中识别特征,则更有可能能够识别数量显著增加的唯一特征。然后,实施例可以收集或利用这一聚合的特征集来执行视觉对齐。所以,为摄像头维护一个存储库或功能的历史记录非常有益,因为它可以帮助视觉对齐过程。
在这方面,可以为缓存1220中的第一摄像头保留特征提取结果的第一历史。类似地,可以为第二摄像头保留特征提取结果的第二历史记录。在一个实施例中,第一组特征的生成和第二组特征的生成异步执行。类似地,可以相对于第二图像的生成异步地执行第一图像的生成。
图14示出用于从由摄像头生成的多个图像生成聚合特征集的示例方法1400的流程图。
在1405,访问由所述摄像头生成的第一图像。第一次生成第一张图像。1410包括通过在第一图像执行特征提取来从第一图像内识别第一特征集。
1415包括访问由摄像头生成的第二图像。第二个图像是在第二次生成,它是在第一次之后生成的。然后,1420包括通过在第二图像上执行特征提取来从第二图像内识别第二组特征。
1425包括获取运动数据,详细说明在第一次和第二次之间摄像头的运动。然后,1430包括使用所述运动数据来重新投影所述第一图像中包含的姿态,以对应于所述第二图像中包含的姿态。运动模型可以用来促进这种重投影。
换句话说,重新投射第一图像中所包含的姿态以对应于第二图像中所包含的姿态可以涉及运动模型的使用。另外,运动数据可以包括IMU数据。
1435包括将经过重投影操作的第一组特征与第二组特征聚合在一起。这种聚合会生成一组聚合的特征。聚合可以包括在不同的特性集之间进行联合和/或合并特性。
接下来,1440包括为摄像头缓存聚合的特征集。聚合的特性可以缓存或存储在头显或云中。在一个实施例中,从摄像头生成的附加图像中识别的附加特征集可以与聚合的特征集一起聚合。例如,1、2、3、4、5、6、7、8、9、10或10张以上图像的特征都可以聚合在一起。可选地,聚合的特征集可以编译成单个单位向量空间。
在一个实施例中,聚合特征集中的每个特征都标有图像生成时间的相应时间戳。因此,可以在聚合的特征集中包含多个不同的特征排列,其中每个排列都用定时数据标记。
任选地,所述方法可包括在图像对齐操作期间随后访问用于摄像头的聚合特征集。通过图像对齐操作,将由摄像头生成的图像与由不同摄像头生成的不同图像对齐。历史聚合特征可以用来帮助改进对齐过程,特别是对于可能单个图像可能没有足够数量的可检测特征的场景。
例如,考虑一个场景,其中第一幅图像和第二幅图像捕获等温场景或低对比度场景。在这种情况下,第一组特征中包含的特征数量可能小于阈值数。另外可能出现第二组特征中包含的许多特征也小于阈值数的情况。然而,在将第一特征集与第二特征集聚合后,所聚合的特征集所包含的特征数至少可以满足所述阈值数。
在一个实施例中,第一图像和第二图像可以是相同的图像类型或可以是不同的图像类型。任选地,所述图像类型可包括热图像类型、弱光图像类型或可见光图像类型。在一个实施例中,两幅图像的分辨率可能不同。
所以在执行图像对齐时,有各种方法可以从将图像处理和特征提取步骤与图像对齐任务的其余部分分开所提供的灵活性中受益。视觉对齐的过程可以包括各种特征提取过程、调整大小过程、去噪过程等。
这样的过程可能会导致延迟或延迟。所述实施例能够通过在提取新图像的特征时重用先前从旧图像中提取的特征来有益地减少延迟。任选地,实施例可以选择性地跳过所选一个或多个帧的图像处理和特征提取,以尝试节省计算和功率。
另外可以选择使用多线程方法执行图像对齐。例如,实施例可以将一个线程专用于每个图像源。线程可以对来自摄像头源的最新图像执行图像处理和特征提取。线程同时可以缓存特征提取结果。使用多线程方法允许实施例可选地限制执行视觉对齐过程的迭代速率,包括特征提取。
如果对齐失败或特征匹配没有使用最新的特征提取结果集生成足够数量的匹配,则实施例可以尝试从特征提取结果历史中选择特征集的不同排列。然后,所述实施例可以重试图像对齐。
聚合过程涉及将特征位置从图像坐标映射到单位向量空间或其他表示特征相对于图像源的真实世界方向的坐标系。特征提取结果聚合可涉及最新特征提取结果与聚合特征提取结果之间的特征匹配,以检测重复特征并过滤掉较旧的结果。
与传统的图像对齐工作流程(在每次图像对齐尝试中对所有图像源的最新图像执行特征提取)相比,分离特征提取并缓存特征提取结果可以实现上述优化策略。这样的策略和过程在以下应用中是有用的:
图像到达和对齐结果输出之间的延迟被期望设置为最小
当对齐结果输出的频率很重要时
在图像源不同步的系统中
在计算/功率预算有限的系统中
在功能差的场景中执行图像对齐时
图像源在复杂场景中移动的系统,场景中存在可能暂时阻挡视线的物体。
有益的是,每个特征提取结果可以在多次对齐尝试中使用,从而增加了找到足够多的精确特征匹配来执行对齐的可能性。另一个好处是,图像可能会以不同步的方式缓慢更新。因此,实施例在执行对齐之前不需要等待来自每个源对的新图像。
实施例同时有益地允许资源受限的系统更频繁地更新对齐结果,同时在图像处理和特征提取步骤上花费相同的计算/功率。如果对齐任务遭到阻塞,直到通过接收来自特定源的图像发出信号,则系统可以帮助减少从源接收图像和生成对齐输出之间的延迟,因为已经执行了其他图像源的特征提取。
使用多线程异步特征提取方法同时提供了各种好处。例如,如果不限制每个线程的迭代速率,解决方案可以最大化图像对齐结果的更新频率。在资源受限的系统,可以根据与线程相关的图像源,在每个线程上执行限速特征提取和对齐,从而在计算/电源使用和对齐频率之间进行细粒度的权衡。
保存特征提取结果的历史记录同样有很多好处。例如,即便图像源是静止的,场景是静态的,特征提取都不会输出相同的特征集。传感器噪点、空气密度梯度和其他因素可能会改变发现的特征的位置和生成的特征描述符中的值。拥有特征提取结果的历史记录增加了找到一组良好的特征匹配以执行对齐的可能性。
如果图像源是移动的,或者场景是动态的,则在任何给定时间,每个图像源的视图可能会遮挡不同的特征集。这可能会降低校准的质量,或者降低常规校准方法产生成功校准结果的速率。
通过保留特征提取结果的历史记录,并通过尝试对特征集的不同排列进行对齐,实施例有益地提供更频繁和更好的对齐结果。在来自IMU或类似传感器的数据变得不可靠的情况下,对特征集历史执行图像对齐可能有助于获得设备运动的估计。
另外,传统的基于特征的图像对齐方法在特征贫乏的场景(例如雾蒙蒙的环境或黑暗的环境等)中很难找到足够多的精确特征匹配来执行对齐。将图像源的特征提取历史聚合到单个坐标空间中,可以使用来自源的过去图像中发现的不同特征,并可能允许更好的特征匹配输出和更好的对齐。
微软专利申请最初在2022年11月提交,并在日前由美国专利商标局公布。