浅谈立体匹配中的新式应用场景

2020 年 10 月 15 日 PaperWeekly


©PaperWeekly 原创 · 作者|张承灏
单位|中科院自动化所
研究方向|场景感知和深度估计

基于深度学习的立体匹配(stereo matching)是根据左右视角的 RGB 图像来进行视差(深度)估计,两张图像的成像条件是具有相同内参的两台彩色相机,在同一时刻成像,并且经过水平校正。

常用的立体匹配数据集包括合成数据集 SceneFlow 和真实数据集 KITTI 2012/2015,MiddleBury,ETH3D 等。目前,在此场景下开展的研究主要可以分为以下几类:
  • Accurate Stereo Matching:以有监督学习的方式提升立体匹配算法在常用数据集上的准确率;

  • Real-Time Stereo Matching:探索更快速的立体匹配算法以满足实时性需求;

  • Un-/Self-supervised Stereo Matching:不依赖视差标签的无监督/自监督立体匹配;

  • Adaptive Stereo Matching:解决合成数据和真实数据领域偏差的自适应立体匹配;

  • Efficient Stereo Matching:探索轻量级的、内存占用低、参数量少的更高效的立体匹配;

  • Confidence  Estimation & Measures:立体匹配中的置信度/不确定性估计和度量;

今年的顶会上涌现出一些新的立体匹配应用场景研究,它们不同于上述研究方向,而是基于立体匹配问题的引申和拓展。本文将从新场景,新应用和新数据三个方面来介绍相关的开源研究工作。


新场景


论文标题:

360SD-Net: 360° Stereo Depth Estimation with Learnable Cost Volume


论文来源:

ICRA 2020


论文链接:

https://arxiv.org/abs/1911.04460


论文代码:

https://albert100121.github.io/360SD-Net-Project-Page/

1.1 概述

经典的立体匹配主要用于对普通相机拍摄的左右视角图像进行水平方向的视差估计,左右视角图像满足透视投影。这篇论文提出了一个新场景:在上下视角的 360° 全景图像上进行球面视差估计,使得能够对感知到的整个场景进行三维重建。

上图展示了利用两个 Insta360® ONE X 相机采集全景图像的过程。将底部图像(bottom)作 180 度翻转,即可与顶部图像(top)进行配对来估计视差。360° 全景图像有以下两个特点:

  • 将三维空间中的水平线投影到二维平面时并不总是保持水平,这意味着它不满足经典立体匹配中的水平极线约束。因此,作者采用上下(top-bottom)两个相机采集,使得上下视角图像在竖直方向是对齐的;
  • 图像的顶部像素和底部像素比那些位于赤道线附近的像素拉伸得更多。因此作者提出了新的 360SD-Net 来专门学习竖直对齐的全景图像的视差/深度。

1.2 方法

下面首先介绍在 360° 全景图像下的视差/深度的几何定义,之后介绍论文提出的 360DS-Net。
球面视差

上图展示了在上下相机拍摄设置下的球面视差的几何关系图。设 分别是三维空间中的点 在顶部相机和底部相机平面上的投影点。 和  分别是投影向量,而 分别是投影向量与南极方向的夹角。
那么,顶部图像和底部图像之间的视差定义为两个夹角的差,即 。而相对于顶部相机的深度定义为 的范数,即:

其中 是顶部相机和底部相机的基线。在透视投影立体匹配中视差和深度的关系是固定的,从上述公式可以看出,在全景图像立体匹配中,视差和深度的关系是随着角度 变化的。因此,在实际中作者没有估计不太直观的视差,而是估计深度信息。

360SD-Net


上图是 360SD-Net 的整体结构,其主体框架来自于 PSMNet,包括三个组成部分:1)两个分支的特征提取模块用来提取双目全景图像的特征和极角的融合特征;2)用于扩大感受的 ASPP 模块;3)用于非线性球面投影的可学习的 cost volume。

最后采用 Stacked-Hourglass 来回归视图,采用 smooth L1 损失监督。

