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

本文主要是介绍论文阅读笔记——StereoNet: Guided Hierarchical Renement for Real-Time Edge-Aware Depth Prediction,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言:

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

双目匹配可以得到环境中的三维深度信息,进而为机器人,无人车,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迭代调整。

 

这篇关于论文阅读笔记——StereoNet: Guided Hierarchical Renement for Real-Time Edge-Aware Depth Prediction的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071501

相关文章

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