Efficient multi-output scene coordinate prediction for fast and accurate camera...论文笔记

巴黎*理工

这是一篇混合方法,使用重新设计的CNN网络提取patches的特征,

然后输入到回归森林对patches的中心点像素坐标进行预测,得到多个3D坐标,选择置信度最高的一个作为预测,由此得到2D-3D对应关系。

最后根据Pnp和RANSAC求解相机位姿

Efficient multi-output scene coordinate prediction for fast and accurate camera...论文笔记

论文方法

1.patch选择和对应标签制作

使用patch可以过滤掉与场景无关的位置(天空、墙壁等),去除噪声可以减少RANSAC的工作量进而加快运行速度。

本文只取以SURF特征点为中心的49X49的区域作为patch输入。

对应中心点的3D坐标标签计算:(使用RGBD信息,D为深度,p为图像二维坐标,k为相机内参)
Pic=DiK1[pi1] 相机坐标系下坐标:P_{i}^{c}=D_{i} K^{-1}\left[\begin{array}{c}p_{i} \\1\end{array}\right]

使姿[Piw1]=[Rt01][Pic1] 使用已知相机位姿转换到世界坐标系:\left[\begin{array}{c}P_{i}^{w} \\1\end{array}\right]=\left[\begin{array}{c|c}R & t \\0 & 1\end{array}\right]\left[\begin{array}{c}P_{i}^{c} \\1\end{array}\right]

得到训练标签。

2.patch特征提取网络xyzNet

xyzNet和后面的回归森林是分开训练的,单独训练流程图:

Efficient multi-output scene coordinate prediction for fast and accurate camera...论文笔记

在后面加了两个FC层用于输出位姿预测。

损失函数是绝对位姿误差:
l(p)=pipPiwP^iw22 l(p)=\sum_{p_{i} \in p}\left\|P_{i}^{w}-\hat{P}_{i}^{w}\right\|_{2}^{2}

3.多输出深度回归森林

论文使用回归森法融合xyzNet的输出特征

Efficient multi-output scene coordinate prediction for fast and accurate camera...论文笔记

每个回归树中的每个节点都以全部特征向量为输入,来训练回归森林

对于每个回归树,选择一个特征子集S作为输入,分裂节点i将其分类到左子树和右子树,直到到达叶子节点:
h(fj,θi)={0, if d(refi,fj)<τi, go to left child node 1, if d(refi,fj)τi, otherwise  h\left(f_{j}, \theta_{i}\right)=\left\{\begin{array}{ll}0, & \text { if } d\left(r e f_{i}, f_{j}\right)<\tau_{i}, \text { go to left child node } \\1, & \text { if } d\left(r e f_{i}, f_{j}\right) \geqslant \tau_{i}, \text { otherwise }\end{array}\right.

其中fi为特征向量,θi=d(refi,fj)\theta_{i}=d\left(r e f_{i}, f_{j}\right)为节点参数。

优化目标为最小化叶子节点的特征方差:
Q(Si,θi)=d{L,R}Sid(θi)SiV(Sid(θi)) with V(S)=1SmSmmˉ22 \begin{array}{l}Q\left(S_{i}, \theta_{i}\right)=\sum_{d \in\{L, R\}} \frac{\left|S_{i}^{d}\left(\theta_{i}\right)\right|}{\left|S_{i}\right|} V\left(S_{i}^{d}\left(\theta_{i}\right)\right) \\\text { with } V(S)=\frac{1}{|S|} \sum_{m \in S}\|m-\bar{m}\|_{2}^{2}\end{array}

为了使回归树尽可能平衡,减少树的深度,需要自适应的改变节点参数,因此作者设计为可学习的参数形式,其损失函数:
θi={refi,τiSiL=SiR} \theta_{i}=\left\{\operatorname{ref}_{i}, \tau_{i}|| S_{i}^{L}|=| S_{i}^{R} \mid\right\}
最终每个叶节点的输出可以根据其置信度来选择出最有可能的3D坐标预测,得到2D-3D对应关系

4.位姿估计

先用RANSAC和PnP去除离群点,然后生成位姿估计。RANSAC中的内点数目可以作为最后预测位姿的置信度。

5.实验验证

7—scenes:

Efficient multi-output scene coordinate prediction for fast and accurate camera...论文笔记
Efficient multi-output scene coordinate prediction for fast and accurate camera...论文笔记

户外数据集:cambridge

Efficient multi-output scene coordinate prediction for fast and accurate camera...论文笔记

和AC差不多,超越PoseNet2

作者认为没有显著超越AC的原因是在特征点密集的场景中,需要更深的回归树来进行分类。、

在重复结构、遮挡、运动场景、动态环境下性能更好。