• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

论文简述和翻译PSMNetPyramid Stereo Matching NetworkCVPR 2018

武飞扬头像
华科附小第一名
帮助1

一、论文简述

2. 发表年份:2018

3. 发表期刊:CVPR

4. 关键词:端到端训练、连接体、空间金字塔池化、堆叠沙漏的3D CNN、回归

5. 探索动机:仅仅利用不同视角下的强度一致性约束已经不足以在不适定区域得到精确的对应关系的估计,而且在弱纹理区域这个约束是无效的,好的解决方式是将全局上下文信息融合到立体匹配中。

6. 工作目标:如何有效地利用上下文信息?

7. 核心思想:有两个上下文信息的主要模块:SPP模块和3D CNN。SPP模块结合了不同层次的特征图来形成代价体。堆叠沙漏的3D CNN进一步通过重复的自上而下/自下而上的过程来学习正则化代价体。

8. 实现方法:

  1. 左右图像输入权重共享的由CNN组成的管道机制计算一元特征
  2. SPP模块通过连接不同尺寸的次级区域的表示获取融合后的特征
  3. 将左右图像在视差维度连接构建4D代价体
  4. 使用3D CNN(基础结构或堆叠沙漏结构)进行代价正则化
  5. 使用soft argmin回归亚像素级别的视差
  6. 使用平滑L1损失函数计算loss

9. 实验结果:在KITTI数据集上达到SOTA。

10.论文及代码下载:https://openaccess.thecvf.com/content_cvpr_2018/papers/Chang_Pyramid_Stereo_Matching_CVPR_2018_paper.pdf

GitHub - JiaRenChang/PSMNet: Pyramid Stereo Matching Network (CVPR2018)

二、论文翻译

Pyramid Stereo Matching Network

摘要

最新的研究表明,立体图像对的深度估计可以作为有监督的学习任务,并通过卷积神经网络 (CNNs) 来解决。然而,目前基于块匹配的Siamese网络的结构没有利用上下文信息寻找不适定区域(遮挡区域,弱纹理区域等)中对应关系的能力。为了解决这个问题,我们提出了PSM-Net,一个金字塔立体匹配网络,它主要由两个模块组成:空间金字塔池化和3D卷积神经网络。金字塔池化模块通过聚合不同尺度和不同位置的上下文信息,充分利用全局上下文信息来构建代价体。3DCNN通过使用多个堆叠的沙漏网络,并且与中间监督进行结合,将代价体正则化。我们已经在多个数据集评估我们的方法。在2018年3月18日前此方法依旧排在KITTI2012和2015排行榜的第一位。PSM Net的代码可在连接中下载。

1. 介绍

立体图像的深度估计对于计算机视觉的应用至关重要,包括车辆的自动驾驶、3D模型重建以及物体的检测与识别。给定一对校正后的立体图像,深度估计的目标就是计算参考图像上每个像素的视差d。视差是指左右两幅图像上对应像素在水平方向上的位移。对于左图中的像素(x,y),它在右图中对应点的坐标为(x-d,y),通过f*B/d可以计算该像素的深度值,其中f是相机的焦距,B是两个摄像头之间的距离。

典型的立体匹配管道机制包含基于匹配代价去寻找对应点和后处理过程。近些年,在MC-CNN中CNN已经用于学习如何匹配对应点。早期的方法使用CNNs通过计算相似性来解决对应关系的估计问题,也就是计算一对图像块的相似性得分进一步判断他们是否匹配。尽管与传统方法相比,CNN在速度和精度方面都获得了显著的提高,但仍然很难在不适定区域找到精确的匹配点,例如遮挡区域,重复纹理区域,弱纹理区域和反光表面等。仅仅利用不同视角下的强度一致性约束已经不足以在不适定区域得到精确的对应关系的估计,而且在弱纹理区域这个约束是无效的。因此,来自于全局上下文信息的区域支持必须融合到立体匹配中。

当前基于CNN立体匹配方法的一个主要的问题就是如何有效地利用上下文信息。一些研究尝试结合语义信息去尽力改进代价体或视差图。Displets的方法通过建模3D车辆来利用目标信息,去解决立体匹配中有歧义的点。ResMatchNet学会测量视差图的反射置信度,以提高在不适定区域的性能。GC-Net采用编码-解码结构融合了多尺度的特征信息以实现匹配代价体的正则化。

