论文学习:Stacked conditional generative adversarial networks for jointly learning shadow detection...

CVPR2018:Stacked conditional generative adversarial networks for jointly learning shadow detection and shadow removal

用于联合学习阴影检测与消除的叠加条件生成对抗网络

(参考了我们专业老师给的一些资料)

一、文章总体思路
在这篇论文中,作者提出了一个多任务视角,它与现有方法都不同,它是以端到端方式共同学习检测和消除,目的是共同利用彼此改进的优点。该框架是基于一种新的“堆叠条件生成对抗网络(ST-CGAN)”,该网络由两个堆叠的条件生成对抗网络(CGANs)组成,每个都有一个生成器和一个鉴别器。
具体地说,将阴影图像输入产生阴影检测掩模的第一生成器。该阴影图像,与它所预测的掩模组合起来一起通过第二个生成器,以恢复其无阴影图像。此外,通过消除阴影,两个对应的鉴别器可以为检测到的阴影区域做出具有更高层次关系和全局场景特征的建模。
在这里插入图片描述
端到端的方式:
端到端学习是一种解决问题的思路,与之对应的是多步骤解决问题,也就是将一个问题拆分为多个步骤分步解决,而端到端是由输入端的数据直接得到输出端的结果。但是一般情况下,更常见的是介于两者之间的解决思路,先把任务拆解为简单的两步解决。例如人脸识别门禁系统,不是由检测到的图片直接得到结果(识别出该员工的id) ,而是第一步将检测到的图片中的人脸部分放大居中,第二步通过识别得到该员工的id。
简单来说就是跳过预处理和特征处理,输入原始数据得到最终结果。

完整流程

这是完整架构图。它由两个堆叠的CGANs组成:一个用于阴影检测,另一个用于阴影消除,它们使用了不同的颜色标记。中间输出被组合一起作为后续组件的输入。

二、
其中作者提出的值得注意的一点:检测中的阴影掩模和去除阴影中的无阴影图像这两个对象,本质上有一个共同的基本特征。如图1所示,阴影掩模是一个二值映射,它将原始图像分割成两种类型的区域,即阴影和非阴影。同时,阴影去除主要关注的是阴影区域,需要发现两个区域之间的语义关系,这表明两个任务之间存在很强的相关性和可能的互惠关系。
这是现有研究方法中所不具备的,所以作者提出了上述框架。通过生成器与鉴别器之间的对抗关系,并从全局角度出发,充分利用两者间的优势点进行相互促进,以此达到最终目的。

三、数据集
数据集使用的是ISTD(Dataset with Image Shadow Triplets ),是作者团队构建的数据集,它包含了1870幅135个不清晰场景下的三联图像,其中1330幅用于训练,540幅用于测试。点击此处下载
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.提出的方法
4.1
在本节中,首先描述具有损失函数的公式,培训过程,然后呈现ST-CGAN的网络细节。
生成式对抗网络(GANs)包括两个玩家:一个生成器G和一个判别器D。生成器G的目的是在给定输入z的情况下产生逼真的图像,该输入从特定的噪声分布中采样。如果给定图像是由G生成的,则判别器D被强制分类,或者它确实是来自数据集的真实图像。因此,对抗性竞争逐渐促进彼此之间,同时使得G代很难让D与真实数据不同。条件生成对抗网络(CGAN)通过向生成器G和鉴别器D引入条件变量来扩展GAN。我们的ST-CGAN由两个条件GAN组成,其中第二个堆叠在第一个上。对于图2中ST-CGAN的第一个CGAN,生成器G1和鉴别器D1都以输入RGB阴影图像x为条件。训练G 1以输出相应的阴影掩模G1(z, x) ,其中z是随机采样的噪声矢量。我们将x的阴影掩模的基本事实表示为y,其中G1 (z, x) 应该接近。 因此,G1需要对数据集的分布pdata (x, y)进行建模。
CGAN的第一个目标函数:
在这里插入图片描述
消去z后化简为
在这里插入图片描述
除了对抗性损失外,还采用了经典的数据损失,促进对目标进行直接而准确的回归。
在这里插入图片描述
在图2的第二个CGAN中,通过应用上面类似的公式,我们有:
在这里插入图片描述
其中r是x对应的无阴影图,G2将x和G1(x)结合起来作为输入,而D2需要以x为控制变量,在真实的影像对中对G1、G2的输出的组合做出辨别,至此,可以得到联合学习任务的总体目标,这个任务可用来解决极小化极大问题,优化目的在于找到鞍点:
在这里插入图片描述
它可视为两个玩家的零和游戏。第一个玩家是包含着两个生成器的队伍,第二个玩家是由两个鉴别器组成的队伍。为了打败第二个玩家,第一个队伍的成员被激励着去制造与对应真实图像相近的输出。

4.2网络架构与训练细节
生成器。生成器的灵感来自U-Net 架构,它最初是为生物医学图像分割设计的。该体系结构包括捕获上下文的收缩路径和支持精确定位的对称扩展路径。
鉴别器。对于D1,它接收一对图像作为输入,这对图像由原始RGB场景图像和生成4通道特征图的阴影蒙版图像组成作为输入。D2的通道维度增加到7,因为它接受了一个额外的无阴影图像。
训练设置。代码是基于pytorch的。 我们用Adam求解器训练ST-CGAN,并应用交替梯度更新方案。首先采用梯度上升的步骤对D1、D2的G1、G2进行固定更新。然后我们应用梯度下降步骤更新G1, G2,固定D1,D2。

五、结果
量化比较:
在这里插入图片描述
在这里插入图片描述
可以看到STCGAN取得了不错的效果

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页