天天看点

论文笔记-Unsupervised Adversarial Depth Estimation using Cycled Generative Networks

  • 论文信息
    • 标题: Unsupervised Adversarial Depth Estimation using Cycled Generative Networks
    • 作者:Andrea Pilzery, Dan Xu, Mihai Marian Puscasy, Elisa Ricciy, Nicu Sebey
    • 机构:University of Trento; University of Oxford; Technologies of Vision
    • 出处:3DV 2018
  • 代码链接
    • https://github.com/andrea-pilzer/unsup-stereo-depthGAN
  • 论文主要贡献
    • 第一个使用对抗学习策略在同一个深度网络中进行不同视角图像的合成,该网络可以用于改进无监督深度估计问题
    • 提出新的循环的生成网络结构用于无监督深度估计,网络可以学习前向和反向的视差图,也可以在闭环中学习到不同视角的图像合成,这添加了更强的来自不同视角图像的约束,进而优化的生成器网络
    • 在两个大数据集上的实验结果说明了对抗图像合成和循环的生成式网络结构的有效性
  • 论文要点翻译
    • 摘要
      • 基于监督学习模型的单目深度估计方法已经取得较好的性能,但是真实标注数据的获取需要一定代价,为了解决这个问题,本文提出新的无监督深度学习方法用于预测深度图,本文提出的方法可以通过对抗学习框架有效地进行深度估计任务
      • 本文提出一个深度生成网络用于学习两个校正的双目立体相机得到的双目图像之间的视差,提出的框架包含两个生成子网络,两个网络通过对抗学习的方式进行联合训练,将视差图重建的过程和图像重建的过程组织为一个循环的网络,以此提供彼此的监督信号
      • 在 KITTI 和 CityScape 数据集上的实验结果表明提出的模型能够达到 SOTA 方法的性能
    • 引言
      • 深度估计是计算机视觉中的基础研究问题,已经在机器人导航、三维重建、增强现实和自动驾驶等多个领域得到运用,深度学习方法的复兴也使得深度估计任务性能得到显著提升
      • 之前的工作主要考虑监督学习场景的深度图预测,通过卷积神经网络进行回归模型的建立,进而学习从 RGB 图像到深度图的映射关系,在此过程中,多尺度的 CNN 模型是非常有效的,基于这些模型引入诸如 CRF 这样的概率图模型也有助于网络的训练
      • 但是,监督学习方法需要大量的真实标注的数据,而这些数据通常是难以采集的,这个问题和深度学习的框架结构有关,因为为了得到较好的性能,通常需要大量的数据去进行模型训练,此外,监督学习条件的深度估计是病态的问题,因为具有尺度歧义的问题
      • 为了解决这些问题,最近的研究提出了一些无监督的深度估计方法,这些方法通过学习校正的双目立体图像之间的视差关系,结合已知的相机参数条件,通过预测的视差关系预测深度图,其中的典型方法包括使用左右一致性作为监督信号将左视差图和右视差图的一致性约束条件加以利用,约束网络的学习;另外还有的工作联合估计深度和相机姿态
      • 这些无监督模型通过图像合成的方式替换监督信号,质量通常受到估计的视差图的质量的影响,而且这些工作只考虑了重建损失,没有使用对抗学习的方式改进合成图像的生成过程
      • 本文提出新的端到端的可训练的深度网络模型用于基于对抗学习的深度估计,网络输入为校正的立体图像对,提出的方法包括两个生成子网,分别预测从左到右的视差和从右到左的视差,两个子网络组成循环的方式,通过合成不同视角的图像进行循环的组织,利用两个生成器的联合训练,使用对抗学习的策略优化两个生成器网络
    • 相关工作
      • 有监督深度估计:监督学习的深度估计已经大大提高了深度估计的性能,给定大量训练数据,可以达到较优的性能;数据集;监督学习存在的数据依赖问题
      • 无监督深度估计:避免使用难以采集的真实深度数据,使用立体匹配网络,通过图像合成的无监督深度估计、深度估计和相机姿态估计的多任务联合训练
      • GAN:GAN 的兴起;GAN 的成功运用;GAN 在图像合成和域适应等问题中的使用
    • 方法
      • 本文提出了新的用于无监督对抗深度估计的方法,方法使用循环的生成网络,网络如图所示
      • 和传统的立体匹配方法不同,本文利用对抗学习策略,通过图像合成的方式进行视差估计
      • 问题描述
        • 本文问题目标在于在给定校正的双目相机拍摄的一对图像的情况下,预测两幅图之间的视差关系,该问题可以描述为:给定左图和右图,需要得到视差图,视差图中的每个像素的值代表该像素对应的左图像素和右图像素之间的偏移。在给定左右相机的基线距离B 和相机焦距 f 的情况下,深度 D 与视差 d 可以通过 D = f ⋅ B d D = \frac{f\cdot B}{d} D=df⋅B​ 进行转换
        • 本文间接地使用图像合成的方式对视差图进行预测,具体来说,假定左到右的视差图 d r ( l ) d_r^{(l)} dr(l)​ 是生成网络 G l G_l Gl​ 在输入左图 I l I_l Il​ 的情况下得到,可以通过图像反投影 f w ( ⋅ ) f_w(\cdot) fw​(⋅) 操作合成右图图像 I ^ r = f w ( d r ( l ) , I l ) \hat I_r = f_w(d_r^{(l)},I_l) I^r​=fw​(dr(l)​,Il​),根据 I ^ r \hat I_r I^r​ 和 I r I_r Ir​ 之间的重建损失进行网络的优化
      • 无监督对抗深度估计
        • 假定有生成网络 G l G_l Gl​ ,该网络由两个生成子网组成: G l ( l ) G_l^{(l)} Gl(l)​ 用于输入图像 I l I_l Il​ 、 G l ( R ) G_l^{(R)} Gl(R)​ 用于输入图像 I r I_r Ir​ ,该网络用于生成两个独立的视差图 d r ( l ) = G l ( l ) ( I l ) d_r^{(l)}=G_l^{(l)}(I_l) dr(l)​=Gl(l)​(Il​) 和 d r ( r ) = G l ( r ) ( I r ) d_r^{(r)}=G_l^{(r)}(I_r) dr(r)​=Gl(r)​(Ir​);两个子网有相同的结构,都是编码器-解码器结构的卷积神经网络,编码器用于获取压缩的图像特征表示,通过共享的方式减少网络负载
        • 由于两个视差图是从两个不同输入图像生成的,因此两个视差图之间应当具有互补性,通过线性组合的方式(拼接+1x1卷积)将两个视差图组合可以得到增强的视差图 d r ′ d_r^{'} dr′​,可以据此得到重建合成的右图 I ^ r = f w ( d r ′ , I l ) \hat I_r=f_w(d_r^{'},I_l) I^r​=fw​(dr′​,Il​);再利用重建损失优化网络: L r e c = ∥ I r − f w ( d r ′ , I l ) ∥ 1 \mathcal{L}_{rec}=\|I_r-f_w(d_r^{'},I_l)\|_1 Lrec​=∥Ir​−fw​(dr′​,Il​)∥1​
        • 为了改进生成图像的质量,本文提出使用对抗学习的策略进行图像的合成,使用判别器 D r D_r Dr​ 接受上述步骤得到的合成图像 I ^ r \hat I_r I^r​ 作为输入,输出标量值表示该图像是真实图像还是合成图像,然后利用对抗损失进行网络的训练: L g a n ( r ) ( G l , D r , I l , I r ) = E I r ∼ p ( I r ) [ log ⁡ D r ( I r ) ] + E I l ∼ p ( I l ) [ log ⁡ ( 1 − D r ( f w ( d r ′ , I l ) ) ) ] \mathcal{L}_{gan}^{(r)}(G_l,D_r,I_l,I_r)=\mathbb{E}_{I_r \sim p(I_r)}[\log D_r(I_r)]+\mathbb{E}_{I_l \sim p(I_l)}[\log (1-D_r(f_w(d_r^{'},I_l)))] Lgan(r)​(Gl​,Dr​,Il​,Ir​)=EIr​∼p(Ir​)​[logDr​(Ir​)]+EIl​∼p(Il​)​[log(1−Dr​(fw​(dr′​,Il​)))]
        • 最终的优化目标是两个损失的线性组合: L o ( r ) = γ 1 L r e c ( r ) + γ 2 L g a n ( r ) \mathcal{L}_o^{(r)}=\gamma_1 \mathcal{L}_{rec}^{(r)}+\gamma_2 \mathcal{L}_{gan}^{(r)} Lo(r)​=γ1​Lrec(r)​+γ2​Lgan(r)​
      • 用于对抗深度估计的循环生成网络
        • 为了使得不同视角图像的重建能够对彼此有潜在的约束,本文提出循环生成网络结构
        • 网络生成两张不同的代表不同视角方向的视差图,并通过闭环循环的方式合成不同视角的图像,在设计中,不仅仅使用不同视角的重建损失帮助优化生成器,还使用两个视差图之间的一致性损失提供两个“半循环”的监督信号
        • 一半循环的结构在上一节中进行描述,假设有合成右图 I ^ r \hat I_r I^r​,这个结果是之前的一半循环得到,这个输出结果作为另外一般循环的输入,假设生成器为 G r G_r Gr​,该生成器与 G l G_l Gl​ 具有相似的结构,但是 G l G_l Gl​ 的编码器部分更为压缩,两个独立的解码器用于生成不同视角的视差图。两个视差图组合得到混合的视差图 d l ′ d_l^{'} dl′​
        • 该视差图被进一步用于合成左图 I ^ l = f w ( d l ′ , I r ) \hat I_l = f_w(d_l^{'},I_r) I^l​=fw​(dl′​,Ir​),使用重建损失的组合进行两个生成器组成的循环网络的训练: L r e c ( f ) = ∥ I r − f w ( d r ′ , I l ) ∥ 1 + ∥ I l − f w ( d l ′ , I r ) ∥ 1 \mathcal{L}_{rec}^{(f)}=\|I_r-f_w(d_r^{'},I_l)\|_1+\|I_l-f_w(d_l^{'},I_r)\|_1 Lrec(f)​=∥Ir​−fw​(dr′​,Il​)∥1​+∥Il​−fw​(dl′​,Ir​)∥1​
        • 加上判别器的对抗损失: L g a n ( f ) ( G l , G r , D l , D r , I l , I r ) = E I r ∼ p ( I r ) [ log ⁡ D r ( I r ) ] + E I l ∼ p ( I l ) [ log ⁡ ( 1 − D r ( f w ( d r ′ , I l ) ) ) ] + E I l ∼ p ( I l ) [ log ⁡ D l ( I l ) ] + E I r l ∼ p ( I r ) [ log ⁡ ( 1 − D l ( f w ( d l ′ , I r ) ) ) ] \mathcal{L}_{gan}^{(f)}(G_l,G_r,D_l,D_r,I_l,I_r)=\mathbb{E}_{I_r \sim p(I_r)}[\log D_r(I_r)]+\mathbb{E}_{I_l \sim p(I_l)}[\log (1-D_r(f_w(d_r^{'},I_l)))]+\mathbb{E}_{I_l \sim p(I_l)}[\log D_l(I_l)]+\mathbb{E}_{I_rl \sim p(I_r)}[\log (1-D_l(f_w(d_l^{'},I_r)))] Lgan(f)​(Gl​,Gr​,Dl​,Dr​,Il​,Ir​)=EIr​∼p(Ir​)​[logDr​(Ir​)]+EIl​∼p(Il​)​[log(1−Dr​(fw​(dr′​,Il​)))]+EIl​∼p(Il​)​[logDl​(Il​)]+EIr​l∼p(Ir​)​[log(1−Dl​(fw​(dl′​,Ir​)))]
        • 最后结合两个视差图之间的一致性损失: L c o n ( f ) = ∥ d l ′ − f w ( d l ′ , d r ′ ) ∥ 1 \mathcal{L}_{con}^{(f)}=\|d_l^{'}-f_w(d_l^{'},d_r^{'})\|_1 Lcon(f)​=∥dl′​−fw​(dl′​,dr′​)∥1​
        • 最终的目标: L o ( f ) = γ 1 L r e c ( f ) + γ 2 L g a n ( f ) + γ 3 L c o n ( f ) \mathcal{L}_o^{(f)}=\gamma_1 \mathcal{L}_{rec}^{(f)}+\gamma_2 \mathcal{L}_{gan}^{(f)}+\gamma_3 \mathcal{L}_{con}^{(f)} Lo(f)​=γ1​Lrec(f)​+γ2​Lgan(f)​+γ3​Lcon(f)​
        • 测试时,给定输入图像对 ( I l , I r ) (I_l,I_r) (Il​,Ir​),可以得到视差图: D = d l ′ + f w ( d l ′ , d r ′ ) 2 D=\frac{d_l^{'}+f_w(d_l^{'},d_r^{'})}{2} D=2dl′​+fw​(dl′​,dr′​)​

继续阅读