论文阅读笔记《Stereo Matching Using Conditional Adversarial Networks》

0. 摘要

  近期,对抗神经网络由于其在生产任务中颇具前景的表现而受到了越来越多的关注。在这篇文章中,我们首次将条件对抗神经网络应用于立体匹配任务。我们的方法是将条件对抗训练方法作用在两个网络上:一个生成器,从一对RGB图像中生成视差图;另一个是区分器,区分视差图是来自于真实视差图还是生成器。生成器和区分器都把相同的RGB图像作为输入条件。在条件对抗训练过程中,我们的区分器通常捕捉高层次的环境特征来检测真实视差图和生成的视差图之间的不一致之处。这些高层次的环境特征包含在损失函数中,用于进一步帮助生成器来正确预测视差图,我们在Scene Flow数据集上评估了我们的网络。

1.介绍

  在这篇文章中,与利用CRF或者置信度图来获取高层次环境信息的方法不同,我们探索一种基于条件对抗神经网络的新方法。
  对于对抗生成网络(GANs),核心的模块在于区分器,其能够区分一个样本是来自真实值还是生成器。在对抗训练过程中,区分器能够指引生成器的输出,因为它可以捕捉真实值中高层次的环境信息。这启发了我们利用对抗过程来训练立体匹配网络。在我们的条件对抗框架中,生成器和区分器都是将相同的RGB图像对作为输入条件。基于CRF或置信度的模型,他们在解决立体匹配任务时将其分为两步——视差预测和视差优化。而我们的模型与他们不同,我们把立体匹配任务看作一个完整的过程。
  事实上,条件对抗生成网络在图像转化问题中已经被证明能生成很有前景的结果。这些图像转化问题包括图形任务,例如利用标签图来合成图片,或者视觉任务,例如语义分割。然而这些矿建还不能直接应用于立体匹配任务。
  我们的贡献如下:

  1. 我们首次将条件对抗神经网络应用于立体匹配任务
  2. 相对于最近的pix2pix方法,我们在Scene Flow数据集上取得了很大的改进

2.条件对抗神经网络应用于立体匹配

2.1对抗训练框架

  原始的GANs通过给生成器和区分器输入额外的信息作为补充输入,能够直接拓展为条件对抗生成网络(cGANs)。因此cGAN的损失函数由生成器G和区分器D两部分组成。

LcGAN(G,D)=Expdata(x)[logD(xy)]+Ezpz(z)[log(1D(G(zy)))]

式中:x表示真实值,z是随机噪声,y代表额外输入条件。在我们网络中,x代表真实视差图,y代表一对RGB图像。在对抗训练过程中,G试图最小化目标函数,而D是让他最大化。
G=argminGmaxDLcGAN(G,D)

  我们通过优化一个混合损失函数来训练生成器,它和。是两个损失项的加权。第一个损失项是传统的L1损失函数,其可以有效地捕捉低层次信息,比如像素强度。第二个损失项是对抗损失项,它被用来捕捉高层次地全局环境信息。因此,我们最终的损失函数如下:
G=argminGmaxDLcGAN(G,D)+λLL1(G)

式中:λ是用于平衡L1损失项和对抗损失项的超参数。当区分器检测到是生成的视差图时对抗损失会变大,这能够引导生成器的输出更加接近真实值。

2.2 网络结构

论文阅读笔记《Stereo Matching Using Conditional Adversarial Networks》
图1.本文方法的概观
  我们网络结构的概观如图1所示。在区分器的引导下,生成器试图产生视差图使其不能被区分器在对抗训练过程中识别出来。
论文阅读笔记《Stereo Matching Using Conditional Adversarial Networks》
图2.网络结构
  生成网络生成器的结构如图2(a)所示。左右RGB图像首先通过一个Siamese网络。我们选择Siamese网络有两个原因。第一,在融合来自左右RGB图像的信息之前,我们希望提取更有力的特征来代替原始的像素。第二,Siamese网络的两个分支分享完全相同的CNN结构和权重,这也考虑到了左右图之间的相似性。Siamese网络的两个分支包括六个“卷积(Conv)-批规范化(BN)-非线性处理(ReLU)”模块,他们是按照以下规则构成的:每个卷积层后面都跟着一个批规范化层和一个矫正的非线性层。所有卷积层的卷积核大小都是3,每一层的输出数目分别是64,128,128,并且特征图在每两个模块之间会进行下采样。
  从Siamese网络中得到的特征图级联之后输入U-net结构中进一步处理。U-net结构可以被看作一个传统编码解码结构的改进版。传统的编码解码结构通常包含一定数量的池化层和反卷积层。因此,编码器增加了感受野大小但丢失了高频的细节信息。为了恢复高频细节,我们使用U-net结构,其带有跳跃连接从编码层中获得低层次的特征引入到对应的解码层中。U-net包含由三个“(卷积(Conv)-批规范化(BN)-非线性处理(ReLU))*2”模块组成编码器和由三个“(反卷积(Deconv)-批规范化(BN)-非线性处理(ReLU))*2”模块组成的解码器。编码器第i层的特征输入到解码器的第(7i)层作为附加输入。编码器每层的输出数目为256,256,512,512,512,512,并且在每个模块之间特征图都进行下采样。解码器的输出数目为512,512,512,512,256,256,并且每个模块之间特征图都进行上采样。
  区分网络区分器的结构如图2(b)所示。区分器的输入为一对RGB图像和对应的视差图。
  有两个不同的分支来分别处理RGB图像和真实视差图。与生成器相似,左RGB图和右RGB图首先经过Siamese网络来提取高层次特征。然后Siamese网络的输出经过一个级联层和两个“卷积(Conv)-批规范化(BN)-非线性处理(ReLU)”模块来进一步提取特征和融合特征。另一方面,区分器随机从真实视差图和生成视差图中选取对应的视差图,这一视差图同样经过两个“卷积(Conv)-批规范化(BN)-非线性处理(ReLU)”模块处理来提取特征和融合特征。
  然后我们将从RGB图像中获得的特征和对应的视差图级联起来。这些融合特征进一步输入另一个级联的“卷积(Conv)-批规范化(BN)-非线性处理(ReLU)”模块。在区分器的顶层,我们用以个sigmoid层输出一个值来表示输入的视差图是来自真实视差图还是生成器。这些特征图每两个模块下采样一次。

3. 实验

3.1 实验设置

  我们用Tensor Flow实现了所有结构。在训练之前,我们对图像做了规范化处理,所有像素的强度统一到-1~1之间。为了与最相似的工作pix2pix相比较,我们的对抗网络用相同的超参数训练:权重超参数λ=100,批尺寸为1,一次迭代循环2000个周期。采用Adam方法训练,初始学习率为105