CycleGAN-3d深度估计

github链接:

https://github.com/andrea-pilzer/unsup-stereo-depthGAN/

笔者自己认为这篇论文提出的方法并不是特别好,类似于CycleGAN的网络结构并没有为训练效果带来好的改变。与之前的Godard等人提出的方法相比依然有差距,所以不能证明这个网络训练有更好的效果。

正文翻译:

Abstract:

       现在最近基于监督回归的单目深度估计方法已经有了很好的成果,但在训练过程中要求有昂贵的地面实况注解。为了应付这种情况,在这这篇论文中我们提出了一个新的无监督深度学习方法来估测深度图并且表明通过使用对抗网络框架可以有效地完成深度估计任务。我们提出了一个学习双目镜头图像的深度学习框架。该架构由两个联合训练对抗学习的生成子网络组成,用于重建视差图,并组织成一个循环,相互提供约束和监督。该实验使用的训练集为KTTI和Cityscapes。

1.Inroduction

       作为计算机视觉中的一个基本问题,深度估计已经在业界被相当关注,当然也是因为他在应用上的重要性,像机器人导航,3D重建,虚拟现实和自动驾驶。多亏深度学习技术的提出,在过去几年深度估计技术已经被显著提高。

       先前的深度学习架构大多健用于监督学习数据集上,并且发明了CNN这样有效的深度回归模型。这些模型被用于单目深度估计,他们用pixel2pixel的方法来实现RGB图像到深度图的图像转义。在这种背景下,多层CNN模型有效地被用于深度图估计。在这些概率图形模型上,作为端到端优化的神经网络,条件随机场(CRF)已被证明是有效的,从而提高了深度回归模型的性能。然而,监督学习模型通常需要大量的地面实况图数据。这个问题与深度学习架构尤其相关,因为通常需要大量的数据来产生令人满意的性能。此外,由于尺度模糊问题,监督单目深度估计可被视为不适定问题。

       为了解决这些问题,最近无监督深度估计的学习方法已经被提出了。这些方法通过仅使用校正的左图像和右图像来学习校准立体相机的两个不同图像视图之间的对应字段(视差图)来操作。给几个相机参数,深度图就可以通过使用视差图来预测。这条研究路线取得了重大进展,特别是,Goard等人提出了使用单个生成网络来估计直接视差图和反向视差图,并且利用左右视差图之间的一致性来约束模型学习。其他建议通过联合学习摄像机姿态来促进深度估计。这些工作依赖于从期望视图的图像合成中得到的监督来优化它们的模型,期望视图的质量直接影响估计的视差图的性能。然而,所有这些工作都只考虑了重建的损失,并且都没有探索使用对抗性学习来改进综合的生成图像。

       总体来讲,这篇论文总共有三个主要的贡献:

①我们首先使用对抗学习来促进统一深度网络中不同视图的图像的合成,以改善无监督深度估计

②本文提出了一种新的无监督深度估计的循环生成网络结构,它能够同时学习正向和反向视差图,并能够在闭环中合成不同的图像视图。与现有的生成网络结构相比,所提出的循环生成网络能够从每个图像视图中执行更强的约束,并且更好地优化网络生成器。

③在两个大型公开可用的数据集(即KITTI和Cityscapes)上的大量实验证明了对抗性图像合成和循环生成网络结构的有效性。

2.Related Work

监督深度估计

        监督性深度学习改善了了深度估计。提供足够多的地面真实训练数据,基于深度神经网络的方法近年来取得了很好的应用前景。已经发布了多个大规模深度包含的数据集,在单视图设置中,NYUD呈现室内图像,而MaM3D被记录在户外。相反,KITTI和CITYSCAPE被收集在户外与校准立体相机。基于这些数据集,受监督的单目深度估计任务取得了很好的成果。基于多尺度美国有线电视新闻网和基于概率图模型的深度网络在任务上表现出明显的性能提升。许XX等人首先介绍了一种结构化的注意机制,用于学习任务的多尺度深度表示。然而,基于监督的方法在训练期间依赖于昂贵的地面真值深度数据,这些数据对于部署过境点并不灵活。

非监督深度估计

        最近更流行的趋势是无监督深度估计方法。一个明显的优点是无监督深度学习的方法在训练时不必使用昂贵的地面实况图。深度双目匹配模型被提出来直接用于深度估计。以间接手段,Garg等人提出了一种基于图像合成的无监督单目视觉深度估计方法。Godard等人提出使用不同图像视图的正向和反向重构,并在模型中考虑多个优化损失。周XX等人联合学习深度和相机姿态作为单个深网络中的增强。在不使用地面数据的情况下,还可以在单目视频中联合学习场景深度和自我运动。然而,这些工作都没有在模型中考虑对抗性学习方案来提高图像生成质量,以便更好地进行深度估计。

