论文:Depth-attentional Features for Single-image Rain Removal
作者:Xiaowei Hu
期刊:CVPR
年份:2019
最近在看反射与背景分离的论文与代码,到了瓶颈期且效率极低,准备换个思路,这是我看的第一篇去雨的论文,简单记录一下,方便以后查看。
Depth-attentional Features for Single-image Rain Removal
- 模型
- 本文工作
- 相关工作
- 公式和数据集
-
- 公式
- RainCityscapes数据集
- 局限
- 方法
-
- 回归深度图
- Depth-attentional Features
- 训练和测试策略
- 结果
遮挡不仅是由降雨条纹引起的,而且还由降雨带来的雾气引起。 距离摄像机较近的对象主要受到雨水条纹的影响,而距离较远的对象受雾的影响更大。现有的除雨方法和数据集会忽略这些物理属性,从而限制了真实照片上的除雨效率。图一是降雨条纹的强度及其雾化与景深的关系。
模型
雨条纹的视觉强度取决于从相机到雨后的底层场景对象的景深d。 在模型中将tr表示为雨条纹的视觉强度,将tr0表示为最大tr,有以下几种情况:
(1)对于靠近相机(d≤d1)的场景对象,以雾少的雨条纹为主,即tr = tr0,其中d1 = 2fa,f是焦距,a是雨滴半径 。
(2)对于远离摄像机的场景物体(d≥d2? d1),以雾为主且几乎没有雨水条纹,即,随着d的增加,tr趋于零。
(3)随着d从d1增加到d2,雨条纹的强度将下降,而雾的强度将上升。
之前的方法主要集中在消除雨水条纹上,而忽略了雨水的物理特性,因此大多不能完全消除雨雾。 而且现有的除雨数据集仅包含雨条,而一些图像是室内而不是室外,也限制了真实照片的除雨方法的发展。
本文工作
(1)分析受景深影响的降雨的视觉效果,建立了具有降雨条纹和雾的降雨成像模型
(2)准备了一个名为RainCityscapes的具有场景深度信息的用于去雨的新数据集,其中包含真实室外照片上的雨水条纹和雾气
(3)设计了一个端到端的深度神经网络,在该网络中,训练它通过深度引导的注意力机制来学习深度注意特征,并回归残差图以产生无雨的图像输出
(4)进行各种实验以评估网络和数据集。 结果表明,本文网络在数量和质量上都优于现有的合成图像和真实照片作品。
相关工作
前人工作:
由于现有数据集的限制,雨图数据都是通过清晰图像加上雨纹合成的,因此这些方法主要关注雨纹图像。
传统方法:
1、最早期通过设计基于低水平图像统计的手工先验来去除图像中的雨纹。
2、Barnum 结合条纹模型和雨的特征,在频域内检测和去除雨纹。
3、Chen 通过一个低秩先验去除雨纹,因为雨纹通常具有相似和重复的模式。
4、Li 采用基于高斯混合模型的patch先验对背景和雨层进行去除雨纹。
5、Zhu 估计主导降雨方向并提出了一种双层联合优化方法来迭代地将雨纹从背景中分离出来。
基于CNN:
1、Fu 从训练数据中学习无雨层和雨层之间的映射函数。DerainNet
2、Yang 创建了一个多任务网络,共同检测和去除降雨。JORDER
3、Fu 利用先验知识从输入图像中构造出基层和细节层,然后通过深度网络从细节层学习残差。DDN
4、Li 使用SE-Net建立了一个上下文扩展网络,迭代地预测阶段残差。RESCAN
5、Zhang开发了一种残差感知分类器来确定雨密度,并将几个紧密相连的网络堆叠起来,以此来估计残差。DID-MDN
同时:
Garg和 Nayar 通过考虑场景深度和光源,开发了一种基于图像的降雨生成算法。
参考:https://blog.csdn.net/wang_chaochen/article/details/103506390
公式和数据集
公式
雨图像=无雨图像+雨层+雾层,在像素x处观察到的雨图像O(x)表示为:
I(x):场景辐射清晰的无雨图像; R(x)∈[0,1]:雨层; A0:大气光,与[Semantic foggy scene understanding with synthetic data]相同的全局常数; A(x)∈[0,1]:雾层; 如图3。
对于R(x)和A(x),较大的值表示较高的降雨条纹或雾强度,零值表示无降雨条纹或无雾雾。
公式中将(1-R(x)-A(x))与I(x)相乘,场景可见性随R(x)+ A(x)减小。
遵循[Semantic foggy scene
understanding with synthetic data],并且在I(x)项上不使用A0,因为I(x)已经受到大气光的影响。
雨层R(x)分两部分建模:
Rpattern(x)∈[0,1]是图像空间中均匀分布的雨条纹的强度图像; tr(x):降雨条纹强度图,取决于图1; ?:逐像素乘法。
tr(x)建模为:
α:控制降雨条纹强度的衰减系数。tr0(最大雨条纹强度)=e^-αd1,tr(x)从tr0开始,并在d(x)超过d1之后逐渐下降为零。
与雨不同,根据模拟图像退化过程的标准光学模型,雾的视觉强度随场景深度呈指数增加。
雾层A(x)建模为:
β:控制雾的厚度的衰减系数,β越大表示雾越浓,反之亦然。
注意:
本文假设场景中的气氛均匀,因此雨雾和雾的传播都取决于d
RainCityscapes数据集
以前的方法仅对它们进行最新的深层网络训练以去除雨水,物理降雨模型被忽略,因此现有方法对于真实照片往往会失败,如图2。
本文采用Cityscapes数据集[The cityscapes dataset for semantic urban scene understanding]中的照片作为无雨图像,并使用数据集中的相机参数和场景深度信息合成雨和雾。 将数据集命名为“ RainCityscapes”。
与以前的数据集相比,本文数据集都是室外照片,每张照片都带有深度图,并且降雨图像显示出不同程度的雨和雾
数据集制作过程略,可以看论文
使用三组参数{(0.02,0.01,0.005),(0.01,0.005,0.01),(0.03,0.015,0.002)}:衰减系数α和β,雨滴半径a,来模拟不同程度的雨和雾。
局限
(1)降雨成像过程假定降雨层和雾层是均匀分布且独立的。 然而在现实世界中,雨和雾的视觉效果与降雨强度有关。 下雨的时间取决于相机参数(例如曝光时间); 而且在下雨时强度变化更加复杂。
(2)相机的自我运动可能会分散雨水的分布,并在图像空间中造成额外的运动模糊。
(3)尽管本文降雨模型是一个近似的而且缺乏光学模型,但是结果比起其他还挺好的。
方法
图4:deep network with the depth-attentional features (named “DAF-Net”),用于单幅图像去雨。 它是一个端到端(end-to-end)网络,将雨图作为输入,预测深度图,然后生成无雨图作为输出。
(1)该网络首先利用卷积神经网络(CNN)从输入图像中提取低级细节和高级语义,并以不同的分辨率生成特征图。
(2)使用两个解码器分支,每个分支逐步对特征图进行上采样,并将其与CNN特征图以相同的分辨率组合在一起以生成新的特征图(图4中蓝绿黄中特征图之间的折线)。
(3)在顶部解码器分支中,进一步回归深度图,通过深度引导的attention机制学习一组attention weights。
(4)在底部解码分支中,首先生成最终(最高分辨率)特征图,然后将其与顶部分支中的attention权重组合以生成depth-attentional features。 最后在这些特征上应用一组群卷积,预测残差图,并将其添加到输入图像中输出无雨图像。
回归深度图
当上采样的特征图的宽度达到输入的四分之一时,添加一个监督信号,然后对输入图像进行深度图回归。
注意:
较低分辨率的深度图足以作为学习attention weights的指南,因此对四分之一深度图进行回归可以减少计算和内存开销。
通常,场景深度具有巨大的空间范围。 因此,本文不是直接回归网络中的原始深度值,而是通过转换监督信号(训练数据集中的输入深度图)中的深度值来回归深度值的对数:
d(x):像素x处的景深,D(x):网络中的监督信号。
因此,网络中的回归深度图实际上是对数深度值的图。
注意:
这与本文对场景深度的公式匹配(公式(3)(4)),按对数尺度存储和处理的。
Depth-attentional Features
用attention weights来集成网络中底部解码器分支的特征图,以形成雨条纹和雾的残差图。为了从卷积特征图中有效构造残差图,制定了Depth-guided attention mechanism,以从回归深度图D(x)中学习attention weights。
图5显示了该机制的详细结构,其中在每个3×3卷积层之后,首先采用三个卷积块以ReLU非线性运算处理D(x)。最后一个卷积块的输出是一组未归一化的attention权重{A1,A2,…,An}。 通常,每个权重对应于某种类型的雨条纹和雾。 然后,应用Softmax函数(等式(7))对权重进行归一化,并生成attention权重{W1,W2,…,Wn},每个权重与特定的一组雨条纹和雾相关联:
Bconv:图5中所示的三个卷积块; 它以D(x)作为输入,并学习一组参数θ来产生未归一化的attention权重{A1,A2,…,An};
ax,c∈Ac:Ac中像素x在通道c处的权重(c = {1,2,…,n});
wx,c∈Wc:得到的attention权重,它是通过softmax对
进行归一化获得的(式(7))。
底部解码器分支(图4中黄色框)产生的最高分辨率的特征图Fb具有256个特征通道,在256个通道上将其划分为n个子图,每个子图F ^b i(i = 1,2,…,n)具有256 /n个通道且具有与原始特征图F b相同的分辨率(n设置为64),以逐像素方式将Wc与第c个子图F ^b c的每个特征通道相乘,产生depth-attentional features。
在n个单独的部分中准备了depth-attentional features,然后在depth-attentional features的每部分上分别在n个组中执行组卷积,以增强特征的表达能力。 通过采用组卷积,每组的特征只负责消除类内方差较小的某种降雨条纹和雾。 最后使用1×1卷积合并不同组中的所有特征生成残差图Res(x),然后将其输入雨图O(x)相加,生成输出无雨图I(x) 。
训练和测试策略
损失函数:通过最小化输出无雨图像I(x)中的像素和深度图D(x)中的像素的损失函数L来训练网络:
ωi和ωd:权重;
X和X4:输出图像和深度图的图像域;
I(x)l和?I(x)l:在X中的像素x的第l个RGB颜色通道中的预测值和地面真实值
D(x)和?D(x):像素x处的预测和地面真实深度值;
无雨图像I(x)的大小与输入图像相同,但是深度图D(x)的大小仅为输入的1 /16,因此加上权重ωi和 ωd 。