Advertisement

论文阅读笔记——StereoNet: Guided Hierarchical Renement for Real-Time Edge-Aware Depth Prediction

阅读量:

引言:

谷歌实时端到端双目系统深度学习网络

双目匹配能够获取环境中的三维深度数据,并以此为基础为机器人、无人车、VR等现实场景提供有力的支持。在安全性较高的安全验证领域中(即安全性较高的安全验证领域),三维人脸识别技术正逐步取代二维人脸识别技术。近年来,在深度学习领域取得的双目系统匹配进展相当显著(其性能已显著优于传统方案)。然而,在实用层面仍面临诸多挑战(一项主要问题是无法实现实时推断能力)。这一缺陷对实际应用场景的应用带来了严重影响(即对实际应用场景的应用带来了严重影响)。最近研究者们提出了stereonet这一实时端到端的小型网络架构,在深度学习领域实现了推断速度高达每秒60帧(FPS),显著超越了以往技术水平。

Github地址:

https://github.com/meteorshowers/StereoNet

作者简介:

该研究由谷歌研究员Sameh Khamis于ECCV 2018会议上发表。他获得博士学位于Maryland University,并师从美国Maryland大学计算机科学系主任Larry S.Davis教授。

1.摘要

本文详细阐述了StereoNet这一创新性的实时立体匹配系统,在NVIDIA Titan X架构上达到60帧/秒的运行效率,并能够输出高质量、具有边缘保留特性和无量化误差的视差图。本文的核心观点认为网络实现的超像素级精度显著优于传统方法的精度水平,在此基础之上实现了实时性能的同时又具备高视差精度需求的所有必要信息编码能力。为了进一步提升空间细节恢复能力我们采用结合学习驱动的空间增强模块来提升细节恢复能力并在此过程中实现了层次化分步上采样的过程从而有效引入了高频细节信息。此外该系统通过集成颜色输入信号作为深度估计的重要参考依据从而能够在生成边缘区域输出的同时保持了整体图像质量的表现效果。经过一系列基准测试实验结果表明所提出的体系在计算资源消耗可控的前提下展现出卓越的空间细节重建能力以及卓越的时间效率表现

2.简介

立体匹配是一种经典的计算机视觉问题,在基于两个轻微偏移的图像进行深度估计的过程中起着关键作用。 随着虚拟现实与增强现实领域的快速发展,近期研究表明深度估计已经达到了关键进展[41]。 它不仅是3D重建、位置确定及追踪等多个方面的核心技术,在多个研究领域及产品类型中发挥着核心作用[28]。 其应用覆盖了多个研究领域及产品类型,并涵盖室内地图构建、建筑设计等多个具体方向

类似

被动深度估计技术的历史发展主要依赖于基于共线性矩阵(CRF)的方法[33]。尽管这些方法在许多场景中取得了优异的效果[14,15,56,54]但计算效率一直未能满足实时应用的需求。现有的深度估计模型往往将推理过程简化为求解NP难问题[61]这导致研究者不得不依赖高速求解器或采用近似解策略以应对计算瓶颈[37,26,29,42]值得注意的是这类方法在面对无纹理区域遮挡复杂图案薄结构以及镜面反射等因素时往往表现不佳[7]随着深度学习技术的进步这一领域正逐步向...方向发展试图突破现有技术局限

在本文中阐述了StereoNet这一创新性架构

  1. 我们展示了深层结构的亚像素匹配精度较经典的立体方法高出显著程度。
  2. 该网络通过使用极低分辨率的成本体积实现了传统立体匹配深度精度的有效提升。
  3. 我们发现,在深层体系结构中引入成本量的工作对特定任务采用了过度参数化的策略,并详细阐述了如何通过极低计算复杂度优化系统性能。
  4. 新增了一种分层深度重建层,在实现保留边缘的同时保持高质量上采样的功能。
  5. 最终验证表明,在多个基准测试中所提出系统的性能得到了令人信服的结果,并且其应用范围覆盖了高端GPU架构环境下的实时运行需求。