GANs

生成对抗网络(GANS) 由于其在生成问题上的优势,引起了人们的广泛关注。戈德菲尔等人重温生成性对抗学习策略,并在图像生成任务中表现出有趣的结果。然后,将GAN应用到各种生成应用中,开发了不同的GAN模型,如CycleGAN和DualGAN。在文献中很少考虑考虑更具挑战性的深度估计任务的GAN模型。

3. The Proposed Approach

 我们提出了一个新的方法通过使用循环对抗网络来做无监督学习的深度估计。在Fig.2中我们对不同的无监督深度估计模型做了比较。图2.a 展示了传统的基于深度估计的立体匹配算法,它基本上学习一个立体匹配网络来直接预测视差。不同于传统的立体方法,我们以非直接的方法预测估计视差,通过图2b所示的对抗学习策略从不同视图进行图像合成。图2.c展示我们完整的使用循环对抗网络的模型。在这个章节中,在这一部分中,我们首先给出问题陈述,然后提出基于对抗学习的无监督立体深度估计,最后我们说明所提出的完整模型,并介绍整个端到端优化目标和测试过程。

3.1 问题陈述

我们目标是通过来自校准立体相机的图像来估计一对视差图。问题可以被如下定义:给一个左图 Il 和一个右图 Ir 我们来预测视差图d,其中每个像素值表示左图右图对应像素的偏移量。如果得到了左右相机之间的基线距离bd 和相机的焦距fl  ,深度图D就可以通过公式D = (bd * fl )/ d 来估计。我们通过图像合成来间接地学习视差。具体来说,假设从输入生成网络Gl 输入左视点图像II,产生一个从左到右的视差图d(l)r,然后翘曲函数fw(.)通过在左图 I取样来执行右图像视差图的合成,即I~r = fw(dr(l), Il). 因此可以利用Ir和Ir~之间的重构损失来为网络Gl提供优化。

3.2 无监督对抗深度估计

我们现在介绍完了提出的无监督对抗深度估计方法。假设我们有一个对抗网络Gl 由两个子网络构成,一个输入I的子网络Gl(l)和一个输入Ir的子网络Gl(r)。这被用来生成两个不同的视差图d(l)r和d(r)r,即d(l)r=Gl(l)(I)和d(r)r=Gl(r)(Ir)。子网络Gl(l)和Gl(r)用相同的使用卷积编码器-解码器的网络结构,其中编码器旨在获得紧凑的图像表示,并且可以被共享以降低网络容量。因为这两个视差图都被通过不同的输入图像生产,并且展示了互补特征,将他们融合为一个线性组合,实现为级联和1*1卷积,并且我们获得了一个增强的视差图d'r,通过翘曲操作合成右视图图像I~r, 即I~r = fw(dr', Il)。然后我们使用L1范数重构损失Lrec来优化,公式为L(r)rec = ||I -  fw(dr', Il)||1.

为了提高图像I~r的生成质量并且从对抗学习的优势中获利,我们因为对抗学习强大的图像生成能力而提出使用它来更好地优化。对于合成的图像I~r一个判别器输出用于鉴别图像或是真是假的标量值,因此生成网络的对抗目标可以被公式化如下:

L (r) gan(Gl ,Dr, Il , Ir) = EIr∼p(Ir) [log Dr(Ir)] + EIl∼p(Il) [log(1 − Dr(fw(d 0 r , Il)))]

其中,我们采用交叉熵损失来分别针对左视图图像p(Il)和右视图图像p(Ir)的分布测量图像Il和Ir的期望。然后,联合优化损失是重构损失和对抗损失的组合,写为:

L (r) o = γ1L (r) rec + γ2L (r) gan

γ1和γ2是平衡两部分损失来稳定训练过程的权重。在测试阶段,dr是最终输出。

3.3 对抗深度估计的循环生成网络

在之前的章节中,我们提出了对抗学习深度估计方法,这个方法直截了当的从一个图片重构了另一张图片。为了使来自不同视图的图像重建彼此隐式约束,我们进一步提出了循环生成网络结构。在图2中示出了所提出的网络结构的概览。该网络从不同的视角方向生成两个截然不同的视差图,并在闭环中合成不同的视角图像。在我们的网络设计中,不仅不同的视图重建损耗有助于更好地优化生成器,而且两个视差图与一致性损耗相连,以便从每个半圈提供强有力的监控。我们在上节描述了这个半圈的生成网络。这个基于半圈结构的的循环生成网络。为了简化描述,我们依然沿用上一节的符号。假设我们在半环已经获得了一个生成图像I~r,并且之后I~r被用于下一个循环生成网络的输入。我们把这个生成器表示为Gr,我们在Gl 中使用相同的编码解码器。Gr的编码部分可以和Gl 共享(我们展示了使用和不用共享方案的差异),并且这两个不同的解码器被用来生产两个从右向左的视差图d(l)l和d(r)l分别对应左视图和右视图的输入图像。这两个视差图也被通过组合和卷积操作相融合从而得到一个融合的视差图dl'。然后我们合成左视图通过翘曲操作I~l = fw(dl', Ir)。一个L1范数重建损失被用于优化生成器Gr。然后优化全周期生成器的目标。

