KITTI立体匹配霸榜论文算法详解

2019 年 12 月 12 日 计算机视觉life

 点“计算机视觉life”关注,置顶更快接收消息!


1. 导读

  • 目标读者:对立体匹配任务具有兴趣且具备一定深度学习基础的相关研究人员。
  • 论文信息:
    • 名称:《Learning Depth with Convolutional Spatial Propagation Network》
    • 作者:来自百度的团队。"Xinjing Cheng, Peng Wang and Ruigang Y ang, Senior Member, IEEE"。
  • 论文及代码资源:
    • 论文链接:https://arxiv.org/pdf/1810.02695.pdf
    • 代码链接:https://github.com/XinJCheng/CSPN
  • 简介:该团队提出了卷积空间传播网络( Convolutional Spatial Propagation Network,CSPN),简称为CSPN,以用于深度估计以及立体匹配任务。CSPN通过递归卷积运算进行传播。卷积网络可以很好的学习相邻像素之间的关系。与空间传播网络(Spatial Propagation Network,SPN)相比,CSPN在实际应用中速度要快2~5倍。该研究在网络中采用2D CSPN模块来嵌入稀疏的深度样本,并应用了三维卷积模块以及空间金字塔池化模块,实验结果证明这些模块均有助于提升性能。在立体匹配任务中,该方法目前在2012年和2015年的KITTI基准数据集测试中均排名第一,本文亦仅介绍其应用至立体匹配任务时的相关信息。以下将进一步介绍CSPN网络架构及实验结果。

2. M2S_CSPN网络架构

2.1 整体架构图


在将CSPN应用至立体匹配任务时,总体采用了类似于PSMNet的网络架构,如上图所示,首先将立体像对输入给两个权重共享的CNN中,生成相应的特征图,空间池化模块则用于将子区域的空间表示进行级联。其次,利用得到的两个特征图来构建4D的代价体。最后,将其送入3D模块进行视差回归。

相对于PSMNet,在此主要做的改进为利用该文中所提出的CSPF和3DCSPN来替换掉PSMNet中的空间池化模块和3D模块。下图为替换后的3D模块,其中下采样率写在每个小块的右上角。红色、绿色与蓝色箭头为跳层连接(skip connections)。


2.2 模块简介

2.2.1 CSPN模块及其扩展

作为网络所要学习的目标,在介绍CSPN模块前,先对所谓的affinity matrix进行介绍,中文可翻译为亲和矩阵、相似度矩阵或者说相似性矩阵,即指用来确定空间中两个点相似性的矩阵。在计算机视觉中,则特指将每个像素视为一个点,将两个点通过一条边进行连接的加权图。其中,每条边上的权重则反应了不同计算机任务中的相似性。如下图所示为一个无向图,共有4个点,5条边,每个边的权重为1。


可用一个4*5的affinity matrix对该图进行描述,矩阵表示的是点和边的关系。


接下来对CSPN及其变种进行简单的介绍。


图(a)为SPN,SPN的相关内容可参见论文《Learning Affinity via Spatial Propagation Networks》,可以将其简单的理解为一个用来学习affinity matrix的网络。图(b)为2D的CSPN,其在SPN基础上建立,是一个各向异性的过程,由网络直接从影像中学得各向异性的tensor。图(c)中为3DCSPN,是CSPN的3D扩展,目的主要是为了进行3D的代价计算。

2.2.2 上下文金字塔模块 (context pyramid module)


上图为不同上下文金字塔模块的架构。图(a)为由PSMNet实现的空间金字塔池化模块(spatial pyramid pooling, SPP)模块,可以看到,在给定合适的卷积核大小和步长后,SPP的每一个分支都可以看作是CSPN的特例。在给定大小为 的特征以及空间大小为 的目标池化特征图后,空间池化计算每个分块格网 的均值,这就相当于设置核大小和步长为 ,且设置 中的所有值为一致时的单步CSPN。图(b)为该文所实现的卷积空间金字塔池化模块(convolutional SPP, CSPP),使用了不同的kernel大小和步长的2D CSPN。图(c)为该文使用的3D CSPN的CFF模块(convolutional feature fusion)。图(d)为最后组合的SPP模块,名为CSPF模块(convolutional spatial pyramid fusion),是CSPN的有效扩展之一。