Polar Angle:根据球面视差的定义,视差的计算和投影向量的极角有关,这里作者引入极角作为额外的输入分支(如上图(a)),用来增加几何信息。采用残差模块提取 RGB 图像的特征,用三层 2D 卷积来提取极角的特征,之后将二者的特征进行融合,这比直接将二者的 concat 作为输入要更好。

ASPP Module:由于全景图像比常规图像具有更大的感受野,因此作者采用有空洞卷积的 ASPP 模块(如上图(b))来提取多个尺度的特征,并且增加特征提取的感受野,以适应全景图像。

Learnable Cost Volume:已有的深度立体匹配采用固定步长的像素搜索策略来构建 cost volume,然而这种固定步长的逐像素搜索策略与来自极角的几何输入信息是不一致的。

因此,作者采用平移滤波器(shifting filter)来搜索最优的像素搜索步长。 可学习的 cost volume(LCV)通过一个 的 2D 卷积来实现(如上图 (c)),这种设计使得特征通道能够在竖直方向移动,符合全景图像的特点和球面视差的定义,从而保留全景图像的完整视图。

1.3 实验

360°全景图像数据集

作者利用 Minos 虚拟环境和 Stanford3D 点云的重投影,通过 Matterport3D 采集了两个具有照片真实感的数据集 MP3D 和 SF3D。这两个 360° 双目全景图像数据集各包含 1602/800 张训练图像,431/200 张验证图像和 341/203 张测试图像,其分辨率为 1024*512,包含深度标签。

这为后续研究全景图像的球面视差估计提供了新的数据集。作者在这些合成图像上训练并在真实场景下测试。为此,作者还采用 Insta360® ONE X 相机采集了真实场景的 360° 全景图像。

实验结果

首先是和 state-of-the-art 的立体匹配模型进行对比,可以看到 360SD-Net 在 MAE 和 RMSE 两个指标上均取得了最佳的效果。

作者还进行了消融实验来验证各个模块的有效性,包括 Pc(极角的融合特征),ASPP 和 LCV。这里 baseline 是采用固定步长的逐像素搜索策略来构建 cost volume,LCV(repli)是采用复制填充而不是零填充。

最后作者还在自己搜集的真实 360° 全景图像上进行了三维重建可视化,更多定量和定性的实验结果可以参考原论文。


新应用

论文标题:

Bi3D: Stereo Depth Estimation via Binary Classifications


论文来源:

CVPR 2020


论文链接:

https://arxiv.org/abs/2005.07274


论文代码:

https://github.com/NVlabs/Bi3D

2.1 概述

已有的立体匹配算法需要对每个像素点的精确视差值进行估计,虽然深度立体匹配模型在准确率上逐步提升,但是也需要较大的计算消耗。

在自动驾驶领域,有时我们并不需要估计十分准确的视差值,例如我们只需要知道目标是在某一个深度平面 的前方还是后方即可,这可以在很短时间内计算出来,且不需要消耗过多的计算资源。
本文在经典立体匹配场景上提出新的应用,即对深度进行二值化估计,从而平衡准确率和计算时延。

如上图所示,在自动驾驶场景上 (a),给定一个深度平面  ,可以将场景中的目标分为在深度平面的前方和后方两类 (b),这就是二值化深度估计。
如果计算时延允许,可以进一步引申出量化深度估计,即将深度值量化为 N 个层次,从而进行层次化的深度估计 (c),量化的层次与计算复杂度成线性正相关;
另外,也可以选择一个连续的深度范围 ,在深度范围内进行连续深度估计,在深度范围之外的进行二值化深度估计 (d);最后,能够对整个场景进行全深度估计 (e)。作者提出的这一套应用的核心是二值化深度估计网络 Bi3D。

2.2 方法

给定左右视角的图像 ,可以通过选择一系列的候选视差值 来构建平面代价体(plane sweep volume,PSV)。PSV 中相对参考左图的每个平面可以通过下式计算:

其中 是根据单应矩阵 的 warping 操作。给定匹配代价 ,已有的立体匹配算法通过 arg min 来估计逐像素的视差值。