L (f) rec = ||Ir − fw(d 0 r , Il)||1+||Il − fw(d 0 l ,ˆIr)||1

为了判别融合图像ˆIl,我们增加了一个判别器Dl。并且之后对抗学习策略都被用于一个闭合循环中的左右图像。这个完整的循环模型对抗目标可以被写作下面这个公式:

L (f) gan(Gl , Gr, Dr, Il , Ir) = EIr∼p(Ir) [log Dr(Ir)] +EIl∼p(Il) [log(1 − Dr(fw(d 0 r , Il)))] + EIl∼p(Il) [log Dl(Il)] +EIr∼p(Ir) [log(1 − Dl(fw(d 0 l ,ˆIr)))]

每半个循环网络都生成对应于不同视图翻译的视差图,即dl'和dr'。为了让他们彼此约束,我们将这两个映射之间的L1范数一致性损失增加如下:

L (f)con = ||d 'l − fw(d'l , d'r )||1

因为两个视差图都被用于不同视图并且没有对齐,因此我们使用翘曲操作来使它们像素到像素匹配。一致性损失为每半周期提供了强大的视图约束,从而有利于两个半周期的学习。

完整的目标:完全的优化目标包括两个生成器的重构损失,视图合成的对抗损失以及半周期一致性损耗组成。可以写成如下形式:

L (f) o = γ1L (f) rec + γ2L (f) gan + γ3L (f) con.

y1,y2,y3代表用于控制不同优化重要性的权重。

