域适应加雾代码:通过《bringing old photos back to life 》

目录

        我想说的一些话:

摘要

引言

1相关工作

1.1大气散射模型

 1.2图像加雾

1.2.1基于传统方法的雾图合成

1.2.2基于深度学习的雾图合成

1.2.3图像处理软件加雾

2.方法

2.1图像到图像的翻译

2.2变分自编码器

2.3 域适应雾图合成

3.实验

4结论

附录:开源代码和姊妹文章(去雾)


我想说的一些话:

在研究去雾的过程中,发现数据集问题是一个比较棘手的问题,于是顺手做了一下数据加雾的任务,思路很简单,把去雾的输入输出反过来训练,一般的模型都可以做到加雾任务,有时改动极少的一些中间代码即可。我将其总结之后视作水文进行了发表,由于操之过急且未重视,文章中难免有些错误,如公式序号、画图粗糙等问题,但是无伤大雅,希望能给大家带来一些思路或者灵感。

代码我放在百度云中,论文的部分核心中文版我放在此博客中,英文发表的全文我放在百度云中。其中一些含有公式等,为了节省时间,我进行截图替代,造成不便多多谅解!中文版为较早写的草稿,以英文版为准。见附录

下面开始正文。



摘要

数据集问题一直以来制约着深度学习去雾的发展,因为受到环境和设备等因素,有雾和无雾的图像对极难获得。为缓解该问题,本文提出一种新的基于域适应的雾霾场景生成算法,利用变分自编码器将合成雾图对和真实雾图编码到潜空间,合成雾图直接指导模型学习清晰图像到有雾图像的转换,真实雾图则通过对抗损失用于校正模型的编码潜空间,尽可能使解码出的雾图接近真实雾图。通过对模型的加雾结果与加雾软件、传统通过大气模型等方式进行对比,本文生成的雾图更加逼真;使用传统方法对合成雾图进行去雾,SSIM和PSNR均有所提升,说明生成雾图的合理性;通过一些无参照雾浓度评测算法也证明本文加雾结果的有效性。

引言

去雾一直以来是计算机视觉中的重要任务,但是人们通常只关注如何去雾,而很少关注如何合成雾和如何合成更真实的雾。这在深度学习快速发展的今天更加重要,拥有大量高质量的数据能够使模型表现更好,然而深度学习去雾中数据集大多是人工合成的。这些合成的数据集不能完全模拟出真实世界中的雾,因此,使用此类数据集的深度学去雾模型难以在真实雾图上表现良好。 目前,雾图合成主要有两种方法。一是基于大气模型[9,10]合成,首先测量或者估计出图像对应的深度图,利用大气模型合成雾图[27,29]。由于深度图难免存在误差,且大气模型难以完全模拟真实环境,因此合成的雾图有一定的缺陷。二是基于深度学习的加雾算法,利用成对数据训练模型,可实现端到端的合成雾图。由于基于深度学习的方法同样需要训练数据,因此合成的雾图和真实雾图也有一定的偏差。三是一些其他的方法,如软件合成,渲染等。 为缓解以上问题,本文提出域适应雾图合成算法。该算法基于变分自编码器和生成对抗网络,通过生成对抗损失将合成雾图向真实雾图进行域适应,从而以端到端的方式生成更加逼真的雾图。 本文的主要贡献包括以下方面: (1)提出一种新的域适应雾图合成算法,产生较为真实的雾图 (2)提出使用生成对抗损失将合成雾图域向真实雾图特征进行域适应。

1相关工作

1.1大气散射模型

域适应加雾代码:通过《bringing old photos back to life 》_第1张图片

 1.2图像加雾

1.2.1基于传统方法的雾图合成

传统方法的雾图合成,主要通过公式(1)和公式(3),加雾流程如图(3)所示。室内雾图合成可用的数据集有Middlebury Stereo[36-40]、NYUv2数据集等,后者源数据是通过Microsoft Kinect获取的,经过对深度缺失值的填充以及标记等后处理的图片有1499张,通常这些数据可以用来进行深度估计、语义分割等任务。室外雾图合成可用的数据有HAZERD数据集,以及Cityscapes[41]、KITTI [ 42]

域适应加雾代码:通过《bringing old photos back to life 》_第2张图片

Fig . 3 Haze image generation based on traditional method.

3 基于传统方法的雾图生成

基于传统方式的雾图生成,通过读取深度图和原始清晰图像在线合成雾化图像.

1.2.2基于深度学习的雾图合成

