前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ICCV 2021 | COLMAP 优化建图组件 Pixel-Perfect SFM

ICCV 2021 | COLMAP 优化建图组件 Pixel-Perfect SFM

作者头像
好好学SLAM
发布2021-10-12 14:55:14
1.8K0
发布2021-10-12 14:55:14
举报

1. 背景

论文题目“Pixel-Perfect Structure-from-Motion with Featuremetric Refinement”(通过深度特征度量优化提高 SFM精度),发表于 ICCV 2021 (oral)。

注意到本文的作者是Paul‑Edouard Sarlin[1],该作者近两年发表了几项高质量的成果,如Superglue (CVPR 2020, 点击查看) / Pixloc (CVPR 2021, 点击查看)。

本文算法开源:https://github.com/cvg/pixel-perfect-sfm, 作者提到,该算法作为COLMAP优化建图插件后续会集成到视觉定位工具包hloc[2]中。

论文:https://arxiv.org/abs/2108.08291

2. 摘要

在 3D 重建任务中,跨视角可复检的特征点提取尤为重要。原有的 SFM 框架中,特征提取之后其位置并不会发生改变,若这个提取过程中出现了误差(噪声干扰),势必造成后续几何结构的误差累计。

本文针对以上 SFM 框架中的两个步骤进行了优化:1. 特征匹配后使用 Featuremetric (深度特征度量)对特征点位置进行优化;2. 增量重建过程中通过类似的 Featuremetric 进行 BA(重投影误差变为 Featuremetric 误差)。本文算法通过大量实验验证,其在三角化/ SFM 等任务中的表现非常优秀。

3. 关键技术点

总览:本文的优化框架可在任何基于局部特征点的 SFM 流程中使用,首先使用 CNN 提取图像特征图(dense features),根据稀疏的特征匹配得到初始的 tracks(一个track是指,同一个3D点在不同图像中的2D观测),调整每一个 track 对应的特征点在图像中的位置;根据调整后的位置进行 SFM 重建,重建过程中的 BA 优化残差由重投影误差变为 Featuremetric 误差。

输入:

N

张 SFM 建图图像

\{\mathbf{I}_i\}

输出:场景地图,包括 3D 点

\{\mathbf{P}_i\} \in \mathbb{R}^3

,相机位姿

\left(\mathbf{R}_i, \mathbf{t}_i\right) \in \mathbf{SE}(3)

,相机内参

\{\mathbf{C}_i\}

3.1. 特征位置调整

图像表征:图像的像素强度表示对视角/光照等因素的变化较为敏感,本文采用了 CNN feature 的方式表示一张图像。具体的,对于图像

\mathbf{I}_i

,使用S2DNet[3]提取到一个

D

维特征图

\mathbf{F}_{i} \in \mathbb{R}^{W \times H \times D}

。注:特征图在通道上做了

L_2

归一化以提高泛化性,特征图的长宽与原图相同。

目标函数:对于每一个 track,调整它包含的 2D 特征点的位置,构建如下 featurematric 误差:

E_{\mathrm{FKA}}^{j}=\sum_{(u, v) \in \mathcal{M}(j)} w_{u v}\left\|\mathbf{F}_{i(u)}\left[\mathbf{p}_{u}\right]-\mathbf{F}_{i(v)}\left[\mathbf{p}_{v}\right]\right\|_{\gamma}

其中

w_{u,v}

表示特征点

u

v

之间的关联置信度,该置信度可由特征描述子的余弦距离

\mathbf{d}_{u}^{\top} \mathbf{d}_{v}

表示。可以看到,该过程对于每一个 track 是独立进行的,计算效率非常高。另外,为了保证例如视觉定位的性能,需要保持特征点复检率不发生较大改变,此时需要限制特征优化的最大变动距离

\left\|\mathbf{p}_{u}-\mathbf{p}_{u}^{0}\right\| \leq K

,其中

\mathbf{p}_{u}^{0}

为未调整的原始位置,

K

表示特征点位置调整的最大像素距离,实验中设为 8(pixels)。

3.2. BA 优化

上述过程完成了特征点位置的优化,随后进行几何校验以及增量或者全局重建。对于重建过程,本文设计了如下BA残差:

