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

5 篇文章 0 订阅
2 篇文章 0 订阅

引言:

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

双目匹配可以得到环境中的三维深度信息,进而为机器人,无人车,VR等现实场景下的应用提供有力信息,在对安全验证比较高的人脸支付领域,三维人脸验证也正在逐渐取代安全性较低的二维人脸验证。近年来,深度学习双目系统匹配已经取得了很不错的进展,很多先进的网络性能已经超过传统方法。然而,深度学习双目系统匹配仍然在实用方面面临很多问题,其中一个问题便是无法做到推断实时。这点严重制约了双目匹配网络在实际中的应用。最近谷歌研究员提出了实时端到端双目系统深度学习小网络stereonet,推断速度达到60FPS,远超之前的方法。

Github地址:

https://github.com/meteorshowers/StereoNet

作者简介:

该工作是由谷歌研究员Sameh Khamis在ECCV18上发表的一个工作。Sameh Khamis博士毕业于马里兰大学,师从美国马里兰大学计算机系主任Larry S.Davis教授。

1.摘要

本文介绍了StereoNet,这是第一个用于实时立体匹配的端到端深度架构,在NVidia Titan X上以60fps运行,可生成高质量,边缘保留,无量化的视差图。本文的一个重要观点是,网络实现的亚像素匹配精度,高于传统立体匹配方法的精度。这使我们能够通过使用非常低分辨率的cost volume来实现实时性能,该cost volume对实现高视差精度所需的所有信息进行编码。通过采用学习的边缘感知上采样功能来实现空间精度。我们的模型使用Siamese网络从左右图像中提取特征。在非常低分辨率的cost volume中计算视差的第一次估计,然后,通过使用紧凑的像素到像素的网络方法分层进行上采样,重新引入高频细节。利用颜色输入作为指导,此功能可以生成高质量的边缘部位输出。我们在多个基准测试中获得了令人信服的结果,显示了所提出的方法如何在可接受的计算预算下提供极高的灵活性。

2.简介

立体匹配是一种经典的计算机视觉问题,涉及从两个略微位移的图像估计深度。 随着对虚拟现实和增强现实的兴趣不断增加,深度估计最近被预测到了重要阶段[41]。 它是3D重建,定位和跟踪等许多任务的核心[28]。 它的应用范围涵盖了其他不同的研究和产品领域,包括室内地图和建筑,自动驾驶汽车,以及人体和面部跟踪。

像Microsoft Kinect这样的主动深度传感器提供高质量的深度图,不仅彻底改变了计算机视觉研究[12,11,41,16,55],而且在消费级应用中也发挥了重要作用。近年来,随着许多其他消费类设备的发布,这些有源深度传感器变得非常流行,例如英特尔实感系列,iPhone X上的结构光传感器,以及Kinect V2等时间相机。随着移动设备上增强现实(AR)应用的兴起,越来越需要能够在严格的计算预算下预测精确深度的算法。除iPhone X外,市场上的所有智能手机都只能依赖单或双RGB流。像ARKit和ARCore这样的稀疏跟踪和绘图工具的发布令人印象深刻地展示了移动设备上的粗略和稀疏几何估计。然而,它们缺乏密集的深度估计,因此不能实现令人兴奋的AR应用,例如遮挡处理或虚拟对象与现实世界的精确交互。使用单个移动摄像机(类似于[46])或双摄像头进行深度估计自然成为业界要求将AR扩展到数百万用户的要求。

被动深度的现有技术依赖于两个(整理的)RGB图像之间的立体三角测量。这在历史上一直由基于CRF的方法主导。这些技术获得了非常好的结果,但计算速度慢。这些模型中的推论等于解决一般NP难问题,迫使从业者在许多情况下使用运算时间在秒范围内的求解器[33]或求助于近似解[14,15,56,54]。另外,这些技术通常在无纹理区域,遮挡,重复图案,薄结构和反射表面的存在下遭受损失。这个领域正在慢慢过渡,自[61]以来,它开始使用深层特征,主要是作为一元的潜力,以进一步推进现有技术。
最近,深层架构在预测被动立体数据的深度方面表现出高水平的准确性[37,26,29,42]。尽管取得了这些重大进展,但所提出的方法需要大量的处理能力和存储器。例如,[29]在他们的网络中有3:500万个参数,在960*540个图像上达到每秒约0.95图像的吞吐量,[42]在一个高端GPU上在0.5秒内产生单个视差。

