Depth-attentional Features for Single-image Rain Removal
这是2019CVPR的一篇文章,主要创新点是引入了深度信息完成去雨。
文章指出了目前的去雨的方法忽略了雨痕在图像中呈现出的物理特性,导致去雨的有效性较低。同时分析了雨图成像机理,指出远处的物体更多地是被雾遮挡,近处的则是雨纹,分析了受场景深度影响的雨的视觉效果。并根据场景深度制定了一个带有雨条纹和雾的雨成像模型。为了训练的像更接近真实在雨景中拍摄的图像本文准备了一个新的数据集。因为数据集需要申请,还没下来,等申请好了以后会放上链接。然后设计了一个端到端的深度神经网络,我们训练它通过深度引导的注意力机制来学习深度注意力的特征,并回归剩余映射来产生无雨的图像输出。
创新之处:
- 引入了场景的深度信息,大胆的推断了基于场景深度的雨的成像过程,实现了在图像中雨条纹和雾的结合。
- 设计了一个端到端的神经网络,形成深度指导的注意力机制学习深度注意特征,根据注意权值对残差图进行回归,去除输入雨图像中的雨条纹和雾。
- 准备了一个新的雨去除数据集。
前人工作:
由于现有数据集的限制,雨图数据都是通过清晰图像加上雨纹合成的,因此这些方法主要关注雨纹图像。
传统方法:
- 最早期通过设计基于低水平图像统计的手工先验来去除图像中的雨纹。
- Barnum 结合条纹模型和雨的特征,在频域内检测和去除雨纹。
- Chen 通过一个低秩先验去除雨纹,因为雨纹通常具有相似和重复的模式。
- Li 采用基于高斯混合模型的patch先验对背景和雨层进行去除雨纹。
- Zhu 估计主导降雨方向并提出了一种双层联合优化方法来迭代地将雨纹从背景中分离出来。
基于CNN:
- Fu 从训练数据中学习无雨层和雨层之间的映射函数。DerainNet
- Yang 创建了一个多任务网络,共同检测和去除降雨。JORDER
- Fu 利用先验知识从输入图像中构造出基层和细节层,然后通过深度网络从细节层学习残差。DDN
- Li 使用SE-Net建立了一个上下文扩展网络,迭代地预测阶段残差。RESCAN
- Zhang开发了一种残差感知分类器来确定雨密度,并将几个紧密相连的网络堆叠起来,以此来估计残差。DID-MDN
同时:Garg和 Nayar 通过考虑场景深度和光源,开发了一种基于图像的降雨生成算法。
网络结构:
其中,
蓝色部分是:用于从输入中提取多分辨率特征的卷积神经网络
绿色部分是:用于预测深度图的解码器分支
橙色部分是:学习注意权重的深度引导注意机制
黄色部分是:另一个解码器分支,用于产生深度注意特征和注意权重;
最后,我们使用一组组卷积对深度注意特征(粉红色部分)进行残差预测,并将其加入到输入中,生成输出的无雨图像。
成像具体工作:
1、雨成像模型
在自然界的成像中,造成视觉阻挡的不仅有雨纹,还有因为场景深度的原因在图像上、视觉上呈现出雾的特征。一般情况下,认为离相机近的受雨纹影响比较大,离相机较远的受雾的影响比较大。
如图所示,是雨纹强度随深度影响的曲线,其中最大雨纹强度为tr0t_{r0}tr0。
- 相机附近的场景对象(d≤d1)(d ≤ d_1)(d≤d1),其关联的图像区域以雨纹为主,雾较小,即其中d1=2fad_1 = 2 f ad1=2fa, fff为焦距,aaa为雨滴半径,雨纹强度为最大雨纹强度tr0t_{r0}tr0.
- 场景对象远离相机(d≥d2≫d1)(d ≥ d_2 ≫ d_1)(d≥d2≫d1), 其相关的图像区域将由雾和雨纹组成,当ddd增加时,trt_rtr趋于0。
- 随着ddd从d1d_1d1增加到d2d_2d2,雨纹强度将下降,雾强度将上升。
2、雨图像的公式:
其中,I(x)I(x)I(x)为场景亮度清晰的无雨图像;R(x)∈[0,1]R(x)∈[0,1]R(x)∈[0,1]表示降雨层;A0A_0A0为大气光,假设为一个全局常数;且A(x)∈[0,1]A(x)∈[0,1]A(x)∈[0,1]表示雾层;
具体表示如下图:
雨层:
其中Rpattern(x)∈[0,1]R_{pattern}(x) ∈ [0,1]Rpattern(x)∈[0,1]是图像空间中均匀分布的雨条纹的强度图像;tr(x)t_r(x)tr(x)为依赖场景深度的雨条纹强度图,*代表着像素乘法。
其中ααα是一个控制雨纹强度的衰减系数。此外,tr0(这是最大的雨条纹强度)=e−αd1t_{r0}(这是最大的雨条纹强度)= e^{−αd_1}tr0(这是最大的雨条纹强度)=e−αd1,而tr(x)t_r (x)tr(x)始于tr0t_{r0}tr0并随着d(x)d (x)d(x)超越d1d_1d1后逐渐下降。
雾层:
其中βββ是一个衰减系数,控制雾的厚度,βββ越大,雾越厚。
3、新建数据集
拍摄一对真实的有雨和无雨的照片进行训练几乎是不可能的,因为场景对象可能会移动,环境光线和相机曝光可能会改变。因此,现有的用于去雨的数据集通常是通过在照片上添加一个二维的雨纹层来制备。最近的深层网络只是简单地对其进行训练以去除雨。显然,物理雨模型被忽略了,所以现有的方法对真实的照片往往是失败的;因此,本文新建立一个新的数据集 RainCityscapes(还在申请,申请好以后放上来)数据集都是户外照片,每一张都有一个深度图,雨图像显示出不同程度的雨和雾。
从上面的公式来生成雨纹强度tr(x)t_r(x)tr(x)和雾层A(x)A(x)A(x)。
参数分别设为(α,β,a)={(0.02,0.01,0.005),(0.01,0.005,0.01),(0.03,0.015,0.002)}(α,β,a)= \{(0.02, 0.01, 0.005), (0.01, 0.005, 0.01),(0.03, 0.015, 0.002)\}(α,β,a)={(0.02,0.01,0.005),(0.01,0.005,0.01),(0.03,0.015,0.002)}
选用阴天无阴影的图片作为深度图,并使用深度去噪细化深度图。
最后得到9432张训练图片和1188张测试图片。
4、模拟成像的局限性
模拟成象过程假设雨层和雾层是均匀分布和相互独立的。而在现实世界中,雨、雾的视觉效果与雨强相关;雨的外观取决于相机参数(如曝光时间);而降雨强度变化更为复杂。相机自身运动也会分散雨的分布,造成图像空间额外的运动模糊。虽然我们的降雨模型是近似的,缺乏光学模型,但是合成的图像确实有助于改善与之前的工作和数据相比的结果,这些工作和数据忽略了我们所探索的降雨特性。
网络具体工作:
DAF-Net网络工作流程:
网络首先利用卷积神经网络(CNN)从输入图像中提取低层细节和高层语义,并生成不同分辨率的特征图。
然后使用两个解码器分支,每个分支逐步上采样一个特征图,并将其与相同分辨率的CNN 特征图相结合,生成一个新的特征图。
在顶部的解码器分支中,我们进一步回归深度图,并通过深度引导注意力机制学习一组注意力权重。
在底部的解码分支中,我们首先生成最终的(最高分辨率的)特征图,然后将其与顶部分支的注意力权重相结合,生成深度注意特征。
最后,在这些特征上应用一组群卷积,预测残差映射,并将其加入到输入图像中,得到无雨输出图像。
1、顶部解码器分支回归深度图
当上采样特征图的宽度达到输入的四分之一时,我们添加一个监控信号,并对输入图像进行深度映射。注意,较低分辨率的深度图足以作为学习注意权重的指导,因此我们退回四分之一宽度深度图以减少计算和内存开销。
然后,通过对监控信号(训练数据集中的输入深度图)中的深度值进行转换,对深度值的对数进行回归:
d(x)d(x)d(x) 是像素x上的场景深度。
D(x)D(x)D(x)是网络中的监控信号。因此,网络中的回归深度图实际上是对数深度值的图。
2、深度注意特征
首先在我们的网络中回归深度图,并以此为指导来学习一组注意力权重。然后,我们可以使用这些权值来集成来自我们网络底部解码器分支的特征图,从而形成雨条纹和雾的残留图。在此基础上,将残差映射加入到雨图像中,得到输出的无雨图像。
图为深度指导注意力机制:从回归深度图D(x)中学习权值。
首先采用3个卷积块对D(x)进行ReLU非线性运算,在每个3x3的卷积层之后。
最后一个卷积块的输出是一组未归一化的注意权值{A1,A2,…}\{A1, A2,…\}{A1,A2,…}。一般来说,每一种权重都对应一种特定类型的雨纹和雾。
然后,应用Softmax函数对权重进行归一化,生成注意权重{W1W2,…,}\{W1 W2,…,\}{W1W2,…,}每一个都与一组雨纹和雾有关。
卷积和Softmax层用公式表达如下:
从底部解码器分支产生的最高分辨率的特征映射FbF_bFb有256个特征通道。接下来,
我们把256个通道分成n个子映射,每个子映射Fib(i=1、2、……,n)F_i^b (i =1、2、……, n)Fib(i=1、2、……,n)有256/n个通道,分辨率与原始特征图 FbF_bFb相同;实际上,我们设n为64。
然后,我们将WcW_cWc与c−thc-thc−th子映射FcbF_c^bFcb的每个特征通道按元素顺序相乘,生成深度注意特征。
现在,我们准备了n个独立部分的深度注意特征。因此,我们可以在深度注意特征的每个部分分别进行n组的组卷积,以增强特征的表达性。通过采用组卷积,每个组中的特征只负责删除具有较小类内方差的某种雨条纹和雾。最后,我们使用1×1的卷积将来自不同组的所有特征进行合并,得到残差图 Res(x),并将输入的雨图O(x)加入其中,得到输出的无雨图I(x)。
3、训练
损失函数:
其中,ωiω_iωi和ωdω_dωd权重;
XXX和X4X_4X4分别表示输出图像和深度图的图像域;
I(x)lI(x)_lI(x)l 和 Iˉ(x)l\bar{I}(x)_lIˉ(x)l 分别表示像素在预测图像和真实图像中的值,l−thl-thl−th RGB 中对应的颜色通道。
D(x)D(x)D(x)和(ˉD)(x)\bar(D)(x)(ˉD)(x)分别表示像素x处的预测深度和真实深度;
I(x)lI(x)_lI(x)l、Iˉ(x)l\bar{I}(x)_lIˉ(x)l、D(x)D(x)D(x)和(ˉD)(x)\bar(D)(x)(ˉD)(x)的值被归一化为[0,1]。
注意,无雨图像I(x)的大小与输入图像相同,但深度图D(x)的大小仅为输入的1/16。
Depth-attentional Features for Single-image Rain Removal相关推荐
- MyDLNote - Enhancement: Fast Single Image Rain Removal via a Deep Decomposition-Composition Network
Fast Single Image Rain Removal via a Deep Decomposition-Composition Network [paper] Fast Single Imag ...
- Clearing the Skies: A deep network architecture for single-image rain removal解读
Clearing the Skies: A deep network architecture for single-image rain removal解读 Abstract 1.Introduct ...
- A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior——基于颜色衰减先验单图片去雾算法原理...
本人最近在研究去雾方面的最新文献(2016年初),当然去雾方面的经典论文是何凯明博士的<Single Image Haze Removal Using Dark Channel Prior> ...
- 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果及其他。...
在图像去雾这个领域,几乎没有人不知道<Single Image Haze Removal Using Dark Channel Prior>这篇文章,该文是2009年CVPR最佳论文.作者 ...
- Single Image Haze Removal Using Dark Channel Prior 基于暗原色先验的单一图像去雾方法【翻译】
Single Image Haze Removal Using Dark Channel Prior Kaiming He, Jian Sun, Xiaoou Tang The Chinese Uni ...
- Deep Depth Completion of a Single RGB-D Image(深度像素补全)全文机器翻译
懒得手翻了,全文机器翻译,凑合着看吧,建议对着原文看 RGB-D图像的深度补全(Deep Depth Completion of a Single RGB-D Image)(全文机器翻译) Yinda ...
- Direction-aware Spatial Context Features for Shadow Detection and Removal
Direction-aware Spatial Context Features for Shadow Detection and Removal 基本信息 值得借鉴的地方 摘要 1 INTRODUC ...
- 读A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior
学习目标: A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior 个人体会: 基于模糊图像中像素的亮度和饱和 ...
- Single Image Haze Removal Using Dark Channel Prior
单幅图像基于暗通道先验的去雾 Single Image Haze Removal Using Dark Channel Prior Kaiming He, Jian Sun, and Xiaoou T ...
- Single Image Reflection Removal
以下分析来源:Seeing Deeply and Bidirectionally: A Deep Learning Approach for Single Image Reflection Remov ...
最新文章
- Windows上VS2017单步调试FFmpeg源码的方法
- 深度隐式表达:为什么不用mesh,点云,体素等表示方法?
- [Git] git log命令
- RAC修改数据库的spfile位置
- 稀疏矩阵加法运算_1.2 震惊! 某大二本科生写的矩阵乘法吊打Mathematica-线性代数库BLAS-矩阵 (上)...
- What happens when clicking interaction record work center?
- python笔试题 github_简单的python面试题,居然
- 定位系统服务器,android系统定位服务器地址
- ERmaster 数据库设计 ,显示中文逻辑名
- KVM的概念和云计算
- MySQL备份,恢复方案,mysqlbinlog,mysqldump,主从,主主复制
- 错误上报_PCIe错误的上报方式
- 《MPLS在Cisco IOS上的配置》一2.3 配置命令参考
- 串口调试助手CRC16_MODBUS校验码计算
- 计算机联锁系统冗余试验,计算机联锁系统冗余技术及应用研究
- HNOI 2015 落忆枫音 题解
- 《MLB棒球创造营》:走近棒球运动·奥克兰运动家队
- shell脚本ping检测服务器连通性
- 安卓结构能转换成苹果借口吗_在外面开着手机WiFi有多危险你知道吗?
- Ubuntu下mingw和aarch64交叉编译x264/x265/openssl/freetype2的ffmpeg