论文阅读:Densely Connected Pyramid Dehazing Network
代码:https://github.com/hezhangsprinter/DCPDN
目录
- 1. 摘要
- 2. 网络结构
- 2.1 Pyramid Densely Connected Transmission Map Estimation
- 2.2 Atmospheric Light Estimation Network
- 2.3 Joint Discriminator
- 3. 损失函数
- 3.1 GAN优化目标
- 3.2 边界感知损失
- 3.3 总损失函数
- 4. 读后感
1. 摘要
本文提出了Densely Connected Pyramid Dehazing Network(DCPDN),该网络嵌入了大气散射模型。该网络包含两个生成器,分别用于生成传输率图和大气光,再通过大气散射模型产生去雾图。同时该网络还包含一个判别器,判别器输入为无雾图和传输率图的堆叠。本文还提出了一种新的损失函数,即边界感知损失函数。
2. 网络结构
DCPDN整体结构如图1所示。
图1 DCPDN整体结构
该网络包含三个部分,分别为:金字塔稠密链接传输率图估计网络,大气光估计网络和连结判别器。前两个网络分别生成雾图的传输率图和大气光值,经由大气散射模型生成去雾图。将该去雾图和前面提到的传输率图进行堆叠,送入连结判别器。
2.1 Pyramid Densely Connected Transmission Map Estimation
该网络的框架如图2所示。
图2 传输率估计网络框架
该网络是一个编码器-解码器结构的网络。第一个卷积层和前三个稠密块部分采用了预训练的dense-net121的相同部分。下面是根据forward()函数整理的,具体内容见源码。
结果 | 操作 |
---|---|
x0 |
Conv2d(in_channels=3, out_channels=64, kernel_size=7, stride=2, padding=3, bias=False) BatchNorm2d(64) ReLU(inplace=True) MaxPool2d(kernel_size=3, stride=2, padding=1) |
x1 | trans_blocks1(dense_blocks(x0)) |
x2 | trans_blocks1(dense_blocks(x1)) |
x3 | trans_blocks1(dense_blocks(x2)) |
x4 | trans_blocks1(dense_blocks(x3)) |
x42 | cat([x4, x2], 1) |
x5 | trans_blocks1(dense_blocks(x42)) |
x52 | cat([x5, x1], 1) |
x6 | trans_blocks1(dense_blocks(x52)) |
x7 | trans_blocks1(dense_blocks(x6)) |
x8 | trans_blocks1(dense_blocks(x7)) |
x8 | cat([x8, x], 1) |
x9 |
relu=LeakyReLU(0.2, inplace=True) relu(Conv2d(19, 20, 3, 1, 1)) |
shape_out | x9.data.size()[2:4] |
x101 x102 x103 x104 |
F.avg_pool2d(x9, 32) F.avg_pool2d(x9, 16) F.avg_pool2d(x9, 8) F.avg_pool2d(x9, 4) |
x1010 x1020 x1030 x1040 |
self.upsample(self.relu(self.conv1010(x101)), size=shape_out) self.upsample(self.relu(self.conv1020(x102)), size=shape_out) self.upsample(self.relu(self.conv1030(x103)), size=shape_out) self.upsample(self.relu(self.conv1040(x104)), size=shape_out) |
dehaze | cat([x1010, x1020, x1030, x1040, x9], 1) |
dehaze | self.tanh(self.refine3(dehaze)) |
2.2 Atmospheric Light Estimation Network
本文中假定大气光是一个全局常数,即AAA是一个2D的图像,其中每一个像素A(z)A(z)A(z)有相同的值。该网络采用了8个块的U-net结构网络。下表是通过整理forward()函数得到的:
结果 | 操作 |
---|---|
out1 | self.layer1(x) |
out2 | self.layer2(out1) |
out3 | self.layer3(out2) |
out4 | self.layer4(out3) |
out5 | self.layer5(out4) |
out6 | self.layer6(out5) |
out7 | self.layer7(out6) |
out8 | self.layer8(out7) |
dout8 | self.dlayer8(out8) |
dout8_out7 | torch.cat([dout8, out7], 1) |
dout7 | self.dlayer7(dout8_out7) |
dout7_out6 | torch.cat([dout7, out6], 1) |
dout6 | self.dlayer6(dout7_out6) |
dout6_out5 | torch.cat([dout6, out5], 1) |
dout5 | self.dlayer5(dout6_out5) |
dout5_out4 | torch.cat([dout5, out4], 1) |
dout4 | self.dlayer4(dout5_out4) |
dout4_out3 | torch.cat([dout4, out3], 1) |
dout3 | self.dlayer3(dout4_out3) |
dout3_out2 | torch.cat([dout3, out2], 1) |
dout2 | self.dlayer2(dout3_out2) |
dout2_out1 | torch.cat([dout2, out1], 1) |
dout1 | self.dlayer1(dout2_out1) |
2.3 Joint Discriminator
用GtG_tGt和GdG_dGd分别表示网络生成的传输率图和去雾图。连结判别器的输入为cat([G_t, G_d], 1)。
3. 损失函数
3.1 GAN优化目标
该损失函数为常规GAN网络的优化目标。对于判别器,最大化该函数;对于生成器,最小化该函数。详情看GAN网络的优化函数。
minGt,GdmaxDjointEI∼pdata(I)[log(1−Djoint(Gt(I)))]+EI∼pdata(I)[log(1−Djoint(Gd(I)))]+Et,J∼pdata(t,J)[logDjoint(t,J))](1)\begin{aligned} \min _{G_{t}, G_{d}} \max _{D_{joint}}&\ \mathbb{E}_{I \sim p_{{data}}(I)}\left[\log \left(1-D_{joint}\left(G_{t}(I)\right)\right)\right]+\\ &\ \mathbb{E}_{I \sim p_{{data}}(I)}\left[\log \left(1-D_{joint}\left(G_{d}(I)\right)\right)\right]+\\ & \left. \mathbb{E}_{\left.t, J \sim p_{{data}}(t, J\right)}\left[\log D_{\text {joint}}(t, J)\right)\right] \end{aligned} \tag{1} Gt,GdminDjointmax EI∼pdata(I)[log(1−Djoint(Gt(I)))]+ EI∼pdata(I)[log(1−Djoint(Gd(I)))]+Et,J∼pdata(t,J)[logDjoint(t,J))](1)
这里应该是作者的失误。
3.2 边界感知损失
边界感知损失受如下两点观察的启发:1)边界通常和图像强度不连续相关联,因此可以通过图像梯度来特征化边界;2)神经网络浅层(最前面的几层)提取的特征图通常与边界和等高线有关,换句话说,深度神经网络的前几层可以作为边界检测器。
本文提出的边界感知损失结合了如下三部分:L2L2L2损失,两个方向的梯度损失以及特征边界损失,定义如下:
LE=λE,l2LE,l2+λE,gLE,g+λE,fLE,f(2)L^{E}=\lambda_{E, l_{2}} L_{E, l_{2}}+\lambda_{E, g} L_{E, g}+\lambda_{E, f} L_{E, f} \tag{2} LE=λE,l2LE,l2+λE,gLE,g+λE,fLE,f(2)
其中,LE,l2L_{E, l_{2}}LE,l2表示L2L2L2损失,LE,gL_{E, g}LE,g表示两个方向(水平和垂直)的梯度损失,LE,fL_{E, f}LE,f表示特征损失。λE,l2\lambda_{E,l_2}λE,l2,λE,g\lambda_{E,g}λE,g和λE,f\lambda_{E,f}λE,f表示对应的权重系数。
LE,l2L_{E, l_{2}}LE,l2定义如下:
LE,l2=∥Gt(I)−t∥22(3)L_{E, l_{2}} = \| G_t(I) - t \|_2^2 \tag{3} LE,l2=∥Gt(I)−t∥22(3)
LE,gL_{E, g}LE,g定义如下:
LE,g=∑w,h∥(Hx(Gt(I)))w,h−(Hx(t))w,h∥2+∥(Hy(Gt(I)))w,h−(Hy(t))w,h∥2(4)\begin{aligned} L_{E, g}=&\ \sum_{w, h}\left\|\left(H_{x}\left(G_{t}(I)\right)\right)_{w, h}-\left(H_{x}(t)\right)_{w, h}\right\|_{2} \\ &\ +\left\|\left(H_{y}\left(G_{t}(I)\right)\right)_{w, h}-\left(H_{y}(t)\right)_{w, h}\right\|_{2} \end{aligned} \tag{4} LE,g= w,h∑∥∥∥(Hx(Gt(I)))w,h−(Hx(t))w,h∥∥∥2 +∥∥∥(Hy(Gt(I)))w,h−(Hy(t))w,h∥∥∥2(4)
其中,HxH_xHx和HyH_yHy分别表示计算水平和竖直梯度的操作。w,hw, hw,h表示输出特征图的宽度和高度。
LE,fL_{E, f}LE,f定义如下:
LE,f=∑c1,w1,h1∥(V1(Gt(I)))c1,w1,h1−(V1(t))c1,w1,h1∥2+∑c2,w2,h2∥(V2(Gt(I)))c2,w2,h2−(V2(t))c2,w2,h2∥2(5)\begin{aligned} L_{E, f} &=\sum_{c_{1}, w_{1}, h_{1}}\left\|\left(V_{1}\left(G_{t}(I)\right)\right)_{c_{1}, w_{1}, h_{1}}-\left(V_{1}(t)\right)_{c_{1}, w_{1}, h_{1}}\right\|_{2} \\ &+\sum_{c_{2}, w_{2}, h_{2}}\left\|\left(V_{2}\left(G_{t}(I)\right)\right)_{c_{2}, w_{2}, h_{2}}-\left(V_{2}(t)\right)_{c_{2}, w_{2}, h_{2}}\right\|_{2} \end{aligned} \tag{5} LE,f=c1,w1,h1∑∥∥∥(V1(Gt(I)))c1,w1,h1−(V1(t))c1,w1,h1∥∥∥2+c2,w2,h2∑∥∥∥(V2(Gt(I)))c2,w2,h2−(V2(t))c2,w2,h2∥∥∥2(5)
V1V_1V1和V2V_2V2分别表示VGG-16中relu1_1和relu2_1层的边界提取器。c1,w2,h1c_1, w_2, h_1c1,w2,h1分别为对应特征图的通道数、宽和高。
3.3 总损失函数
DCPDN的总损失函数如下:
L=Lt+La+Ld+λjLj(6)L=L^{t}+L^{a}+L^{d}+\lambda_{j} L^{j} \tag{6} L=Lt+La+Ld+λjLj(6)
其中,LtL^tLt为LEL^ELE,表示传输率图的损失。LaL^aLa为大气光损失,使用L2L2L2损失。LdL^dLd为去雾结果损失,也是使用L2L2L2损失。LjL^jLj为判别器损失,定义如下:
Lj=−log(Djoint(Gt(I))−log(Djoint(Gd(I))(7)L^{j}=-\log \left(D_{ {joint}}\left(G_{t}(I)\right)-\log \left(D_{{joint}}\left(G_{d}(I)\right) \right.\right. \tag{7} Lj=−log(Djoint(Gt(I))−log(Djoint(Gd(I))(7)
最小化LjL^jLj,即最大化log(Djonit(Gt(I)))log(D_{jonit}(G_t(I)))log(Djonit(Gt(I))),表明要让判别器判别生成的传输率图是真实的(训练生成器)。同理后一项也是这么理解。
4. 读后感
网络很大,可以说是堆出来的性能。当时(2018)用GAN来去雾的文章可能比较少,所以当时来说应该是挺有创新的一篇文章。同时,本文提出的边界感知损失的思想还是值得学习的。
论文阅读:Densely Connected Pyramid Dehazing Network相关推荐
- 读Densely Connected Pyramid Dehazing Network
学习目标: Densely Connected Pyramid Dehazing Network 代码看完一部分 个人体会: 本文提出了AOD-Net,这是一种一体化的管道,可以通过端到端的CNN直接 ...
- Densely Connected Pyramid Dehazing Network(DCPDN)
简介: 本文提出了一种新的端到端单幅图像去雾方法--密连金字塔去雾网络(dcpdn) ,它可以将透射图.大气光和去雾三者结合起来共同学习.通过将大气散射模型直接嵌入到网络中,实现端到端的学习,从而确保 ...
- Densely Connected Pyramid Dehazing Network
Abstract 提出了一种新的端到端的单幅图像去雾方法,称为稠密连接金字塔去雾网络(DCPDN),该方法可以联合学习透射图.大气光照和去雾.通过将大气散射模型直接嵌入到网络中,实现了端到端的学习,从 ...
- 论文阅读:Multi-Scale Boosted Dehazing Network with Dense Feature Fusion
代码:https://github.com/BookerDeWitt/MSBDN-DFF 目录 1. 摘要 2. 提出的方法 2.1 Multi-Scale Boosted Dehazing Netw ...
- 论文阅读——Densely Connected Convolutional Networks
前言 之前有一段时间看了挺多深度学习方面的论文,但是由于时间方面的问题一直没来得及进行总结.最近一段时间突发奇想把自己看论文时的学习笔记给记录一下,由于之前没写过博文,所以排版可能会有点emmm... ...
- 文档级关系抽取:A Densely Connected Criss-Cross Attention Network for Document-level Relation Extraction
提示:文档级关系抽取相关论文 A Densely Connected Criss-Cross Attention Network for Document-level Relation Extract ...
- 论文阅读11——《Mutual Boost Network for Attributed Graph Clustering》
是聚类让我们"聚类",我整理了部分深度图聚类代码,希望大家多多支持(GitHub代码):A-Unified-Framework-for-Deep-Attribute-Graph-C ...
- 论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection
论文阅读:Saliency-Guided Region Proposal Network for CNN Based Object Detection (1)Author (2)Abstract (3 ...
- 【论文阅读笔记】Pyramid Scene Paring Networks
[论文阅读笔记]Pyramid Scene Paring Networks 阅读第一遍(2021.1.18) 提出的问题:当前基于FCN的模型的主要问题是缺乏合适的策略来利用全局场景类别线索 提出:金 ...
最新文章
- Linux查看用户所属用户组
- Linux实战教学笔记49:Zabbix监控平台3.2.4(一)搭建部署与概述
- 综合布线智能配线系统发展趋势
- 释放锁的逻辑-LockInternals.releaseLock
- 1、oracle数据库简介
- SharePoint2010开发最佳实践
- 更新显示当前歌曲的名称 winform 0130
- 最长回文子串——Manacher 算法​​​​​​​
- 用Diff和Patch工具维护源码
- android解析json数据 no value for message_Hive使用lateral view和explode处理嵌套json
- java cmyk和rgb的转换_CMYK和RGB怎么转换
- 计算机的软键盘在哪里,如何调出软键盘_怎么在电脑上调出软键盘_如何调出搜狗软键盘-Guide信息网...
- 获取行政边界经纬度数据
- 点击word页面自动弹出信息检索
- RHCE认证考试教材
- POS消费小票(签购单)上的“秘密”
- Vue突然报错 doesn‘t work properly without JavaScript enabled
- 【黑客攻防技术宝典】第4章 解析应用程序
- 我本以为你们会写简历
- org.apache.http.conn.HttpHostConnectException: Connect to sonatype-download.global.ssl.fastly.net:44