本文作者:Whn丶nnnnn https://zhuanlan.zhihu.com/p/219766818 本文已由原作者授权,不得擅自二次转载
论文:https://arxiv.org/abs/2001.10291
代码:https://github.com/JimmyChame/SADNet
Title:Spatial-Adaptive Network for Single ImageDenoising(SADNet):用于单张图像去噪的空间自适应网络
Keywords:image denoising,image restoration,image processing
Abstract
先前的工作表明CNN已可以在image denoising上取得良好的效果,但是很可能会导致图像过于光滑,以额外的计算开销为代价使用较深的网络结构可以缓解这类问题。在本文中,作者提出了一种新的空间自适应去噪网络(spatial-adaptive denoising network,SADNet)来有效地去除单张图像的盲噪声(blind noise)。为了适应空间纹理和边缘的变化,设计了一个残差空间自适应块(residual spatial-adaptive block)。引入可变形卷积(Deformable convolution)对空间相关特征进行采样。引入具有上下文快的encoder-decoder来捕获多尺度信息(multiscale information)。通过从粗到细的噪声去除,得到高质量的noise-free image。该方法可以用于synthetic noisy image和real-world noisy image的去噪。
1. Introduction
Image Denoising是计算机视觉以及图像处理领域中的关键任务。许多早期的基于模型的方法(model-based methods)先找到图像的先验信息(priors)然后再应用优化算法迭代求解模型,这样的方法十分耗时而且效果不佳。随着深度学习的兴起,CNN被广泛应用于Denoising而且取得了不错的效果。
早期工作中大多假设噪声是独立且均匀分布的,加性高斯白噪声常被用于建模生成噪声图像。而现在人们意识到实际上噪声是以更复杂的形式出现的,在空间上可变(spatially variant)且与信道相关(channel dependent)。虽然人们已经在real-world noisy image的去噪上取得了很大的进展,但仍有一些问题有待解决。传统的CNN只能使用features in local fixed-location neighborhoods,但是这些特征可能是irrelevant or exclusive to the current location的。由于无法适应纹理和边缘(textures and edges),基于CNN的方法很容易导致图像过于平滑、细节丢失。此外传统CNN的感受野(receptive field)相对较小,通过加深网络结构来扩展感受野又会导致较高的资源消耗。
在本文中,使用SADNet来解决以上问题。作者设计了一个残差空间自适应块(residual spatial-adaptive block,RSAB)来适应空间纹理和边缘的变化。将RSAB和残差块(ResBlock)合并到encoder-decoder结构中,从粗到细地去除噪声。在最粗尺度(coarsest scale)使用context block来扩大receptive field,可以在小的计算开销下获得良好的性能。
贡献总结:
- 提出一种新型的空间自适应去噪网络SADNet,从复杂的图像中捕获特征,从噪声中恢复细节和纹理以有效地去除噪声。
- 提出了残差空间自适应块RSAB,引入deformable convolution来适应空间纹理和边缘。使用带有上下文块的encoder-decoder结构来捕获多尺度信息,从粗到细地去除噪声。
- SADNet可以在多个synthetic noisy image datasets和real noisy image datasets的去噪上取得良好的效果。
2. Related works
总的来说,image denoising包括model-based和learning-based两类。Model-based的方法使用建模的分布作为先验信息,尝试使用优化算法获得noisy-free的图像。常见先验信息包括local smoothing(局部平滑)、sparsity(稀疏性)、non-local self-similarity(非局部自相似)和external statistical prior(外部统计先验)。Non-local self-similarity是denoising task的显著先验,相关的算法有NLM、BM3D、WNNM等,都已得到广泛应用。随着DNN的普及,learning-based的denoising方法发展迅速,这里只简单提一下作者对比的几种算法:FFDNet、N3N、DnCNN、FFDNet、CBDNet、RIDNet等。可以参考原文和Refernces部分自主学习,后两篇文章的解读我也会在自己的专栏中陆续写出,此处为专栏已有图像去噪/修复文章做一波引流。
https://zhuanlan.zhihu.com/p/205024389
https://zhuanlan.zhihu.com/p/183698399
3. Framework
SADNet 结构框架
SADNet的网络结构如上图所示,令
为输入的噪声图像,
为对应的去噪输出图像,那么模型即可表示为
。
使用1层Conv层从噪声输入中提取初始特征(initial features),将这些特征输入到multiscale encoder-decoder结构中。在encoder部分使用ResbBlocks提取不同尺度的特征,不同于原始的ResBlock,在使用时删去了BN层(Batch Normalization)而且使用leaky ReLU作为激活函数,为了避免损坏图像结构,限制了下采样的操作次数,并使用一个context block来进一步扩大感受野(receptive field)并捕获多尺度信息;在decoder部分,设计了residual spatial-adaptive blocks(RSABs)来对相关特征进行采样和加权以消除噪声并重构纹理。此外还估计了偏移量(offset),这对于获得更精确的特征位置很有帮助。最后将重构的特征输入到最后一个Conv层来还原去噪后的图像。
除了网络结构以外,损失函数也至关重要,denoising task常用的损失包括
、
、perceptual loss、asymmetric loss。
对于Gaussian noise有很好的置信度;
对异常值(outliers)有更好的容忍度(tolerance)。在本文中,使用
训练synthetic noisy image datasets;使用
训练real-world noisy image datasets。
3.1. Residual spatial-adaptive block
首先介绍deformable convolution(可变形卷积)再细致地介绍RSAB。
令
为输入特征图
中位置
处的特征,对于传统的卷积操作,对应的输出特征
可以通过
得到,其中
代表位置
的neighborhood,它的大小和卷积核相同,
为卷积核中位置
处的权重,
为
中的位置。传统卷积严格地采用
周围固定位置的特征来计算输出特征,因此有一些不需要或是不相关的特征可能会干涉输出的计算。所以作者引用了deformable convolution来适应空间纹理的变化。
Deformable convolution可以改变卷积核的形状,它首先为每个位置学习一个偏移图(offset map)然后将所得偏移图应用于特征图,对相应特征进行重采样来进行加权。使用可调制的deformable convolution,它提供了另一个自由度来调整空间支撑区域(spatial support regions):
,其中
为位置
的可学习偏移(learnable offset),
为可学习的调制标量(learnable mod-ulation scalar)范围在
。它反映了采样特征
与当前位置的特征之间的相关程度,因此调制后的deformable convolution可以调整输入特征幅度(feature amplitudes)来进一步调整spatial support regions。
和
都来自于先前的特征。
RSAB 结构图
在每个RSAB中,首先将提取的特征(extracted features)和上一尺度的重构特征(reconstructed features)融合(fuse)后作为输入。RSAB由一个调制可变形卷积(modulated deformable convolution)跟着一个带有短跳跃连接(short skip connection)的传统卷积组成。与ResBlock类似,使用局部残差学习(local residual learning)来增强信息流并提高网络的表达能力,不同的是,将第一个Conv替换为modulated deformable convolution并且使用leaky ReLU作为激活函数,所以RSAB可以记为
。其中
和
分别为调制可变形卷积和传统卷积,
为激活函数(此处为leaky ReLU),RSAB的结构图如上图所示。
此外,为了更好地估计偏置,将last-scale的offsets
和modulation scalars
转移到current scale
,同时使用
和输入特征
来估计
。偏移转移可以表示为:
,其中
和
分别代表offset transfer和upsampling。如上图所示,offset transfer涉及多个卷积,从输入中提取特征并将其与先前的偏移融合有,以估计current scale的offset,实验中采用双线性插值(bilinear interpolation)来进行上采样。
3.2. Context block
Multiscale information对于denoising task十分重要,所以网络经常会采取下采样(downsampling),但是当图像分辨率较低时,这样会导致图像结构被破坏,信息丢失。为了扩大感受野(receptive field)并且在不进一步降低分辨率的情况下捕捉multiscale information,作者在encoder和decoder之间的最小尺寸(minimum scale)引入了一个上下文块(context block),它使用几种具有不同扩张率(dilation rates)的空洞卷积(dilated convolutions),而不是下采样。可以在扩展感受野的同时不增加参数数量或破坏结构,将在从不同感受野提取的不同特征融合后用来估计输出(如下图所示)。
Context block 结构图
在本文中,移除了BN层,仅使用了设置为1、2、3、4的dilation rates,为了进一步简化操作缩短时间,首先使用1×1 Conv来压缩特征通道。compression ratio设置为4,在融合(fusion)部分使用1×1卷积,类似地,在输入和输出特征之间使用local skip connection来防止信息阻塞。
3.3. Implementation
在模型中,使用4个尺度(scale)的encoder-decoder,通道数分别设置为32、64、128、256,第一个和最后一个Conv层的核大小设置为1×1,最后的输出根据输入设置为1或3通道。此外,在up/down-convolutional layers使用2×2 filters,其他Conv层的核大小为3×3。
4. Experiments
这部分还是主要以测试结果对比为主,其他部分比如训练的细节不详细说明,可以进一步参考论文和开源代码进行学习。
模型使用synthetic noisy images和real-world noisy images共同训练,使用包括800张图的DIV2K dataset添加不同强度的噪声来生成synthetic noise datasets;对于real noisy images,使用SIDD、RENOIR和Poly,并通过旋转等方法进行数据增强。使用ADAM optimizer(
,
,
)进行训练,学习率等训练细节在此不赘述,请参考原文。
4.1. Abaltion study
通过消融实验验证模型的关键部分的确发挥作用,这里直接放结果:
Ablation study result
4.4.2. Analyses of the spatial adaptability
这部分主要是为了分析模型学习到了空间适应性,从粗到细对图像进行去噪,多尺度结构使网络能够获取不同感受野的信息进行图像重建。(论文这里有附一张图来说明,篇幅原因这里不贴了,可以参考文中的Fig.4)。
4.3. Comparisons
使用BSD68、Kodak24、DND、SIDD、Nam datasets与多个SOTA(state-of-the-art)算法进行去噪效果对比,这里主要放一些对比图和简单的分析:
SADNet与多种算法在不同噪声强度的synthetic grayscale/color noisy images进行去噪测试的PSNR值对比
使用BSD68和Kodak24测试集,噪声强度σ=50的条件下生成synthetic noisy image进行去噪效果对比
使用DND测试集中的real-world noisy image进行去噪效果对比
SADNet和多种算法在DND、SIDD测试集上去噪结果的PSNR、SIMM值对比
在SIDD测试集的real-world noisy image上去噪效果的对比
文章中还有几个其他的对比样例以及在使用Nam测试集在JPEG压缩的real-world noisy images上进行的去噪效果对比,这里就不一一附图了,详细可以参考论文,从上面的多张对比图中可以看出SADNet的确在各个方面由于CBDNet、RIDNet等SOTA去噪算法,是值得尝试和学习的。此外文章在Experiments的最后部分对比了SADNet和其他算法的参数和运行速度,虽然SADNet的参数很多,但是因为floating point operations(FLOPs)更少,所以运行速度要优于其他算法。
5. Conclusion
在本文中,作者提出了一种新的空间自适应去噪网络(spatial-adaptive denoising network),可以有效地去除图片中的噪声。SADNet由多尺度残差空间自适应块(multiscale residual spatial-adaptive block,RSAB)构成,还引入了上下文块(context block)捕获多尺度的信息并实现偏移量的传递。SADNet可以在复杂的场景中去除噪声并保存更多的细节,在synthetic images和real-world noisy images均表现出色达到SOTA级,而且有着不错的运行速度。