微软有在探索利用单光子雪崩二极管(SPAD)传感器阵列进行强度图像捕获和飞行时间捕获,并减少图像传感器获取的噪点。
在名为” Systems and methods for obtaining dark current images“的专利申请中,这家公司介绍了用于获取暗电流图像的方法,从而改善SPAD图像的图像质量,特别是在弱光条件下拍摄的SPAD图像。
作为说明,与使用SPAD的图像采集相关联的挑战是暗电流带来的信号噪电。暗电流(又称为反向偏置漏电流)是指即便没有光子进入光敏器件(例如SPAD),都会流过所述器件的小电流。暗电流可以由晶体和/或制造不规则性和/或缺陷热诱导或引起。
即便SPAD没有检测到光子,暗电流都会导致耗尽区产生电子-空穴对,并引发雪崩事件。暗电流引起的雪崩事件通常视为探测到的光子,这可能导致SPAD的二进制输出包括错误计数或“暗计数”。
在SPAD图像中,暗计数可能导致分配给至少特定SPAD像素的强度值过高,这可能会给SPAD图像增加噪点。当在弱光条件下成像时,暗计数的影响十分显著,这导致了高噪点,从而降低了用户体验。
一种用于补偿SPAD图像中的暗电流的技术包括获得暗电流图像。其中,暗电流图像指示SPAD阵列的哪些SPAD像素产生暗计数和/或由不同SPAD像素所产生的暗计数数量。通过产生指示SPAD像素中暗计数的位置和/或普遍性的暗电流图像,可以在运行时使用暗电流图像来修改使用SPAD阵列捕获的图像,以补偿暗计数,例如通过执行从捕获的SPAD图像中减去暗电流图像的减法运算。
微软描述的方法可便于在运行时生成暗电流图像,从而提供能够生成更新的暗电流图像的系统。其中,更新的暗流图像可以说明SPAD传感器随时间的退化和/或变化。
在一个实施例中,专利描述的方法配置为执行与在运行时生成暗电流图像相关联的各种动作。例如,配置为获得暗电流图像的系统可以获取图像帧,例如使用SPAD阵列捕获的图像帧。通过将低通滤波器应用于图像帧来生成低通滤波图像,并且通过从图像帧减去低通滤波图像来生成估计的暗电流图像。
可以以类似的方式生成附加的估计的暗电流图像,例如,每个图像基于各自捕获的图像帧和各自生成的低通滤波图像。然后,可以使用多个估计的暗电流图像来生成最终暗电流图像。
因此,可以使用在运行时捕获的图像来获得一个或多个最终暗电流图像。最终的暗电流图像可以用于生成暗电流补偿图像,例如通过从新捕获的图像中减去最终暗电流图像。最终的暗电流图像可以根据任何合适的间隔、定时或时间表在运行时捕获。
图2示出了使用单光子雪崩二极管(SPAD)阵列捕获低光环境的图像帧的示例表示。特别地,图2示出了头显202在弱光环境206内捕获对象204的图像帧208、212和216。
SPAD阵列的每个SPAD像素可配置为响应于检测到光子而触发雪崩事件。检测到的雪崩事件的数量可以用于生成强度图像(例如图像帧208、212和216)的图像数据(例如图像数据210、214和218)。头显可以在不同的时间点和/或不同的姿势捕获图像帧208、212和216。
从图2可以明显看出,由用于形成图像帧216的SPAD像素的二进制计数产生的图像数据218提供了对象204的噪点表示。例如,图2示出了图像帧216内的高频噪点220,其可以至少部分地由从HMD 202的SPAD阵列的一个或多个SPAD像素获得的暗计数引起。在图像帧208和212中描绘了类似的高频噪点和暗计数。
所以,由SPAD传感器捕获的图像帧可以用于获得暗电流图像。这样的暗电流图像可以用于生成暗电流补偿图像(例如通过从捕获的图像中减去暗电流图像),从而减少或消除暗电流噪点的普遍性。
图3示出了基于SPAD图像生成低通滤波图像。特别地,图3示出了应用于图像帧208、212和216的低通滤波302,以生成相应的低通滤波器图像308、312和316(分别对应于图像帧208212和216)。
如图3所示,低通滤波图像308、312和316包括相对于它们所基于的图像帧减少的高频噪点。在这方面,低通滤波图像308、312和316可以视为通常代表在图像帧208、212和216中捕获的一个或多个“背景”对象(例如,对象204),其中“前景”噪点基本上被过滤掉。
低通滤波302可以包括各种类型的滤波操作中的一个或多个,例如中值滤波、均值滤波、高斯滤波和/或其他。中值滤波可以包括生成每个输出像素作为具有与输出像素的像素坐标相邻的像素坐标的输入像素的中值。
尽管传统的中值滤波可以成功地减少输出图像中的高频噪点,但中值滤波通常利用排序操作来从输入像素值中确定中值,这可能在计算方面昂贵且耗时。所以,低通滤波302可以包括分层中值滤波。
基于低通滤波图像,系统可以生成估计的暗电流图像。图4示出了基于SPAD图像和低通滤波图像生成估计的暗电流图像。
特别地,图4示出了应用来分别从低通滤波图像308、312和316的对应图像帧208、212和216中减去低通滤波图像的减法402。减法402可以逐个像素地执行,从每个对应的捕获图像帧的每个对应的像素值中减去每个低通滤波图像的每个像素值。
如上所述,低通滤波后的图像可以被视为表示捕获场景的“背景”对象,其中“前景”噪点被滤除。沿着这些线,所捕获的图像帧可以被视为包括“背景”对象以及“前景”噪点。
因此,从捕获的图像帧中减去低通滤波后的图像可以视为产生包括“前景”噪点的图像,其中“背景”对象基本上被去除。
在“背景”对象基本上从估计的暗电流图像408、412和416中去除的情况下,估计的暗流图像408、412416中所示的剩余“前景”高频噪点可以提供由捕捉图像帧的SPAD阵列产生的暗计数的估计)。
但如图4的示例所示,由于低通滤波(例如,中值滤波或分层中值滤波)的性质,在相减402之后,在估计的暗电流图像408、412和416中可能依然存在“背景”对象的微弱表示。
因此,可以利用多个估计的暗电流图像来生成最终的暗电流图,从而产生与图像传感器相关联的暗计数的更精确的表示(相对于估计的暗电流图像)。
图5示出了基于估计的暗电流图像生成最终暗电流图像。特别地,图5示出了执行加权平均502以基于估计的暗电流图像408、412和416生成最终暗电流图像504。
加权平均502可以利用权重来组合/平均估计的暗电流图像408、412和416中具有公共坐标的像素的像素值,以生成最终暗电流图像504的输出像素(具有相同坐标)的值。
不同估计的暗电流图像408、412和416的每个公共坐标像素的权重可以以各种方式确定,例如通过使用相邻像素的平均像素值的负指数。
如图5所示,最终暗电流图像504包括暗计数506,其中基本上去除了“背景”对象的表示。最终的暗电流图像504因此可以用于生成暗电流补偿图像(见图9)。
图6和图7提供了与低通滤波器302有关的附加细节。参考图6和图7讨论的技术可以视为分层中值滤波,其可以近似于传统中值滤波器的性能,而不依赖于计算和/或时间密集型排序操作。
图6示出了对图像帧208执行的下采样602,以生成下采样的图像帧604。下采样602包括基于输入图像(例如图像帧208)的输入像素来生成下采样图像帧604的输出像素。
下采样图像帧604的每个输出像素被生成为来自输入图像的相应输入像素集合的平均值或中值。在这方面,下采样图像帧604可以包括比输入图像更低的图像分辨率。例如,下采样602可以配置为生成输出图像,输出图像的图像大小在宽度上减少了2倍并且在高度上减少了两倍。
图6同时示出了判定块606,因此,如果不满足停止条件,则可以使用先前下采样的图像帧604作为输入来再次执行下采样602。就这一点而言,可以迭代地执行下采样602,直到满足停止条件为止。
在通过下采样602生成下采样图像帧604之后,并且在确定满足停止条件之后,系统可以输出低通滤波图像308,其可以包括最近生成的下采样图像帧604。图6中讨论的示例过程可以构成图像帧208的低通滤波302,以生成低通滤波的图像308(见图3)。
如上所述,如图6中所述的迭代下采样602的性能可以视为分层中值滤波。图7提供了与下采样602相关的附加细节,其使得迭代下采样操作能够近似中值滤波器,同时避免计算和时间密集型排序操作。
图7示出了图2至图4和图6的图像帧208,以及经由下采样602生成的图6的下采样图像帧604的表示。如上所述,根据下采样602,下采样图像帧604的每个输出像素可以基于从输入图像的相应输入像素集合计算的平均值或中值来生成。
图7示出了图像帧208(输入图像)的一组像素702,其可以用于生成下采样图像帧604的输出像素706。
根据下采样602,可以基于像素集合702来计算平均像素值704,并且平均像素值702可以用作输出像素706的像素值。但如图7所示,可以从平均像素值704的计算中排除像素集合702的最大像素值和最小像素值。
换句话说,输出像素706的值可以通过将总像素值计算为像素集合702的像素值之和,从像素集合702中的像素值中确定最大值和最小值,从总像素值中减去最大值和最低值,并将总像素价值除以2来确定。
通过从平均像素值704的计算中排除或以其他方式去除像素集合702的最大像素值和最小像素值,仅使用剩余的两个中间像素值来确定平均像素值,从而使得平均像素值702表示整个像素集合702中位像素值。
因此,可以在不进行排序操作的情况下获得像素集合702的四个像素值的中值的表示。这样的下采样操作可以用于生成下采样图像帧604的每个输出像素。尽管图7所示的下采样仅将输入图像中的4个像素减少到输出图像中的单个像素(导致高度减少2倍,宽度减少2倍),但图7所述的下采样可以重复以近似中值滤波器的输出。
参考图4,可以从初始图像帧中减去低通滤波图像,以生成估计的暗电流图像,并且参考图5,可以使用多个估计的暗电流图像帧来经由加权平均来生成最终暗流图像。图8提供的细节进一步说明了估计的暗电流图像的输入像素的加权平均,以生成最终暗电流图像中的输出像素。
特别地,图8示出了根据以上参考图5所讨论的示例估计的暗电流图像408、412和416。
对于输出像素802,输出像素802的像素坐标可以用于从具有公共像素坐标的输入图像帧中确定一组对应的像素。例如,图8示出了估计暗电流图像408的对应像素808、估计暗电流图412的对应像素812和估计暗电流像416的对应像素816,每个像素具有与最终暗电流图504的输出像素802的坐标共同的像素坐标。
在图8的示例中,每个对应像素都具有相关联的对应像素值。例如,对应像素808具有对应像素值810,对应像素812具有相应像素值814,并且对应像素816具有对应的像素值818。
可以以各种方式确定用于根据加权平均860对这些对应像素值进行平均以生成输出像素802的值的权重。
在一个实施例中,基于围绕特定对应像素值的像素的平均像素值来确定每个特定对应像素的权重。周围像素的平均像素值可以用作函数的输入,并且函数的输出可以提供权重值。可以使用的一个示例函数是负指数函数。
对与对应像素值相关联的像素块的平均像素值使用负指数函数可以使得所得权重有利地在相关联的估计的暗电流图像中更多地强调暗区域而较少地强调亮区域。暗区域可以提供暗电流的更直接的表示,因为它们不会捕获可能扭曲暗电流表示的“背景”对象。相比之下,明亮区域会导致更多的散粒噪点,这可能会将噪点注入暗电流的表示中。
因此,图8描绘了以估计的暗电流图像408的对应像素808为中心的像素patch828、以估计的暗电流图像412的对应像素812为中心的象素patch832、以及以估计的暗流图像416的对应像素816为中央的象素patch836。
图8同时示出了根据估计的暗电流图像408的像素patch828的像素计算的平均像素值830、根据估计的暗流图像412的像素patch832的像素所计算的平均象素值834、以及根据估计的黑电流图像416的像素patch836的像素而计算的平均像元值838。
这些平均像素值830、834和838可以用于分别生成权重848、852和856,例如通过使用平均像素值830834和836作为加权函数的输入。
图9示出了来自图5和图8的估计的暗电流图像504。图9示出了经时间滤波的图像902,其可以包括图2的捕获的图像帧208、212和216的组合。
图9进一步示出了执行减法904以从经时间滤波的图像902减去暗电流图像504,从而提供暗电流补偿图像906,而从该暗电流补偿的图像906基本上去除了暗电流噪点。
名为” Systems and methods for obtaining dark current images“的微软专利申请最初在2021年10月提交,并在日前由美国专利商标局公布。