真实图像去噪 ----SADNet

系列文章目录


论文名称:Spatial-Adaptive Network for Single ImageDenoising(用于单张图像去噪的空间自适应网络)
论文地址:https://arxiv.org/abs/2001.10291
代码地址:https://github.com/JimmyChame/SADNet
发表时间:2020
应用领域:合成噪声图像及真实噪声图像去噪
key word:残差空间自适应块、可变形卷积、Context block



摘要

先前的工作表明CNN已可以在image denoising上取得良好的效果,但是很可能会导致图像过于光滑,以额外的计算开销为代价使用较深的网络结构可以缓解这类问题。在本文中,作者提出了一种新的空间自适应去噪网络(spatial-adaptive denoising network,SADNet)来有效地去除单张图像的盲噪声。为了适应空间纹理和边缘边缘的变化,设计了一个残差空间自适应块(residual spatial-adaptive block)。引入可变形卷积(Deformable convolution)对空间相关特征进行采样。引入具有上下文块的encoder-decoder来捕获多尺度信息(multiscale information)。通过从粗到细的噪声去除,得到高质量的noise-free image。该方法可以用于synthetic noisy image和real-word noisy image的去噪。

introduction

image denoising是计算机视觉以及图像处理领域中的关键任务。许多早期的基于模型的方法(model-based methods)先找到图像的先验信息(priors)然后再应用优化算法迭代求解模型,这样的方法十分耗时而且效果不佳。随着深度学习的兴起,CNN被广泛应用于Denoising而且取得了不错的效果。
早期工作中大多假设噪声是独立且均匀分布的,加性高斯白噪声常被用于建模生成噪声图像。而现在人们意识到实际上噪声是以更复杂的形式出现的,在空间上可变(spatially variant)且与信道相关(channel dependent)。虽然人们在real-world noisy image的去噪上取得了很大的进展,但仍有一些问题待解决。传统的CNN智能使用在局部固定点附近的特征(feature 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可以在多个sybthetic noisy image datasets 和 real noisy image datasets 的去噪上取得良好的效果。

Related work

总的来说,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等。详细参考原文…

网络架构

整体网络架构

SADNet结构框架
SADNet的网络结构如上图所示,令x为输入的噪声图像, y ^ \hat{y} y^为对应的去噪输出图像,那么模型即可表示为 y ^ = S A D N e t ( x ) \hat{y}=S A D N e t(x) y^=SADNet(x)
使用1层Conv层从噪声输入中提取初始特征(initial features),将这些特征输入到multiscale encoder-decoder结构中。在encoder部分使用ResBlocks提取不同尺度的特征,不同于原始的ResBlock,在使用时删除了BN层(Batch Normalization)而且使用leaky ReLU作为激活函数,为了避免损坏图像结构,限制了下采样的操作次数,并使用一个context block来进一步扩大感受野(receptive field)并捕获多尺度信息;在decoder部分,设计了residual spatial adaptive blocks(RSABs)来对相关特征进行采样和加权以消除噪声并重构纹理。此外还估计了偏移量(offset),这对于获得更精确的特征位置很有帮助。最后将重构的特征输入到最后一个Conv层来还原去噪后的图像。
除了网络结构以外,损失函数也至关重要,denoising task常用的损失包括L2 loss、L1 loss、perceptual loss、asymmetric loss(非对称损失)、联合损失等。L2 loss对于Gaussian noise有很好的置信度;L1 loss对异常值(outliers)有更好的容忍度。在本文中,使用L2 loss训练synthetic noisy image datasets;使用L1 loss来训练real-workd noisy image datasets。

Residual spatial-adaptive block

首先介绍deformable convolution(可变形卷积)在细致地介绍RASB。
x ( p ) x(p) x(p)为输入特征图x中位置p处的特征,对于传统的卷积操作,对应的输出特征 y ( p ) y(p) y(p)可以通过 y ( p ) = ∑ p i ∈ N ( p ) w i ⋅ x ( p i ) y(p)=\sum_{p_{i}\in N(p)}w_{i}\cdot x(p_{i}) y(p)=piN(p)wix(pi),其中N§代表位置p的neighborhood,它的大小和卷积核相同, w i \stackrel{}{w}_{i} wi为卷积核中位置p处的权重, p i p_i pi N ( p ) N(p) N(p)中的位置。传统卷积严格地采用p周围固定位置的特征来计算输出特征,因此有一些不需要或是不相关的特征可能会干涉输出的计算。所以作者引用了deformable convolution来适应空间纹理的变化。
Deformable convolution可以改变卷积核的形状,1.他首先为每个位置学习一个偏移图(offset map),2.然后将所得偏移图应用于特征图,3.对相应特征进行重采样来进行加权。使用可调制的deformable convolution。
它提供了一个自由度来调整空间支撑区域(spatial support regions): y ( p ) = ∑ p i ∈ N ( p ) w i ( p i + Δ p i ) ⋅ Δ m i y(p)=\sum_{p_{i}\in N(p)}w_{i}(p_{i}+\Delta p_{i})\cdot\Delta m_{i} y(p)=piN(p)wi(pi+Δpi)Δmi,其中 Δ p i \Delta p_i Δpi为位置 p i p_i pi的可学习偏移(learnable offset), Δ m i \Delta m_i Δmi为可学习的调制标量(learnable mod-ulation scalar)范围在[0,1]。它反映了采样特征 x ( p i ) x(p_{i}) x(pi)与当前位置的特征之间的相关程度,因此调制后的deformable convolution可以调整输入特征幅度(feature amplitudes)来进一步调整spatial support regions。 Δ p \Delta p Δp Δ m \Delta m Δm都来自于先前的特征。
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可以记为 F R S A B ( x ) = F c n ( F a c t ( F d c n ( x ) ) ) + x F_{RSAB}(x)=F_{cn}(F_{act}(F_{dcn}(x)))+x FRSAB(x)=Fcn(Fact(Fdcn(x)))+x。其中 F d c n F_{dcn} Fdcn F c n F_{cn} Fcn分别为调制可变形卷积和传统卷积, F a c t F_{act} Fact为激活函数(此处为leaky ReLU),RSAB的结构图如上图所示。
此外,为了更好地估计偏置,将last-scale的offsets Δ p s − 1 \Delta p^{s-1} Δps1转移到current scale s,同时使用 { Δ p s − 1 , Δ m s − 1 } \{\Delta p^{s-1},\Delta m^{s-1}\} {Δps1,Δms1}和输入特征 x s x^s xs来估计 { Δ p s , Δ m s } \{\Delta p^{s},\Delta m^{s}\} {Δps,Δms}。偏移转移可以表示为: { Δ p s , Δ m s } = F o f f s e t ( x , F u p ( { Δ p s − 1 , Δ m s − 1 } ) ) \{\Delta p^s,\Delta m^s\}=F_{offset}(x,F_{up}(\{\Delta p^{s-1},\Delta m^{s-1}\})) {Δps,Δms}=Foffset(x,Fup({Δps1,Δms1})),其中 F o f f s e t F_{offset} Foffset F u p F_{up} Fup分别代表offset transfer和upsampling。如上图所示,offset transfer涉及多个卷积,从输入中提取特征并将其与先前的偏移融合,以估计current scale 的offset,实验中采用双线性插值(bilinear interpolation)来进行上采样。

Context block

Multiscale information对于denoising task十分重要,所以网络经常会采取下采样(downsampling),但是当图像分辨率较低时,这样会导致图像结构被破坏,信息丢失。为了扩大感受野(receptive field)并且在不进一步降低分辨率的情况下捕捉multiscale information,作者在encoder和decoder之间的最小尺寸(minimum scale)引入了一个上下文块(context block),它使用几种具有不同扩张率(dilation rate)的空洞卷积(dilated convolutions),而不是下采样。可以在扩展感受野的同时不增加参数数量或破坏结构,将在从不同感受野提取的不同特征融合后用来估计输出(如下图所示)。
context block结构图
在本文中,已处理BN层,仅使用了设置为1、2、3、4的dilation rates,为了进一步简化操作缩短时间,首先使用1*1Conv来压缩特征通道。compression ratio设置为4,在融合(fusion)部分使用1 * 1卷积,类似地,在输入和输出特征之间使用local skip connection来防止信息阻塞。

implementation

在模型中,使用4个尺度(scale)的encoder-decoder,通道数分别设置为32、64、128、256,第一个和最后一个Conv层的核大小设置为11,最后的输出根据输入设置为1或3通道。此外,up/down-convolutional layers使用22 filters,其他conv层的核大小为3*3.

experiments

这部分还是主要已测试结果对比为主,其他部分比如训练的细节不详细说明,可以京一部参考论文和开源代码进行学习。
模型使用synthetic noisy images 和real-world noisy images 共同训练,使用包括800张图的DIV2K dataset 添加不同强度的噪声来生成synthetic noise datasets;对于real noisy images,使用SIDD、RENOIRhePoly,并通过旋转等方法进行数据增强。使用ADAM optimizer( β 1 = 0.9   β 2 = 0.999   ϵ = 1 0 − 8 \beta_1=0.9\,\beta_2=0.999\,\epsilon=10^{-8} β1=0.9β2=0.999ϵ=108)进行训练,学习率等训练细节在此不赘述。

Abaltion study

通过消融实验验证模型的关键部分的确发挥作用,这里直接放结果:
Ablation study result

Analyses of the spatial adaptability

这部分主要是为了分析模型学习到了空间适应性,从粗到细对图像进行去噪,多尺度结构使网络能够获取不同感受野的信息进行图像重建。…详见论文

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)更少,所以运行速度要优于其他算法。

Conclusion

在本文中,作者提出了一种新的空间自适应去噪网络(spatial-adaptive denoising network),可以有效地去除图片中的噪声。SADNet由多尺度残差空间自适应块(multiscale residual spatial-adaptive block,RSAB)构成,还引入了上下文块(context block)捕获多尺度的信息并实现偏移量的传递。SADNet可以在复杂的场景中去除噪声并保存更多的细节,在synthetic images和real-world noisy images均表现出色达到SOTA级,而且有着不错的运行速度。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值