微软AR/VR专利提出通过单个单光子雪崩二极管减少图像传感器获取的噪点
通过单个单光子雪崩二极管(SPAD)来减少图像获取的噪点
(映维网Nweon 2022年08月31日)传统图像传感器的信噪比可能受到读取噪点的高度影响,尤其是在低能见度条件下成像时。例如,在低光成像条件,CMOS或CCD成像像素可以仅检测少量光子,这可能导致读取噪点接近或超过成像像素检测到的信号,并降低信噪比。
当在低光条件下以高帧速率成像时,CMOS或CCD图像传感器检测到的信号中读取噪点的优势通常会加剧。尽管较低的帧速率可用于允许CMOS或CCD传感器检测足够的光子,但利用低帧速率通常会导致捕获图像中的运动模糊,这在头显中尤其成问题。
除了影响透视成像外,与常规图像传感器相关的读取噪点和/或运动模糊可能影响头显执行的其他操作,如后期重投影、滚动快门校正、对象追踪、表面重建、语义标记、对象的3D重建等。
针对这个问题,微软在名为“Image acquisition techniques with reduced noise using single photon avalanche diodes”的专利申请中提出了一种通过单个单光子雪崩二极管(SPAD)来减少图像获取的噪点。
在一个实施例中,SPAD阵列可以形成图像传感器,每个SPAD在SPAD阵列中形成单独的像素。为了捕获环境的图像,每个SPAD像素可以检测雪崩事件,并为连续快门操作提供二进制输出。可以对帧捕获时间段的多个快门操作的每像素二进制输出进行计数,并且可以基于所计数的每像素二值输出来计算每像素强度值。每像素强度值可用于形成环境的强度图像。
微软指出,将SPAD图像传感器用于图像捕获可以提供优于传统图像捕获系统和技术的众多优点,特别是在低光条件下成像和/或在图像捕获期间经历运动的设备成像。
首先,SPAD信号的二值化有效地消除了读取早点,从而与传统CMOS和/或CCD传感器相比提高了SPAD图像传感器阵列的信噪比。因此,由于SPAD信号的二值化,SPAD信号可以以高帧速率读出,而不会导致信号被读取噪点支配,即使对于在低光环境下捕获少量光子的信号都是如此。
鉴于上述情况,可以使用SPAD阵列以高帧速率执行多次曝光和读出操作,以生成单独的部分图像帧,并且可以组合单独的局部图像帧以形成单个合成图像。
通过利用SPAD阵列的多次曝光和读出操作来形成单个合成图像,可以实现高帧速率下的低光成像。另外i,利用高帧率进行低光图像捕获可以减少运动伪影的影响。值得一提的是,使用SPAD的高帧率图像捕获技术可以与其他运动补偿操作组合,从而进一步减少运动伪影。缓解的运动伪影可以相应地改善头显执行的其他操作,例如后期重投影、滚动快门伪影校正等。
图2A-2C示出了可以使用SPAD阵列捕获图像的示例曝光和读出操作。特别地,图2A示出了SPAD阵列200。在这方面,SPAD阵列的SPAD像素202可配置为响应于检测光子而触发雪崩事件。SPAD像素202可以以受控的、选通的方式操作,以便于图像采集的不同曝光操作。
图2A显示, SPAD阵列的SPAD像素配置为执行多个顺序曝光和读出操作。特别地,图2A示出了曝光204A和读出212A,随后是曝光204B和读出212B,依次是曝光204C和读出212C。图2A描绘了曝光操作包括应用一组快门操作208。如上所述,将快门操作应用于SPAD像素将SPAD像素配置为响应于检测到的光子触发雪崩事件。
因此,在快门操作期间雪崩事件的存在指示SPAD像素在快门操作过程中检测到光子。SPAD像素在快门操作期间是否经历雪崩事件(因此检测到光子)可以用二进制“1”或“0”表示,其中“1”表示快门操作期间发生雪崩事件,“0”表示快门运行期间未发生雪崩。因此,图2A描绘了与二进制“1”或“0”相关联的每个快门操作208
图2A同时描绘了在特定选通时间212执行的各个快门操作210。选通时间是SPAD像素被配置为响应检测到的光子触发雪崩事件的持续时间。
图2A显示,各个部分帧由单独的曝光生成。特别地,图2A示出了在曝光204A之后执行的读出212A、在曝光204B之后执行的读取212B以及在曝光204C之后执行的读数212C。对于SPAD阵列,“读出”包括基于每个像素确定或输出在一组快门操作中检测到的光子数量。
捕获捕获环境的较亮部分的像素将比捕获捕获环境较暗部分的像素计数更多的光子。因此,在一组快门操作检测到的每像素数量的光子可以用于形成强度图像。
部分帧214A、214B和214C在概念上表示包括低光环境中的植物的捕获场景。植物部分地暴露在部分阵214A、214B和214C中的每一个中,因此在其中显得暗淡。这是因为部分帧214A、214B和214C各自基于各自的曝光204A、204B和204C形成,当单独考虑时,这些曝光跨越相对短的曝光时间。例如,当以90Hz成像时,单个曝光204A、204B和204C可各自跨越约11ms的相应时间段,这可能不足以在低光条件下成像植物时适当地曝光植物。
尽管单独考虑时,单个曝光204A、204B和204C可能不会覆盖足够长的曝光时间段以适当地曝光植物,但组合考虑时,曝光204A,204B和204 c覆盖更长的有效曝光时间206,并且可以适当地曝光该植物。
继续上面的示例,其中单个曝光204A、204B和204C的相应曝光时间段为约11ms,有效曝光时间206可包括约33ms或更多,这可足以在低光成像条件下适当地曝光植物。
因此,可以组合部分帧214A、214B和214C以生成合成图像。
图2B显示了处理216组合部分帧214A、214B和214C以形成图像218。因为可以在避免读取噪点的同时执行连续执行的曝光和读出操作,所以可以以高帧速率执行曝光和读出。因此,由于图像218是使用以高帧率捕获但仍共同跨越有效曝光时间206的分量生成,图像218可以提供具有减少的运动模糊的低光环境的适当曝光表示。
在一个实施例中,可以执行额外的动作以进一步减轻或减少捕获的合成图像中的运动模糊。例如,系统执行运动补偿操作以生成合成图像,以与上面描述的利用顺序、高帧率曝光和读出操作的技术相结合。
图2C示出了基于运动数据的示例运动补偿操作。特别地,图2C示出了与曝光204A相关联的运动数据220A、与曝光204B相关联的移动数据2206以及与曝光204C相关联的活动数据220C。在执行上述各种曝光操作期间,IMU 114捕获各种运动数据。例如,IMU 114可以在曝光204A期间捕获运动数据220A。
运动数据220A可以表示曝光204A期间的一个或多个平均或中值运动度量。IMU 114同时可以在曝光204B期间捕获运动数据2206。运动数据2206可以表示曝光操作204B期间的一个或多个平均或中值运动度量。类似地,IMU 114可以在曝光204C期间捕获运动数据220C。运动数据220C可以表示曝光204C期间的一个或多个平均或中值运动度量。
因此,与各种曝光操作相关联的运动数据可以与基于各种曝光操作生成的不同部分帧相关联。例如在一个示例中,运动数据220A与部分帧214A相关联,运动数据220 6与部分帧214B相关联,并且运动数据220C与部分帧14c相关联。以这种方式,运动数据220A、2206和220C可用于补偿SPAD阵列200在部分帧214A、214B和214C的捕获之间的移动,以对准部分帧214B、214C以生成合成图像。
用于生成图像的运动补偿操作附加地或替代地利用基于计算机视觉的运动补偿技术。例如,在一个实施例中,运动补偿操作可以包括全局或局部下采样、对准和上采样操作,以减少合成图像中的运动伪影。
图3示出了使用SPAD阵列捕获连续低光图像的示例。作为示例实现,可以使用头显的一个或多个SPAD阵列来捕获连续的微光图像,并且可以用于生成所捕获的微光环境的透视图像,以实时呈现给用户。
图3说明了使用SPAD阵列200执行的各种曝光和读出操作。特别是,图3显示了顺序执行的曝光和读出作业304A至304F。
图3所示的示例显示了使用单独的曝光和读出操作集生成的每个图像306A和306B。例如,图像306A是使用曝光和读出操作304A、304B和304C生成,而图像306B是使用单独的、不重叠的曝光和读出组304D、304E和304F生成。可以以任何期望的速率执行单独的顺序曝光和读出操作集。
例如,第一组曝光和读出操作可以包括曝光和读出动作304A、304B和304C,第二组曝光和读取操作可以包括暴露和读出操作304D、304E和304F。系统可以执行连续的3组曝光和读出操作,使得这些组以30Hz或更低(或更高)的速率完成。
图7和8分别示出了使用SPAD降低噪点的图像采集相关动作。
流程图700的动作702包括执行多个顺序曝光和读出操作,每个曝光和读出包括:(i)应用一组快门操作以配置SPAD阵列的每个SPAD像素以启用光子检测,以及(ii)对于SPAD阵列中的每个SPA像素,读出在所述一组快门操作期间检测到的光子的数量。
在一个实施例中,为每个单独的曝光和读出操作生成部分帧。多个顺序曝光和读出操作可以包括2、3或更多曝光和读出。每个顺序曝光和读出操作具有相同的曝光时间。
动作704包括基于在多个顺序曝光和读出操作中的每一个期间为每个SPAD像素检测到的光子数量生成图像。在一个实施例中,使用基于在多个顺序曝光和读出操作中的每一个期间为每个SPAD像素检测到的光子数量而确定的部分帧来生成图像。另外,执行一个或多个运动补偿操作以生成图像。
动作706包括执行连续多个顺序曝光和读出操作。在一个实施例中,连续多个顺序曝光和读出操作包括至少部分重叠的顺序曝光和读取操作集,而在其他实现中,顺序多个顺序暴露和读出操作包含非重叠的顺序暴露和读取操作。在一个实施例中,以30Hz或更低的速率执行连续多个顺序曝光和读出操作。
动作708包括生成连续图像,每个连续图像基于连续多个顺序曝光和读出操作中的相应多个顺序暴露和读出操作生成。
动作710包括在显示器连续显示连续图像。在一个实施例中,用于在显示器显示连续图像的帧显示速率与执行连续多个顺序曝光和读出操作的顺序曝光和读取操作的速率相匹配。
现在注意图8。流程图800的动作802包括执行多个顺序快门操作,以配置SPAD阵列的每个SPAD像素以启用光子检测。
动作804包括访问SPAD阵列的每个SPAD像素的相应二进制计数流,每个相应的二进制计数流对于相应的SPAD像素指示在多个顺序快门操作期间检测到的光子数。在一个实施例中,二进制计数的各个流累积在系统片上系统(SOC)。
动作806包括从每个SPAD像素的相应二进制计数流中识别一组二进制计数,包括来自每个SPAD象素的每个二进制计数流的相应二进制数。
动作808包括使用该组二进制计数生成图像。在一个实施例中,应用一个或多个运动补偿操作作为生成图像的一部分。
动作810包括从每个SPAD像素的相应二进制计数流中识别第二组二进制计数,第二组二元计数包括来自每个SPAD象素的每个二进制计数流的第二组相应二进制计数。在一个实施例中,第二组二进制计数包括来自也包括在该组二进制计数中的相应二进制计数流的至少一些二进制计数。另外,第二组二进制计数包括与该组二进制计数相同数量的二进制计数。
动作812包括使用第二组二进制计数生成第二图像。在图像之后生成/获得第二图像。第二图像和图像二者可以连续地显示在头显显示器,以便于在低光条件下以减少的运动模糊进行透视成像。
通过以上描述的方式,SPAD可以帮助生成减少噪点的图像。
名为“Image acquisition techniques with reduced noise using single photon avalanche diodes”的微软专利申请最初在2021年2月提交,并在日前由美国专利商标局公布。