点“计算机视觉life”关注,置顶更快接收消息!
在将CSPN应用至立体匹配任务时,总体采用了类似于PSMNet的网络架构,如上图所示,首先将立体像对输入给两个权重共享的CNN中,生成相应的特征图,空间池化模块则用于将子区域的空间表示进行级联。其次,利用得到的两个特征图来构建4D的代价体。最后,将其送入3D模块进行视差回归。
相对于PSMNet,在此主要做的改进为利用该文中所提出的CSPF和3DCSPN来替换掉PSMNet中的空间池化模块和3D模块。下图为替换后的3D模块,其中下采样率写在每个小块的右上角。红色、绿色与蓝色箭头为跳层连接(skip connections)。
作为网络所要学习的目标,在介绍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的代价计算。
上图为不同上下文金字塔模块的架构。图(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的有效扩展之一。
实验所采用的网络基础为PSMNet,并采用相同的训练策略。具体细节如下:
共有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更为严格。此外,对立体像对的左影像与右影像均进行匹配评估。
基于Scene Flow数据对网络的模块进行ablation study,以验证网络模块的有效性。
为证明3D CSPN相对于2D CSPN的优势,首先采用2D CSPN进行深度细化,将EPE从1.119减少到了0.992,将2D CSPN更换为3D CSPN后,EPE进一步减小到了0.971.上表表示联合使用两个3D CSPN将达到最好效果。最后一行则为将3D 模块与增强后的ASPP模块相结合时,将误差减小到基线的30%左右。
评估用于增强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并加以传播后,更好的利用了上下文信息,显著的提升了效果。
以上即为对KITTI立体匹配榜首的网络的简介。
欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
投稿、合作也欢迎联系:simiter@126.com
长按关注计算机视觉life
最新AI干货,我在看