在本文中,我们提出一个全新的金字塔立体匹配网络(PSMNet),该网络在立体匹配过程中利用全局上下文信息,并且使用了空间金字塔池化(SPP)和空洞卷积来扩大感受野。这样的话,PSMNet将像素级别的特征扩展到具有不同尺度感受野的区域级别的特征,并结合全局和局部特征信息来构建代价体,因此获得更加可靠的视差估计值。此外,本文还设计了一个结合中间监督的堆叠沙漏3D CNN,用于正则化代价体。堆叠的沙漏3D-CNN以自上而下/自下而上的方式重复计算匹配代价体,进一步提高了全局上下文信息的利用率。

本文的主要贡献如下:

  • 本文提出了不涉及后处理过程即可实现立体匹配的端到端的学习框架
  • 本文引入了将全局上下文信息结合到图像特征的金字塔池化模块
  • 本文提出了在代价体中扩展上下文信息的局部支持的堆叠沙漏的3D CNN
  • 本文提出的算法在KITTI数据集中达到最高精度

2. 相关工作

为了从立体图像中获得深度估计,文献中提出了许多计算匹配代价和优化代价体的方法。根据[25],一个典型的立体匹配算法包括四个步骤:匹配代价计算,代价聚合,优化和视差改进。

当前最前沿的研究集中在如何使用CNNs精确地计算匹配代价以及如何利用半全局匹配(SGM)去来改进视差图。Zbontar和LeCun首次使用深层的Siamese网络计算匹配代价,利用一对9X9的图像块,训练网络学习预测图像块之间的相似性。他们的方法同样采用了经典的立体匹配过程,包括代价聚合、SGM和其他视差改进方法来改善匹配结果。接下来的研究改善了立体深度估计。Luo等人提出一种更快的Siamese网络,该网络将匹配代价的计算转化为多标签的分类问题。Shaked和Wolf提出一个用于计算匹配代价的高速网络(highway network)和一个用于预测视差置信度得分的全局视差网络,这有助于进一步改进视差图。

一些研究主要聚焦于视差图的后处理方面。基于物体通常具有一个规则的结构并且不会随意变化的事实,Displets提出了新的算法,用车辆的3D模型解决弱纹理区域和反光表面的匹配模糊问题。此外,Gidaris和 Komodakis提出一种网络架构,通过检测错误标签,用新标签代替并优化新标签的方法(DRR)来改进标签。他们在没有后处理的情况下利用该网络得到了效果很好的视差图。SGM-Net学习预测SGM的惩罚项来代替人工调整的惩罚项以实现正则化。

近年来,端到端的网络已经发展成不需要后处理过程就可以预测整个视差图的网络。Mayer等人提出了用来视差(DispNet)和光流(FlowNet)估计的端到端的网络。他们也提供一个用于训练网络的大型合成数据集(Scene Flow)。Pang等人拓展了DispNet并且首次提出了一种称为级联残差学习(CRL)的两级网络。第一级和第二级网络分别计算视差图和对应的多尺度的残差。接着两级网络的输出相加构成最终的视差图。此外,Kendall等人首次提出了GC-Net网络,一种使用3D卷积进行代价体正则化的端到端网络。上面提到的端到端方法都利用多尺度特征进行视差估计。DispNet和CRL多次使用层次信息,将来自较低层次的特征与来自较高层次的特征连接起来。CRL还使用了层次监督来计算不同分辨率下的视差。GC-Net使用编码-解码结构将代价体正则化。这些方法的核心思想是结合上下文信息去减少模糊区域的误匹配情况,进而改善深度估计。

在语义分割领域,聚合上下文信息对于标记物体类别同样至关重要。主要有两种利用全局上下文信息的方法:编码-解码结构和空间金字塔池化。编码-解码结构的核心思想是通过跳跃连接合并由自上而下和自下而上的信息。全卷积网络(FCN)是首次提出聚合由粗糙到精细的预测以改善分割结果的算法。U-Net用聚合由粗糙到精细的特征来代替聚合由粗糙到精细的预测,并在生物医学图像中实现良好的分割结果。包括SharpMask、RefineNet和标签改进网络在内的更多研究遵循了这一核心思想,提出了更加复杂的结构来融合多尺度特征。此外,一些网络使用堆叠的多层编码-解码结构以改进特征融合,这种编码-解码结构被命名为沙漏结构。

基于在深层网络中实际的感受野要远小于理论的感受野的尺寸这一实际情况,金字塔池化被提出。ParseNet证明了使用FCN的全局池化扩大了经验感受野,以实现在整个图像级别提取信息,进而改善语义分割的结果。DeepLab v2提出了用于嵌入多尺度特征的多孔空间金字塔池化 (ASPP),其中包含具有不同膨胀率的平行空洞卷积。PSPNet提出了金字塔池化模块去收集有效的多尺度上下文先验。受PSPNet的启发,DeepLab v3提出了通过全局池化增强的新ASPP模块。

