(
映维网Nweon
2024年12月02日
)
微软
有在探索利用单光子雪崩二极管(SPAD)传感器阵列进行强度图像捕获和飞行时间捕获,并减少图像传感器获取的噪点。
与使用SPAD的图像采集相关联的挑战是暗电流带来的信号噪点。暗电流(又称为反向偏置漏电流)是指即便没有光子进入光敏器件(例如SPAD),都会流过所述器件的小电流。暗电流可以由晶体和/或制造不规则性和/或缺陷热诱导或引起。
即便SPAD没有检测到光子,暗电流都会导致耗尽区产生电子-空穴对,并引发雪崩事件。暗电流引起的雪崩事件通常视为探测到的光子,这可能导致SPAD的二进制输出包括错误计数或“暗计数”。
在SPAD图像中,暗计数可能导致分配给至少特定SPAD像素的强度值过高,这可能会给SPAD图像增加噪点。当在弱光条件下成像时,暗计数的影响十分显著,这导致了高噪点,从而降低了用户体验。
一种用于补偿SPAD图像中的暗电流的技术包括获得暗电流图像。其中,暗电流图像指示SPAD阵列的哪些SPAD像素产生暗计数和/或由不同SPAD像素所产生的暗计数数量。通过产生指示SPAD像素中暗计数的位置和/或普遍性的暗电流图像,可以在运行时使用暗电流图像来修改使用SPAD阵列捕获的图像,以补偿暗计数。
在日前公布的三分专利申请中,这家公司介绍了通过暗电流残差图像来改善SPAD图像的图像质量,特别是在弱光条件下拍摄的SPAD图像,涉及生成暗电流残差图像,通过加权滤波促进暗电流补偿,并对(加权)平均图像执行模板匹配处理来减少暗电流补偿图像中的伪影。
在一个实施例中,用于生成暗电流残差图像的系统可配置为通过以下方式生成加权平均图像:基于所述像素所在区域的光照水平确定输入图像的每个像素的基于区域的权重值;使用输入图像的每个像素的基于区域的权重值将输入图像与之前的图像组合;为基于加权平均图像生成暗电流残差图像。
在一个实施例中,可以通过对(加权)平均图像执行模板匹配处理来获得暗电流残差图像。可以应用进一步的操作来获得暗电流残差暗电流图像,例如非最大抑制和/或串扰模板拟合(有利地使残差暗电流图像模拟故障像素与其相邻像素之间的串扰)。
可将暗电流残差图像应用于参考暗电流图像,以获得精炼的暗电流图像。通过使用暗电流残差图像修改参考暗电流图像,改进后的暗电流图像可以表示图像传感器像素相对于参考暗电流图像的暗电流状态变化,从而为在运行时图像中进行暗电流补偿提供改进的依据。
图2示出用于产生暗电流补偿输出图像的概念表示。图2描述了配置为生成输出图像220的整体滤波器200。在图2的示例中,至少利用输入图像202和前面的图像212来生成输出图像220。参考暗电流图像250用于生成输出图像220的附加输入。输入图像202、前一图像和参考暗电流图像250在线性空间中。
输入图像202可以包括由图像传感器(例如SPAD阵列112或另一类型的图像传感器)获取和/或从图像传感器获得的图像。前一图像212可以包括来自前面的滤波迭代的输出图像。在使用参考暗电流图像250的实施例中,参考暗电流图像250可以包括修改的工厂校准暗电流图像,亦即暗电流图像可以基于与输入图像202相关的图像捕获条件进行调整或修改。
在图2的实施例中,输出图像220包括输入图像202的滤波和暗电流减去版本。输出图像220可以包括线性图像,并且可以对输出图像220执行额外的后处理步骤,例如将输出图像220转换为伽马空间、施加增益、执行色调映射和/或其他操作以生成用于向用户显示的最终图像。
在一个实施例中,输入图像202和参考暗电流图像250用作暗电流残差图像生成204的输入。例如,可以从输入图像202中减去参考暗电流图像250以获得暗电流校正的输入图像,然后对其进行处理以进行暗电流残差图像生成204。
系统可以利用暗电流残差图像来改进参考暗电流图像250,以获得精炼的暗电流图像206。例如,可以将暗电流残差图像添加到参考暗电流图像250中,以提供精炼的暗电流图像206。随着时间的推移,在捕获输入图像202的图像传感器中可能出现新的故障像素。
所述暗电流残差图像可存储新故障像素和新非故障像素的数据,从而将所述暗电流残差图像添加/组合到所述参考暗电流图像250中,并提供更新或精炼的暗电流图像206,以更准确地反映所述图像传感器像素的当前暗电流状态。
在一个实施例中,执行加权滤波218以将暗电流校正的图像208与运动补偿的前图像216结合起来。可以通过将运动补偿214应用于前一图像212来获得运动补偿的前一图像216。
对于将暗电流校正图像208与运动补偿的先前图像216结合的加权滤波218,可以利用通过权重图生成210获得的权重图。权重图包括每像素权重值,权重值平衡输出图像220中暗电流校正图像208和运动补偿的先前图像216的像素的影响。在图2的实施例中,使用用于获得暗电流校正图像208的精炼暗电流图像206获得权重图的逐像素权重值。
如上所述,在滤波器200中使用的参考暗电流图像250可以包括修改的工厂校准暗电流图像。图3示出了获取工厂校准的暗电流图像,然后可以根据当前图像捕获条件对其进行修改,以提供参考暗电流图像250。
图3描绘了图像传感器302。通过在使用图像传感器302进行图像采集时防止入射光,所得到的图像可以描述图像传感器的图像传感像素的暗电流状态。
图像传感器302可以捕获暂时连续的帧,暂时平均以形成工厂校准的暗电流图像306和310。可以获得与图像传感器302的不同温度相关的不同工厂校准暗电流图像306和310。
图4示出与图2中的暗电流残差图像生成204相关的概念表示。如图4所示,暗电流残差图像生成包括两个主要环节:加权平均图像计算402和残差计算422。加权平均图像计算402获得传入帧的加权时间平均值,残差计算422利用加权平均图像检测故障像素以输出暗电流残差图像。
图4描述了加权平均图像计算402可以以第一帧速率(表示为帧率1)执行,并且残差计算422可以以第二帧速率(表示为帧率2)执行。加权平均图像计算402的帧率1可以高于残差计算422的帧率2。
在图4的示例中,根据加权平均图像计算402,将输入图像202与平均图像420组合使用权重值416形成加权平均图像418。
在一个实施例中,从输入图像202中减去参考暗电流图像250,并且使用权重值416将结果与平均图像420组合以形成加权平均图像418。平均图像420可以包括从前面的迭代计算的加权平均图像。平均图像420可以用新计算的加权平均图像定期更新。所以,加权平均图像418可以成为可用于生成后续加权平均图像的先前图像。
如图4所示,利用平均图像420作为残差计算422的输入,以确定暗电流残差图像430。当利用经参考暗电流图像250修改的输入图像202作为加权平均图像计算402的输入时,所得到的暗电流残差图像430可指示像素相对于参考暗电流图像250的暗电流状态的差异。
所述暗电流残差图像430可用于修改所述参考暗电流图像250,以获得精炼的暗电流图像206,并便于从所述输入图像202中进行相减,从而促进暗电流补偿。
当输入图像202作为未经参考暗电流图像250初始修改的加权平均图像计算402的输入时,暗电流残差图像430可以以绝对值表示像素的暗电流状态。例如,这样的暗电流残差图像430本身可以用作精炼的暗电流图像206,并用于从输入图像202中减去,以促进暗电流补偿。
残差计算422可包括各种组件,例如模板匹配424、非最大抑制426和模板拟合428。不同的实施例可以实现残差计算422的不同组件和/或组件的组合。
图5示出了根据产生暗电流残差图像430执行模板匹配424的概念表示。如图5所示的平均图像420捕获低光环境,并且包含由暗电流带来的故障像素502。通过利用输入图像202作为加权平均图像计算402的输入获得平均图像420。可以执行模板匹配424以识别平均图像420内故障像素502的位置,以形成暗电流残差图像430。
在图5的示例中,模板匹配424利用指示故障像素特征的目标像素模板。图5显示了示例像素模板504和506,其中故障像素可以表征为相对于相邻像素具有高像素值。在像素模板504和506中,故障像素位于中间像素位置。
在图5的示例中,系统将像素模板504识别为用于模板匹配424的目标像素模板。系统识别与输入图像的每个像素相关联的像素窗口508。像素窗口大小与像素模板504的大小匹配。图5示出以平均图像420的像素为中心的示例性目标像素窗口508。
模板匹配424涉及确定目标像素模板504与像素窗口508之间的相似性514。基于相似性514是否满足一个或多个相似性条件,可以将与像素窗口508相关联的像素添加到一组目标像素516中。所述省略号表示可以确定目标像素模板504与平均图像420的每个像素的每个像素窗口之间的相似性,以建立目标像素集516。
在一个实施例中,为了便于评估目标像素模板506与像素窗口508之间的相似性,系统识别目标像素模板506的矢量表示512,并生成像素窗口508的矢量表示510。像素窗口508的矢量表示510可以通过将像素窗口508归一化以进行偏移和增益来获得。偏移归一化可以通过使用除中心像素外的像素窗508的所有像素确定平均像素值并从像素窗508的每个像素减去平均像素值来完成。
可以将像素窗口508的矢量表示510与目标像素模板506的矢量表示512进行比较,以获得相似性514(例如,相似性得分)。
可将分别在像素窗口508和目标像素模板506的矢量表示510和512之间获得的相似性514与一个或多个相似性阈值进行比较,以确定是否在目标像素516集合中包括与像素窗口508相关联的像素。
指示图像传感器像素的暗电流状态的暗电流状态图像518可以用作暗电流残差图像430,或者可以对其进行额外处理以形成残差图像430。
图6和7说明了根据产生暗电流残差图像430执行非最大抑制426的概念表示。非最大抑制可以在暗电流状态图像518或指示故障像素的位置和/或大小的任何其他类型的图像之上执行。
输入图像602可以包括通过模板匹配424计算的暗电流状态图像518,或指示像素的暗电流状态的另一类型的图像。在图6中,输入图像602的像素方内用字符“F”表示故障像素或新故障像素。图6中无故障像素或无变化像素用空白方格表示。
根据非最大抑制426,系统可以将输入图像602划分为不同的分区604。在图6的示例中,分区604包含4×4像素集。图6同时描绘了更新的输入图像606,其可以通过对每个分区604内的像素施加一个或多个数量约束来生成。数量和/或严重程度限制可能与特定类型的暗电流状态相关联。
在一个实施例中,对于特定分区604,施加数量约束可以包括将分区604内所有故障或新故障像素的暗电流状态更改为不同的暗电流状态,但分区604内具有最高亮度/像素值的一个或多个故障或新故障像素除外。
在一个实施例中,将一个或多个数量约束应用于在应用数量约束后保留在各种分区604中的一个或多个故障或新故障像素。例如,可以将剩余的故障或新故障像素与幅度阈值进行比较,并且可以将未满足幅度阈值的像素从故障或新故障状态更改。
图6中更新后的输入图像606反映了由于施加数量约束而导致的输入图像602像素的暗电流状态变化。在一个实施例中,可以重复施加数量约束。在图6的示例中,更新输入图像606的更新分区608相对于输入图像602的分区604向右移动两个像素,向下移动两个像素。所述系统可将所述数量约束约束重新应用于所述更新分区608,以减轻空间彼此靠近的错误像素检测。
系统可以迭代地更新分区,并施加数量约束约束,直到满足停止条件。例如,停止条件可以包括执行预定数量的迭代,或达到预定数量的故障或新故障像素。
图7示出用于实现非最大抑制426的可选技术概念表示。图7示出输入图像702A,其像素状态由字符“F”表示为故障或新故障,像素状态由空白方块表示为无故障或无变化。
在图7的实施例中,输入图像702A包括定位于输入图像702A的故障像素的预定义像素窗口大小的像素窗口704。系统对像素窗口704内的像素施加一个或多个数量约束。
施加数量约束可以包括确定在像素窗口704内是否存在其他故障或新故障像素,其大小或像素值大于像素窗口704所定位的像素。为了确定像素窗704中存在具有更大像素值的其他故障或新故障像素,系统可以将像素窗704所定位的像素的暗电流状态改变为不同的暗电流状态。
图8示出了根据产生暗电流残差图像430执行模板拟合428的概念表示。模板拟合428可以在指示像素的暗电流状态的任何图像之上执行。
图8示出输入图像802,其包括在其上进行了模板匹配424和非最大抑制426的图像。输入图像802区分故障像素(以白色表示)和非故障像素(以黑色表示)。输入图像802不能对相邻像素之间的串扰进行建模,所以不能捕获故障像素对其相邻像素的影响。
因此,利用输入图像802来补偿运行时图像中的暗电流可能导致伪影,特别是在高增益设置下操作时。可以执行发明所述的模板拟合428以生成暗电流残差图像430,暗电流残差图像430模拟故障像素与其相邻像素之间的串扰,从而减少暗电流补偿图像中的伪影。
图8描绘了像素模板504和506,它们模拟了故障像素(在像素模板504和506的中心)与不同粒度级别的相邻像素之间的串扰。当要对其进行暗电流补偿的输入图像202以非二值化模式捕获时,模板拟合428可包括选择像素模板504或506作为串扰模板,用于应用于输入图像802的不同故障像素。
例如,对于输入图像802的给定故障像素,可以根据给定故障像素的光照水平缩放串扰模板504或506,并且可以将缩放后的模板504或506复制到给定故障像素的像素位置。
当捕获要对其进行暗电流补偿的输入图像202时,可以通过从像素模板504采样获得附加的串扰模板,例如模板806、808、810和812。在图8的实施例中,通过对像素模板504的2×2像素区域进行平均得到模板806、808、810和812的像素。
用于包含故障像素的像素窗口的串扰模板的选择可以以各种方式完成。在图8所示的示例中,系统分别为每个串扰模板506、806、808、810、812识别矢量表示814、816、818、820和822。矢量表示814、816、818、820和822可用于便于在串扰模板506、806、808、810和812与像素窗口804之间进行比较,以选择用于像素窗口804的串扰模板。
图8进一步描述了为像素窗口804生成的矢量表示824,用于与串扰模板506、806、808、810和812的矢量表示814、816、818、820和822进行比较。
像素窗口804的矢量表示824可以以类似于上述参考图5讨论的像素窗口508的矢量表示510的生成的方式生成。例如,矢量表示824可以通过对偏移和增益的像素窗口804进行归一化来生成。偏移归一化可以包括从像素窗口804的每个像素中减去像素窗口804的像素的平均像素值。增益归一化可包括将像素窗口804转换为矢量并确定其单位矢量以用作矢量表示824。
确定像素窗口804的矢量表示824与串扰模板506、806、808、810和812的矢量表示814、816、818、820和822之间的相似性826在概念上可以类似于确定像素窗口508的矢量表示510与目标像素模板506的矢量表示512之间的相似性514。
例如,确定相似性826可以包括确定矢量表示824与矢量表示814、816、818、820和822之间的单独点积。所选的串扰模板828可以被选为与矢量表示814、816、818、820或822相关联的串扰模板506、806、808、810或812,矢量表示814、816、818、820或822产生与像素窗口804的矢量表示824的最高相似性826。
系统可将所选串扰模板828应用于像素窗口804,以形成暗电流残差图像430,暗电流残差图像430模拟故障像素与其相邻像素之间的串扰。可以对输入图像802的每个故障像素执行这样的处理。
在图8的示例中,将所选串扰模板828应用于像素窗口804包括将比例和偏移量830应用于所选串扰模板828。可将缩放和偏移量830应用于所选串扰模板828,以考虑与所述像素窗口804中所述故障像素相关联的不同光照水平或像素值。
可将比例和偏移量830应用于所选串扰模板828的归一化矢量表示。可以通过将表示像素窗口804的偏移归一化矢量投影到所选串扰模板828的归一化矢量表示之上,并通过点积确定所述投影矢量的长度来计算比例因子。所计算的长度可以用作缩放所选串扰模板828的比例因子。当对故障像素与其相邻像素之间的串扰进行建模时,添加到缩放串扰模板的偏移量可以确保串扰模板中的所有像素都表示正值。
再次参考图4,可以根据残差计算422进行模板匹配424、非最大抑制426和/或模板拟合428,以产生暗电流残差图像430。再次参照图2,暗电流残差图像430可用作精炼暗电流图像206,或者可用于修改参考暗电流图像250以提供精炼暗电流图像206。
如上所述,可以从输入图像202减去精炼的暗电流图像206以获得暗电流校正图像208。尽管暗电流校正后的图像208可能比输入图像202具有更少的暗电流伪影,但由于改进后的暗电流图像206中的缺陷,暗电流减法可能无法补偿所有的暗计数。在需要高增益设置的极低光环境中成像时,暗电流图像中的缺陷可能会加剧。
在一个实施例中,可以使用加权滤波。在图2的实施例中,从输入图像202中减去精炼的暗电流图像206,以提供暗电流校正的图像208。进行加权滤波218以将暗电流校正的图像208与运动补偿的前图像216结合起来。通过将运动补偿214应用于前一图像212,可以获得运动补偿的前一图像216。
将)暗电流校正图像208与运动补偿的先前图像216相结合的加权滤波218利用通过权重图生成210获得的权重图。权重图包括每像素权重值,该权重值平衡输出图像220中暗电流校正图像208和运动补偿的先前图像216的像素的影响。在图2的示例中,使用改进的暗电流图像206获得权重图的逐像素权重值。
图9示出权重图生成210的概念表示,其用于获得可用于用其他图像数据过滤暗电流校正图像208以生成输出图像220的权重图。
图9显示,权重图生成210可以包括访问暗电流图像902,所述暗电流图像902可以包括精炼的暗电流图像206或其他暗电流图像。
权重图生成210同时包括基于所述暗电流图像902生成校正后的暗电流图像904。在图9的实施例中,至少通过环境光缩放906获得校正后的暗电流图像904,其中涉及根据环境光条件缩放暗电流图像902的像素值。可以利用环境光条件的各种指示来促进环境光缩放906。在一个实施例中,用于缩放暗电流图像902的像素以获得校正后的暗电流图像904的增益908与对其进行暗电流补偿的输入图像202相关联。
在一个实施例中,在应用环境光缩放906之前,将暗电流图像902转换为伽马校正空间。另外,在转换为伽马校正空间之前,对暗电流图像902施加初始偏移量。初始偏移量可以与暗电流图像902相关联。在一个实施例中,初始偏移量作为暗电流图像902的像素子集的平均像素值获得。
由于环境光缩放906,校正后的暗电流图像904可以指示其故障像素是否可能被用户感知。因此,校正后的暗电流图像904可用于获得权重图910的权重,权重图910对用于校正后的暗电流图像904具有高光电平的像素位置的运动补偿的前一图像216给予更大的强调。
在一个实施例中,通过从最大亮度值912减去校正后的暗电流图像904的像素值获得权重图910的权重值。
图10、11和12描述与产生暗电流残差图像相关的行为。图13、14和15说明了与修改暗电流图像相关的行为。图16和17说明了示例通过加权滤波促进暗电流补偿的相关行为。
1002,生成加权平均图像。这包括步骤1002A,确定输入图像的每个像素的基于区域的权重值,其中输入图像的每个像素的基于区域的权重值基于像素所在区域的光照水平;步骤1002B,使用输入图像的每个像素的基于区域权重值将输入图像与先前图像组合。
1004,基于加权平均图像生成暗电流残差图像。
1102,通过执行模板匹配处理来识别输入图像内的一组目标像素。这包括步骤1102A,识别目标像素模板;步骤1102B,识别与输入图像的每个像素相关联的像素窗口;步骤1102C,通过确定每个像素窗口与目标像素模板之间的相似性来确定输入图像的每个像素的相似性得分。
1104,基于目标像素集生成暗电流残差图像。
1202,以第一帧速率,通过无限脉冲响应滤波器生成加权平均图像。
1204,在低于第一帧速率的第二帧速率下,至少通过执行利用加权平均图像作为输入的模板匹配处理来生成暗电流残差图像。
1302,接收描述输入图像的一个或多个像素的暗电流状态的输入图像,其中输入图像的一个或多个像素的暗电流状态包括故障状态或非故障状态之一。
1304,将输入图像划分为多个分区。
1306,通过对与至少一种类型的暗电流状态相关联的多个分区施加至少一个数量约束来生成更新的输入图像。
1308,直到停止条件得到满足为止:将更新的输入图像划分为更新的多个分区,其中,更新的多个分区的分区在空间上至少部分地与多个分区的分区相偏移;以及通过对与所述至少一种类型暗电流状态相关联的所述更新多个分区施加所述至少一种数量约束来更新所述更新的输入图像。
1402,接收描述输入图像的一个或多个像素的暗电流状态的输入图像,其中输入图像的一个或多个像素的暗电流状态包括故障状态或非故障状态之一。
1404,识别像素窗口大小。
1406,通过以下方式生成更新的输入图像:对于包含至少一种类型的暗电流状态的输入图像的每个特定像素:定义包含特定像素的像素窗口大小的像素窗口;以及对所述像素窗口内的像素施加至少一个数量约束。
1502,接收描述输入图像的一个或多个像素的暗电流状态的输入图像,其中输入图像的一个或多个像素的暗电流状态包括故障状态或非故障状态之一。
1504,识别一个或多个对相邻像素之间的串扰进行建模的串扰模板。
1506,对于包含至少一种暗电流状态的输入图像的每个特定像素,通过将从所述一个或多个串扰模板中选择的所述串扰模板应用于所述特定像素及其邻近像素来生成更新的输入图像。
1602,接收输入暗电流图像。在一个实施例中,输入暗电流图像是基于工厂校准的暗电流图像生成。
1604,至少通过根据环境光条件缩放输入暗电流图像的像素值来生成校正的暗电流图像。
1606,生成包含校正暗电流图像的每个像素的权重值的权重图,其中,对于校正暗电流图像的每个像素,权重图的权重值基于校正暗电流图像像素的光照水平。
1608,通过利用权重映射来过滤输入图像来生成输出图像。
1702,通过从输入图像减去输入暗电流图像来生成暗电流校正图像。
1704,通过对前一图像应用运动补偿来生成运动补偿的先前图像。
1706,通过使用权重图计算暗电流校正图像和运动补偿的前一图像的加权平均值来生成输出图像,其中权重图是基于与输入图像相关的环境光条件生成的。在一个实施例中,权重图包括至少通过根据环境光条件缩放输入暗电流图像的像素值而生成的校正暗电流图像的逆图像。
相关专利
:
Microsoft Patent | Systems and methods for generating dynamic dark current images
相关专利
:
Microsoft Patent | Systems and methods for selectively constraining and implementing cross talk templates for dark current images
相关专利
:
Microsoft Patent | Systems and methods for facilitating dark current compensation by weighted filtering
所述三份
微软专利
申请均在2023年4月提交,并在日前由美国专利商标局公布。