本文介绍一篇基于核函数预测的多帧降噪网络的文章,在基本的图像复原的基础上,作者考虑到了将多张图片融合后产生的结果能够利用不同帧之间的信息进行加权平均,产生更好的图像质量,将研究的着眼点从单帧图像去噪转换到多帧图像的去噪 (Burst Denoise)。即从单帧图像输入网络、单帧图像输出转变为多帧图像输入、单帧图像输出。
论文的贡献在于:
1. 消除了从相机获取GT图像困难的问题;
2. 提出的网络结构利用了3D降噪核来产生输出图像的每个像素;
3. 针对于降噪核的训练流程,使得网络能够利用多张图像的信息进行预测,即使图像存在轻微未对齐的情况,也可以实现通过网络的学习对于最终的图像进行对齐;
4. 将噪声水平在训练上、测试时作为网路的输入,得到的网络比不引入噪声水平估计的盲降噪方法有更好的泛化性。
Busrt denoise的基本设定是从手持相机中多帧含噪声的图像中恢复一帧较为干净的图像。网络的结构如图所示,假设输入图像X1作为参考帧,X2~XN作为输入辅助降噪,像素处理是在RAW域而非sRGB空间进行的,这样能减少了经过如去马赛克、锐化、色调映射、压缩相关等过程对图像造成的损失,同时,训练时需要考虑到原始的镜头的特性。噪声的建模如式(1)所示,其中yp为像素位置为p的GT的理想无噪声的图像,xp为位置为的p的含噪声观测值,假设其观测由两类噪声决定,一类为shot noise,另一类为read noise。其中由收集到的光子数量决定的称为shot noise ,最原始的噪声满足泊松分布,其方差取决于信号等级;另一类噪声是read noise,由传感器的读取时数模转化时产生,大致符合高斯分布。在这两者的共同影响下,满足信号独立的高斯分布,如式(3)所示,噪声分别用σr与σs表示,根据ISO的不同,噪声参数会相应变化,文章假设σr与σs已知,其对于噪声的综合估计结果将用于估计真实亮度结果。
KPN方法的网络没有直接合成输出图像在单一通道上的像素值,而是包含K*K*N输出通道,即在每个像素的位置上生成了数量为N、大小为K*K的核。输出图像hat(Y)p如式(2)所示,其中Vp(Xi)是输入图像xi在像素位置p处的K*K邻域,f即相应的核函数,累加hat(Y)p表示应用了在空间可变的核函数先累加、再取平均的结果,文章中K=5,N=8。
作者进行了如图所示的对比实验——改变输入噪声的水平,探究输入噪声对于图像输出结果的影响,N = 8,即下图中共8个核函数用于对图像进行建模,图(a)~(e)说明了在过度锐化与过度平滑之间的选择。当噪声等级增大时,滤波器的空间作用增大,滤波器输出图像变得更加平滑,反之,当减小噪声强度时,图片边缘会锐化,但同时会出现伪影和噪声。
作者通过实验证明了对噪声的建模有效,左上图说明shot 与read噪声与相机的传感器紧密相关,坐标轴分别表示log10read noise与log10shot noise的对数的分布曲线,蓝线表示从相同的相机采集到的shot/read 噪声参数对,红色则表示在根据合成的增益等级而产生的具体的shot与read的噪声分布值,在训练时,随机、独立选取了选择矩形框内的对数分布曲线作为神经网络的输入,在推理时噪声分布与训练时类似,即红色的散点均在蓝色散点图的延长线上,说明对噪声的拟合符合噪声的分布。
右图说明动态物体与静态的场景能够较好对齐的关系,原始帧的平均(b)提供了低噪声的背景以及模糊的物体,空间可变权重分配的l_1范数由预测核网络产生,进行降噪时,大量地从参考帧中提取信息,但从多个帧中收集信息以生成背景。
下图说明噪声感知的KPN 方法与盲降噪的差异,read nosie与PSNR之间的关系,shot noise 从上图中选择对应的结果。在test时,不采取噪声等级估计的方法会迅速下降。
损失函数分为基本的损失函数和退火损失函数两部分。基本的损失函数应用在经过白平衡、Gamma校正后的图像结果上。这样与没有经过校正相比,能避免产生在高亮区域的过曝、过度模糊和块阴影等问题。∇是有限差分,基本的损失函数计算了hat(Y)与Y*之间的加权l2与l1损失,加权系数λ1,λ2均设置为1;Γ表示标准的sRGB变换函数,即Gamma校正。这样改进是因为原始的Gamma校正会导致梯度接近无穷大,即X接近于0时,会导致梯度的爆炸,无法训练。再因为由于在黑电平校正过程中、模型没有对于输入行限制,当黑电平的设置值小于像素最小值,结果会出现负值,原始的Gamma校正没有考虑到黑电平校正之后会产生负值、不可导的情况,改进后的Gamma校正计算方式如(5),考虑到上述问题并进行了分段函数的修正。
同时作者发现,只最优化上述的损失函数会导致模陷入局部最优解,表现为只会用到其中一帧的参考帧。其中的SGD算法在基本损失函数的作用下会陷入局部最优解,大致是因为多帧图像降噪与单帧相比更加困难,以及基本的损失函数只考虑到了参考帧。为了使得网络在学习时能利用到其他帧作为参考,文章采用了退火策略,即先让滤波器在一系列的图像中分别对齐和降噪每张图片,然后在此基础上,然后再创建一个滤波器,进行当前帧与其他帧间的相似性权重修正。f代表滤波器,X代表输入帧,fi(Xi)表示经过了滤波器后的结果,并计算fi(Xi)与Y*之间的差异,这项损失函数会随着训练迭代次数t逐渐衰减,t=40000,衰减过程由参数β、α控制。退火算法可以看成一个包含预训练两阶段训练过程,在前一阶段KPN用来对当前帧进行对齐和降噪,后一阶段用来处理全部视频序列。
可视化结果中,图(a)为参考帧,经过锐化后仍包含噪声,其中的噪声可以通过平均多帧相似的图像(b)消除,但若多帧间存在运动,(a)(b)间的相互补偿也不能使得物体呈现出在运动状态下的清晰形态。与传统算法NLM、VBM4D等相比,KPN的方法利用了多帧图像得到一帧的结果,包含了更少的噪声、尽量减少了伪彩。
图4展示了直接多帧融合和经过KPN再融合之间的差异,直接融合会产生过度平滑的结果;KPN与其他方法相比会产生更少的伪影、减少了过度平滑的问题。
图8展示了基于真实手持相机的多帧降噪结果,尽管在顶部插图中,大部分算法都在实现了在明亮区域的展示出了良好的降噪性能,但是NLM与BM4D的算法在底部的插图中深度阴影下都没有展现出良好的降噪效果。中间插图中展示的钢琴家手部快速移动时的形态,图(b)~(e)模糊了细节而图(f)进行很好的保留,即传统的方法能鲁棒性地根据参考帧处理帧间运动的偏置,但是仍然会保留少量的噪声,本文的方法能够在移除这部分噪声的同时不增加额外的伪彩。
客观质量的评价中,左上表格展示了与其他当时先进算法的结果的对比,同时消融实验中包括了直接降噪、不使用核方法 (direct)、单帧降噪 (1 frame)、没有使用退火算法的降噪 (no ann)、不输入噪声水平估计的盲降噪 (σ blind) 等几组消融实验结果;Gain值不同表示不同的噪声等级,Gain值越大表示噪声强度越大;右下表格展示在设定不同的PNSR基线时,采用前述方式时各类方法的PSNR实际结果以及消融实验,上述两表格综合说明了本文提出的核函数估计的方法能够获得更好的客观质量结果。
关 注 我 们 
  实验室网站:http://viplab.fudan.edu.cn/
  OpenASIC官方网站:www.openasic.org
  知乎专栏:http://zhuanlan.zhihu.com/viplab
  微信公众号:OpenASIC
继续阅读
阅读原文