1. 论文与代码
论文下载地址:Deep Adversarial Decomposition: A Unified Framework for Separating Superimposed Images
2. 论文核心思想
作者提出了一个统一的框架,用来分离图片。作者提出crossroad L1损失函数,该损失函数能计算无序输出图片的距离和他们的相关性,所以能很好的监督每个像素的训练。
该框架在除雨、除阴影、除反光方面也取得了很好的效果。
为什么该算法能在除雨、除阴影、除反光方面也取得了很好的效果?博主认为下雨场景其实就是图片的高频噪声和原始图片的叠加,阴影图片就是阴影和原始图片的叠加,其他的类似,所以本质上是一个问题。效果图如下:
算法的总体框架如下:
作者的方法包括一个生成模型G和3个判别模型(Dc, Dm1, Dm2)。混合的图片经过生成模型G生成x1和x2, 通过作者提出的Crossroad L1 loss计算与真实x1、x2之间的损失。后面接着三个判别模型,利用GANLoss对生成的图片进行监督。
Dm1、Dm2说明:不同于直接判断图片是否是真实的,PatchGAN会分别判断N x N个patch是否为真,然后求平均值输出。
3. 损失函数说明
crossroad L1损失函数:由于分离图片的顺序不太清楚,所以采用crossroad L1作为损失函数:即交叉求最小值。图像之间使用L1损失函数,公式表达如下:
总体损失函数:包括生成模型的损失函数和三个判别模型的损失函数,判别模型的损失函数前添加了系数来均衡整个损失函数,公式表达如下:
4. 实验效果
(1) 图像分离效果:
(2) 除雨效果:
(3) 除反光效果:
(4) 除阴影效果:
我的论文阅读笔记pdf:Deep_Adversarial_Decomposition-深度学习文档类资源-CSDN下载
点评:这是2020的一篇CVPR,整体思路比较简单,统一的多个任务的框架并达到很好的效果,给作者点赞。另外,博主仔细阅读了作者开源的代码,代码风格很好,通俗易懂,值得学习。