生成对抗网络GAN [18]在提出后,受到广泛的关注,并可用来进行雾图合成。经典的图像翻译模型pix2pix[1]模型由多分辨率生成器,多尺度判别器构成:判别器能够对生成结果进行多尺度判别,判别器使用Patch GAN结构,最终结果为其输出的判别矩阵的平均,生成器的基础结构则是U-Net[21],能够生成高分辨率和清晰的结果;但是该方法是监督学习,若用来进行加雾,则能利用的数据就是人工合成的雾图对,其训练出来的结果和真实雾图也会有一定的差异. 著名的非监督图像转换方法Cycle-GAN[4]经提出后,为不成对数据训练提供了一个有效的损失函数循环一致性损失,通过该损失,可以利用真实雾图进行加雾, 利用GAN加雾的算法通常增加额外损失[1, 23,25,26] , 增加了需要调节的超参数和训练的难度.另外GAN模型通常需要更多的数据进行训练,数据的质量对模型的训练效果有很大影响. 无监督方式主要利用循环一致性损失,无绝对映射的训练方式会使产生的结果出现非期望转换风格,有监督加雾模型又陷入雾图对的问题,利用合成雾图会导致加雾结果不真实。

1.2.3图像处理软件加雾

Adobe lightroom 中含有一个去朦胧功能,可以将图片清晰化,当将其值调为负时,则会产生雾的效果。本文中通过此软件的去朦胧功能对图片进行加雾,用于对照实验.

2.方法

2.1图像到图像的翻译

图像到图像的翻译[1,2]是指通过学习将图像从一个域映射到另一个域. 监督学习的图像翻译需要成对数据集,对应的图像翻译算法有pix2pix[1]模型,pix2pixHD[2]模型等.非监督学习的图像翻译[3,4]不需要成对数据集,数据的收集变得简单。 图像翻译需要学习不同域图像的联合分布.在无监督环境中,数据由来自两个不同域中的两个边缘分布组成,从边缘分布推断联合分布是一个高度不适定问题,需要在联合分布的基础上加入额外的假设,如共享潜空间假设[3]、循环一致性损失[4]等. 如文献[4]中提出的Cycle- GAN模型,解决了数据不匹配问题,文献[3]中提出了基于生成对抗网络和变分自编码器的UNIT框架,从共享潜空间角度对每个域使用VAE-GAN进行建模,进行两域之间样本的学习.

2.2变分自编码器

变分自编码器(VAE)从变分和贝叶斯理论出发,期望编码向量的后验分布尽量接近多元正态分布,本质是在常规自编码器的基础上,对编码的结果加上了“高斯噪声”,使得解码器能够对噪声有鲁棒性,利于解码结果多样化;同时,使用KL散度损失约束编码结果的分布靠近正态分布,相当于对编码器施加正则项,如图所示2. 图像重建时,从潜空间进行采样操作不可导,无法进行梯度下降.假设数据映射到多元正态分布 ,

域适应加雾代码:通过《bringing old photos back to life 》_第3张图片

域适应加雾代码:通过《bringing old photos back to life 》_第4张图片

Fig4. Hybrid samples learning network structure diagram based on latent space translation.

 4基于潜空间翻译的混合样本学习网络结构图

2.3 域适应雾图合成

域适应加雾代码:通过《bringing old photos back to life 》_第5张图片

域适应加雾代码:通过《bringing old photos back to life 》_第6张图片

域适应加雾代码:通过《bringing old photos back to life 》_第7张图片

域适应加雾代码:通过《bringing old photos back to life 》_第8张图片

3.实验

一些结果如下图所示

域适应加雾代码:通过《bringing old photos back to life 》_第9张图片

  5 Adobe lightroom和我们的方法与SOTS测试集中部分数据的的定性比较

      

域适应加雾代码:通过《bringing old photos back to life 》_第10张图片

 域适应加雾代码:通过《bringing old photos back to life 》_第11张图片

 图8 我们的方法加不同浓度雾的结果,通过对重复使用本文方法进行加雾

4结论

本文通过一种域适应学习问题,给出了一种基于潜空间翻译的混合样本学习算法,并将其用于图像加雾,验证了该算法的有效性.

更新(使用方法,和云盘中加入权重,和压缩包):

域适应加雾代码:通过《bringing old photos back to life 》_第12张图片

依赖库:

一般情况下直接安装如图所示即可。

域适应加雾代码:通过《bringing old photos back to life 》_第13张图片

 

附录:开源代码和姊妹文章(去雾)


代码:

链接: https://pan.baidu.com/s/1ruZeQhuxLBBoMza2FNsmxg 提取码: uxmn 复制这段内容后打开百度网盘手机App,操作更方便哦

对应的英文论文:

链接: https://pan.baidu.com/s/1BNHKhHDxbhWm4of4tygZxA 提取码: q278 复制这段内容后打开百度网盘手机App,操作更方便哦

姊妹博客:

图像去雾,利用《bringing old photos back to life》 的开源代码_Alocus的博客-CSDN博客

图像去雾,利用《bringing old photos back to life》 训练并修改_Alocus的博客-CSDN博客

完善后的根据深度图加雾代码Python_Alocus的博客-CSDN博客

你可能感兴趣的:(计算机视觉,#,图像去雾加雾,计算机视觉,人工智能)