论文阅读 2021 —— Pixel-Perfect Structure-from-Motion with Featuremetric Refinement

三维重建的基础就是在多个视图中寻找属于同一个三维点对应的二维图像坐标,也就是关键点。经典算法是一次性检测所有关键点,对于误差较大的特征,会影响最终重建的结果。作者通过直接对齐来自多个视图的低级图像信息,refine SfM的两个关键步骤:在进行几何估计之前,首先调整初始关键点位置。随后优化点和相机pose作为后处理。这种改进对大的检测噪声和外观变化具有鲁棒性,因为它优化了基于神经网络预测的密集特征的特征度量误差。这显著提高了各种关键点检测器算法、具有挑战性的观察条件和现成深度特征的相机pose和场景几何体的准确性。我们的系统可以轻松扩展到大型图像集,实现大规模像素完美密集定位。

1 介绍

SfM假设稀疏的感兴趣点能够有效的从多视角中检测出。但是关键点检测是存在误差。而且深度学习的方法放大了这个问题。作者认为,在整个SfM过程中,局部图像信息对于提高其准确性是有价值的。在重建前后,通过在学习的特征空间中直接对齐图像来调整关键点和bundles。利用这种局部密集的信息比几何优化要精确得多,而CNN提取的深层高维特征可确保在具有挑战性的条件下更广泛地收敛。该形式巧妙地结合了全局区分稀疏匹配和局部精确密集细节。它适用于增量和全局SfM,与稀疏或密集特征的类型无关

2 背景

给定观察一个场景的 N N N张图像 I i I_i Ii,重点关心精确地估计3D结构,这个结构由3D稀疏点云 { P j } \{P_j\} {Pj},相机内参 { C i } \{C_i\} {Ci},和图像之间的位姿变换 { R i , t i } \{R_i,t_i\} {Ri,ti}构成。SfM从属于同一个3D点的一堆2D点 { p u } \{p_u\} {pu}中进行几何估计,关键点之间用描述子 { d u } \{d_u\} {du}进行匹配。

进行几何估计的时候,只用到关键点的位置,因此点的位置精度非常重要。点的检测算法只考虑了单张图片的局部位置,并没有同时考虑多视角。pipeline的后续步骤包含有关场景的其他信息,例如场景的几何体或多视图外观。有两种方法利用这些信息来减少检测噪声并refine关键点。

全局refine。BA是refine结构和pose的最重要的步骤,它最小化一个几何误差。每个3D点在不同视角下的投影应与对应的关键点重合。现在的一些重建方法,有些观测点正确检测出来,但是有噪声,依据一些几何验证丢弃。
在这里插入图片描述

跟踪refine。这个过程实际上是依赖两张图像计算出的光流(由深度学习算法得到),匹配两个图像对应点,构成一个误差。这个光流是输入每个关键点的小patch,算出一个光流。提升了关键点的精度,但仍有一些误差。
在这里插入图片描述
上述这两个refine方法都是基于几何观测点,也叫做关键点的定位与流,但没有考虑它们各自的不确定性。因此需要大量的观测点来平均掉噪声,来提升精度,但是这种提升是受限的。

3 方法

算法流程如下图所示,分为两阶段的调整。首先refine 2D匹配点,然后利用SfM重建后refine 3D点和pose。

传统流程:特征点提取→特征点匹配→特征点重建→BA优化
新式流程:特征点提+描述子提取→特征点匹配+利用描述子refine特征点位置→特征点重建→利用描述子优化BA

在这里插入图片描述

3.1 关键点矫正

一旦检测到、描述和匹配了局部特征,就先对检测出的2D点进行refine。

跟踪分离。匹配图中的连接的成分定义了临时轨迹–可能观察到相同3D点但其观察结果尚未经过几何验证的关键点集。一个3D点在一个图像上只能有一个投影点,使用跟踪分离方法可以快速去除错误匹配点。这里作者参考了文献24的方法。

目标函数。基于一个假设同一对匹配点在各自图像对应位置的特征应该是一样的,前面的参数 w u v w_{uv} wuv表示的是这对匹配点的置信度。假如 u , v u,v u,v对应位置的特征描述子为 d u . d v d_u.d_v du.dv,则特征相似度为 d u T d v d_u^Td_v duTdv。这种方法可以降低那些具有弱关联性的点的影响,提高鲁棒性。为了防止优化时候漂移,约束了优化的范围,也就是 ∣ ∣ p u − p u 0 ∣ ∣ < K ||p_u-p^0_u||<K pupu0<K

在这里插入图片描述

3.2 BA

先找到一个向量 μ \mu μ,这个向量可以描述跟踪点j在所有图像匹配点的特征,也就是找到一个向量距离这些特征最近。
在这里插入图片描述
然后从跟踪点j中所有相关的描述向量中,找到最近的一个向量。作为最终跟踪点的描述子。
在这里插入图片描述
空间点j在所有图像上的特征描述子应该都与 f j f_j fj接近。注意与传统BA的区别,传统BA匹配的是特征点位置,这里匹配的是特征点描述子
在这里插入图片描述

4 实验

特征点有明显的refine
在这里插入图片描述
精度有明显的提升。
在这里插入图片描述

5 总结

改进核心是利用特征描述子而不是特征位置进行全局BA,特征点refine也是利用了描述子。而描述子的生成利用的是深度学习,这也说明了深度学习提取的数据的确具有特征性。

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值