基于双块轻量级神经网络的无人机拍摄的风力涡轮机图像去雾方法
UAV-Taken Wind Turbine Image Dehazing With a Double-Patch Lightweight Neural Network
我是菜鸡!我是菜鸡!我是菜鸡!
如果老师及学姐学长对该文有任何意见,请您随时告诉我,我随时可以删除这篇文章(非常非常真诚)!
如果我有内容解释有误或不够清晰也请随时告诉我,我随时会对文章进行调整。
核心内容
-
双块网络结构DPLDN
-
去雾网络DehazeNet的设计
-
模糊图像重建公式推导部分
-
独特的损失设计
-
超分辨率重建模块
整体叙述
从代码来看,论文中包含两个独立的模型,分别为DPLPN和MPSRN,DPLPN使用了独特的损失设计(第四部分),MPSRN则使用了MSE损失。
如图所示,Part C即为双块网络结构DPLDN,在我们叙述的第一部分
而在DPLDN中使用的 Image Dehaze则为Part A中使用的去雾网络DehazeNet,在我们叙述的第二部分
Part B则叙述了去雾图像的具体推导原因及推导方法,在我们叙述的第三部分
Part D在是原文中的混合损失设计,图像中无体现,在我们叙述的第四部分
Part E是MPSRN模块,在我们叙述的第五部分
1. 双块网络结构DPLDN
这样设计的原因是目前大部分CNN的模型都会提取整幅图像的特征而导致忽略了图像的细节,采用多块的结构可以有效恢复图像细节。
具体实现:
将原始图像分割为两个部分并且分别输入到去雾网络中,生成对应部分的去雾图。然后再将拼接后的去雾图与原始图像相结合(加),再输入到去雾网络中,生成最终的去雾图像。
这部分直接看图片中的Part C很好理解
起源论文
按照论文中的叙述,这里的参考Fast deep multi-patch hierarchical network for
nonhomogeneous image dehazing(论文还没看)。可以横向对比下还有什么提取图像细节的高效的方法。
2. 去雾网络DehazeNet的设计
如PART A所示,DehazeNet包含七个卷积层和三个拼接层,且每个卷积层后都都连接着一个修正线性单元层。
易看出,七个卷积层中,共包含三个Dilated Conv 和四个 DSConv
这里只是简单叙述了一下这样设计的原因,想要进一步了解DXConv的话我们还是需要去补一下论文。
DSConv将常规卷积分解为两个部分,分别为一个通道级卷积和一个点位级卷积
self.depth_conv1 = nn.Conv2d(in_channels=3,out_channels=3,kernel_size=1,stride=1,padding=0,groups=3
)
self.point_conv1 = nn.Conv2d(in_channels=3,out_channels=3,kernel_size=1,stride=1,padding=0,groups=1
)
实际使用时类似下用例
out = self.depth_conv1(img)conv_layer1 = self.relu(self.point_conv1(out))
同时在DSconv1之后添加了三个具有不同感知场尺寸的扩张卷积层 Dilated Conv,同时这三个卷积层有着不同的膨胀因子,图像会先经过粗尺度网络再通过细尺度网络进行恢复。因此,恢复后的图像包含更多层次的特征信息。
因为使用卷积神经网络进行高层表征时,早期学习到的低层级语义会逐渐丢失。因此,后续卷积层会复用相邻卷积特征图之间的特征信息,从而充分利用各层提取的信息。这点从图中紧密的concat可以表现出来。
起源论文
按照文中叙述,文中的CNN结构受到了AOD-Net的影响。
DSConv在PSD提出。
多尺度特征融合的思路则是受Multi-Scale feature fusion的影响
文末有论文链接
-
AOD-Net: All-in-one dehazing network
-
PSD: Principled synthetic to-real dehazing guided by physical priors
-
Multi-Scale feature fusion: Learning better semantic segmentation for road pothole detection
3. 模糊图像重建公式推导部分
目前各类基于CNN的端到端去雾算法主要以ASM模型为基础进行去雾处理,其中ASM模型可以表示为
公式1 I(x) = J(x)t(x) + A(1-t(x))
其中I(x)表示含雾图像,J(x)是需要恢复的无雾图像,A为全局大气光,t(x)为透射图
由公式1易推得去雾图像的 计算公式2
J(x) = 1t(x)\dfrac{1}{t(x)}t(x)1 * I(x) - A * 1t(x)\dfrac{1}{t(x)}t(x)1 + A
此时考虑到可以用K(x)单一未知量来替代全局大气光A及透射图t(x)
所以变换数学方程后,可得公式3
K(x) = 1/t(x)∗(I(x)−A)+(A−bias)I(x)−1\dfrac{1/t(x)*(I(x)-A) + (A - bias)}{I(x)-1}I(x)−11/t(x)∗(I(x)−A)+(A−bias)
故公式4可以表示为
J(x) = K(x) * I(x) - k(X) + bias
通过一连串的数学方程推导后,原公式被转化为仅包含单一未知量的K(x),优化了计算过程,同时bias为默认常数1
但是具体过程我们需要再看一下演变的论文,譬如K(x)变换的想法以及bias为常数1的原因,待后续看起源论文后补充
起源论文
这一部分详细了解的话需要看一下ASM的演变过程,文中提供了参考的论文,详细研究的话需要再看一下如下论文
[Unsupervised single image dehazing using dark channel prior loss]
[Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks]
4. 损失值的设计
采用了复合损失函数,该函数包含图像重建损失、图像结构损失和图像边缘损失
L = λ1LSmooth L1 + λ2Ls + λ2Le
图像重建损失
其中的LSmooth L1表示为
其中IK表示去雾图像中第k个颜色通道的像素p的强度,JK表示清晰图像中对应的值。
为了避免陷入局部最优解,最终设计为
图像结构损失
在公式(5)中,Ls用于使图像的视觉效果更符合人眼的主观视觉感知。它通过峰值信噪比(PSNR)来反映生成图像与标准清晰图像之间的结构相似性(SSIM)。该损失函数Ls可表示如下:
图像边缘损失
考虑到图像边缘主要由亮度显著变化的像素构成,因此选用交叉熵损失函数来计算边缘损失
其中其中,SI(x,y)表示从去雾图像中提取的边缘图像,SJ(x,y)表示从对应的无雾图像中提取的边缘图像。
起源论文
-
MSE改进 Image quality assessment: from error visibility to structural similarity
-
峰值信噪比(PSNR)
Loss functions for image restoration with neural networks,
超分辨率重建模块
在大部分去雾算法中,处理后的图像细节和边缘信息仍然不够清晰,有必要对图像细节进行增强。所以MPSRN网络被提出。
MPSRN是一个独立的模型,按我的理解是在DPLPN之后,再对于产出的图像进行二次处理,所用的损失按照代码看是MSE损失。
MPSRN的结构类似于DPLDN,主要可以参考Part E中的右半部分进行理解。
如PART E部分所示。从底层到顶层,各层级分别包含1、2和4个块。首先处理底层的四个块生成对应特征图,将底层输出的两个图像进行融合。随后与第二层块融合后输入模型处理,将处理后的图像拼接成完整地图。最后将该地图传递至顶层与原始图像融合,最终获得高分辨率图像。(论文讲的很清晰)
其中使用的超分辨率重建模型SRN则指Part E的左半部分,共包含3个卷积,第一个采用9×9的卷积核尺寸提取低分辨率图像特征。第二个卷积层负责实现低分辨率特征与高分辨率特征之间的非线性映射;第三个卷积层则使用5×5核尺寸进行高分辨率特征重建。(这里说实在我了解的不清晰,只知道这样做了,不知道为什么这么做)
后记
这是我们对于整篇论文及代码进行的最初的解析,剩下的半个月会进入摆烂研究阶段,陆续有对相应的参考论文有看的话再对本文进行调整。
同时,本文综合到的各类知识点较多较杂,很多知识点我之前都没有接触过,如果有分析有误请您随时指出,我随时修改。
对于文中后续的计算实验仅进行了粗读,后续有时间的话我会再补上,可能也会导致我对模型分析有误。
相关参考
- 官方开源代码(里面只看到了SRCNN没有看到MPSRN,但看结构很接近)
待阅读论文
- 该论文的后半部分还需精度,比较下实验内容。
- 多块结构网络论文Fast Deep Multi-patch Hierarchical Network for Nonhomogeneous Image Dehazing
- 本文dehazenet的网络参考AOD-Net: All-in-One Dehazing Network
- DSConv的网络参考PSD: Principled Synthetic-to-Real Dehazing Guided by Physical Priors
- 多尺度特征融合Multi-Scale feature fusion: Learning better semantic segmentation for road pothole detection
- ASM模型推演相关论文Unsupervised Single Image Dehazing Using Dark Channel Prior Loss
- ASM模型推演相关论文Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
- MSE改进论文Image quality assessment: from error visibility to structural similarity
- PSNR峰值信噪比论文Loss functions for image restoration with neural networks