研究背景

基于多视图图像数据构建深度估计模型是一个经典的立体匹配算法的主要框架。该框架主要包括四个主要环节:首先进行匹配代价计算;然后进行代价信息的融合与传播;再进行优化处理;最后实现视差图的精细化。当前研究的核心创新点主要集中在两个方面:一是如何通过深度学习模型精确地计算匹配代价;二是如何有效结合半局部分析方法提升视差图的质量。

传统的经典稠密匹配算法主要采用的是SGM(Sparse Geometric Matching)方法1,在这种框架下讨论了几何约束下的三维重建问题。半全局立体匹配算法Semi-Global Matching(简称SGM)是由Hirschmüller于2005年提出的[1]。该方法的主要思想是基于几何约束下的三维重建问题展开研究,并通过引入几何约束来提升匹配精度的同时减少计算复杂度[2]。然而,在实际应用中发现该方法存在两个主要缺陷:一方面,在处理复杂场景时容易导致误配;另一方面,在处理大场景时由于计算量过大导致效率低下[3]。为了克服这些不足并结合现有技术的优点,在后续研究中逐渐发展出了多种改进型立体匹配方法[4]

Zbontar与LeCun开发了一种深度的Siamese网络以计算匹配代价。该网络通过一对9×9的图块被训练以学习预测各图块间的相似性。其方法仍沿用经典的立体匹配流程包括代价聚合SGM及其他视差优化技术以提升匹配效果。进一步的研究致力于增强深度估计Luo等人提出了一个效率更高的Siamese网络该架构将匹配代价计算转化为多标签分类问题。Shaked与Wolf引入了高速(highway)网络来计算匹配代价并搭配全局视差网以评估置信度得分从而辅助优化视差图展示。近期出现了若干高性能双目神经架构这些系统在计算资源需求上仍无法满足实际应用需求基于此ECCV2018中stereonet的成功应用显著提升了双目系统运行速度

3.网络结构

3.1预知识

给定输入图像对,在我们旨在训练端到端视差预测模型的过程中。该模型利用通用编码-解码网络架构进行设计:其中编码器部分通过一系列收缩层从输入中提取特征,并将其压缩至瓶颈区域;而解码器部分则基于此瓶颈区域提取的信息进行重建输出。值得注意的是,在该过程中所形成的瓶颈区域不仅能够有效提取与任务目标高度相关的细节信息,并且还能在此基础上生成高保真度的重建结果。然而尽管这种方法在包括深度估计在内的多种应用领域均展现出显著成效[37,26,42],但在立体匹配算法领域仍存在一些未能满足我们关注需求的关键特性

首先, 该方法未能提取出与立体匹配问题相关的几何信息. 基于立体预测本质上是对应匹配问题, 我们的任务则是开发一种无需重新训练即可适应不同分辨率与基线的不同立体摄像机配置的算法.
值得注意的是, 预测为像素级映射而非涉及输入扭曲的问题时, 类似的方法显然过于复杂. 因此, 可能会导致过度参数化.

我们的立体匹配方法采用了一种创新设计来有效解决结构相关的问题,并借鉴经典的解决方案来实现该功能。该方法与[29]中的GC-Net架构相似的同时采用了具有高效上下文感知能力的像素级网络来生成具有边缘保留特性的输出图像。该模型的整体架构概述如图1所示,并将在后续章节中进行详细阐述。

如图所示为网络架构示意图,在蓝色方框左侧的部分用于粗粒度深度估计。该模块采用Encoder架构完成图像特征提取过程后,在其右侧生成Cost Volume矩阵。随后通过融合左右两侧图像特征生成Cost Volume矩阵并进一步运用三维卷积层生成1/8分辨率深度信息图。最后通过多级解码器逐步重构出高分辨率的小尺寸与薄壁结构