二值深度估计

不同于上述直接回归逐像素视差,二值深度估计根据视差向量的方向特性来估计置信度。即,根据左右视角的关系,视差向量的方向都是向左的;在给定视差 下,对右图进行 warping 操作后,若在深度平面 前方的,那么视差向量方向保持向左不变;若在深度平面 后方的,视差向量方向会翻转变成向右。
根据上述特性,可以将二值化深度估计建模为基于神经网络的二分类分类器,输入是双目图像和 PSV,输出映射到 ,即:
其中 是神经网络的输出, 是 sigmoid 函数,采用二进制交叉熵 BCE 损失进行训练。 可以看做是一个置信度估计,越接近 0 或者 1,表示该像素越可能是在深度平面前方或者后方。

上图是 Bi3D 的网络结构图,利用 FeatNet 提取左右图特征,之后对右图进行 warping,将左图和 warp 后的右图作为 SegNet 的输入,再经过 SegRefine 优化得到二值化置信度估计。

上图中,横轴应为深度值,而纵轴是置信度 C。对于目标 A,在 的前方,网络对此十分确信,因此输出值很接近 0;对于目标 C,在 的前方,网络也十分确信的输出接近 1 的值;而对于目标 B,它正好落在分界平面上,其置信度估计会趋近于 0.5,使得很难判断其是在分界平面的前方还是后方。
对于这种不可避免的分类噪声,作者采用曲线下面积(AUC)来计算深度,简单并且有效,它可以公式化为求和的形式:

量化深度估计

如果计算时间允许,而我们又只需要较为粗略的深度估计信息,可以将整个深度范围量化为多个深度平面。给定多个并行的平面 ,二分类器的置信度 和累计概率分布 CDF 有关:
这样可以确定像素点的深度值在某两个深度平面之间的概率:

如果要得到 个量化层级,就需要采用 个平面来划分,即将之前的二值深度估计网络运行 次即可。

选择深度估计

为了更进一步精细化深度估计信息,可以选择一个深度估计的范围 ,对于在此范围前方和后方的目标进行二值化深度估计,例如之前图中的目标 A 和目标 C,对于在该范围的深度进行连续估计,作者设计了一个新的网络来实现。


在上图中,对每个视差层级运行一次 Bi3DNet 中的 SegNet 模块,之后利用编码-解码结构的 RegNet 提取特征,构建匹配代价体 cost volume,从而得到各个视差层级的置信度估计;


最后利用 AUC 将置信度估计转换为深度信息,再利用 DispRefine 视差精修模块得到最终的视差图。该网络不仅适用于选择深度估计,还可以进行全深度估计,即将选择的深度范围扩展到整个深度值域。

2.3 实验

作者采用 SceneFlow 和 KITTI 双目数据集进行实验。在定量的比较中,在 SceneFlow 数据集上和 SOTA 相比排第二,在 KITTI benchmark 上比最早的 GC-Net 等要好,但是不如最近的 SOTA,因为 Bi3D 主要是面向新应用,全深度估计只是其中一个方面。

在定性实验中,结合二值深度估计和选择深度估计,对于真实场景中较远的目标只需要进行二值深度估计,以判断其大致深度,节约时间;当目标靠近后,进行选择深度估计,估计其在视野前方精细化的深度信息。

Bi3D 可以更专注于对特定区域的深度进行精细化的估计,而 GA-Net 这种全深度估计则在固定深度范畴不如 Bi3D。这表明通用的方法往往不能在每个特定应用上都做得很好。


新数据

论文标题:

Learning Stereo from Single Images


论文来源:

ECCV 2020


论文链接:

https://arxiv.org/abs/2008.01484


论文代码:

https://github.com/nianticlabs/stereo-from-mono/

3.1 概述

真实场景下的立体匹配数据集往往难以进行深度/视差标签的采集或标注,因此已有的真实数据集的规模都很小,例如 KITTI,MiddleBury 和 ETH3D。