推论:当优化完成时,给定测试对{Il,lr},通过加权生成方案输出视差图d’l和d‘r。我们对这两个半循环相等的重要性,并且最后视差图D去两个的均值。即D = (d'l + fw(d'l, d'r))/2。

3.4 网络实施细节

为了描述网络实现的细节,在生成器Gl 和 Gr中,我们在编码器部分的主干网使用了ResNet-50,并且解码器部分包含具有ReLu操作的五个反卷积,其中每两次向上采样特征图。这种跳跃式传递也被用于从主干网传递信息到反卷积特征图从而获得更有效的特征集和。对于判别器Dl 和 Dr,我们用相同的具有五个连续的卷积运算,其大小为3,步长为2,填充大小为1,每个卷积运算之后批处理归一化。对抗损失也被用于输出补丁。对于翘曲操作,采用双线性采样器。

4.实验结果

我们在公开可用的数据集上给出定性和定量的结果,以证明所提议的无监督对抗深度估计方法的性能。

4.1 实验设置

数据集:我们在KITTI和Cityscapes两个大的数据集上进行实验。对于KITTI数据集,我们使用本征分裂的方法进行训练和测试。该分割包含22600对训练图像对和697个测试对测试图像。我们在训练过程中通过在线随机翻转图像进行数据增强。Cityscapes数据集是在一天的不同时间和季节,使用立体摄像机从驾驶车辆经过几个德国城市收集的。它提出了更高分辨率的图像和注释主要用于语义分割。为了训练我们的模型,我们结合密集和粗注释分裂获得22973个图像对。为了测试,我们使用1525个图像对的密集注释分裂。测试集还具有用于评估的预计算视差图。

参数设置:这个模型使用Tensorflow框架实现的。对于KITTI数据集,输入图像的分辨率从1226*370下降到512*256,而对于Cityscapes数据集,裁剪底部图像的五分之一,然后调整到512*256。将两个输入图像的输出视差图与学习性线性组合相融合,得到大小为512*256的最终视差图。训练的batch大小设为8,并且所有试验的初始化的学习率是10~5之间。我们使用Adam优化算法进行优化。动量参数和权重衰减分别设置为0.9和0.0002.最终优化目标的损失参数是y1 = 1, y2 = 0.1, y3 = 0.1。在[80k, 100k]次的时候,学习率减半。实验使用的仪器是12G内存的NVIDIA-Tesla-K80。

详细训练过程:我们训练通过标准的训练程序来训练半个循环模型,即用随机权重初始化网络,并且让网络训练满50次。我们用迭代训练程序来优化网络。在随机权重初始化之后,我们用生成器Gl和判别器Dr 来对上半分支{Il,Ir}->I~l迭代两万次。之后我们用生成器Gr和判别器Dl对下半分支{II,Ir}->I~I也迭代两万次。对于第一循环分支的训练,我们不使用循环一致性损失,因为后半循环分支尚未训练。最后,我们共同训练整个网络,为最后一轮的100K迭代嵌入了所有的损失。

评价指标:为了定量评估所提出的方法,我们遵循几个标准之前几个作品中使用的标准评价指标。P是测试集像素的全部数量和d~i,其中di是预测的地面i处的真实深度:我们取这个错误的均值,方差,均方根误差,均方根对数差以及阈值精度。

4.2消融研究

为了证明对抗学习策略对于无监督深度估计是有利的,并且所提出的循环生成网络对这个任务是有效的,我们对KITTI数据集和Cityscape数据集进行了广泛的消融研究。

基线模型:我们对于消融研究有几个基线模型,包括半循环单目数据集,它使用一个正向分支从一个图像视图合成到另一个图像视图,输出单个视差图,并且在测试期间输入单个RGB图像;半循环双目数据集,使用一个正向分支但是使用的是两个视差图合成深度图;使用一个判别器的半循环分支,增加了一个判别器;有两个判别器的完全的循环模型,使用了完整循环模型且增加了一个判别器;第五个模型与上一个结构相同,但是解码器的参数共享了。

在KITTI数据集上进行评估:正如我们在表1中所看到的那样,半循环双目的精度比半循环的那幕精度有很大的提高,证明双目成像的精度要比的单目好很多。

在图片合成中使用对抗学习策略,Half-Cycle+D的Abs Rel比Half-Cycle的要好1.7个点。这也证明了使用对抗学习会提高图像合成的精度,因此提高了视差预测能力。此外,在训练过程中,我们也观察到,对抗性学习在训练损失方面比没有对抗性学习的(即半周期立体声)具有更小的振荡,有助于保持更稳定的收敛趋势,可能导致更好的优化模型。

这也可以清晰地看出对抗学习的循环生成网络在所有指标上可以比半循环的得到更好的效果。其中,Full-Cycle + D模型在Abs Rebel上提高了约两个点,在准率上提高了1.9个点,比Half-Cycle + D模型。这些明显的提高说明了网络的有效性,证实了循环策略会在优化生成器方面会带来更好的约束和监督。最后,我们也展示了所提出的在判别器上使用共享解码器的模型,通过使用这个分享的结构,我们获得了甚至更好的结果。可能是因为有一个更紧凑的网络结构,因此,用有限数量的训练样本来比较容易进行优化。

在Cityscapes数据集上的评估:我们也对Cityscapes数据集进行了相似的消融性研究,正如在KITTI数据集已经分析过的那样,我们基本可以观察到不同基线模型上在性能增益上有相似趋势。。。

4.3 与先前的模型进行比较

………………

4.4时间上的分析比较

这个完整的模型训练是在单一的Tesla-K80 GPU上,在KITTI数据集上22k的图片用了45个小时。512*256的图片,一张大约0.140秒,很接近于实时图片处理。

5.总结

我们提出了一种新的方法用于无监督深度学习的深度估计任务中使用的建议学习循环生成网络结构中的对抗学习策略。新的方法提供了一个新的洞察社区,显示深度估计可以有效地解决通过无监督对手学习的立体图像合成。更具体地,提出一种生成的深网络模型,以学习预测在校准立体相机设置下两幅图像视图之间的视差图。分别设计了两个对称生成子网络从不同视角生成图像,并将它们进一步合并,形成一个封闭循环,该封闭循环能够提供强有力的约束和监督,以更好地优化两个子网络的双生成器。在两个公开可用的数据集(即KITTI和CITYSCAPE)上进行了广泛的实验。结果表明,该模型是有效的,在KITTI数据集上与现有技术相比具有很强的竞争力。未来的工作将包括使用注意机制来指导生成器的特征表示的学习,并且还考虑使用图形模型在输出视差图上进行结构化预测,以便具有更好的场景结构。

转载于:https://www.cnblogs.com/19991201xiao/p/9734422.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值