在本文中,我们介绍了StereoNet,这是一种新颖的深层架构,可在高端GPU上以60Hz生成最先进的720p深度图。基于我们的洞察力,深度架构非常适合以极高的亚像素精度推断匹配,我们证明了非常低的分辨率成本量足以实现与以全分辨率操作的传统立体匹配系统相当的深度精度。为了实现空间精度,我们以多尺度方式应用边缘感知滤波阶段,以提供高质量的输出。总之,这项工作的主要贡献如下:

  1. 我们证明了深层结构的子像素匹配精度比传统的“立体方法”要高一个数量级。
  2. 我们证明了网络的高亚像素精度允许以非常低的分辨率cost volume实现传统立体匹配的深度精度,从而产生极其有效的算法。
  3. 我们表明,之前在深层体系结构中引入成本量的工作是针对该任务进行了过度参数化的,以及如何以极低的精度降低系统的运行时间和内存占用量。
  4. 一种新的分层深度重建层,能够执行保留边缘的高质量上采样。
  5. 最后,我们证明了所提出的系统在几个基准测试中获得了令人信服的结果,同时在高端GPU架构上实时。

研究背景

为了从立体图像中获得深度估计值,一个典型的立体匹配算法包括四步:匹配代价计算,代价聚合,优化和视差精细化。当前最前沿的研究聚焦于如何利用CNNs准确的计算匹配代价和如何利用半全局匹配(SGM)去优化视差图。

传统匹配算法比较经典的稠密匹配算法是SGM算法,半全局立体匹配算法Semi-Global Matching,SGM由学者Hirschmüller在2005年所提出1,提出的背景是一方面高效率的局部算法由于所基于的局部窗口视差相同的假设在很多情况下并不成立导致匹配效果较差;而另一方面全局算法虽然通过二维相邻像素视差之间的约束(如平滑性约束)而得到更好的匹配效果,但是对内存的占用量大,速度慢。为了结合两者的优点,同时避免两者的缺点,SGM算法依旧采用全局框架,但是在计算能量函数最小化的步骤时使用高效率的一维路径聚合方法来代替全局算法中的二维最小化算法,使用一维最优来近似二维最优,得到的视差图在效果上和全局算法没有太大的差别,但是算法效率却有非常大的提升。

Zbontar 和 LeCun 设计了一个深层的Siamese网络去计算匹配代价,利用一对9*9的图块,该网络被训练去学习预测图块之间的相似性。他们的方法同样采用了经典的立体匹配流程,包括代价聚合,SGM和其他视差优化方法来提高匹配结果。更进一步的研究用于改善立体深度估计,Luo等人提出一种更快的Siamese网络,该网络将匹配代价计算转化为多标签的分类问题。Shaked 和 Wolf 提出一个高速网络(highway network)来计算匹配代价和一个全局的视差网络去预测视差置信度得分,这方便进一步优化视差图。近来出现了一些高性能的双目神经网络,但是其显存与运行速度远远达不到实际应用的场需求,基于此,ECCV2018中stereonet的出现大大提高的双目系统的运行速度。

3.网络结构

3.1预知识

给定输入图像对,我们旨在训练端到端视差预测方法。训练此类方法的一种方法是利用通用编码 - 解码网络。编码器通过一系列收缩层将输入提取到瓶颈,该瓶颈捕获与训练中的任务最相关的细节,并且解码器重建从中捕获的表示的输出。瓶颈层通过一系列扩展层。虽然这种方法在包括深度预测在内的各种问题上都取得了广泛的成功[37,26,42],但它们在立体算法中缺乏一些我们关心的特性。

  1. 首先,这种方法没有捕捉到关于立体匹配问题的任何几何信息。立体预测首先是对应匹配问题,因此我们的目标是设计一种算法,无需重新训练就可以调整到具有不同分辨率和基线的不同立体摄像机。
  2. 其次,我们注意到,对于预测是像素到像素映射而不涉及任何输入扭曲的问题,类似的方法显然是过度的,因此可能超过度参数化