类似的空间金字塔思想同样应用在光流的情况中。SpyNet首次提出了一种按照由粗糙到精细的方式去估算光流的图像金字塔。PWC-Net利用特征金字塔改善了光流估计。

在本文关于立体匹配的工作中,我们采纳了语义分割研究的经验,并在全图像级别上利用全局上下文信息。如下文所述,我们通过在金字塔立体匹配网络中采用多尺度上下文信息聚合进行深度估计。

3. 金字塔立体匹配网络

本文提出的PSMNet包含了一个有效结合全局上下文的SPP模块和一个用于代价体正则化的重叠沙漏模块。PSMNet的网络结构如图1所示。

学新通

图1.PSMNet结构概述。左右立体图像输入两个权重共享的由CNN组成的管道机制用于计算特征图,SPP模块通过连接不同尺寸的次级区域的表示获取特征,卷积层进行特征融合。左右图像的特征构成一个四维的代价体,输入进3D CNN来完成代价正则化和视差回归。

3.1. 网络结构

PSMNet的参数详见表1。与其他研究中在第一个卷积层使用较大的滤波器(7X7)不同,本文采用三个较小的卷积滤波器(3X3)串联起来构成更深层的网络,可以获得同样的感受野。conv1_x,conv2_x,conv3_x,conv4_x是用来学习一元特征提取的基础残差块。conv3_x,conv4_x是用于扩大感受野的空洞卷积。输出特征图的大小是输入图像尺寸的1/4X1/4,如表1所示。如图1所示的SPP模块用于获得上下文信息。我们将左右特征图连接成一个代价体,并输入至3D CNN中进行正则化,最后用回归的方法计算输出的视差图。SPP模块,代价体,3D CNN和视差回归在下面的章节详述。

学新通

学新通

表1.PSMNet结构参数。残差块的结构由带有堆叠块数量的方括号表示(如conv1_x:3个2层卷积层构成,卷积核大小为3X3,输出为32个特征图)。在conv0_1和conv2_1层中采用了步长为2的下采样。批归一化和ReLU的用法与ResNet相同,但PSMNet在求和后不使用ReLU。H和W分别表示输入图像的高度和宽度,D表示最大视差。

3.2. 空间金字塔池化模块(SPP)

仅从像素强度(灰度或RGB值)很难判断上下文关系。因此,借助物体的上下文信息来丰富图像特征能够有助于对应关系估计,尤其对于不适定区域。在本文中,物体(例如汽车)和其次级区域(窗户、轮胎、引擎盖等)的关系由SPP模块学习,以合并多层次的上下文信息。

在何凯明的论文中,SPP被设计用于消除CNN的固定尺寸的约束。由SPP生成的不同层次的特征图被展平后输入全连接层进行分类,之后SPP用于语义分割问题。ParseNet使用全局平均池化来结合全局上下文信息。PSPNet拓展了ParseNet,使用包含不同尺度和次级区域信息的层次全局先验。在PSPNet中,SPP模块使用自适应平均池化将特征压缩为四个尺度,然后进行1X1卷积以降少特征维度,之后低维度的特征图通过双线性插值进行上采样以恢复到原始图片的尺寸。不同层次的特征图连接成最终的SPP特征图。

在本文中,我们为SPP设计了4个尺寸的平均池化块:64X64,32X32,16X16,8X8,如图1和表1所示。并与PSPNet一样,采用1X1卷积和上采样。在消融实验中,我们设计了大量的实验以展示不同层次特征图的效果,在4.2章详述。

3.3. 代价体

与使用距离度量的方法不同,MC-CNN和GC-Net方法连接了左右图的特征并使用深度网络来学习匹配代价估计。延续GC-Net的方法,我们在每个视差水平上连接左侧特征图与其对应的右侧特征图,采用SPP特征来构成一个四维的代价体(高X宽X视差X特征大小)。

3.4. 3D CNN

SPP模块通过结合不同层次的特征加强立体匹配。为了在视差维度和空间维度上聚合特征信息,我们提出两种类型的3D CNN结构来进行代价体正则化:基础结构和堆叠的沙漏结构。在基础结构中,如图1所示,网络仅由简单的残差块构成。基础结构包括12个3X3X3的卷积层。然后我们通过双线性插值的上采样将代价体的尺寸恢复到H*W*D。最终,我们回归计算尺寸为H*W的视差图,将在3.5节详述。