3.2稀疏预测:cost volume 滤波

立体匹配系统通常用于解决对应匹配问题。 传统上是将该问题归结为沿着扫描线发现两个正向图像之间的像素对像素进行匹配以形成视差图。 由平滑和平滑保留思路所启发的发展起来的方法如Cost Volume滤波器[25]等,则通过构建并处理每个像素处所有候选视差的三维量来显式模拟这一配准过程。 尽管方法[25]直接利用颜色值进行配准,在此方案中我们分别在每个像素处提取特征描述符作为配准依据。

Feature Network: 第一步是提取有意义的图像片段,在后续阶段实现精确匹配。在立体匹配问题中存在无纹理区域的情况,在传统方法中通过卷积操作汇总成本信息来解决此问题。为了在网络中复制相同的行为模式,在网络设计中采用了功能模块从较大的接收域内提取特征。特别地,在两个输入图像之间共享权重的设计被引入(也称为孪生网络)。我们首先对输入图像执行stride=2的K个5×5卷积操作进行主动下采样处理,在整个下采样过程中始终维持通道数为32。在实验设置中将K值设定为3或4较为适宜。随后依次应用6个残差块[23]进行特征提取,在这些残差块中采用的是3×3卷积核结合批归一化[27]层以及带有Leaky ReLu激活函数(alpha = 0.2)[36]的操作。最后一步采用不带批归一化或激活函数的3×3卷积层进行处理操作。最终输出结果是在降采样后每个像素位置对应的32维特征向量表示。这种低分辨率特征表示具有两个重要特点:一是能够显著扩大覆盖视野范围;二是保持了特征向量的高度紧凑性

Cost volume: 我们通过提取像素特征向量与匹配候选特征向量之间的距离来计算粗略分辨率的成本量。值得注意的是,不对称表征在实验中表现出较好的性能,并且在我们的实验中将两个向量连接起来可获得相似的结果。
在此阶段,在立体匹配中采用的普遍方法是赢家通吃(WTA)策略。然而,在这里我们让网络通过多层卷积运算和非线性激活函数来学习正确的度量标准。为了整合上下文信息,在整个空间域和视差域中我们采用了四个3×3×3的三维卷积模块,并分别进行了批量归一化处理以及泄漏性ReLU激活函数运算。随后,在不使用批量归一化或激活函数的情况下应用最后一个3×3×3卷积层进行特征提取,并对每个像素及候选视差位置生成一维输出结果。

对于一个大小为W×H像素的输入图像,并用于评估D个候选视差范围的最大值(即最大视差),我们的成本计算涉及K层向下采样后的尺寸为W/(2^K) × H/(2^K) × (D+1)/(2^k),其中K表示下采样的层数。 在设计StereoNet时, 我们采用了资源高效的方法, 该方法能够在移动设备上实现部署. 与现有研究不同的是,在本研究中我们主要关注于高分辨率特征提取, 并通过多级特征融合来优化计算效率. 实验结果表明,在实际应用中, 大部分时间与计算资源消耗集中在较高分辨率级别的匹配操作上, 而性能提升主要来源于低分辨率下的精确匹配. 从速度提升的角度来看, 我们的性能损失并不显著. 其主要原因在于, 相较于传统立体匹配方法, 该网络能够实现更高的子像素精度. 因此,在实际应用中不需要采用更高分辨率进行匹配操作就能获得满意的效果

Differentiable arg min: 我们常用arg min来在所选的成本矩阵中选择每个像素的最小成本与差异。 对于像素i及对应的视差C(d),其上的成本函数决定了选取哪一特定的视差di作为最佳匹配结果:

说明

然而,在学习过程中遇到了困难的原因是因为arg min函数是不可微的特性。我们采用两种不同的变体来实现这一目标。第一个变体是软aigmin,在文献[6]首次提出,并在文献[29]中得到了广泛应用。具体而言,在计算所选差异时采用了所有差异值的softmax加权组合