4. 实验及结果

  • 训练细节

实验所采用的网络基础为PSMNet,并采用相同的训练策略。具体细节如下:

  • 采用Adam优化器, ,
  • batch size = 16, 在8块Nvidia P40 GPU上进行训练;
  • 训练过程中将影像裁剪至512*512大小;
  • 首先在Scene Flow数据集上训练10个epoch,学习率为0.001。之后微调该模型以用于KITTI立体数据集,共训练了600个epoch,学习率从0.001每隔200个epoch下降20%。最后仅计算KITTI立体数据中有真值的稀疏点。
  • 数据集:

共有Scene Flow,KITTI 立体2012,KITTI2015三个数据集,以下将分别简要介绍.

Scene Flow数据集时一个大尺度的数据集,包含了35454个训练的立体像对以及4370测试的立体像对,像素分辨率为960540,由不同的合成序列渲染而成。KITTI 立体2012数据集是一个从行驶的汽车获得的街景数据集,包含194个训练立体像对,以及195个测试立体像对,影像分辨率为1240 * 376,地面真值通过360度V elodyne HDL64激光扫描仪获得。该文将训练数据集进而分为160个测试数据及34个验证数据,并以彩色图像作为输入。KITTI 2015相比起KITTI2012而言,包含200个训练立体像对和200个测试立体像对,分辨率与KITTI 2012相同,但其中包括动态场景。KITTI 2015数据集的训练立体像对进一步被分为160个训练和40个验证立体像对。

  • 评价指标

不同的数据集具有不同的评价指标。Scene Flow的评价指标使用了EPE(end-point error),即: , 而KITTI 2012和KITTI 2015则采用错误像素的百分比进行评价。具体而言,当一个像素的视差误差大于某一阈值t时,则被视为错误像素。之后再在Out-Noc(non-occluded)区域以及Out-ALL区域计算错误像素的比例。对于KITTI 2012数据集,阈值可为2,3,4,5,而对于KITTI 2015数据集t为3,相对于KITTI 2012更为严格。此外,对立体像对的左影像与右影像均进行匹配评估。

  • Ablation Study:

基于Scene Flow数据对网络的模块进行ablation study,以验证网络模块的有效性。

  1. 3D 模块测试结果

为证明3D CSPN相对于2D CSPN的优势,首先采用2D CSPN进行深度细化,将EPE从1.119减少到了0.992,将2D CSPN更换为3D CSPN后,EPE进一步减小到了0.971.上表表示联合使用两个3D CSPN将达到最好效果。最后一行则为将3D 模块与增强后的ASPP模块相结合时,将误差减小到基线的30%左右。

  1. CSPF模块测试结果

评估用于增强SPP模块的不同组件。对于所有模块替换的情况,采用“3DCSPN-ds”作为我们的3D模块,ds是视差空间disparity space的缩写。“CSPP”是指在空间池化网格上使用2D CSPN,其可将EPE误差从0.971降低到0.954。另一种具有扩展卷积(dilated convolution)的空间池策略,即atrous SPP,简称ASPP,效果与SPP相似。如“ACSPP(atrous CSPP)”行所示,将2D CSPN与ASPP联合使用时,产生的误差比SPP(0.954)小得多(0.902)。在“CFF(convolutional feature fusion )”行,使用提出的融合策略来组合经由空间金字塔池化后的特征,EPE误差从0.954降低到0.905。最后,结合ACSPP和CFF,即“ACSPF”,得到了最佳的性能,这被选为该文中最后的spp模块。下图为由Scene Flow数据集进行网络训练后在KITTI数据集上进行验证的部分输出结果,可以看到,预测结果与真值非常接近。网络学习affinity matrix并加以传播后,更好的利用了上下文信息,显著的提升了效果。




  • 网络在Scene Flow, KITTI 2012和KITTI 2015数据集上的结果:


以上即为对KITTI立体匹配榜首的网络的简介。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


投稿、合作也欢迎联系:simiter@126.com

长按关注计算机视觉life


推荐阅读

计算机视觉方向简介 | 半全局匹配SGM

计算机视觉方向简介 | 基于深度学习的特征提取和匹配

立体匹配技术简介

最全综述 | 图像分割算法

最全综述 | 图像目标检测

目标检测技术二十年综述

AI资源对接需求汇总:第1期
AI资源对接需求汇总:第2期
AI资源对接需求汇总:第3期

计算机视觉方向简介 | 人体骨骼关键点检测综述

计算机视觉方向简介 | 人脸识别中的活体检测算法综述

计算机视觉方向简介 | 目标检测最新进展总结与展望

计算机视觉方向简介 | 人脸表情识别

计算机视觉方向简介 | 人脸颜值打分

计算机视觉方向简介 | 深度学习自动构图

计算机视觉方向简介 | 基于RGB-D的3D目标检测

计算机视觉方向简介 | 人体姿态估计


最新AI干货,我在看  

登录查看更多
5

相关内容

【ICML2020】对比多视角表示学习
专知会员服务
52+阅读 · 2020年6月28日
基于深度学习的多标签生成研究进展
专知会员服务
140+阅读 · 2020年4月25日
3D目标检测进展综述
专知会员服务
187+阅读 · 2020年4月24日
【CVPR2020】图神经网络中的几何原理连接
专知会员服务
56+阅读 · 2020年4月8日
专知会员服务
41+阅读 · 2020年2月20日
近期必读的5篇 CVPR 2019【图卷积网络】相关论文和代码
专知会员服务
32+阅读 · 2020年1月10日
【论文笔记】自注意力图池化
专知
79+阅读 · 2019年11月18日
【论文笔记】基于LSTM的问答对排序
专知
12+阅读 · 2019年9月7日
Spatial Group-wise Enhance算法详解
人工智能前沿讲习班
9+阅读 · 2019年6月13日
【泡泡点云时空】完美配准:具有平滑密度的3D点云配准
泡泡机器人SLAM
61+阅读 · 2019年5月16日
立体匹配技术简介
计算机视觉life
27+阅读 · 2019年4月22日
【泡泡一分钟】无监督学习的立体匹配方法(ICCV-2017)
泡泡机器人SLAM
8+阅读 · 2018年10月9日
论文解读 | 基于递归联合注意力的句子匹配模型
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Arxiv
4+阅读 · 2018年3月19日
VIP会员
相关VIP内容
【ICML2020】对比多视角表示学习
专知会员服务
52+阅读 · 2020年6月28日
基于深度学习的多标签生成研究进展
专知会员服务
140+阅读 · 2020年4月25日
3D目标检测进展综述
专知会员服务
187+阅读 · 2020年4月24日
【CVPR2020】图神经网络中的几何原理连接
专知会员服务
56+阅读 · 2020年4月8日
专知会员服务
41+阅读 · 2020年2月20日
近期必读的5篇 CVPR 2019【图卷积网络】相关论文和代码
专知会员服务
32+阅读 · 2020年1月10日
相关资讯
【论文笔记】自注意力图池化
专知
79+阅读 · 2019年11月18日
【论文笔记】基于LSTM的问答对排序
专知
12+阅读 · 2019年9月7日
Spatial Group-wise Enhance算法详解
人工智能前沿讲习班
9+阅读 · 2019年6月13日
【泡泡点云时空】完美配准:具有平滑密度的3D点云配准
泡泡机器人SLAM
61+阅读 · 2019年5月16日
立体匹配技术简介
计算机视觉life
27+阅读 · 2019年4月22日
【泡泡一分钟】无监督学习的立体匹配方法(ICCV-2017)
泡泡机器人SLAM
8+阅读 · 2018年10月9日
论文解读 | 基于递归联合注意力的句子匹配模型
Top
微信扫码咨询专知VIP会员