为了得到更多的上下文信息,我们使用堆叠沙漏(编码-解码)结构,由多个重复的带有中间层监督的由自上而下/自下而上的过程构成,如图1所示。堆叠的沙漏结构有三个主要的沙漏网络,每个网络都会生成一个视差图。也就是说,这样的结构会由三个输出和三个损失(Loss1, Loss2, and Loss3)。损失函数在3.6节详述。在训练阶段,总损失由三个损失值的加权求和得到。在测试阶段,最终的视差图是三个输出中的最后一个。在消融实验中,我们用基础结构来评估SPP模块的性能,因为基础结构没有像[13]中通过编码/解码过程学习额外的上下文信息。

3.5. 视差回归

我们使用[13]中提出的视差回归来估计连续的视差图。通过softmax计算σ(·)预测代价Cd来计算每一个视差值d的可能性。预测视差值^d由每一个视差值d按其概率加权求和得到,如下式:

学新通

正如[13]中提到,上述视差回归方法比基于分类的立体匹配方法鲁棒性更强。要注意的是,上述等式类似于[1]中介绍的等式,被称为软注意力机制

3.6. 损失函数

因为是视差回归,我们使用平滑L1损失函数来训练PSMNet。因为与 L2 损失相比具有更高的鲁棒性,和对离群值具有低敏感性,平滑L1损失广泛用于目标检测的边框回归。损失函数定义如下:

学新通

式中:

学新通

其中,N是标记像素的数量,d是真实视差值,^d是预测视差值。

4. 实验

我们在三个立体数据集上对方法进行评估:Scene Flow、KITTI 2012和KITTI 2015。我们还在KITTI 2015上对我们的结构设置进行了消融实验,以评估空洞卷积、不同大小的金字塔池化以及堆叠沙漏 3D CNN对性能的影响。在第4.1节中介绍了实验设置和网络实现,以及在研究中使用的三个立体数据集的评估结果。

4.1. 实验细节

我们在三个立体数据集上评估了我们的方法:

1. Scene Flow:包含35454个训练图像和4370个测试图像的大规模合成数据集,图像大小为H=540和W=960。该数据集提供了稠密且复杂的视差图作为真实值。一些像素有很大的视差,如果视差大于我们实验中设置的限制,则不计算损失。

2.KITTI 2015:来自驾驶汽车视角的街景的真实世界的数据集。它包含200个使用LiDAR获得的具有稀疏、真实视差的训练立体图像对,以及另外200个没有真实视差的测试图像对。图像大小为H=376和W=1240。我们将整个训练数据进一步分为训练集(80%)和验证集(20%)。

3.KITTI 2012:来自驾驶汽车视角的街景的真实世界的数据集。它包含194个使用LiDAR获得的具有稀疏、真实视差的训练立体图像对,以及另外194个没有真实视差的测试图像对。图像大小为H=376和W=1240。我们将整个训练数据进一步分为训练集(160对图像)和验证集(34对图像)。本文采用了KITTI 2012的彩色图像集。

PSMNet的完整架构如表1所示,包括了卷积滤波器的数量。批归一化和ReLU的使用与ResNet的相同,只是PSMNet在求和后不使用ReLU。

PSMNet结构是使用PyTorch实现。所有模型使用Adam(β1=0.9,β2=0.999)进行端到端的训练。我们对整个数据集进行了颜色归一化以预处理数据。在训练期间,图像被随机裁剪为H=256、W=512的大小。最大视差(D)设置为 192。我们使用Scene Flow数据集从零开始训练我们的模型,每10轮epoch的学习率恒定设置为0.001。对于Scene Flow,训练好的模型直接用于测试。对于KITTI,我们使用由Scene Flow数据集训练的并在KITTI训练集上微调300个epoch后的模型。学习率微调为前200个epoch的0.001和其余100个epoch的0.0001。在四个Nvidia Titan-Xp GPU(每3个)上进行训练,批量大小设置为12。Scene Flow数据集的训练过程大约需要13个小时,而KITTI数据集的训练过程大约需要5个小时。此外,我们将训练过程延长到1000个epoch,以获得最终的模型和KITTI提交的测试结果。

4.2. KITTI 2015

PSMNet的消融实验:我们在多种设置下进行实验来评估PSMNet,包括使用空洞卷积、不同层级的池化以及3D CNN结构。3D CNN是默认的基本架构。如表2所示,空洞卷积与SPP模块结合使用时效果更好。对于金字塔池化,具有更多层级的池化效果更好。与空洞卷积和SPP模块结合使用的堆叠沙漏3D CNN明显优于基础的3D CNN。在KITTI 2015验证集上PSMNet的最佳设置的错误率只有1.83%。

学新通

