【浙江大学ZJUCVG组】开源了大尺度运动恢复结构系统ENFT-SfM

2018 年 8 月 2 日 泡泡机器人SLAM


简介

运动恢复结构(Structure-from-Motion,简称SfM)是一种能够从多张图像或视频序列中自动地恢复出相机的参数以及场景三维结构的技术,具有广泛的应用,例如可以应用于增强现实、机器人和自动驾驶等领域。SfM对于图像序列中的特征点跟踪的准确性有很强的依赖。如果场景中的运动物体或者图像噪声导致了特征跟踪的不准确或跟踪寿命很短,SfM的重建精度就会受到很大影响,很容易造成重建漂移的现象。特别是对于大尺度场景的运动恢复结构来说,这个问题尤为严重。

针对存在循环回路的长序列或多视频序列的运动恢复结构过程中容易出现的重建漂移问题,浙江大学CAD&CG国家重点实验室计算机视觉组(章国锋教授和鲍虎军教授为团队负责人)创新提出了一个高效的非连续特征跟踪方法(Efficient Non-Consecutive Feature Tracking,简称ENFT),不但可以极大地延长特征点在连续帧上的跟踪寿命,而且还能将分布在不同子序列上的同名特征点高效准确地合并起来,显著提高了特征点跟踪的鲁棒性。该技术框架将循环回路的特征匹配复杂度由O(N2)(N为帧数)降为O(M)(M为含同名特征图像对的数量)。

这个工作还提出了一个基于分段的运动恢复结构求解方法,可以在有限内存情况下对整个场景的三维结构和相机参数进行全局的优化,从而快速消除误差累积和重建漂移问题。该方法能够高效地将多视频序列匹配起来并注册到同一个三维坐标系下,在复杂视频序列下的求解稳定性超过ORB-SLAM、VisualSFM和OpenMVG等国际著名开源软件。

前不久,章国锋教授和鲍虎军教授的团队将基于多年的研究工作研制的大尺度运动恢复结构系统ENFT-SfM开源(同时支持Windows和Linux),不但开源了核心的非连续特征跟踪算法ENFT和基于分段的集束调整算法SegmentBA,而且还开源了自定标算法,可以实现相机内参的自动标定,能够处理各种运动和焦距变化的视频序列,包括多视频序列的跟踪注册。


论文:Guofeng Zhang, Haomin Liu, Zilong Dong, Jiaya Jia, Tien-Tsin Wong, and Hujun Bao. Efficient Non-Consecutive Feature Tracking for Robust Structure-from-Motion. IEEE Transactions on Image Processing, 25(12): 5957–5970, 2016.

项目主页: http://www.zjucvg.net/ls-acts/ls-acts.html 

代码链接:  https://github.com/ZJUCVG/ENFT-SfM 


支持功能


  • 基于两遍匹配策略的连续帧特征跟踪

对于视频序列,特征跟踪轨迹通常是通过在连续帧之间匹配特征来获得的。然而,由于光照变化、重复纹理、噪声和大的图像失真,特征很容易不能重复提取出来或者匹配不上,从而导致许多跟踪轨迹分裂为较短的子轨迹。为此,课题组提出了一种两遍匹配策略,通过挖掘并利用多平面运动的先验来显著提高匹配的准确率,如图1所示。

图1. 特征匹配比较. (a)基于SIFT的第一遍匹配.第一张图像有958个SIFT特征提取出来,但才53个特征被匹配上;(b)直接基于极线搜索SIFT特征点,只补充了11个匹配;(c)基于多平面运动先验的第二遍匹配,增加了346个匹配点。


  • 高效的非连续特征轨迹匹配

除了连续帧之间的特征跟踪,将分布在不同子序列中的公共特征点轨迹准确完备地匹配起来,这对于高精度的运动恢复结构来说也是非常重要。然而对于一个长序列来说,使用暴力的方式选择所有的图像对进行匹配极为耗时,几乎是不可行的。

要做非连续帧的特征轨迹匹配,首先需要知道哪两帧之间有共同内容,否则采用暴力匹配,计算复杂度非常高。这部分可以用一些类似词袋数的方法快速估计匹配矩阵,匹配矩阵的横纵坐标值代表帧号,矩阵元素的数值代表某两帧之间的可能匹配点的数量。但因为这种匹配并不精确,所以匹配矩阵仅是一个对帧间相似度的近似估计。因此,完全信任匹配矩阵选取图像对进行匹配是不可行的,且计算效率低。ENFT算法创新提出将特征点匹配和匹配矩阵联合迭代优化,有效降低了对初始匹配矩阵的精度的依赖,将计算复杂度由传统的O(N2)(N为帧数)降为O(M)(M为含同名特征图像对的数量)。

如图2所示,(a)和(b)是两个差异非常大的初始匹配矩阵,经过优化之后,最终得到的匹配矩阵(c)和(d)非常接近。只有底下中间的一块有点差异,这是因为(b)在这里没有初始点,后续优化无法扩展出来。

图2.匹配矩阵估计(论文中的Desktop序列).(a)和(b)分别是用两种不同方法估计的初始匹配矩阵;(c)和(d)是用ENFT算法优化后的匹配矩阵。可以看到(c)和(d)几乎一样,只有底下中间的一块有点差异。


  • 基于分段的集束调整

