微软AR专利提出用于SPAD阵列摄像头的运动补偿方法

HoloLens QQ群493967447

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

用于SPAD阵列摄像头的运动补偿方法

映维网Nweon 2022年07月20日)如果大家有关注微软的专利申请情况,你会注意到这家公司曾提出利用单光子雪崩二极管(SPAD)传感器阵列进行强度图像捕获和飞行时间捕获。其中,SPAD阵列传感器的每个像素可配置为在光子入射到像素上产生光电子时产生电子雪崩事件,而SPAD阵列摄像头可用于捕捉弱光信号并形成图像。

具体来说,入射光子触发的电子雪崩表示像素逻辑1的数字读出,而没有雪崩事件则触发像素逻辑0的读出。SPAD阵列传感器单个时间选通的逻辑1和0阵列表示二进制图像数据的子帧。传感器可以在相对较高的频率(例如约10-200 kHz)下进行时间选通,以生成一系列二进制子帧。可以通过基于SPAD阵列摄像头的图像帧速率对多个二进制子帧求和,从而形成强度图像。

延伸阅读微软AR/VR专利用单光子雪崩二极管(SPAD)传感器阵列进行强度图像捕获和飞行时间捕获

然而,使用SPAD阵列摄像头的设备在图像生成期间捕捉子帧时可能会经历移动,并导致最终图像中产生运动模糊。减少运动模糊的一种方法是在对图像子帧求和后使用去模糊算法作为后处理步骤,但这种后处理去模糊算法可能需要额外的处理能力,并导致更频繁的电池充电和更短的设备续航。

针对这个问题,微软在名为“Motion compensation for a spad array camera”的专利申请中提出了一种用于SPAD阵列摄像头的运动补偿方法。

简单来说,在捕获图像数据时使用运动数据来调整SPAD阵列摄像头的二进制图像数据,从而减轻由运动引起的模糊:基于来自运动传感器的运动数据对齐二值图像数据的子帧,从而补偿在图像采集期间发生的运动。通过对一系列对齐的子帧求和生成无模糊图像,这可以避免去模糊的后处理步骤。

图1显示了包括SPAD阵列摄像头102和运动传感器104的示例成像设备100。来自运动传感器104的数据可用于确定成像设备100的位姿变化,亦即成像设备100在使用环境中的位置和方向。运动传感器104包括具有一个或多个加速计、陀螺仪和/或磁强计的惯性测量单元(IMU)。

在一个示例中,可以包括其他运动/位置传感器,例如全球定位系统(GPS)传感器。

图2A和图2B示出了由成像设备100查看的示例场景202。成像设备100在第一位姿204A中捕获第一子帧,并且在第二位姿204B中捕获第二子。来自运动传感器104的数据用于确定成像设备100在第一位姿204A和第二位姿204B之间的位姿变化。

然后,使用成像设备100的位姿变化来确定第二子帧206B和第一子帧206A之间的偏移。接下来,可以应用所述偏移来移动第二子帧206B(或第一子帧206A),并将子帧与场景202中的静止对象对齐,从而允许以一种对齐方式对子帧进行求和。微软指出,这种对齐方式可以减轻由于对未对齐的子帧求和而产生的模糊。

图3示意性地示出了多个子帧的求和。在这里,任意数量的N个子帧(如206A、206B、206C到206N)显示为对齐的子帧300,其中N表示子帧C之后的任意数量的子帧。在一个示例中,可以在10 kHz和245 kHz之间的频率下获取子帧,并求和以在5 Hz和120 Hz之间的频率生成图像帧。

图3的箭头308指示静止成像特征(例如对象208)在图像数据的每个子帧内的位置。成像设备100使用来自运动传感器104的数据确定第一位置偏移304A,以将第二子帧206B中的静止成像特征308的位置与第一子帧206A中的静止成像特征308的位置对齐,其中第一位置偏移304A基于第一位姿204A和第二位姿204B之间的差来确定。

为了从运动数据确定第一位置偏移304A,在一个实施例中可以应用旋转模型,以将来自运动传感器的信号与SPAD阵列传感器像素位置在水平和垂直方向上的对应平移相关联。这种旋转模型基于设备位姿将SPAD阵列摄像头视场中的点映射到像素。

在一个实施例中,来自运动传感器的信号和包括SPAD阵列摄像头的一个或多个镜头的透镜系统的畸变模型都可以用于旋转模型,其中透镜系统的畸变模型可以通过校准过程确定。

类似地,确定并使用第二位置偏移304B将第三子帧206C与第一子帧206A和第二对齐子帧206B对齐。额外的位置偏移可被确定并用于其他子帧对齐,如累积指示为304N,以生成对齐的子帧300。

在捕捉N个二进制子帧期间或在捕捉N个二进制子帧之后,将对齐的子帧300相加以形成图像。如前所述,SPAD阵列摄像头中的二进制子帧包括可以具有逻辑1或0值的二进制像素。

因此,可以通过保持图像的每个像素的像素计数来求和对齐的子帧300,其中每个像素计数包括所有对齐的子帧中图像的像素的二进制值之和。图像像素的像素计数可以随着每个子帧的获取和位置调整(发生运动的地方)而增加。