一方面,可以利用计算机图形学构造 3D 模型,通过模拟器来构建合成图像,但是合成图像和真实图像之间存在很大的领域偏差(domain gap),主要表现在色彩、纹理信息等方面。

另一方面,可以通过真实图像的纹理贴图来构建更符合真实场景的合成图像,但是在场景布置,物体形状和色彩选择等方面都需要大量的人工设计,并且场景渲染也需要较大的计算资源。

这篇论文提出一种新的立体匹配数据集构造方法,无需人工数据采集和合成图像构建,通过已有的单目深度估计算法和其他任务中的单目自然图像来构建双目立体匹配数据集,比如用于目标检测的 COCO 数据集就具有大量真实场景的数据集。

这种方法可以构造超大规模的双目立体匹配数据集,虽然单目深度估计算法估计的视差并不都是准确的深度信息,但是通过大量带有噪声标签的监督训练仍然能够提升立体匹配算法在各种真实场景下的泛化能力。

3.2 方法

本文的目标是构建双目深度估计训练的数据集,它可以表示为 。这里 来自已有的数据集中的自然图像, 的构造过程如下:
  1. 利用已经训练好的单目深度估计网络 来对左图进行深度估计,得到深度信息 是由估计的深度信息根据设定的相机参数转换得到的视差标签 ,其中 是从 中随机采样的尺度因子,这样可以保证得到的视差范围具有多样性。
  2. 合成的右图 由左图 和估计的视差 通过 warping 操作得到,即将 中的每个像素 向左平移 个像素,再利用插值法合成
上述构造方法还存在两个问题:
  1. 由于遮挡的原因, 中会出现缺失的像素点;另外,多个像素点可能最终落在右图中的同一个像素点上,由此带来冲突。
  2. 单目深度估计的不准确会造成深度图的不连续,从而在构造右图时出现很多野点(flying pixels)。
为了解决上述两个问题,作者分别采取深度图锐化,遮挡和冲突处理来构建更真实的右图,整个数据生成流程如下:

遮挡和冲突处理

处理遮挡:被遮挡的像素在右图中会成为没有填充的黑洞,因此处理遮挡的方法是将其用合适的纹理填充。作者从训练图像中随机选择图像 的纹理信息,利用 color transfer 技术将  的风格迁移到与 保持一致得到 ,之后利用 对应位置的像素来填充 中缺失的空洞。
处理冲突:当多个像素点对应到右图中的同一位置时,作者采用视差值最大的像素点作为最终的选择,因为这些像素点彼此很近,应当保证在两个视角中都是可见的。
深度图锐化处理

从上图中可以看出,单目深度估计的不准确会产生不连续的深度图,从而在合成的右图 出现如(b)图中的 flying pixels。
作者采用深度锐化技术来解决,即对深度图采用 Sobel 边缘算子进行处理,将响应大于 3 的像素点作为野点而去除。去除后能得到更加锐化的右图(c)。利用锐化后的双目图像得到的视差估计结果会更准确,如(e)和(f)的比较。

3.3 实验

数据集

作者通过整合多个已有的自然图像数据集来构造双目立体匹配数据集,将其称为 Mono for Stereo(MfS)数据集,MfS 数据集包括 COCO 2017,Mapillary Vistas,ADE20K,Depth in the Wild 和 DIODE。而测试数据集是常用的立体匹配数据集 KITTI 2012/2015,MiddleBury 和 ETH3D。

上图展示了训练场景和测试场景,可以看出通过从单目图像中构造的双目数据来训练比直接采用合成数据 SceneFlow 来训练得到的效果要好,在失真和野点等现象上减少的比较明显。

实验结果

作者采用 PSMNet 作为视差估计的模型,同时也验证了其他模型,如 iResNet 和 GA-Net。而单目深度估计采用的是基于 ResNeXt-101 骨架的 MiDaS 网络,在单目和双目混合数据上进行的训练。通过实验,作者得到出了以下 6 个结论:
  1. 相比于在合成数据上训练,本文的方法能够获得性能更好,泛化更强的结果;
  2. 对单目深度估计的结果具有鲁棒性,不论单目数据的来源,均能得到较好的泛化结果;
  3. 消融实验表明论文中的设计是有效的;
  4. 在各种立体匹配模型上均能获得性能提升;
  5. 随着构造的立体匹配数据集规模越大,相应的性能会越高;
  6. 在 MfS 数据集上预训练再在真实数据集上微调的性能比原来在合成数据集上预训练再微调要好。

