上海人物摄像交流群

续聊摄影降噪:基本知识点梳理

只看楼主 收藏 回复
  • - -
楼主

在之前的文章里,我们聊到过均值叠加k张,不以2为底取对数标度的情况下,可以降低k倍的随机噪声,但对本底噪声没有作用,实际上它还对固定模式噪声无解,下面是比之前更深入一点的再次解析,具体数学演算过程尽量省略,以免阅读困难。

随机噪声是通过平场照片来获取,选择一个曝光递拍摄n张,这一系列平场照片的均值可以获得随机噪声均值,以及平场平均信号、单次随机噪声、行列随机噪声等数据。

选择同一曝光值n张图像相加,信号值S为S1+S2+…Sn,随机噪声σt的均值为σt1+σt1+…σtn,根据信噪比公式:

设S1=S2=…=Sn;σt1=σt1=…=σtn,不难得出S/σt就是(S1/σt1)与n的平方根的乘积,也即均值n帧可以降低根号n倍随机噪声。这可以当做是此前文章的内容复习。

而固定模式噪声的影响其实远大于随机噪声,通过拍摄多张全黑(比如盖上镜头盖)进行均值叠加,可以得到:暗场平均信号、均值噪声、单次曝光噪声、每一行/列的噪声均值。均值信噪比也有公式:

设S1=S2=…=Sn;σf1=σf1=…=σfn,可以得到S/σf=S1/σf1,也即多帧均值叠加后不会降低固定模式噪声。再加上不能消除CMOS本身自带的本底噪声(也就是脉冲噪声,由单个弱点、坏点产生),所以对于降噪技术来说,随机噪声只是最基本的目标,固定模式噪声才是大BOSS。

从逻辑上来说,因为拜耳阵列每个像素都是单色滤镜,所以都需要猜色插值,降噪的介入自然可以从这个级别开始入手。最简单粗暴的就是均值滤波:1个像素点的值是由周围n个像素取均值来替代,也就是用方形矩阵模板对图像进行卷积计算。

但它的问题是太粗暴,太简单了,平均值本来就不是一个非常准确的统计衡量方式,噪声可能是降低了,但锐度(信号)也都丢得差不多了。可是均值计算实在是太方便了,所以还是舍不得放弃它,既然只采周边像素不太准确,那就改变取样方式呗,有:

权重与取样距离成反比,也就是距离自己越近权重越高的高斯滤波:

高斯滤波基础之上,扩大范围找相似像素,跟自己越像的权重越高的双边滤波,以及在双边滤波基础上,再加上领域所有值来计算权重的非局部平均降噪,但这俩函数比较复杂,就不详列了。下图是双边滤波的前后对比:

除此之外的方法其实还不少,但共性是它们都属于空域降噪,而且玩法也都被研究得七七八八了。但我们知道空域与频率可以通过傅里叶或小波变换来转化,在频域中降噪就又有了新的玩法,因为噪声在频域里有高中低频之分,变换后可以把不同频率的噪声分离,然后利用噪声模型来设定相应频域噪声的阈值,砍掉超过阈值部分的频段,再做反变换,就能得到降噪后的画面了,大致流程如下:

目前比较流行的这类降噪算法是BM3D,它结合了非局部平均降噪和转换域降噪的特点。首先是将全图中的相似像素块编组并3D线性变换,然后分别变换域,按阈值滤波,最后反变换并混合,利用图形冗余性来进行降噪。简化的过程可看下图:

与非局部均值、比例萎缩、贝叶斯最小平方-高斯尺度混合模型等效果的对比效果:

所以在频域降噪理论中,界定阈值的噪声模型就很关键了,噪声有随信号增大而增大的相关噪声,也即泊松噪声,呈现在信噪比函数图里就是单调上升的曲线。噪声里还有不随信号增大,但在每个取值点都会形成波动的高斯噪声,呈现在信噪比函数图里就是毛刺。两者相加的总噪声y即为:

α为量化参数, x为信号,Pi为信号相关噪声,Ni为信号不相关噪声,取值为从0 到方差。这是基本模型,实际应用要更复杂。

所以频域降噪的流程首先是分别取CMOS RGB通道的噪声模板,按噪声模型做曲线拟合,再取统一亮度生成转换函数曲线,将其赋值于原始信号后,就可以引入BM3D等降噪方案来进行处理了。这其实也是推广在CMOS读出后RAW阶段介入机内降噪的原因之一,因为经过ISP图像信号处理单元后,第一,会对成像圈的失光边缘进行增益,但这个增益是径向的,所以越往边缘,噪声就会显著增强;第二,解马赛克插值算法会产生规律形态的噪声,比如拉链状的条纹;第三,非线性Gamma变换产生的亮度增益偏差;第四,模数转换增益的线性偏差;第五,色域空间转换时的偏差……下图是一个典型的ISP后端再进行降噪的RAW原图(手机端),可以看到虽然是同一张照片,但因为亮度增益不同,中心与边缘噪点的差别非常明显:

所以,虽然降噪的画质折损其实不可避免,但将灰度降噪于ISP之前进行,彩色降噪在ISP后端分离亮度通道和彩色通道后进行,效果会更好。

最近比较繁忙,所以更新稍放缓,本文谈得也比较浅,算是一次简单的学习笔记,感兴趣的朋友可以在评论区提问,我会第一时间一一作答的,谢谢。


举报 | 1楼 回复

友情链接