论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》

简介

本文提出了一种使用生成对抗网络(GAN)来改善水下视觉场景质量的方法,其目的是在自治管道的下游进一步改善对视觉驱动行为的输入。此外,我们展示了最近提出的方法如何能够生成用于此类水下图像恢复的数据集。对于任何视觉引导的水下机器人,这种改进都可以通过强大的视觉感知来提高安全性和可靠性。

1 解决问题

本文提出了一种基于生成对抗网络(GANs)的技术来提高水下视觉场景的质量,目的是提高自主水下机器人的视觉驱动行为的性能。使用最近提出的CycleGAN [35]方法,该方法学习将图像从任何任意域X转换为另一个没有图像对的任意域Y,作为生成配对数据集的一种方法。通过让X为一组未变形的水下图像,而让Y为一组变形的水下图像,我们可以生成看起来像是水下的图像,同时保留地面真实性。

2 水下图像增强的最大问题和loss函数

图像对不足是最大的问题:
论文使用CycleGAN从IC生成ID,从而提供了成对的图像数据集。 CycleGAN可以使用不成对的数据集进行训练进行图像的域的转换。这样就可以解决图像的成对数据不足的问题。但是相对清晰的水下图像还是很难找。
给定两个数据集X和Y,其中IC∈X和ID∈Y,CycleGAN学习映射F:X→Y。从这个配对的数据集中,训练生成器G来学习函数f:ID→IC。在CycleGAN的训练过程中,它同时学习映射G:Y→X
。这个cycleGan的反向学习最后被论文作者用来了对比
下面是cycle的示图:
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》原本cycleGan的损失函数:
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
但是在这里,直接使用本公式会产生gan网络模式崩溃的问题, 所以作者在这里找到了更加适合水下图像的损失函数
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
同时因为水下图像增强的后一个阶段是生物识别等功能的增强,所以作者在这里考虑了L1loss
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
然后,在这里,作者提供了最终的loss函数形式:
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
作者为了增强预测的视觉效果,又增加了相邻像素之间的相关性,公式如下:
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
所以,作者另一个loss总公式为:
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》

3 网络结构:

使用的cycle的网络结构:
生成器由编码器,转换器,解码器组成
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
编码:第一步利用卷积神经网络从输入图象中提取特征。将图像压缩成256个64*64的特征向量。
转换:通过组合图像的不相近特征,将图像在DA域中的特征向量转换为DB域中的特征向量。作者使用了6层Reset模块,每个Reset模块是一个由两个卷积层构成的神经网络层,能够达到在转换时同时保留原始图像特征的目标。
解码:利用反卷积层(decovolution)完成从特征向量中还原出低级特征的工作,最后得到生成图像。

鉴别器
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
鉴别器本身属于卷积网络,需要从图像中提取特征,再通过添加产生一维输出的卷积层来确定提取的特征是否属于特定类别。
作者使用Ugan网络:
生成器Unet:
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
unet网络可以简单看为先下采样,经过不同程度的卷积,学习了深层次的特征,在经过上采样回复为原图大小,上采样用反卷积实现。最后输出类别数量的特征图,如分割是两类(是或不是),典型unet也是输出两张图,最后要说明一下,原网络到此就结束了,其实在最后还要使用**函数softmax将这两个类别转换为概率图,针对某个像素点,如输出是[0.1,0.9],则判定这个像素点是第二类的概率更大。
网络结构可以看成3个部分:
·下采样:网络的红色箭头部分,池化实现
·上采样:网络的绿色箭头部分,反卷积实现
·最后层的softmax:在网络结构中,最后输出两张fiture maps后,其实在最后还要做一次softmax,将其转换为概率图。
但是作者的UGAN的kernalsize是4x4,步长是2.encoder部分的网络层都会跟在一个batch normalization和一个斜率为0.2的**函数leakyRELU后面。Decoder部分则是跟在**函数RELU后,没有BatchNormalization。最后一层的**函数用的是tanh。判别部分的网络用了一个叫patchgan的设计,大意就是判别网络输出的是一个32x32x1的特征矩阵,不是0或者1,这样可以获得更多的细节信息。

4实验结果

论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
主观图效果爆炸
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
边缘信息未丢失
表一是上面图像从上到下的图4的测量值以及整个FlickrTM数据集的平均值。
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
表2是梯度损失来自文献 5中的GDL
论文解读《Enhancing Underwater Imagery using Generative Adversarial Networks》
最后与实际图像相比,MDPM跟踪器在生成的图像上的性能有所提高。由于可见度低,水下图像通常无法捕获前景和背景之间强度值的真实对比度。生成的图像似乎在某种程度上恢复了这些侵蚀的强度变化,从而导致MDPM跟踪器的阳性检测大大改善(正确检测增加了350%)。