随着图像数据的每个新子帧的收集和位置调整(如果发生了运动),像素计数将更新。在对齐和求和子帧206N时,生成结果强度图像输出。

在图3中描绘了对齐单个子帧的同时,需要注意的是,两个或多个子帧可以组合在一组子帧中,并且基于运动数据的调整可以应用于组合的子帧,而不是单个子帧。在这样的示例中,为集体运动补偿而分组在一起的多个子帧可以根据子帧之间的运动成像设备100经历的量而变化。

在图2-3的示例中,基于SPAD阵列摄像头相对于场景静止对象的运动来执行运动模糊补偿。然而,SPAD阵列摄像头可能会对相对于静止背景移动的对象进行成像。

这在图4中示出,其示出了图1的SPAD阵列摄像头对包括动态对象404的场景进行成像的示例视场。动态对象404通过箭头406示出为相对于静止背景以可能在图像捕获期间导致动态对象404的运动模糊的方式移动。

在这种情况下,上述方法300的使用可能不会减轻运动对象的模糊,因为成像设备100的运动传感器不会感测到动态对象的运动。

因此,为了帮助减轻由动态对象404的运动引起的任何运动模糊,成像设备100可以通过比较时间上相邻的子帧来确定每个子帧的每个二进制像素的运动矢量。成像动态对象404的二进制像素将包括与未成像动态对象404的二进制像素不同的运动矢量。因此,可以使用这种运动矢量来校正运动并避免模糊。

图5示出了动态对象504在SPAD阵列摄像头102的视场内改变位置的示意图。为简单起见,动态对象504表示为在每个所示子帧502A、502B、502C、502N中由单个二进制像素成像,但应理解,动态对象可能在水平和垂直方向上跨越多个二进制像素。

成像设备100可以配置为通过比较相邻的二进制子帧,并将运动矢量分配给表示先前子帧和当前子帧之间发生的运动的二进制像素来确定运动矢量。

这在图5中进行示出,其中运动矢量506A表示子帧502A和502B之间的二元像素508A处的运动,运动矢量506B表示子帧502B和502C之间的二元像素508B处的运动,运动矢量506N表示子帧502C和502N之间的二元像素508N处的运动,其中502N表示子帧502C之后的任意数量的帧。

以这种方式,可以将运动矢量分配给每个子帧中的每个二进制像素,或二进制像素的任何期望子集。然后,可以基于运动矢量对齐子帧,以形成对齐的子帧500并相应地求和。

图5中二进制像素的求和由行510A、510B和510N表示,其中序列子帧中二进制像素的对齐基于运动矢量。在所述示例中,对齐一个或多个子帧,使得动态对象出现在子帧502A中成像的位置。在其他示例中,可以对齐子帧以将动态对象定位在中间位置或结束位置。

可以以任何合适的方式确定运动矢量。在一个示例中,可以使用视频编码常用的方法生成运动矢量,但运动矢量是基于每像素而不是像素块确定。在其他示例中,可以为像素块确定用于对齐子帧的运动矢量。

对于图6显示的流程图,其说明了通过包括SPAD阵列摄像头和运动传感器的成像设备获取图像的示例方法600。方法600可以例如通过成像设备100来实现。

在602,通过SPAD阵列图像传感器获取图像数据的第一子帧和第二子帧,图像数据的每个子帧包括图像传感器每个像素的二进制值。二进制图像数据的第一子帧和第二子帧表示摄像头获取的一系列图像数据子帧中的任意两个子帧,所述子帧将被求和以产生图像。

在604,基于来自运动传感器的运动数据确定第一子帧和第二子帧之间成像设备的位姿变化。如上所述,在子帧之间发生这种运动的情况下,场景中的静止对象可能会由于在不同子帧中的不同像素位置成像而变得模糊。因此,所确定的位姿变化可用于对齐子帧以补偿成像设备的运动。

在606,基于运动数据对第二子帧应用位置偏移,以将在第二子帧中成像的静止对象与在第一子帧中成像的静止对象的位置对齐,从而形成对齐的子帧。在一个示例中,可以通过应用基于位姿变化的旋转模型608来确定位置偏移,其中旋转模型将旋转运动传感器信号与SPAD阵列传感器成像静止对象的运动方向和幅度相关联。

在一个实施例中,可以使用运动模型来确定设备姿势,然后可以将不同的设备姿势与不同的子帧偏移相关联,如610所示。可以基于检测到的运动类似地调整附加子帧。在可见于612,其中基于来自运动传感器的运动数据将第二位置偏移应用于第三子帧。附加子帧的偏移可以类似于为图像捕获附加子帧来确定。

在614,对对齐的子帧求和以形成强度图像。如上所述,这可以包括保持像素计数616,其中像素计数包括对齐子帧的像素值的运行总和。在其他示例中,可以使用任何其他合适的方法对对齐的子帧求和。在对图像的所有对齐子帧求和之后,在618输出图像。

通过以上方式,可以避免去模糊的后处理步骤并补偿SPAD传感器的运动模糊。

相关专利Microsoft Patent | Motion compensation for a spad array camera

名为“Motion compensation for a spad array camera”的微软专利申请最初在2021年1月提交,并在日前由美国专利商标局公布。

HoloLens QQ交流群493967447

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

专栏