3.8、BundleFusion 方案 斯坦福大学2017年提出的BundleFusion技术,被认为可能是目前基于RGB-D相机进行稠密三维重建效果最好的方法。BundleFusion的整体流程是比较清晰的:输入的color+depth的数据流首先需要做帧与帧之间的匹配信息搜索,然后基于“稀疏特征+稠密特征”融合匹配以求得精确位姿变化;把连续相邻帧聚合为“帧段”并在帧段内做局部位姿优化,获得帧段地图/Chunk;然后基于“帧段”做全局位姿优化,将整体的漂移矫正;融合相邻Chunk,得到全局位姿和地图。整个过程持续动态更新。 【融合匹配】在匹配方面,论文使用的是一种sparse-then-dense的并行全局优化方法。也就是说,先使用稀疏的SIFT特征点来进行比较粗糙的配准,因为稀疏特征点本身就可以用来做loop closure检测和relocalization。然后使用稠密的几何和光度连续性进行更加细致的配准。图1展示了sparse+dense这种方式和单纯sparse的对比结果。 【优化】在位姿优化方面,论文使用了一种分层的 local-to-global 优化方法,如图2所示。总共分为两层,在第一层,每连续10帧组成一个chunk,第一帧作为关键帧,然后对chunk内所有帧做局部位姿优化。在第二层,只使用所有的chunk的关键帧进行互相关联然后进行全局优化。通过这种分层处理技巧,一方面可以剥离出关键帧,减少存储和待处理的数据;另一方面,分层优化方法减少了每次优化时的未知量,保证该方法可扩展到大场景而漂移很小。 local-to-global 优化策略
稀疏匹配与融合匹配效果对比
BundleFusion 方案在算法上具有明显的优点: - 使用持续的local to global分层优化,去除了时域跟踪的依赖。
- 不需要任何显示的loop closure检测。因为每一帧都和历史帧相关,所以其实包含了持续的隐式的loop closure。
- 支持在GPU上实时鲁棒跟踪,可以在跟踪失败时移动到重建成功的地方进行relocalization,匹配上后继续跟踪。
实验表明,BundleFusion的重建效果确实是目前该领域效果最好的方法,下图是和其他方法的对比,重建优势明显。 BundleFusion 的良好效果除了算法的功劳,还必须有强大硬件算力的支撑。当使用两块GPU(GTX Titan X + GTX Titan Black)时,BundleFusion在各大数据集上可以达到 36 fps 左右的处理深度;当使用一块 GTX Titan X 时,处理速度则是 20 fps 左右。也即:目前算法需要两块GPU才能实时运行,因此算法的优化和加速仍是可改进的地方。
|