最近哈工大的研究团队于2020年在国际著名的人工智能杂志《神经网络》上发表了《利用深度CNN进行批量重正化的图像去噪》。
作者信息
文章图片
在论文中,作者提出了一种新的图像去噪网络,称为批重归一化去噪网络(BRDNet),可以解决硬件资源受限条件处理数据分步不均匀的问题。
介绍
图像去噪的目的是从嘈杂的图像中恢复出清晰的图像,这是计算机视觉中的经典逆问题。由于图像去噪技术可以很好地恢复原始图像并恢复细节,因此它们被广泛应用于许多领域,例如遥感图像和医学图像。
对于嘈杂的图像,图像去噪问题可以表示为 ,在哪些是原始图像,并且 表示具有标准偏差的加性高斯噪声(AWGN) 。从贝叶斯规则来看,基于图像优先级的方法是图像去噪的不错选择。
列举下相关去噪算法:
例如块匹配和三维(3D)过滤(BM3D)利用协作变更来增强图像去噪的稀疏性。同时使用基于字典学习的稀疏表示和基于自相似性的非局部手段可以消除噪声图像中的噪声。非局部集中式稀疏表示(NCSR)集中了稀疏编码以抑制稀疏编码噪声。加权核规范最小化(WNNM),马尔可夫随机场(MRF),梯度法和总变异(TV)方法等也是非常流行的图像去噪方法。
尽管上述方法在图像去噪方面表现出出色的性能,但是这些方法中的大多数都面临两个主要挑战:
(1)手动调整惩罚参数
(2)复杂的优化算法。由于自适应能力强的学习能力,深度学习技术,尤其是卷积神经网络(CNN)已成为解决这些问题的最受青睐的方法。
在本文中,我们提出了一种新的图像去噪网络,称为批重归一化去噪网络(BRDNet)。
首先,BRDNet结合了两个网络以增加BRDNet的宽度并获得更多的图像去噪功能。
接下来,BRDNet使用批处理重归一化(BRN)解决小型迷你批处理问题,并使用具有跳过连接的残差学习(RL)获得清晰的图像。
最后,为了减少计算成本,使用了扩张卷积(Dilated Conv)来捕获更多特征。
BRDNet方法具有以下贡献:
(1)提出了一种新颖的深度CNN用于图像去噪,它可以直接从噪声图像中获得清晰的图像。与现有的CNN去噪方法不同,所提出的网络增加宽度而不是深度,以增强去噪网络的学习能力。
(2)批量重新归一化用于图像去噪,可以解决小型迷你批量问题。而且,BRN还可以加速网络训练的融合,并且对特定的硬件平台没有任何要求。因此,BRN和CNN的组合用于图像降噪是低配置硬件设备(例如GTX 960和GTX 970)的不错选择。
(3)BRDNet使用膨胀卷积来扩大接收域,从而使网络能够提取更多上下文信息并降低计算成本。此外,它还可以防止梯度消失或爆炸。另外,残差学习可以进一步提高图像降噪性能。
(4)实验结果证明BRDNet对合成和真实的噪声图像均具有鲁棒性。
相关工作
- 深度CNN用于图像去噪
- 批量重新规范化
- 残差学习和扩张卷积
膨胀卷积的接收场大小可以使用膨胀因子f 和膨胀的卷积层数 n,比如(4n+1)*(4n+1),膨胀卷积对图像去噪也有很好的效果。
基于CNN的去噪方法
- 网络架构
众所周知,接收域更大,所设计的网络将具有更高的计算成本。因此,我们选择一个网络(下层网络)来使用膨胀卷积。考虑到性能和效率之间的平衡,较低网络的2–8和10–15层使用膨胀卷积来捕获更多上下文信息。第一,第十六层使用BRN对数据进行归一化,这使两个子网的输出保持相同的分布。此外,BRN对于小批量任务非常有用,这对于低配置的硬件平台(例如GTX960和GTX970)非常有用。下一个,RL技术被融合到两个通道的网络中以提高性能。
文章图片
【图像算法|BRDNet(开源)一种使用用深度CNN和批量重新归一化进行图像去噪算法】图1。建议的BRDNet网络的体系结构。
- 损失函数
训练数据集时 给出,BRDNet使用RL获取模型并预测残差图像,使用噪声映射。然后我们通过以下方式将嘈杂的图像转换为清晰的图像:换句话说,我们拥有并且训练样本大致获得了该等式。具体来说,可以通过使亚当(Kingma&Ba,2014)的以下损失函数最小化来获得最佳参数:
文章图片
- BRN,膨胀卷积和RL的集成
如图1所示:
第一网络主要包括BRN和残差学习。
第二个网络集成了BRN,扩张卷积和RL。
从图1中我们可以看到,通过预测具有标准偏差的加性高斯白噪声,BRDNet可以获得潜在的清洁图像。首先,可以使用BRDNet来预测噪声。然后,它使用获得的噪声 产生清晰的图像 。
设计的网络遵守以下规则:
首先,更深的网络会导致梯度消失或爆炸。因此作者设计了一种称为BRDNet的新型降噪网络,该网络使用两个不同的子网来减少网络深度并获得更多功能。深度会减小,并且不会产生消失或爆炸的梯度。
其次,训练数据的分布通过卷积核来改变。BN被认为是解决该问题的不错选择。但是,当批量较小时,效果不是很好,这限制了它的应用。在实际应用中,许多硬件设备会限制内存,并且可以运行具有高计算复杂性的程序。因此,我们使用BRN代替BN来规范化数据,并提高去噪网络的收敛速度。BRN的原理如下:
文章图片
第三,深度网络可以提取出更准确的特征。但是,深度网络将丢失一些上下文信息。结果,我们在BRDNet中使用膨胀卷积来扩大接收域并捕获更多上下文信息。具体来说,膨胀卷积可以使用更少的层来扮演与更多层相同的角色。从以前的研究中可以知道,增加宽度可以提取更多特征,而BRDNet具有网络体系结构,可以增加网络的宽度而不是其深度来提取更可靠的功能(称为两通道网络)。因此,两通道网络和扩张卷积的组合对于提高图像降噪性能非常有效。而且,减小网络深度还可以防止梯度消失或爆炸。这样,BRDNet可以降低计算成本。但是,较低层的网络只有膨胀的卷积,这可以使两个子网络产生互补的特征并提高网络的泛化能力。看起来,尽管这两个子网的深度不深,但与非常深的单个网络(例如FFDNet和IRCNN)相比,将它们集成起来可以表现良好。在我们看来,扩大的卷积在增加接收场大小方面具有与深层网络相似的功能。
最后,我们在BRDNet中使用RL方法来再次提高性能。
实验结果
我们主要从以下方面介绍实验结果:数据集,实验设置,成分分析,用于灰色合成噪点图像和彩色合成噪点图像的BRDNet,实际噪点图像降噪以及运行时间。首先,我们介绍BRDNet的参数。接下来,我们证明本文详细介绍的主要技术的有效性。然后,报告了BRDNet在BSD68和Set12公共数据集上的性能,以进行灰色合成噪声图像降噪。几种先进的灰色合成噪声图像降噪方法,例如BM3D,WNNM,MLP,可训练的非线性反应扩散(TNRD),预期斑块对数似然性(EPLL),级联收缩场(CSF),DnCNN,IRCNN和FFDNet与本文提出的方法进行比较。
- 训练数据集
对于真正的噪点图像降噪,我们使用了来自Xu,Li,Liang,Zhang和Zhang(2018)的 100张图像来训练模型
- 测试数据集
对于彩色噪声图像降噪,我们使用CBSD68,Kodak24(Franzen,1999)和McMaster测试BRDNet的图像降噪。
图2。cc数据集中的十二个图像。
图3.使用不同方法从BSD68数据集中以噪声级别25去除一幅图像的结果:(a)原始图像,(b)噪声图像/20.30 dB,(c)WNNM / 29.75 dB,(d)EPLL / 29.59 dB,( e)TNRD / 29.76 dB,(f)DnCNN / 30.16 dB,(g)BM3D / 29.53 dB,(h)IRCNN / 30.07 dB和(i)BRDNet / 30.27 dB。
在噪声级别为15、25、35、50和75的CBSD68,Kodak24和McMaster数据集上,不同方法的平均PSNR(dB)结果如下:
文章图片
在真实噪声图像上使用不同方法的PSNR(dB)结果如下:
文章图片
文章图片
图4。McMaster数据集中噪声级别为35的一张彩色图像的去噪结果:(a)原始图像/35,(b)噪声图像/18.62 dB,(c)CBM3D / 31.04 dB,(d)FFDNet / 31.94 dB和(e)BRDNet / 32.25 dB
结论
在本文中,作者提出了一种新颖的基于模型的CNN去噪器,称为BRDNet,它结合了两个不同的网络以增强图像去噪性能。此外,BRDNet使用BRN,RL和膨胀卷积来提高去噪性能,并使模型更易于训练。BRN不仅用于加速BRDNet的收敛,还用于解决小批量问题。RL用于从噪点图像中分离出噪声,并在BRDNet中获得潜在的干净图像。扩张的卷积可以扩大接收场以获得更多的上下文信息。实验结果表明,BRDNet与其他最新的图像去噪方法相比具有很强的竞争力。
论文地址:
https://www.sciencedirect.com/science/article/pii/S0893608019302394
开源地址:
https://github.com/hellloxiaotian/BRDNet
更多论文地址源码地址:关注“图像算法”微信公众号
文章图片
推荐阅读
- 深度学习实战案例|【图像分类案例】(9) MobileNetV3 癌症图像二分类,附Pytorch完整代码
- 笔记|卷积神经网络 —— 图像识别与深度学习
- cnn|基于卷积神经网络的人脸识别算法
- cnn|卷积神经网络实现人脸识别微笑检测
- 深入浅出讲解自然语言处理|【CNN】深入浅出讲解卷积神经网络(介绍、结构、原理)
- Pytorch_python|神经网络的基本组成之卷积层(Conv Layer)&& 利用 Pytorch 搭建神经网络 && 空洞卷积对比普通卷积
- SSE图像算法优化系列三十一(Base64编码和解码算法的指令集优化(C#自带函数的3到4倍速度)。)
- python项目|全卷积神经网络(FCN)和卷积神经网络(CNN)的主要区别
- pytorch|对于torch.nn.AdaptiveAvgPool2d()自适应平均池化函数的一些理解