瑞典查尔姆斯理工大学、慕尼黑工业大学
论文针对这个问题,根据自己提出的理论模型预测了位姿归回技术失败的案例,并通过实验验证了预测。此外,论文模型表明,位姿回归与基于图像检索的位姿逼近更加相关(相比与基于3D几何结构的位姿直接预测)。实验结果表明,现有方法并不能够稳定的超越基于图像检索思想的baseline。这表明了在位姿回归算法可以与基于结构的方法相竞争之前,仍然需要其他研究。总结就是APR还有很多工作要做,离实际应用还有距离。
在深度学习成为相机位姿估计pipeline的回归环节后,绝对相机位姿回归absolute pose regression (APR)成为研究的热点。这种方法希望使用深度学习来对预测相机位姿的整个过程pipeline进行建模。
APR方法计算效率高,计算量少,但是精度不足,且当有新的数据需要加入到地图中时需要重新训练网络。
这篇论文着重于理解APR 技术以及性能。
主要贡献有三:
- 为APR建立了理论模型,表明了位姿回归与通过图像检索进行位姿逼近更加相关,而不是通过3D结构进行准确的位姿估计;
- 从理论与实践上展示了APR方法不能保证具有超越训练集泛化能力,这点与基于结构的方法不同;
- 考虑到APR与图像检索的密切联系,当前的APR方法在性能上更接近基于手工检索的baseline,而不是基于3D结构的方法
现有的几种相机定位方法:
- Structure-based localization
基于2D-3D匹配的思想
-
Image retrieval
通过以最相似的检索图像的姿态近似测试图像的姿态,使用测试图像和检索图像之间的特征匹配进行相对姿态估计,可以获得更精确的估计。图像检索方法也已被用作基于结构的方法的一部分
-
Absolute camera pose regression (APR)
posenet系列,backbone+loss函数的结构
-
Relative camera pose regression (RPR)
预测测试图像相对于一个或多个训练图像的姿态,而不是绝对场景坐标。这一预测操作同样使用训练的CNN进行回归。
首先论文说明了自己的理论框架,对 APR任务进行理论建模,然后将APR与基于结构的方法进行对比,证明理论的正确性。最后使用该理论解释图像检索和位姿预测之间的内在相似性。
统一符号:
I I I是一张以相机位姿 p I = ( c I , r I ) p_I=(c_I,r_I) pI=(cI,rI)拍摄得到的图像。 c I ∈ R 3 c_I\in R^3 cI∈R3为相机坐标,$c_r \in R^r 表 示 相 机 旋 转 , 相 机 的 绝 对 位 姿 因 此 就 表 示 为 表示相机旋转,相机的绝对位姿因此就表示为 表示相机旋转,相机的绝对位姿因此就表示为R^{3+r}$ 空间中的一点
绝对位姿回归APR:
APR算法学习一个视觉定位函数 L ( I ) = p I ^ L(I)=\hat{p_I} L(I)=pI^, 其中 p I ^ = ( c i ^ , r L ^ ) \hat{p_I}=(\hat{c_i},\hat{r_L}) pI^=(ci^,rL^)表示相机位姿的估计值
训练目标是最小化损失 L ( p I ^ , p I ) L(\hat{p_I},p_I) L(pI^,pI),注意这里没有上标的p表示真值,有上标的表示估计值
APR理论建模:
将APR分解为CNN的三个步骤:
-
函数F(I)从输入图像中提取特征
-
计算特征的embedding E ( F ( I ) ) E(F(I)) E(F(I)),用一个向量表示 α I = ( α 1 I , . . . , α n I ) T ∈ R n \alpha^I = (\alpha_1^I,...,\alpha_n^I)^T\in R^n αI=(α1I,...,αnI)T∈Rn
-
将embedding 空间线性映射到相机项的位姿空间
将前两步视为一个单独的网络,可以得到训练得到的视觉位姿定位函数L:
L
(
I
)
=
b
+
P
⋅
E
(
F
(
I
)
)
=
b
+
P
⋅
(
α
1
I
,
.
.
.
,
α
n
I
)
T
其
中
P
∈
R
(
3
+
r
)
×
n
为
映
射
矩
阵
,
b
∈
R
3
+
r
为
偏
移
项
L(I) =b+P·E(F(I))\\\quad \quad \quad \quad \quad =b+P·(α^I_1, . . . , α^I_n)^T\\其中P∈R^{(3+r)×n}为映射矩阵,b∈R^{3+r}为偏移项
L(I)=b+P⋅E(F(I))=b+P⋅(α1I,...,αnI)T其中P∈R(3+r)×n为映射矩阵,b∈R3+r为偏移项
输出项L(I)即为相机位姿
p
I
^
=
(
c
i
^
,
r
L
^
)
\hat{p_I}=(\hat{c_i},\hat{r_L})
pI^=(ci^,rL^)。
设
P
j
∈
R
3
+
r
P_j\in R^{3+r}
Pj∈R3+r表示映射矩阵P的第j列,则上式可写为:
L
(
I
)
=
b
+
∑
j
=
1
n
α
j
I
P
j
=
(
c
I
^
,
r
I
^
)
L(I) =b+∑_{j=1}^nα^I_jP_j=\begin{pmatrix}\hat{c_I} &, \hat{r_I}\end{pmatrix}
L(I)=b+j=1∑nαjIPj=(cI^,rI^)
进一步将Pj分解为旋转和平移两部分
P
j
=
(
c
j
T
,
r
j
T
)
T
P_j=(c_j^T,r_j^T)^T
Pj=(cjT,rjT)T,得到:
(
c
I
^
r
I
^
)
=
(
c
b
^
+
∑
j
=
1
n
α
j
I
c
j
r
b
^
+
∑
j
=
1
n
α
j
I
r
j
)
\begin{pmatrix}\hat{c_I} \\ \hat{r_I}\end{pmatrix}=\begin{pmatrix}\hat{c_b}+∑_{j=1}^nα^I_jc_j \\\hat{r_b}+∑_{j=1}^nα^I_jr_j\end{pmatrix}
(cI^rI^)=(cb^+∑j=1nαjIcjrb^+∑j=1nαjIrj)
直观解释:
APR算法学习到的是 位姿基集合 B = ( c j , r j ) B = {(c_j,r_j)} B=(cj,rj),通过这个集合中的元素的线性组合可以表示任何位姿。网络通过学习将这些基通过embedding中的权重进行线性加权得到最终的绝对位姿。将称 c j c_j cj称为平移基。
与基于结构方法的比较
基于CNN 的位姿回归方法能够学习得到由输入图像到相机位姿映射的必要条件是 提供充足的训练数据,
但是,收集数量巨大的图像,计算训练真值(通过sfm)并在很大的数据集上训练CNN是一个十分耗时的工作。
接下来论文使用理论模型预测了位姿回归方法在训练数据集有限的场景下失败的一些案例。此外,展示了基于结构的方法可以有效的处理这些案例。
基于CNN的方法选择了具有代表性的PoseNet和MapNet,基于结构的方法选择了Active Search。Active Search 使用了Root-SIFT特征确定了2D-3D匹配关系,位姿估计由RANSAC循环中的P3P方法得到,再经过一个非线性的优化。
考虑所有训练图像对应的相机位姿都在同一条直线上的场景。在该场景下,能够学习到的位姿基只有一个方向,就是沿着直线的方向。因此加权平均后得到的每个相机的位置c_I只对应直线上的一点o+δd。其中,o∈ℝ3 是直线上的一点,d∈ℝ3是直线的方向。训练中一个可能的解是所有的平移基cj都在一条直线上,也就是说基于CNN的方法将无法泛化到非直线情况。
下图中两种实验场景说明了这一点。其中训练和测试轨迹分别是红色和绿色,PoseNet、MapNet和Active Search的预测值分别为蓝色、紫色和蓝绿色。
可以看到,只有Active Search在两中场景下成功完成了预测,PoseNet、MapNet在考虑到相机抖动的情况下都没有实现泛化
更常规的轨迹
下图展示了更加常规的轨迹。可以看到:
- 所有的平移基都在一个平面上,因为训练图像的拍摄位置都在同一个平面上;
- 当测试轨迹与训练轨迹相交时,网络泛化的很好;在其他情况下,预测的测试位姿都是更加能够解决具有相似外观的训练图像中的位姿。其他场景下,训练得到的平移基不能准确的对测试位置进行建模,这表明了需要更多的训练数据。
- 当测试图像与训练图像有较少的重合时,基于结构的Active Search方法失败或提供了不足够准确的解,原因是没有足够的匹配对。
下图展示了一个更加复杂的实验:训练轨迹是多个平行的直线,测试轨迹包括了一些平行直线、穿插在训练轨迹间的曲线以及一些训练视场内的曲线组成。可以看到
- 基于CNN的方法可以预测靠近训练轨迹的部分图像,但是很难对在其之间的测试位姿进行插值,没有实现泛化。
- Active Search方法几乎解决了训练与测试图像有较大视角变化的情况,但当这种变化太大时难以提供足够的匹配以实现位姿估计。因此基于结构的方法的发展更加依赖于对大视角变化更加鲁棒的局部特征。
结论
在训练数据较少以及视角变化较大的情况下,位姿回归技术性能不佳。这限制了其在实际中的应用。尽管提供了充足的训练数据,位姿回归方法仍然没能达到与基于结构的方法相同的性能。事实上,基于结构的方法遵循了摄影几何的规律,并且强调了场景的3D结构。
与图像检索的比较
前面证明了在训练数据较少的情况下,APR技术得到的测试图像预测值往往与训练集相近。这点与图像检索比较相似。这不是巧合,事实上,APR与图像检索有着很强的联系
记测试图像I,训练图像J,两者具有同一场景的相同部分。记为
α
I
=
α
J
+
Δ
I
\alpha^I = \alpha^J+\Delta ^I
αI=αJ+ΔI,因此
I
J
I J
IJ的位姿估计值之间的关系为:
(
c
I
^
r
I
^
)
=
(
c
J
^
r
J
^
)
+
(
∑
j
=
1
n
Δ
j
I
c
I
∑
j
=
1
n
Δ
j
I
r
I
)
=
(
c
J
^
r
J
^
)
+
(
c
I
,
J
^
r
I
,
J
^
)
\begin{pmatrix}\hat{c_I} \\ \hat{r_I}\end{pmatrix}=\begin{pmatrix}\hat{c_J} \\ \hat{r_J}\end{pmatrix}+\begin{pmatrix}∑_{j=1}^n\Delta^I_jc_I \\∑_{j=1}^n\Delta^I_jr_I\end{pmatrix}\\=\begin{pmatrix}\hat{c_J} \\ \hat{r_J}\end{pmatrix}+\begin{pmatrix}\hat{c_{I,J}} \\ \hat{r_{I,J}}\end{pmatrix}
(cI^rI^)=(cJ^rJ^)+(∑j=1nΔjIcI∑j=1nΔjIrI)=(cJ^rJ^)+(cI,J^rI,J^)
其中
(
c
I
,
J
^
,
r
I
,
J
^
)
(\hat{c_{I,J}} , \hat{r_{I,J}})
(cI,J^,rI,J^)是
I
I
I的位姿相对于J位姿预测值的预测值。
标准的图像检索方法首先找到与给定测试图像 I I I最相似的训练图像J。然后,测试图像的位姿由检索得到的图像位姿逼近得到,即 ( c I ^ , r I ^ ) = ( c J ^ , r J ^ ) (\hat{c_I} , \hat{r_I})=(\hat{c_J} , \hat{r_J}) (cI^,rI^)=(cJ^,rJ^),没有添加偏移项。但是,检索方法可以由检索得到的前k个训练图像的位姿的仿射组合提供偏置项,即 ∑ j = 1 k a i ( c J i , r J i ) , 其 中 权 重 之 和 ∑ a j = 1 \sum^k_{j=1}a_i(c_{J_i},r_{J_i}), 其中权重之和\sum a_j = 1 ∑j=1kai(cJi,rJi),其中权重之和∑aj=1,
这种插值方法与基于CNN的位姿回归方法中位姿基线性组合方法比较类似。
实验比较
进行了四组实验,分别是
- Cambridge Landmarks 和 7 Scens 数据集,纹理较丰富,有利于SIFT,训练集与测试集位姿差异较大
- TUM LSI 数据集,纹理较差
- RobotCar数据集
- 密集采样数据集,仿真生成
这四组实验都表明了APR方法最好不会超过图像检索(在密集采样、训练数据较多时可能超过),其性能更加接近与检索的基线而不是基于结构的方法。
- 提出了APR的理论模型,并分析了APR什么能干什么不能干,分析了APR不能泛化的原因,
- 说明了APR更加类似于逼近位姿的图像检索而不是较为准确的估计位姿的基于结构的方法,而且展示了没有一种位姿回归方法可以达到基于结构方法的baseline。
- 在基于CNN的回归方法可以实用之前,仍然需要大量的工作。