第二个可区分的变体是概率选择,它从成本中的softmax分布中采样:

在采样过程中采用差异化的梯度估计方法,在最大限度地降低随机过程预期损失的基础上推断差异分布特性。尽管这种技术最初应用于强化学习中的政策梯度框架[57],然而近年来则被表述为基于随机计算的方法[50]。值得注意的是,在文献[5]中探讨了其在RANSAC摄像机定位问题中的应用情况,并发现两者间存在相似性特征,在文献[58]中对此进行了详细探讨。
遗憾的是,在我们的实验设置下即使采用各种方差减少技术仍无法显著改善概率方法的表现结果显示该方法在实验条件下效果欠佳因为它倾向于选择具有较大不确定性的选项。
值得注意的是现有研究表明 在连续动作空间问题上表现出色 这一结论得到了强化学习领域内相关文献的支持 [34]

3.3分层优化:考虑边缘结构的上采样

依赖粗匹配方法的一个弊端在于其生成的低分辨率输出缺少细节信息。 为了维持紧凑性结构的设计需求,在此过程中我们通过改进网络来保留边缘信息以解决这一问题。 我们观察到,在这一阶段该网络主要负责利用颜色输入数据进行视差扩展或侵蚀操作以整合高频细节特征。 因此,在这种结构下我们可以设计一种像素级映射的学习机制类似于最近研究工作中所采用的方法[8,7,20]是一种可行的选择方式。 具体而言,在这种情况下我们需要构建一种仅关注残差(或三角视差)的改进型网络用于增益或减损粗略预测结果。

我们的优化网络采用双线性上采样生成目标尺寸视差图,并配合相同尺寸的彩色输入图像[40]。研究表明反卷积操作会产生棋盘状伪像因此我们选用双线性插值替代传统反卷积方法并结合批归一化与Leaky ReLU激活(α=0.2)[40]。经3×3卷积层处理后数据特征被提取并输入6个残差模块进行深度学习训练[43]。在这些模块中我们采用了渐开式扩张设计而不增加整体网络参数规模[43]。各模块扩张倍率依次设置为1-2-4-8-1-1这样能有效提升特征提取能力同时维持模型简洁性[43]。随后对输出结果进行无BN及激活层约束的一次性空间再采样处理最后通过ReLu函数约束差异值确保其非负特性

我们在实验过程中采用了上文所述网络架构中的级联结构。对输出进行了多层次分析,并引入了一种将单次低分辨率输出提升至高分辨率的技术。图2详细展示了各层次中继层输出特征以及每层新增补充信息如何协同作用以重构高频细节。其行为模式与双分支联合上采样方法相吻合[32]。进一步研究表明该网络具备模仿学习驱动端点感知并实现精细细节增强的能力。

3.4 Loss Function

基于标注了地理位置的立体声数据,我们采用全监督学习方法对StereoNet进行训练,并最小化层次损失函数。

这里使用的是smoothed L1-loss,d是此时的视差,d^是估计的视差值。

3.5 Implementation details

我们通过Tensorflow [1]实现了StereoNet网络的构建与训练过程。
我们的所有实验均采用了RMSProp [24]算法进行优化,并且学习率按照指数衰减的方式设置为初始值为1\times 10^{-3}
首先对输入数据进行了归一化处理,并将其范围调整至[-1, 1]区间。
与文献[29]的研究不同之处在于我们采用了批量大小为1 ,并未对模型进行剪枝处理。
经过大约15\times 10^{4}次迭代后才达到了收敛状态。
通过同时利用图像对中的左右视差信息进行训练 ,我们的实验结果表明该方法显著缩短了训练时间。
对于仅有的小规模数据集(从零开始 training 是无益的行为) ,我们进行了额外的5\times 10^{4}次迭代优化。

全部评论 (0)

还没有任何评论哟~