RAW域降噪之空域滤波器
Posted lanlancky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RAW域降噪之空域滤波器相关的知识,希望对你有一定的参考价值。
空域滤波器(Spatial Filter)
对图像降噪的主要方法是使用空域滤波器对图像进行滤波。滤波操作通常是针对以某个像素为中心的滤波窗口上进行的,滤波窗口的大小与具体的算法有关,常用的大小有3x3、5x5、7x7等尺寸。滤波操作在数学上称为卷积,需要使用一个与滤波窗口大小一致的卷积核,卷积核的每个元素代表一个权重,与对应位置的图像像素值相乘,然后所有乘积累加到一起就是滤波后的结果。
卷积滤波用公式表示是,
下面是卷积滤波操作的示意图。
原始图像:
均值滤波结果:
中值滤波结果:
RAW域降噪
Sensor输出的RAW图像本身是携带了噪声的,前面提到过sensor噪声的种类主要包括热噪声、光散粒噪声、读出噪声、固定模式噪声等。当sensor温度较高、增益较大、环境较暗的情况下各种噪声会变得更加明显,成为影响图像质量的主要因素。在下图所示的例子中,左图光线较充足,图像清晰无噪点,而右图中光照不足,camera 需要提高增益才能使画面达到正常亮度,同时也放大了噪声,图像出现明显的噪点。
除了Sensor图像本身携带的噪声之外,图像每次会经过ISP模块的处理之后都会引入一些新的噪声,或者对原有噪声进行了放大。以LSC模块为例,LSC校正的实质是在输入图像上乘以一个与像素位置有关的增益系数以补偿光信号的衰减,而补偿的规律是越远离图像中心的地方增益越大。根据噪声传播的基本原理,当增益系数大于1时,图像中的噪声是与信号一起被同步被放大的。另外,由于ISP所用乘法器的精度是有限的,每做一次乘法就会重新引入一次截断误差,这是新增的噪声来源,所以经LSC处理后图像的整体噪声水平会有所增加,而且在图像的边缘处表现会更加明显,典型的效果如下图所示
Shading固然是不好的,需要校正,但是为了校正shading而给图像引入噪声同样也不好的,所以人们需要权衡在多大程度上校正shading能够收到满意的效果。这是在主观图像质量调试阶段需要考虑的问题之一。
研究发现,噪声在ISP流水线各模块中会不断产生、传播、放大、改变统计特性,对图像质量的影响会越来越大,而且越来越不容易控制。因此处理噪声的基本原则是越早越好,随时产生随时处理,尽可能将问题消灭在萌芽状态。目前主流的ISP产品中一般会选择在RAW域、RGB域、YUV域等多个环节设置降噪模块以控制不同类型和特性的噪声。在YUV域降噪的方法已经得到了广泛的研究并且出现了很多非常有效的算法,但是在RAW域进行降噪则因为RAW数据本身的一些特点而受到不少限制。主要的限制是RAW图像中相邻的像素点分别隶属于不同的颜色通道,所以相邻像素之间的相关性较弱,不具备传统意义上的像素平滑性,所以很多基于灰度图像的降噪算法都不能直接使用。又因为RAW数据每个像素点只含有一个颜色通道的信息,所以很多针对彩色图像的降噪算法也不适用。
和很多图像处理算法一样,降噪即可以在空域(spatial domain)上实现,也可以在频域(frequency domain)上实现,比较有常用频域方法有傅里叶变换,离散余弦变换(DCT),小波变换,多尺度几何分析等。随着人工智能技术的发展,近些年来还涌现了一批基于深度学习技术实现的降噪算法。后面提到的这些方法虽然都有不错的性能,但是对算力要求都比较高,并不一定适合处理高分辨率的实时视频流,所以在ISP产品中应用的并不广泛,目前适合ISP应用的降噪算法还是以经典低通滤波器的改进版本更为常见。
目前在RAW域降噪基本都需要将RAW图像按照颜色分成四个通道(R,Gr,Gb,B),然后在各个通道上分别应用滤波器进行平滑,根据滤波器的特点和复杂度大致可以分成以下几类:
- 经典低通滤波器,如中值滤波、均值滤波、高斯滤波、维纳滤波等。这类方法的优点是比较简单,占用资源少,速度快,缺点是滤波器是各向同性的,容易破坏图像中的边缘。另外由于没有考虑颜色通道之间的相关性所以也容易引入伪彩等噪声,而人眼对这种颜色噪声是比较敏感的。
- 改进的经典滤波器,如Eplison滤波、双边滤波(bilateral filter),在经典滤波器的基础上增加了阈值检测用于区分同类像素和异类像素,同类像素分配较大的滤波权重,异类像素则权重很小因而基本不参与滤波。这类方法的优点是可以有效地保护图像边缘,复杂度增加也不大,其它特点与经典滤波器基本相同。
- 引导滤波器(guided filter),由何凯明博士早期提出的一种算法,引入了引导图像的概念。对于任一颜色通道的图像,以当前位置像素P(x,y)为中心,在一个固定大小的滤波窗口内为P(x,y)的所有邻近像素P(i,j)计算权重W(i,j),计算权重的方法是以某个引导图像I作为参考,在引导图像的对应滤波窗口内,凡是与像素I(x,y)性质“类似”的像素都得到较大的权重,与I(x,y)性质“相反”的像素则得到较小的权重。举例来说,如果当前像素P(x,y)是亮的,则滤波窗口P(i,j)中的全部亮像素会参与平滑,平滑结果仍是亮的,同理,如果与P(x,y)相邻的某个像素P(x‘,y’)是暗的,则对应的P(i‘,j’)中的全部暗像素会参与平滑,平滑结果仍是暗的,这样P(x,y)与P(x\',y)\'之间的明暗边界就得到了保持。这种方法的基本假设是图像各通道的颜色梯度分布与引导图像是一致的,如果假设不成立,则从引导图像计算出的权重反而容易破坏其它通道中的边缘。有人建议使用demosaic还原出的G通道图像作为引导图像会得到较理想的效果,因为G通道集中了图像的大部分能量,也包含了丰富的梯度信息,是比较理想的候选对象。
- 基于块匹配的滤波算法,利用图像的自相似特性,在以当前像素为中心的一个滤波窗口内找到与当前块最相似的几个块,当前像素的滤波值即等于几个相似块的中心像素的加权平均值。此类算法以非局部均值滤波(Non-Local Means)和BM3D(Block Matching 3D)算法为代表,它们的优点是平滑性能和边缘保持性能很好,缺点是计算量很大,资源消耗大,不太适合处理实时视频。已有情报显示,华为在某些型号手机芯片中实现了BM3D算法用于对照相图片做降噪处理,估计这主要是为了体现行业龙头企业占领技术高地的决心。
下图是双边滤波的效果示例,可以看到滤波和边缘保持的效果都是很理想的。
以上是关于RAW域降噪之空域滤波器的主要内容,如果未能解决你的问题,请参考以下文章
图像增强实战:空域滤波频域滤波和退化恢复滤波器(附全部代码)
图像去噪基于matlab GUI空域+频域滤波图像去噪含Matlab源码 029期