上表的实验结果对应于结论(5),以上6个结论在论文中均有相应的实验支撑,感兴趣的同学可以对照论文详细阅读。


小结

本文从新场景,新应用和新数据三个方面介绍了近来顶会上在立体匹配领域的一些新的研究思路。新场景是在 360 度全景图像上的球面视差估计,全景图像不仅仅在立体匹配领域开始受到关注,在语义分割等领域也有不少研究。

新应用是在将精确的视差估计简化为二值化、多级量化的视差估计,能够在资源较少的情况下快速实现目的。新数据是通过单目深度估计和已有的数据集来构造双目数据集,这种思路在图像分类等领域已有不少应用,在立体匹配领域尚属首次。

这些工作与以往的 follow 性研究工作不同,能够为今后的研究提供一些新的启发和思路。



更多阅读




#投 稿 通 道#

 让你的论文被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。


📝 来稿标准:

• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 

• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 

• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志


📬 投稿邮箱:

• 投稿邮箱:hr@paperweekly.site 

• 所有文章配图,请单独在附件中发送 

• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



关于PaperWeekly


PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。



登录查看更多
2

相关内容

专知会员服务
45+阅读 · 2020年12月4日
【NeurIPS 2020】一种端到端全自由度抓取姿态估计网络简介
专知会员服务
19+阅读 · 2020年10月18日
专知会员服务
18+阅读 · 2020年10月13日
专知会员服务
86+阅读 · 2020年8月2日
最新《深度学习自动驾驶》技术综述论文,28页pdf
专知会员服务
153+阅读 · 2020年6月14日
最新《自然场景中文本检测与识别》综述论文,26页pdf
专知会员服务
69+阅读 · 2020年6月10日
3D目标检测进展综述
专知会员服务
187+阅读 · 2020年4月24日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
169+阅读 · 2020年2月8日
计算机视觉方向简介 | 多视角立体视觉MVS
计算机视觉life
14+阅读 · 2019年10月10日
立体匹配技术简介
计算机视觉life
27+阅读 · 2019年4月22日
【泡泡一分钟】无监督学习的立体匹配方法(ICCV-2017)
泡泡机器人SLAM
8+阅读 · 2018年10月9日
Arxiv
0+阅读 · 2020年11月26日
CoCoNet: A Collaborative Convolutional Network
Arxiv
6+阅读 · 2019年1月28日
VIP会员
相关VIP内容
专知会员服务
45+阅读 · 2020年12月4日
【NeurIPS 2020】一种端到端全自由度抓取姿态估计网络简介
专知会员服务
19+阅读 · 2020年10月18日
专知会员服务
18+阅读 · 2020年10月13日
专知会员服务
86+阅读 · 2020年8月2日
最新《深度学习自动驾驶》技术综述论文,28页pdf
专知会员服务
153+阅读 · 2020年6月14日
最新《自然场景中文本检测与识别》综述论文,26页pdf
专知会员服务
69+阅读 · 2020年6月10日
3D目标检测进展综述
专知会员服务
187+阅读 · 2020年4月24日
【综述】自动驾驶领域中的强化学习,附18页论文下载
专知会员服务
169+阅读 · 2020年2月8日
相关资讯
计算机视觉方向简介 | 多视角立体视觉MVS
计算机视觉life
14+阅读 · 2019年10月10日
立体匹配技术简介
计算机视觉life
27+阅读 · 2019年4月22日
【泡泡一分钟】无监督学习的立体匹配方法(ICCV-2017)
泡泡机器人SLAM
8+阅读 · 2018年10月9日
Top
微信扫码咨询专知VIP会员