问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

图像传感器坏点检测与去除算法详解

创作时间:
作者:
@小白创作中心

图像传感器坏点检测与去除算法详解

引用
CSDN
1.
https://blog.csdn.net/OdellSwan/article/details/141823729

在图像传感器中,坏点是一种常见的缺陷,它会影响图像的质量。本文将详细介绍坏点的产生原因、特征,并设计一个有效的去坏点算法。

坏点的产生原因

坏点在图像传感器中产生的原因多种多样,主要分为静态坏点和动态坏点两种。静态坏点的产生主要包括以下几个方面:

  • 传感器制造缺陷:图像传感器由成千上万的像素组成,每个像素都是一个微小的光电二极管。在制造过程中,可能会因为材料缺陷、制造工艺等问题导致某些像素损坏或性能不达标,从而形成坏点。

  • 物理损伤:传感器可能因为跌落、撞击或其他物理因素导致损坏,产生坏点。

  • 长时间使用:随着使用时间的增加,传感器上的某些像素可能会因为过度使用而退化,表现为坏点。

  • 高温影响:高温环境可能会影响传感器的性能,导致像素损坏或性能下降。

而动态坏点的产生原因则包括:

  • 软件问题:在某些情况下,软件错误或固件缺陷也可能导致图像中出现异常像素点,表现为坏点。

  • 图像传输错误:在图像从传感器传输到处理单元的过程中,可能会因为传输错误导致某些像素数据不正确。

  • 电磁干扰:传感器可能受到外部电磁场的干扰,影响像素的正常工作。

  • 像素老化:像素元件随着时间的推移可能会自然老化,导致响应度下降或失效。

坏点的特征

坏点被认为是噪声的一种,其噪声模型为椒盐噪声。椒盐噪声的特点是,噪点要么是最大像素值(白色),要么是最小像素值(黑色)。在图像上,坏点通常表现为孤立的点。

为了更好地理解坏点的影响,我们可以在RAW图上添加坏点进行测试。图1展示了添加坏点后的RAW图及其经过Demosaic处理后的RGB图像。


图1 直接做Demosaic的结果

如果将图像放大观察(如图2所示),可以发现一个有趣的现象:在Demosaic前,坏点是独立的;但在Demosaic后,部分坏点居然连在了一起。这是因为Demosaic本质上是一个插值算法,它会将一个坏点插值成多个坏点。因此,在ISP的pipeline中,去坏点的步骤应该在Demosaic之前。


图2 把图1局部放大的效果

为了符合ISP的pipeline并方便对比效果,接下来的测试都将在RAW图上去坏点,然后再将去坏点后的图像用Demosaic插值显示出来。

设计一个去坏点算法

算法的改进通常是一个逐步迭代的过程。接下来,我们将通过一个去坏点算法的示例,展示如何暴露问题并逐步改进算法,最终获得满意的结果。

中值滤波

最常用的去坏点算法是中值滤波。让我们尝试直接对添加了坏点的RAW图使用3x3的中值滤波,效果如图3所示。


图3 直接对RAW图做中值滤波的效果图

乍一看效果似乎还不错,坏点似乎都被去掉了。但实际上,效果并不理想。这是因为RAW图的每个最小单位包含两个G分量、一个R分量和一个B分量,三分量的亮度差异很大。经过中值滤波后,R、G、B三分量的差异被抹平了,导致RAW图失效。对RAW进行Demosaic得到的结果如图3(b)所示,除了帽子的边缘部分能勉强看出一点儿蓝色,其他部分和(a)没太大差异,这说明Demosaic对非RAW图没起作用,这种三通道一起去坏点的方法直接让RAW图失效了。

以上说明直接对RAW做中值滤波去坏点是不可行的,R、G、B三通道不能混在一起用中值滤波,那就试试三通道分别使用中值滤波。

分通道中值滤波

考虑到实际应用中G通道可能存在不平衡的情况,因此把G也按照Gr和Gb拆成两个通道,这样一幅RAW图就变成了R、Gr、Gb和B四个独立通道的图像,如下图4所示:


图4 RAW图四通道分离

对上面的四个通道分别使用3x3中值滤波,得到的四个去噪结果如下图5所示:


图5 分通道中值滤波效果

在图4中坏点被去掉了,图像变得很干净,把4个通道的图像重新拼成RAW图的格式,用Demosaic解析出来看一下去坏点的效果,如图6所示:


图6 最终去坏点结果

这次Demosaic效果正常了,这说明分通道使用中值滤波的思路是正确的,但是和原图相比,图像的边缘模糊的很严重,这说明在使用中值滤波结果替换坏点的之前需要一个坏点检测机制,只针对有坏点的位置使用中值滤波。

坏点检测+中值滤波

想把坏点检测出来就要分析坏点的特点,坏点一般是孤立的点,这说明,在3x3窗口内的最大值或者是最小值就有可能是坏点,在3x3窗口内设立判定标准:

  1. 判断3x3的中心点是否是9个像素中的最大值或者最小值
  2. 先计算中心点减去周围8个像素的绝对值,然后计算均值,判断该均值是否超过设定的阈值threshold

以上两个条件如果同时满足,则判断当前3x3窗口的中心点为坏点。按照这个判断标准,得到R、Gr、Gb和B四个分量的坏点检测结果及去坏点结果如下图7所示。


图7 坏点检测结果

图7中的左边是R、Gr、Gb和B有坏点的输入图像,中间是4幅图像的坏点检测结果,白色的点就是标记出的坏点位置,右边是用中值滤波替换坏点后的结果。用Demosaic解析出来看一下去坏点的效果,如图8所示:


图8 坏点检测+中值滤波结果

效果提升了很多,但是也不算特别优秀,在帽子的羽毛处可以看出检测的结果并不是很好,羽毛处的一些边缘被标记成了坏点,此外,背景区域也有不少坏点漏检测,这说明坏点检测部分还有可以提升的空间,如果加入边缘检测辅助坏点判断,也许可以获得更好的效果。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号