E_{\mathrm{FBA}}=\sum_{j} \sum_{(i, u) \in \mathcal{T}(j)}\left\|\mathbf{F}_{i}\left[\Pi\left(\mathbf{R}_{i} \mathbf{P}_{j}+\mathbf{t}_{i}, \mathbf{C}_{i}\right)\right]-\mathbf{f}^{j}\right\|_{\gamma}

其中

\gamma

为 Huber 核函数,

\mathbf{f}^{j}

是某个固定的参考向量,它被定义为距离 track

j

观测均值特征最近点那个向量。

\begin{aligned} \mathbf{f}^{j} &=\underset{\mathbf{f} \in\left\{\mathbf{f}_{u}^{j}\right\}}{\operatorname{argmin}}\left\|\boldsymbol{\mu}^{j}-\mathbf{f}\right\| \\ \text { 其中 } \boldsymbol{\mu}^{j} &=\underset{\boldsymbol{\mu} \in \mathbb{R}^{D}}{\operatorname{argmin}} \sum_{\mathbf{f} \in\left\{\mathbf{f}_{u}^{j}\right\}}\|\mathbf{f}-\boldsymbol{\mu}\|_{\gamma} \end{aligned}

4. 实验

实验平台:8 CPU cores (Intel Xeon E5-2630v4) and one NVIDIA RTX 1080 Ti。

4.1. 3D 三角化

在给定相机内参与位姿的情况下评价本文算法的生成的地图点精度。上述表格中 Accuracy 表示 3D 点满足不同阈值的比例,Completeness 表示 3D 点被成功三角化并满足阈值的比例(占总3D点的比例)(类似于召回率)。本文算法相比于 Patch Flow[4],能够提升在严格阈值下的精度与完整度,且均比未优化的精度与完整度高。

4.2. 相机位姿估计

上述表格展示了平移量的 AUC 精度曲线,本文算法相比于未优化与 Patch Flow[4] 均有很大优势,SuperPoint 特征相比于其他特征点提取器提升力度明显。

4.3. SFM 性能

本文算法在两个任务中获得显著的性能提升,其中 stereo 任务评价的是图像之间的相对位姿精度,这对于全局 SFM 的位姿初值计算尤为重要;multi-view 任务是针对包含

N

张图像的集合进行增量位姿优化,该任务评价的是该集合内部相机的相对位姿。

下图是算法优化前后特征点位置的分布,可以看到本文方法得到的特征点位置(绿点)在不同视角间是保持一致的,而原始的特征点(蓝点)容易受到提取噪声的干扰,导致了 SFM 重投影的 2D 点(红点)出现了不一致性(错位)。

4.4. 其他

4.4.1. 消融实验

4.4.2. 耗时

上图展示了本文算法进行 SFM 的耗时统计,相比 Patch Flow,本文算法耗时大幅度降低;在 Aachen Day-Night v1.1 数据集测试,7K 图像规模耗时小于 2 小时。

结论

  1. 提供了一种用于优化 SFM 建图精度的方案,能够大幅度提升建图精度与后续的视觉定位精度。
  2. 本文算法在进行 BA 时需要占用较大的运行内存空间(feature maps),特别是面对大规模场景重建时,具体使用时需权衡计算量与精度。

参考资料

[1] Paul‑Edouard Sarlin 主页: https://psarlin.com [2] hloc: https://github.com/cvg/Hierarchical-Localization [3] S2DNet: Learning accurate correspondences for sparse-todense feature matching, ECCV 2020, https://github.com/germain-hug/S2DNet-Minimal

[4] Patch Flow: Mihai Dusmanu, Johannes L. Schonberger, and Marc Pollefeys. Multi-View Optimization of Local Feature Geometry. ECCV, 2020, https://github.com/mihaidusmanu/local-feature-refinement

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机视觉SLAM 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 背景
  • 2. 摘要
  • 3. 关键技术点
    • 3.2. BA 优化
    • 4. 实验
      • 4.1. 3D 三角化
        • 4.2. 相机位姿估计
          • 4.3. SFM 性能
            • 4.4. 其他
            • 结论
              • 参考资料
              相关产品与服务
              图像处理
              图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档