表2.不同设置下PSMNet的评估。我们计算了在KITTI 2015验证集上三像素误差的百分比和Scene Flow测试集上的端点误差的百分比。*表示我们使用空洞卷积的一半膨胀率。

损失权重的消融实验:堆叠沙漏3D CNN具有三个训练的输出,可以促进学习过程。如表3所示,我们将损失权重设置0到1之间进行了多组实验。对于基线,我们平等对待三个损失并全部设置为1。结果表明,将Loss1的权重设置为0.5、Loss2设置为0.7和Loss3设置为1.0的效果最好,在KITTI 2015验证集上的错误率为1.98%。

学新通

表3.Loss1, Loss2,和Loss3的权重值对验证集错误率的影响。根据经验我们发现0.5/0.7/1.0产生的效果最好。

排行榜上的结果:使用我们实验中训练的最佳模型,我们计算了在KITTI 2015数据集中200个测试图像的视差图,并将结果提交给KITTI评估服务器进行性能评评估。根据在线排行榜,如表4所示,PSMNet的整体三像素误差率为2.32%,这远远超过了之前的研究。在该表中,“All”表示在误差估计中考虑了所有像素,而“Noc”表示仅考虑了非遮挡区域中的像素。“D1-bg”、“D1-fg”和“D1-all”三列分别表示在误差估计时考虑了背景、前景和所有区域中的像素。

学新通

表4. 2018 年3月18日发布的KITTI 2015排行榜。结果显示了所有测试图像中误差超过三个像素或视差误差率为5%的像素百分比。仅列出已发布的方法进行比较。

定性评估:图2展示了由PSMNet、GC-Net和MC-CNN估计的一些视差图以及相应的误差图的示例。这些结果由 KITTI 评估服务器公布。PSMNet产生了更稳健的结果,尤其是在不适定区域,如图2中的黄色箭头所示。在这三种方法中,PSMNet更准确地预测了围栏区域的视差,如图2中间行中的黄色箭头所示。

学新通

图2.KITTI 2015测试图像的视差估计结果。左侧面板显示立体图像对的左侧输入图像。对于每个输入图像,由(a)PSMNet、(b)GC-Net和(c)MC-CNN获得的视差图显示在它们对应误差图的上方。

4.3. Scene Flow

我们还使用Scene Flow测试集将PSMNet与其他最先进的方法进行了性能比较,包括CRL、DispNetC、GC-Net。如表5所示,PSMNet在准确性方面优于其他方法。图3展示了三个测试示例,证明PSMNet可以准确地获得精细且错综复杂的重叠目标的视差图。

学新通

表5. 在Scene Flow测试集上比较性能。EPE:端点误差。

学新通

图3.使用Scene Flow测试数据进行性能评估。 (a)立体图像对的左图像,(b) 真实视差,以及(c)使用PSMNet估计的视差图。

4.4. KITTI 2012

使用在实验中训练的最佳模型,我们计算了KITTI 2012数据集中195个测试图像的视差图,并将结果提交给KITTI评估服务器进行性能评测。根据在线排行榜,如表6所示,PSMNet的整体三像素误差为1.89%,这远远超过了之前的研究。

学新通

表6. 2018年3月18日公布的KITTI 2012排行榜。除了运行时间,PSMNet在所有评估标准下都取得了最佳结果。仅列出已发布的方法进行比较。

定性评估:图4展示了由PSMNet、GC-Net和MC-CNN估计的一些视差图以及相应的误差图的示例。这些结果由KITTI评估服务器公布。PSMNet获得了更稳健的结果,特别是在车窗和墙壁区域,如图4中的黄色箭头所示。

学新通

图4. KITTI 2012测试图像的视差估计结果。左侧面板显示立体图像对的左侧输入图像。对于每个输入图像,由(a)PSMNet、(b)GC-Net和(c)MC-CNN获得的视差图显示在它们对应误差图的上方。

5. 结论

近期使用CNNs进行立体匹配的研究取得了突出的表现。然而,估计固有不适区域的视差仍然很难处理。在本文中,我们提出了PSMNet,这是一种用于立体视觉的新型端到端CNN结构,它由两个利用上下文信息的主要模块:SPP模块和3D CNN。SPP模块结合了不同层次的特征图来形成代价体。3D CNN进一步通过重复的自上而下/自下而上的过程来学习正则化代价体。在我们的实验中,PSMNet优于其他先进的方法。PSMNet在2018年3月18日之前在 KITTI2012和2015排行榜中均排名第一。估计的视差图清楚地证明了PSMNet明显地减少了不适定区域的误差。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcjhib
系列文章
更多 icon
同类精品
更多 icon
继续加载