我们的立体匹配方法采用了设计,减轻了结构问题,并使用经典方法来解决它的设计,类似于[29](GC-Net),同时使用紧凑的上下文感知像素到像素的网络来产生边缘保留输出。 我们模型的体系结构概述如图1所示,并在以下部分中详述。

上图所示为网络架构,蓝色方框之前的部分是粗粒度的深度估计,这部分首先通过 Encoder 的结构进行图像特征提取,然后将左右两个图片的特征得到相应的 Cost Volume, 之后利用三维卷积操作得到 1/8 分辨率的深度图。最终分层次地重新获得结果以恢复小细节和薄结构。

3.2稀疏预测:cost volume 滤波

立体匹配系统通常在解决对应匹配问题。 传统上,该问题归结为通过沿着其扫描线发现两个正向图像之间的像素对像素匹配来形成视差图。 对平滑和边缘保留解决方案的想法,导致了诸如cost volume过滤[25]之类的方法,该方法通过形成和处理可共同解决每个像素上所有候选视差的3D量来显式地模拟匹配问题。 虽然[25]直接使用颜色值进行匹配,但我们在用于匹配的每个像素处计算特征表示。

Feature Network:这里的的第一步是找到有意义的图像patch,可以在以后的阶段中进行精确匹配。我们回想起立体匹配存在无纹理区域的问题,传统方法通过使用卷积来汇总成本来解决此问题。通过确保功能是从较大的接收域中提取出来的,我们在网络中复制了相同的行为。特别是,我们使用在两个输入图像之间共享权重的特征网络(也称为孪生网络)。我们首先使用stride=2的K个5 * 5卷积对输入图像进行主动下采样,在整个下采样期间将通道数保持在32。在我们的实验中,我们将K设置为3或4。然后应用6个残差块[23],这些残差块使用3 * 3卷积,批归一化[27]和Leaky ReLu激活(alpha = 0.2)[36]。最后,使用不带BN或激活的3*3卷积的层对它进行处理。输出是降采样图像中每个像素处的32维特征向量。这种低分辨率表示很重要,原因有两个:1)它具有较大的接收视野,对于无纹理区域很有用。 2)保持特征向量紧凑。

Cost volume: 我们通过获取像素的特征向量,与匹配候选特征向量之间的差来形成粗略分辨率的成本量。我们注意到,一般而言,不对称表征表现良好,并且在我们的实验中将两个向量连接起来可获得相似的结果。
在此阶段,传统的立体方法将使用“赢家通吃”(WTA)方法,该方法选择两个特征向量之间具有最小欧几里德距离的视差。取而代之的是,在这里我们让网络通过运行多个卷积和非线性运算来学习正确的度量。特别是,为了在整个空间域和视差域中聚合上下文,我们使用4个3D卷积(每一个的大小为3 3 3),批量归一化和泄漏ReLu激活来填充成本量。然后应用不使用批量归一化或激活的最终3 3 3卷积层,然后过滤层在每个像素和候选视差上产生一维输出。

对于大小为W*H的输入图像,并评估D个候选视差的最大值,我们的成本量为K个向下采样层的大小为W/2^K *H/2^K*(D+1)/2^K,其中K为下采样的层数。 在StereoNet的设计中,我们针对的是一种紧凑的方法,该方法具有较小的内存占用空间,可以部署到移动平台。 与[29]在四分之一分辨率下形成功能表示并跨多个级别汇总总成本量不同,我们注意到,大多数时间和计算都花费在较高分辨率上进行匹配,而大多数性能提升来自较低分辨率下的匹配。 我们在实验中验证了这一说法,并表明从速度提高的角度来看,性能损失并不明显。 其原因在于,与传统的立体声匹配方法相比,该网络实现了更高的子像素精度。 因此,不需要以更高的分辨率进行匹配。

