论文:Multi-scale adversarial network for underwater image restoration
作者:Jingyu Lu
年份:2018
期刊:Optics and Laser Technology
本文提出一种基于CycleGAN和多尺度SSIM损失的新方法,用于水下图像恢复。其中,多尺度循环生成对抗网络(MCycle GAN)系统将水下样式的图像转换为恢复的样式。包括一个结构相似性指标度量损失(SSIM损失),它可以提供更大的灵活性来对细节结构进行建模,从而改善图像恢复性能。使用暗通道先验(DCP)算法获取图像的透射图,并设计自适应SSIM损失改善水下图像质量。将此信息输入到网络中,以便对图像进行多尺度计算,从而实现了DCP算法和周期一致对抗网络(CycleGAN)的结合。
在处理水下图像时,带有SSIM小窗口的CycleGAN在增强水下水下图像质量时效果很好,但靠近透镜的珊瑚礁过度锐化,而带有SSIM大窗口的相反。(即较小的滑动窗口适合图像中的远景,较大的滑动窗口适合于近景)
由于不同场景和相机镜头之间的距离不同,水下图像中场景的清晰度也不同。该因素可能导致图像恢复后的清晰度不均匀。因此使用DCP获取水下图像的深度信息,以建立自适应图像恢复过程。然后,将深度信息放入网络中,作为多尺度计算的指导。改进了周期一致对抗网络(CycleGAN),该网络可以将图像从样式转换为目标样式,以提供更灵活的模型来还原水下图像。本文不仅关注图像恢复的性能,还关注生成图像与原始图像之间内容和结构的一致性。
(1)提出将DCP和CycleGAN相结合的自适应水下图像恢复系统。
(2)提供一种多尺度结构相似性指标度量损耗,提高图像恢复性能,使输入和输出之间的内容和结构相似。
(3)开发了用于水下图像恢复的端到端系统,使整个处理过程更加简单方便。
网络具有三项:对抗性损失,周期一致性损失和多尺度SSIM损失。
(1)使用DCP来获得浑浊的水下图像X的透射图(t包含图像的深度信息)
(2)通过分析透射图的灰度值,设置两个阈值并获得三个二进制滤波器(滤波器用于对每个图像的块进行多尺度计算)。
(3)将带有三个滤波器的图像X放入网络,然后分开。X进入生成器G进行训练,并且使用相应的滤波器来计算Multi-Scale SSIM损失。
(4)将X和生成的清晰图像 Y分为三个通道:R,G和B,并在每个通道中执行相同的操作。以R为例,使用三种不同大小的滑动窗口来计算X和 Y之间的SSIM损失,然后可以获得三个SSIM映射。将这三个SSIM映射乘以相应的缩放滤波器并相加,获得多尺度SSIM映射用于计算损失。
(5)将 Y和真实的清晰水下图像Y放入判别器网络DY中,通过生成器F, Y可以回到X。生成器和判别器基于CycleGAN。
(6)对于生成网络,为256256个训练图像使用9个块。对于判别器,使用7070个PatchGAN 来对图像块的真假进行分类。还用最小二乘损失代替了对数似然负目标,在训练过程中更稳定且产生更高质量的结果
计算t
根据水下图像的深度信息,使用不同的滑动窗口来计算图像的不同块中的SSIM损失。透射图:
D:场景深度,b:大气的散射系数。因此,透射图包含图像的深度信息。
水下图像的深度信息:距离摄像机较远或较模糊的部分场景较暗,而较近或较清晰的部分较亮。
(1)通过观察训练数据集的透射图的灰度值范围,将0和255的两个阈值分别设置为50和140,以将图像分为三部分,分别代表图像的远,中和近深度信息。
(2)基于这三个部分获得三个过滤器。如果透射图中像素的灰度值不满足阈值条件,则将相应滤波器的像素灰度值设置为0,否则设置为255。因此,这三个滤波器对应于多尺度SSIM损失的较小,中等和较大的滑动窗口。
(3)使用三个二进制滤波器来完成每个图像的多尺度SSIM损耗计算。
设置参数是1、1和1,(由训练数据集上的大量实验确定)(李等人设置1,1,SSIM损失的比率系数为10)。其中:
训练G最小化这个目标,同时训练D以最大程度地实现这一目标。对抗训练可以学习映射G和F,它们分别产生与目标域Y和X相同分布的输出(严格来说,要求G和F是随机函数)。 循环一致性损失限制了可能的映射函数的空间。循环一致性损失(对于来自域X的每个图像,生成器G获得图像y ^,生成器F将y 带回到原始图像 x):
优:增强变换的约束,避免GAN中模式崩溃的问题。
自然图像具有高度结构化且水下图像的像素与还原后的像素之间具有很强的相关性。尤其是在空间相似的情况下,这些关联会携带有关视觉场景中对象结构的重要信息。
(1)本文选择三个不同的滑动窗口分别为5 5、13 13和26 26来计算SSIM损失。
(2)SSIM损失计算仅针对灰度图像,将彩色图像分为R,G和B三个通道分别进行计算。
(3)将三个通道的SSIM值平均后得到图像的SSIM值。多尺度SSIM损失定义如下:
n:scale数量,p:图像块的中心像素,P:图像中的像素数。 多尺度SSIM定义如下:
Bn:scale n的系数(可根据需要选择值,本文设置1)。SSIMn(p):通过不同的滑动窗口计算每个块的结果然后乘以相应的滤波器。 SSIMn(p)表示如下:
X:属于X的图像块,y ^:属于G(X)的图像块,X,y ^有相同的尺寸:55、1313,26*26,μx:x的平均值,rx是 x的标准偏差,rxy ^:x和y ^的协方差,C1值为0.02,C2值为0.03。 结果,输入图像的像素可以与转换后的图像连接起来。
用最小二乘损失代替负对数似然目标: