论文:Restoring An Image Taken Through a Window Covered with Dirt or Rain
首页:https://cs.nyu.edu/~deigen/rain/python
傅雪阳首页:https://xueyangfu.github.io/
厦门大学智能数据分析与处理实验室:
https://xmu-smartdsp.github.io/git
在咱们拍摄照片的时候会遇到透过玻璃拍摄的场景,如窗户、车窗,或者透过玻璃自拍等,而玻璃上的污渍会影响照片的效果,这篇论文针对这类透过玻璃拍摄的照片,进行污迹或者雨渍的去除。github
CNN结构同LeNet,函数表示:微信
$x$ 表示$N × M × 3$的RGB输入图像,激活函数使用tanh,第一个卷积层使用“valid”填充,卷积核大小为16X16(果真年代久远,还有偶数的大卷积核);最后一层使用“full”填充,卷积核大小为8;中间使用$1*1$的卷积,通道数为512,共两个中间层(L=3)。因此:W1 :16X6X3X512,W2:1X1X512X512,W3:8X8X512X512。网络
损失函数采用输入标签和网络输出的MSE:ide
输入为64X64大小的图像块,输出大小为56X56,作MSE时,和GT中间56X56对应像素相减。采用随机梯度降低(SGD)更新可训练参数:函数
$\eta$为学习率,参数初始化使用均值为0,方差为0.001的正态分布,偏置b初始化为0,学习率衰减因子:0.001,不使用动量和权重正则化。性能
测试环境:Matlab + Nvidia GTX 580;耗时:3888 × 2592 彩色图像60s,1280 × 720彩色图像7s。学习
论文主要借鉴上一篇文章的网络结构,设计了一个改进的单图像去雨CNN结构,主要改进点:测试
CNN结构函数表示:
做者把雨滴视为图像高频部分,经过低通滤波(引导滤波、双边滤波或者滚动滤波)将有雨图I和其无雨图标签J分别分为基础层和细节层:
基础层为平滑后的图像,有:$I_{base} ≈ J_{base}$,因此只须要创建两个细节层的映射关系便可,损失函数由原来预测图与标签图的MSE变为了:
训练时,参数设置同第一篇论文一致,输入64X64图像块,输出56X56大小图像,
网络训练完成后,去雨结果图像能够直接经过如下运算获得:
可是在雨比较大的状况下,会出现雾的状况,影响视觉效果,因此对基础层和输出的细节层作了图像加强:
论文在上一篇的基础上进行了进一步优化,设计了一个改进的单图像去雨CNN结构,主要改进点:
CNN结构函数表示:
其中,
L为CNN总层数,*表示卷积操做,BN表示batch normalization,$\sigma$表示激活函数ReLU,不使用池化操做。
利用引导滤波将雨迹图划分为细节层和基础层(同上一篇),
损失函数:
参数设置:层数L=26,优化器:SGD,权重衰减因子$10^{-10}$,动量0.9,batch size:20,初始学习率:0.1,迭代100K/200K时除以10,共迭代210K次,卷积核大小为3,个数为16。
一样采用负残差映射的思想设计了一个CNN单图像去雨网络ResGuideNet,主要贡献点:
CNN结构函数形式:
特征复用:经过密集链接复用每个Block输出的负残差特征。
循环计算:如结构图左下角左下角所示,为平衡模型参数和性能,每一个Block内部的两个卷积层采用循环计算的策略加深Block深度,函数表示:
为了不结构加深带来的梯度消失的问题,将Block第一个 Conv+LReLU的输出加到每一个子循环中:
块间融合:如结构图右下角所示:经过集成学习的思想将不一样Block的预测结果concatenate在一块儿,最后经过1X1卷积获得最后的结果。
损失函数:对于每个Block,采用$L_2$+SSIM loss 损失函数:
M个Block和最后merge输出的总损失:
实验细节:环境:python + TensorFlow、NVIDIA GeForce GTX 1080(8GB),初始化:Xavier,优化器:RMSProp,初始学习率: 0.001,batch size:16,迭代次数:50000,每层卷积为:16个3X3,输出层卷积,3个1X 1。
为了使去雨网络更轻量化,使其适用于移动设备,做者提出了轻量级的金字塔去雨网络LPNet,参数量少于8K,主要贡献:
CNN结构函数形式:
a、构建拉普拉斯金字塔
b、特征提取网络
c、循环模块
d、重建高斯金字塔
做者以前提出方法(方案2、方法三)经过引导滤波将图像分解成基础层和细节层,运用细节层训练能够有效减少优化空间,可是引导滤波针对雨量比较厚的图像达不到很好的细节提取效果。因而,做者使用拉普拉斯金字塔将图像分解为不一样尺度的图像金字塔,最后融合不一样尺度图片的处理结果。
损失函数:
实验细节:
5个尺度的拉普拉斯金字塔:[0.0625, 0.25, 0.375, 0.25, 0.0625]为构建高斯金字塔的固定平滑核。
全部子网络结构相同,卷积核个数不一样,$W^{0,1,3,4}$卷积核大小为3x3,W^2卷积核大小为1,每一个子网络循环block次数T = 5,激活函数LReLUs,参数为:0.2。
使用生成的雨图,包含大雨图像和小雨图像,输入大小$80 × 80$ 图像块,Adam优化器,batch size为10,学习率:0.001,epoch为3。
想了解更多,请关注微信公众号:AI搞事情