EBCMOS相机盲元检测方法的研究
2021-04-11蔡宁静曾祥忠
蔡宁静,曾祥忠,王 波
(1.西安邮电大学 电子工程学院,陕西 西安 710065;2.西安中川光电科技有限公司,陕西 西安 710065;3.西安北方光电科技防务有限公司,陕西 西安 710065)
引言
图像传感器是相机中光电转化的核心器件[1],一个图像传感器中包含几十万至几百万个光电转换单元——像素。在传感器制造过程中,不可避免地受材料、工艺的影响,会有一定数量的光电转换单元存在缺陷:对光不敏感,甚至失去光电转换的功能,这就是盲元[2],又可称为“坏点”,表现在图像上是与周围像素点完全不连续的、突兀的点。EBCMOS 作为新的光电探测器件,结合了光电阴极的高灵敏度、电子轰击半导体的高增益[3]和CMOS 半导体器件的高帧速率、低功耗、数字化显示等优点[4],同时又具备制备结构简单、体积小、相对噪声低等特点[5],在天文观察、高能物理、微光夜视以及遥感测绘等领域具有广阔的前景。但是盲元的存在,严重影响了EBCMOS相机图像的质量和视觉感受,进而影响后续的图像分析和处理工作。有效、准确的盲元检测算法不仅对消除盲元为后续处理带来的影响具有实际的意义和价值,也是评价EBCMOS 探测器的重要指标[6]。
目前常用的盲元检测算法都是针对红外探测器的,主要分为基于场景检测法和定标法,均涉及阈值的选取,不恰当的阈值容易造成盲元的漏判和过判。基于两种基本算法,研究者提出了很多改进的盲元检测算法,最新的有基于滑动窗口的盲元检测算法[7],基于一种支持向量机的检测算法[8],分步搜索策略的自适应盲元检测算法[9],基于时域平均野值提取的盲元检测算法[10],基于超像素分割的红外盲元检测算法[11]等。定标法需要长时间打断系统的正常工作,通过黑体成像来获取单帧或连续帧的的均匀辐射图像[12]。红外器件中像素值表现较高的过热像元,基本不受外界辐射的影响,虽然EBCMOS的像元响应值偏亮,但也会随外界光照的变化而变化,所以针对红外器件的定标法不完全适用于EBCMOS 探测器盲元的检测。场景检测法通过分析图像中盲元噪声特性,设置合适阈值或视觉参数判定出盲元位置[13],能够实现对盲元的实时检测。场景法基于图像自身数据进行检测,在图像数据被严重破坏时,这类算法受到一定的限制。
1 检测原理
一般来说,相机“盲元”有2个显著特点:一是对光不敏感,表现在图像上是突兀的亮点,也就是不论光照如何,盲元对应图像都是亮点;另一个是位置固定,即亮点图像坐标值固定不变。根据这2个特点,可以实现盲元的检测。
通过调节相机的光圈大小,采集4种具有灰度差的均匀背景。由于盲元在图像中表现为突兀且不连续的亮点,其灰度值大于像元的真实像素值。本文从表象入手,设置阈值用来分离盲点和正常的像素元,并对盲点位置进行标记。
1)对单幅图像I设置阈值生成二值图像Im。遍历图像I,找出像素值大于等于阈值的像元位置,将二值图像Im对应位置的像元像素值标记为255,其余的像元像素值标记为0,方法如公式(1)所示:
式中:I(x,y)为图像I第x行、第y列像元的像素值;Im(x,y)为二值图像中第x行、第y列像元的像素值;T为动态输入的阈值。
2)选取不同的图像I,改变阈值的大小,生成不同的二值图像Im,并统计每个Im中像素值标记为255的像元个数和位置。
3)多幅图像交叉计算确定盲元个数和位置,生成检测模板M。由于盲元是相机的固有缺陷,在每幅图像上的位置固定,故经过步骤1)生成的不同于二值图像上盲元位置的像素值都会被标记为255。但是,Im中标记为255的像元不仅包括盲元,还包括噪声导致的随机点,故采用不同平均灰度值的图像按照步骤1)生成对应的二值图像Im,然后将不同二值图像Im相同位置像元相与:如果一个位置的像元在不同Im中像素值均为255,则将模板M中该位置像元像素值标记为255,否则标记为0,如公式(2),剔除只在某些图像上存在的标记点,得到盲元检测模板M。
式中:Im(x,y)为二值图像Im第x行、第y列像元的像素值;M(x,y)为模板中第x行、第y列像元的像素值。
2 原理验证与模板生成
按照检测原理中的步骤1)将平均灰度值分别为32、38、53、57的图像经过不同的阈值处理生成对应的二值图像,统计被标记为255的像元个数,如表1所示。
表1 不同二值图像相与结果举例Table1 Examples of “ and” results for different binary images
实验表明,阈值设置越低,二值图像中的标记点越多,交叉计算的模板与二值图像中的标记点个数相差越大,导致模板中的随机亮点无法被完全剔除。阈值设置太高时,会漏检一些盲元。对于实验所用相机,交叉计算结果个数为9时,模板中盲元个数趋于稳定。盲元原始图像和模板图像如图1所示,图1(a)、图1(d)、图1(g)、图1(j)分别为平均亮度为32、38、53、57的带盲元原始图像。为了便于观察,将灰度原图中的亮点用标记,图1(b)、图1(e)、图1(h)、图1(k)分别为平均亮度为32、38、53、57 对应的红色圆圈标记图像;图1(c)为图1(a)在阈值为60下生成的模板;图1(f)为图1(d)在阈值为60下生成的模板;图1(i)为图1(g)在阈值为65下生成的模板;图1(l)为图1(j)在阈值为65下生成的模板。
图1 原始图像和阈值处理之后的模板Fig.1 Original images and templates after thresholding
由图1(c)、图1(f)、图1(i)、图1(l)可知,不同二值图像中像素值被标记为255的像元个数不同,且无法直接观察确定盲元的位置是否相同,需要进行多幅图像交叉计算。将图1(c)、图1(f)生成的二值图像按照检测原理中的步骤2)进行交叉计算,生成图2(a);将图1(i)、图1(l)进行交叉计算,生成图2(b);将图2(a)、图2(b)交叉计算生成图2(c),结果如图2所示。
图2 交叉“相与“计算后模板Fig.2 Cross “and” calculation templates
图2(a)中有11个标记点,说明11个标记点同时出现在平均灰度为32、38的图像中。图2(b)中有9个标记点,说明9个标记点同时出现在平均灰度为53、57的图像中。图2(a)和图2(b)相差2个标记点,可以确定这2个标记点为随机亮点。将图2(a)和图2(b)交叉计算形成最终模板图2(c),图2(c)中有9个盲元,说明这9个盲元同时出现在实验所用的图像中,可以认为该相机至少存在9个固定盲元。
3 实验结果与性能比较
为了便于观察,用红色圆圈标示出带目标原始图像图3(a)中的盲元如图3(b),图3(c)为图3(a)根据最终模板图2(c)进行中值补偿后的图像。实验表明,经过图像交叉计算生成的模板,对同一相机的盲元实时补偿效果明显,算法效率较高,适用于EBCMOS相机的使用场景。
图3 盲元检测与补偿图像Fig.3 Blind element detection and compensation images
盲元模板与相机属于相互对应的关系,所以模板上面标记的盲元位置以及盲元重复出现的次数至关重要,因此对检测算法的稳定性要求较高。选用同一相机的不同原始图像,采用基于时域平均和空域平均的野值提取的盲元检测算法[14]和基于可调阈值窗口的盲元检测算法[15]以及本文算法对不同的原始图像重复实验10次,统计模板中固定盲元出现的次数。实验表明,本文算法生成的最终模板中固定盲元被检概率为100%,具有很好的稳定性。而参考文献[14]和参考文献[15]的算法,固定盲元坐标被检概率在90%左右,结果如表2所示。
表2 算法稳定性比较Table2 Comparison of algorithm stability
4 评估与取舍
实际应用中,考虑到资源和运算效率,需要对模板中的盲元标记点进行评估与取舍。盲元对图像的影响与它所在的位置有关,位置坐标可以作为取舍盲元的依据。对于一幅分辨率为n×m的图像,中心点 (x0,y0)如公式(3)所示,盲元位置(x,y)根据公式(4)判断盲元距离中心点的距离d。如果d过大,可以认为该盲元由于位置偏离中心点过大,可以被删除。
公式(5)和公式(6)中,col、row分别为图像的行数和列数。如图4所示,根据距离d的大小,将图像分为中心区域、中间区域、四周区域。以图像中心点坐标为圆心,坐标在半径为d1的圆内属于中心区域,坐标在半径为d2的圆内属于中间区域,其余部分属于四周区域。
图4 图像区域划分Fig.4 Image area division
本次实验所用图片分辨率为500×500,盲元检测模板中有9个盲元,将这9个盲元所处位置的坐标读出。并将坐标按照距离中心点(x0,y0)=(250,250)的距离分类,取d1=125,取d2=166,如表3所示,实验表明,该相机固定盲元中心区域有4个,必须对这几个盲元补偿,剩下的盲元所处位置处于四周区域,距离中心点较远,可根据实时性要求选择性补偿。
表3 盲元所属区域统计Table3 Regional statistics of blind element
5 结论
本文根据盲元的大小和位置在每帧图像中始终不变这一特点,提出阈值提取加多幅图像交叉计算的算法,生成与相机一对一的盲元检测模板。从盲元检测的稳定性出发,比较了参考文献[14]、参考文献[15]和本文算法,实验表明,相机固定盲元在本文算法检测中被检概率为100%,其稳定性优于其他算法。最后根据盲元与图像中心的距离对盲元进行评估取舍,用于模板的优化,形成既切合实际应用又提高图像质量的最终模板作为盲元补偿模板。实际应用表明,本文算法盲元检测准确率高,应用于实时盲元补偿效果非常显著。