泡泡三分钟,带你精读机器人顶级会议文章
标题:CarFusion: Combining Point Tracking and Part Detection for Dynamic 3D Reconstruction of Vehicles
作者:YDinesh Reddy,Minh Vo,Srinivasa G. Narasimhan
来源:CVPR2018
翻译:博主
欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权


摘要

大家好,今天为大家带来的文章是:CarFusion:基于光流跟踪和目标检测的移动汽车三维重建,该文章发表于CVPR2018。

一直以来使用宽基线、未标定和未同步的多相机来三维重建多个移动规则目标(例如汽车)都是一个非常困难的问题,即使该领域已经进行了大量的研究。导致该问题如此复杂的原因主要有两个:一、虽然在单目中特征点跟踪已经非常完善,但是在多目中特征点跟踪依然十分困难,原因是视场角较小和遮挡导致的重叠度较低;二、虽然深度学习能够提供一些对视角不敏感的特征点,但是其精度往往不够高,不适用于进行三角测量。

在本文中作者提出了一种能够适用于强遮挡情况的方法,其融合单目光流跟踪和多目目标检测的结果,进而提高针对移动汽车的检测、定位和重建精度。为验证本文算法的精度,作者使用提出的算法重建了一个繁忙十字路口三分钟内的40辆移动汽车;并且进一步评价了该算法各个部分的性能,然后和其他使用跟踪检测思路的重建算法进行了性能比较。


主要贡献

1) 提出了一种基于目标的RANSAC算法,能够提供较为准确的汽车三维结构信息初始值;
2) 提出一种能够融合结构点和非结构点的算法,充分利用两者的信息;
3) 提出一种将重建出结构点再次投影到影像上来重新训练结构点检测网络的闭合回路,尽可能的提高结构点的检测精度。


算法流程

CarFusion:基于光流跟踪和目标检测的移动汽车三维重建
图1:CarFusion算法的主要框架。本文用过融合检测得到的汽车结构点和光流跟踪点的方式来重建移动的汽车;并且重建出的汽车结构点又被反投影到图像上来训练结构点检测网络,从而提高其精度。

总体而言,本文的主要算法思路是首先利用传统SFM的方法重建出三维场景,并且获取所有相机的内外参信息;然后分别利用深度网络检测出汽车上不精确的结构点和利用光流法获取精度较高的非结构点;最后将两者的信息融合得到移动汽车的三维信息。

预处理部分

预处理主要包括三个步骤:
1. 在结构点检测方法,利用FCIS模型来检测汽车,然后利用在KITTI训练的Stacked Hourglass模型来检测汽车的结构点;在跟踪方面,则是通过连续帧间汽车的包围盒的重叠度来确定是否进行跟踪;
2. 在相机标定和三维场景方面,本文首先抽取视频中的关键帧,然后使用ColMap计算出相机的内外参数并重建一个稀疏三维场景;然后通过LK光流法和PnP的方式获取其他帧的位置信息;
3. 在非结构点三维重建方面,本文使用Harris提取角点,然后用LK进行光流跟踪。对于单目而言,每30帧就进行一次光流初始化,并分别前后跟踪120帧,最后利用单目SFM恢复这些点的三维信息。

相机同步

多相机的三维重建中一个关键任务就是必须进行相机同步,即需要保证在同一时刻相机拍摄到的相同的场景。为解决此问题,本文中同时使用结构点和非结构点,并基于汽车是平滑运动的假设来进行相机同步。
本文通过优化一下公式来同步多相机,其中EI是图像上的投影差,ER是刻画汽车旋转平滑的量,ET是刻画汽车平移平滑的量。
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建

cRANSAC

为了通过多目重建出汽车,一个首要的任务就是确定结构点之间的对应关系。由于结构点的检测精度不高,因此需要cRANSAC算法来从多目中挑选最合理的结构点,并剔除掉误差较大的结构点。其核心思路是某时刻从所有可见相机中随机选3个相机检测出的某一汽车的结构点;然后进行进行三角测量恢复汽车的三维信息,并将符合该模型的其他的相机检测出的结构点设为“内点”;接下来利用所有内点优化该模型;最后就是重复迭代几次以便选出最优的匹配关系。
该方法的代价函数如下,其分别利用了投影差、结构点距离信息和汽车的左右对称特性:
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建

融合结构点和非结构点

前文已经提到结构点的精度并不是特别高,而非结构点虽然精度高确对视角非常敏感。因此在本文中融合两种信息,得到更加合理汽车三维信息,其融合的代价函数定义如下:
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建

多视目标检测增强MVB

精确有效的汽车三维重建结果能够增强深度网络在二维图片上检测汽车结构点的精度,反过来精确的汽车结构点检测结果能够获取精度更高的汽车三维重建结果。本文提出这种算法,主要目的是提高汽车三维重建的精度,尤其是能够有效提高非标准场景的重建精度。


主要结果

评价指标

本文使用两个指标来评价三维重建质量,分别是RMSE和PCK。RMSE是评价重建结果与真实结果的差异,PCK是描述正确检测结构点的百分比。

实验结果

由于本文的算法可以分成四个步骤,因此本文分别比较在各个阶段算法的性能,分别是cRANSAC(使用独立事件的结构点),TcRANSAC(使用时序空间中的所有结构点)和CarFusion;MVB是本文所用的增强系统。实验所使用的数据是22个镜头拍摄一个十字路口3分钟的视频集。
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建
表1:在各个阶段三维重建的精度,可以发现CarFusion+MVB在直线行驶、拐弯和综合路况三个方面都得到了最佳结果,其RMSE值是最低的。

而后,为了展示MVB系统的有效性,分析了经过一次迭代和两次迭代后内点的增长率
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建
表2:各个阶段内点率和MVB增强次数的关系表。可以发现,MVB有效的增加了内点的比例,尤其是针对CarFusion,提高了3。1%。

同时本文还测试了在目前最优方法上MVB系统的效果,发现其PCK指数得到了显著提高,如下下表所示:
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建

最后展示一下本文算法的重建结果,如下图所示,可以发现本文的算法得到了最佳的结果:
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建
下图则展示了在遮挡情况下,本文的算法也能得到不错的结果:
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建
最后是本实验的三维重建结果:
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建

结论

本文提出了一种不精确的多目汽车结构点和单目非结构点信息的移动汽车三维重建算法,实验证明在遮挡下也具有较好的效果。本文认为该算法对于交通分析十分有用,并且未来计划使用汽车CAD模型进一步优化本文的算法。


欢迎来到泡泡论坛,这里有大牛为你解答关于SLAM的任何疑惑。
有想问的问题,或者想刷帖回答问题,泡泡论坛欢迎你!
泡泡网站:www.paopaorobot.org
泡泡论坛:http://paopaorobot.org/forums/
CarFusion:基于光流跟踪和目标检测的移动汽车三维重建