对于较长的序列,求解过程很容易存在误差累积,需要频繁地调用集束调整(Bundle Adjustment,简称BA)来优化。所谓集束调整,就是把所有相机的参数和三维点云放在一起优化,变量数目可能非常庞大(因为三维点数目有可能达到几千万甚至上亿),在优化过程中每次迭代需要求解一个非常大的矩阵。所以对于一个城市规模的场景来说,传统的集束调整方法在内存和效率上会遇到瓶颈。为此,课题组提出了一个基于分段的集束调整算法,将每个序列分割成若干个子序列,并通过对每个子序列的相似变换以及连接处的三维点进行优化,实现了在大尺度场景下高效的全局优化和回路闭合。如图3所示,主要步骤如下:

  1. 将长序列分成若干段短序列,每个短序列进行独立的SfM求解,并根据公共匹配对进行对齐,每个段由7个自由度的相似变换控制;

  2. 如果投影误差比较大,检测分裂点将序列分段,然后优化;

  3. 重复上述步骤直至投影误差小于阈值或不能再分裂为止。

图3. 分段集束调整示意图


  • 自定标

ENFT-SfM系统包含自定标功能。在相机内参未知或者是相机焦距变化(仅支持单序列重建)的情况下,仍能进行相机内外参数和三维点云的准确恢复。这部分功能主要是根据课题组发表在CVPR 2007的一个工作实现的:Guofeng Zhang, Xueying Qin, Wei Hua, Tien-Tsin Wong, Pheng-Ann Heng, and Hujun Bao.Robust Metric Reconstruction from Challenging Video Sequences. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2007.

  • 多序列跟踪与三维注册

ENFT-SfM包含多序列自动三维注册功能,与基于分段的集束调整类似,利用不同序列之间的共同特征点,进行对齐和全局优化,将不同序列注册到一个统一的3D坐标系中。


运行时间


表1给出了ENFT-SfM系统在一些数据集上的特征匹配与求解时间(在一台台式机上测试,配置为:Intel i7-4770K CPU,8GB内存,一个NVIDIA GTX780的显卡)。只有特征匹配用了GPU加速,SfM求解都是在CPU上而且单线程计算。对于一个视频序列来说,一般可以每隔3-5帧抽取一帧进行特征匹配,这可以大大加快匹配速度。例如,Garden数据集有6个视频、总共95,476帧,在一个台式机上整个计算过程花了将近90分钟,平均每秒17.7帧。

表1. ENFT-SfM的特征匹配与求解时间


结果比较

     

 图4给出了三个系统ENFT-SfM、VisualSFM和ORB-SLAM在Garden数据集上的实验结果的对比。VisualSFM由于采用几乎暴力的特征匹配的方法,对于长视频序列来说效率非常低,因此对于这个数据集是直接在ENFT特征跟踪的结果的基础上进行求解。VisualSFM求解结果不理想,分成了60个独立的模型,如图4(b)给出了其中的两个子模型。由于ORB-SLAM并不能直接处理多视频序列,实验中将6个视频序列直接接起来输入到ORB-SLAM系统。图4(c)是ORB-SLAM求解的相机运动轨迹。可以看到很多帧没有恢复出相机的位姿,而且一些回路闭合也没有做好。

图4. Garden数据集的SfM求解结果比较。(a)ENFT-SfM求解结果;(b) VisualSFM求解结果;(c) ORB-SLAM求解结果。


另外,作者也将ENFT-SfM跟ORB-SLAM、VisualSFM、OpenMVG等系统在在KITTI Odometry数据集与TUM RGB-D数据集上进行了精度比较,如表2和3所示。可以看到在这两个数据集上,ENFT-SfM的求解精度跟ORB-SLAM差不多,在KITTI Odometry数据集上明显优于VisualSFM和OpenMVG。

表2. KITTI Odometry数据集上的结果比较

(Localization RMSE (M)/COMPLETENESS))


表3. TUM RGB-D数据集上的结果比较

Localization RMSE (CM)/COMPLETENESS))


登录查看更多
0

相关内容

CVPR 2020 最佳论文与最佳学生论文!
专知会员服务
34+阅读 · 2020年6月17日
基于视觉的三维重建关键技术研究综述
专知会员服务
154+阅读 · 2020年5月1日
专知会员服务
84+阅读 · 2019年12月13日
【泡泡一分钟】基于几何约束的单目视觉里程计尺度恢复
【泡泡图灵智库】HSfM: 混合运动恢复结构(CVPR)
泡泡机器人SLAM
10+阅读 · 2018年12月13日
Maplab:研究视觉惯性建图和定位的开源框架
泡泡机器人SLAM
15+阅读 · 2018年4月4日
Arxiv
26+阅读 · 2020年2月21日
Arxiv
10+阅读 · 2019年1月24日
VIP会员
相关VIP内容
CVPR 2020 最佳论文与最佳学生论文!
专知会员服务
34+阅读 · 2020年6月17日
基于视觉的三维重建关键技术研究综述
专知会员服务
154+阅读 · 2020年5月1日
专知会员服务
84+阅读 · 2019年12月13日
Top
微信扫码咨询专知VIP会员