Differentiable arg min:我们通常会使用arg min在所选择的成本量中选择每个像素的最小成本与差异。 对于像素i和视差值C(d)上的成本函数,所选视差值di定义为:

但是,由于arg min是不可微的函数,因此无法学习。 我们在我们的方法中考虑了两个不同的变体。 第一个是soft aig min,最初是在[6]中提出并在[29]中使用。 实际上,所选差异是所有差异值的softmax加权组合:

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

在采样过程中进行差异化使用梯度估计技术,通过最大程度地减少随机过程的预期损失来学习差异的分布。虽然这项技术起源于强化学习中的政策梯度方法[57],但最近被表述为随机计算[50],并在[5]中应用于基于RANSAC的摄像机定位。另外,我们讨论的两个可区分变量之间的相似性类似于软注意力网络与硬注意力网络之间的相似性[58]。
不幸的是,即使采用各种方差减少技术,概率方法在我们的实验中也表现不佳[58]。我们希望这是因为它保留了艰难的选择。这个特性在许多应用中可以说是至关重要的,但是在我们的模型中,它被soft arg min 还原亚像素精度值的能力所取代。强化学习中连续动作空间的文献支持了这一结论[34]。因此,软arg min选择的收敛速度更快,更易于优化,这是我们在实验中选择的方法。

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

依赖粗匹配的不利之处在于,所产生的近视输出缺乏细节。 为了保持紧凑的网络设计,我们通过学习保留边缘的改善网络来解决这个问题。 我们注意到,该网络在此阶段的工作是,使用颜色信息输入作为指导来扩大或侵蚀视差值以融合到高频细节中,因此该紧凑型网络可以学习像素到像素的映射,类似最近的计算图像工作[8,7,20]是一种合适的方法。 具体来说,我们要求仅发现残差(或三角视差)的改善网络来添加或减去粗略预测。

我们的优化网络,将双线性上采样到输出尺寸的视差,以及调整到相同尺寸的彩色图片作为输入。最近的研究显示,反卷积会产生棋盘状伪像,因此我们选择使用双线性上采样和卷积来代替反卷积操作[40]。级联的彩色图和视差图首先穿过3*3卷积层,该卷积层输出32维表示。然后将其传递给6个残差块, 再次,使用3*3卷积,BN和Leaky ReLu激活(alpha = 0.2)。我们在这些块中使用膨胀卷积来从更大的上下文中进行采样,而不会增加网络规模[43]。我们将残差块的膨胀因子分别设置为1、2、4、8、1和1。然后使用不没有BN或激活层的3*3卷积层处理此输出。该网络的输出是一维视差残差,然后将其添加到先前的预测中。我们对总和应用ReLu,以将差异约束为正。

在我们的实验中,我们使用上文描述的网络的级联,对输出进行了层次化的评估,并应用了一个将一次粗略输出提升到全分辨率的像素。 图2说明了层次结构每个级别的中继层的输出以及在每个级别添加的残差以恢复高频细节。 该网络的行为使人联想到双边联合上采样[32],的确,我们相信该网络是一种学习的边缘感知上采样功能,它利用了引导图像。

3.4 Loss Function

我们使用带地标的立体声数据以完全监督的方式训练StereoNet。 我们最小化层次损失函数:

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

3.5 Implementation details

我们使用Tensorflow [1]实施和培训了StereoNet。 我们所有的实验都使用RMSProp [24]进行了优化,其学习率呈指数衰减,最初设置为1e-3。 首先将输入数据归一化为范围[-1; 1]。 与[29]不同,我们使用1的批量大小,并且由于较小的模型大小而不进行裁剪。
我们的网络需要大约15万次迭代才能达到收敛。 我们发现,从直觉上讲,同时针对图像对使用左右视差图进行训练显着缩短了训练时间。 在较小的数据集(从头开始训练是徒劳的)上,我们对预训练模型进行了进一步的50k迭代调整。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值