论文笔记:Understanding the Limitations of CNN-based Absolute Camera Pose Regression

摘要

Visual localization is the task of accurate camera pose estimation in a known scene. It is a key problem in computer vision and robotics, with applications including selfdriving cars, Structure-from-Motion, SLAM, and Mixed Reality. Traditionally, the localization problem has been tackled using 3D geometry. Recently, end-to-end approaches based on convolutional neural networks have become popular. These methods learn to directly regress the camera pose from an input image. However, they do not achieve the same level of pose accuracy as 3D structure-based methods. To understand this behavior, we develop a theoretical model for camera pose regression. We use our model to predict failure cases for pose regression techniques and verify our predictions through experiments. We furthermore use our model to show that pose regression is more closely related to pose approximation via image retrieval than to accurate pose estimation via 3D structure. A key result is that current approaches do not consistently outperform a handcrafted image retrieval baseline. This clearly shows that additional research is needed before pose regression algorithms are ready to compete with structure-based methods.

视觉定位是在已知场景下相机位姿准确估计任务。该任务在计算机视觉与机器人领域的关键问题,应用领域有自动驾驶、SFM和混合现实。传统方法中,3D 几何常用于解决该问题。近年来,基于CNN的端对端方法逐渐流行。这些方法从输入图像中直接回归相机的位姿。但是,这类方法很难达到与基于3D结构方法的位姿准确水平。为了理解这种现象,我们为相机位姿回归建立了一个理论模型。我们使用该模型预测了位姿归回技术失败的案例,并通过实验验证了我们的预测。我们进一步使用我们的模型展示了位姿回归更加与通过图像检索进行位姿逼近相关,而不是通过3D结构进行准确的位姿估计。一个重要的结论是**目前的方法并不是一直优胜于手工设计的图像检索的基线。**这清晰地表明了在位姿回归算法可以与基于结构的方法相竞争之前,仍然需要其他研究。

Introduction

视觉位姿定位的state-of-the-art算法遵循了基于3D结构的方法。第一步是确定了测试图像中像素与场景中3D点的对应关系。通过在RANSAC循环中使用PnP算法,这些对应关系然后用于确定相机的位姿。

这篇文章并没有提出一种新的absolute pose regression (APR)变形以缩小与基于结构方法在位姿准确度上差距,而是关注于理解APR技术与其性能。主要贡献有三:

  1. 为绝对位姿估计(APR)建立了理论模型,展示了位姿回归更加与通过图像检索进行位姿逼近相关,而不是通过3D结构进行准确的位姿估计;
  2. 从理论与实践上展示了APR方法不能保证具有超越训练集泛化能力,这点与基于结构的方法不同;
  3. 考虑到APR与图像检索的密切联系,展示了目前的APR方法在性能上更加与手工设计的检索基线

A theory of Absolute Pose Regression

这节主要介绍了APR的理论模型。

标记

I \mathcal{I} I是一张以相机位姿 p I = ( c I , r I ) \mathbf{p}_{\mathcal{I}} = (\mathbf{c_\mathcal{I}}, \mathbf{r_\mathcal{I}}) pI=(cI,rI)拍摄得到的图像。其中 c I ∈ R 3 \mathbf{c_\mathcal{I}}\in \mathbb{R}^3 cIR3为相机, r I ∈ R r \mathbf{r_\mathcal{I}}\in \mathbb{R}^r rIRr为相机旋转。相机的绝对位姿因此就表示为 R 3 + r \mathbb{R}^{3+r} R3+r空间中的一点。

绝对位姿回归

绝对位姿回归(APR)算法学习一个视觉定位函数 L ( I ) = p ^ I L(\mathcal{I})=\hat{\mathbf{p}}_\mathcal{I} L(I)=p^I,其中 p ^ I = ( c ^ I , r ^ I ) \hat{\mathbf{p}}_\mathcal{I}=(\hat{\mathbf{c}}_\mathcal{I}, \hat{\mathbf{r}}_\mathcal{I}) p^I=(c^I,r^I)是对图像 I \mathcal{I} I的相机位姿估计值。

APR是一个instance-level的问题。因此,对于APR,基于CNN的方法使用场景的一系列的图像,标记了它们的相对位姿,以作为训练集。训练目标是最小化损失 L ( p ^ I , p I ) \mathcal L(\hat\mathbf{p}_\mathcal{I}, \mathbf{p}_\mathcal{I}) L(p^I,pI)

绝对位姿回归的理论

将APR分解为CNN的三个步骤:

  1. 第一步表示为一个函数 F ( I ) F(\mathcal{I}) F(I),从输入图像中提取特征;
  2. 第二步计算特征的embedding E ( F ( I ) ) E(F(\mathcal{I})) E(F(I)),用一个向量表示 α I = ( α 1 I , ⋯   , α n I ) T ∈ R n \alpha^\mathcal{I}=(\alpha^\mathcal{I}_1,\cdots,\alpha^\mathcal{I}_n)^T\in \mathbb{R}^n αI=(α1I,,αnI)TRn 表示,这一步通常对应于位姿回归方法中的倒数第二步;
  3. 最后一步将embedding 空间线性映射到相机的位姿空间,最后一步对应网络的最后一步。

将前两步视为一个单独的网络,可以得到训练得到的视觉位姿定位函数 L L L

L ( I ) = b + P ⋅ E ( F ( I ) ) = b + P ⋅ ( α 1 I , ⋯   , α n I ) T \begin{aligned} L(\mathcal{I}) &= \mathbf{b} + \rm P\cdot E(F(\mathcal{I})) \\ &= \mathbf{b} + \rm P\cdot (\alpha^\mathcal{I}_1,\cdots,\alpha^\mathcal{I}_n)^T\end{aligned} L(I)=b+PE(F(I))=b+P(α1I,,αnI)T

其中 P ∈ R ( 3 + r ) × n \rm{P}\in \mathbb{R}^{(3+r)\times n} PR(3+r)×n 是一个映射矩阵, b ∈ R 3 + r \mathbf b \in \mathbb{R}^{3+r} bR3+r为偏置项。输出项 L ( I ) L(\mathcal{I}) L(I) p ^ I = ( c ^ I , r ^ I ) \hat{\mathbf{p}}_\mathcal{I}=(\hat{\mathbf{c}}_\mathcal{I}, \hat{\mathbf{r}}_\mathcal{I}) p^I=(c^I,r^I)
P j ∈ R 3 + r \mathbf{P}_j\in \mathbb{R}^{3+r} PjR3+r为矩阵 P \mathrm{P} P 的第 j j j列。将预测的相机位姿表示为 P \rm P P列的线性组合:

L ( I ) = b + ∑ j = 1 n α j I P j = ( c ^ I , r ^ I ) L(\mathcal I)=\mathbf b + \sum_{j=1}^n\alpha_j^\mathcal I \mathbf P_j = (\hat{\mathbf{c}}_\mathcal{I}, \hat{\mathbf{r}}_\mathcal{I}) L(I)=b+j=1nαjIPj=(c^I,r^I)

进一步将 P j \mathbf{P}_j Pj分解为平移部分 c j ∈ R 3 \mathbf c_j \in \mathbb R^3 cjR3和旋转部分 r j ∈ R 3 \mathbf r_j \in \mathbb R^3 rjR3 ,因此 P j = ( c j T , r j T ) T \mathbf{ P}_ j = (\bf c_j^T, \bf 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 \mathbf{c}_\mathcal I \\ \hat \mathbf{r}_\mathcal I \end{pmatrix} = \begin{pmatrix} \hat \mathbf{c_b} + \sum _{j=1}^n \alpha_j^\mathcal I \mathbf c_j\\ \hat \mathbf{r_b} + \sum _{j=1}^n \alpha_j^\mathcal I \mathbf r_j \end{pmatrix} (c^Ir^I)=(cb^+j=1nαjIcjrb^+j=1nαjIrj)

直观解释

基于CNN的位姿回归算法,例如PoseNet及其变种,学习得到了位姿基集合 B = { ( c j , r j ) } \mathcal B =\{(\bf c_j, \bf r_j)\} B={(cj,rj)},训练图像中所有的位姿都可以用这些位姿基的线性组合表示。基本上,网络通过学习将这些基通过embedding中的权重进行线性加权得到最终的绝对位姿。将 { c j } \{\bf c_j\} {cj}称为平移基。

与基于结构方法的比较

基于结构的方法能够成功估计相机位姿的必要条件是提供足够的正确的2D、3D匹配。基于CNN 的位姿回归方法能够学习得到由输入图像到相机位姿映射的必要条件是提供充足的训练数据。但是,收集数量巨大的图像,计算训练真值(通过sfm)并在很大的数据集上训练CNN是一个十分耗时的工作。接下来,使用理论模型预测了位姿回归方法在训练数据集有限的场景下失败的一些案例。此外,展示了基于结构的方法可以有效的处理这些案例。

实验配置

训练数据集与测试数据集中的真值都是由SfM方法得到。基于CNN的方法选择了具有代表性的PoseNet和MapNet,基于结构的方法选择了Active Search。Active Search 使用了Root-SIFT特征确定了2D-3D匹配关系,位姿估计由RANSAC循环中的P3P方法得到,再经过一个非线性的优化。

在一条直线或多个平行直线上获得的训练数据

T = { ( I , p I = ( c I , r I ) ) } \mathcal{T}=\left\{( \mathcal I, \mathbf p_\mathcal I = (\mathbf c_\mathcal I, \mathbf r_\mathcal I))\right\} T={(I,pI=(cI,rI))}是一组训练图像以及对应的相机位姿。

在前一节提到,位姿回归中,相机位姿是由一组位姿基加权得到。考虑所有训练图像对应的相机位姿都在同一条直线上的场景。在该场景下,每个相机的位置 c I \mathbf c_\mathcal I cI对应与直线上的一点 o + δ d \mathbf o + \delta\mathbf d o+δd。其中, o ∈ R 3 \mathbf o \in \mathbb R^3 oR3是直线上的一点, d ∈ R 3 \mathbf d \in \mathbb R^3 dR3是直线的方向。训练中一个可能的解是所有的平移基 c j \bf c_j cj都在一条只直线上,那么对于这个解,基于CNN的方法将无法泛化

下图中两种实验场景说明这一点。其中训练和测试轨迹分别是红色和绿色,PoseNet、MapNet和Active Search的预测值分别为蓝色、紫色和蓝绿色。

在这里插入图片描述
可以看到,只有Active Search在两中场景下成功完成了预测,PoseNet、MapNet在考虑到相机抖动的情况下都没有实现泛化。

更常规的轨迹

考虑由训练图像子集 T ′ = I \mathcal T'={\mathcal I} T=I定义的场景部分 P ′ \mathcal P' P。子集 B ′ ( P ′ ) \mathcal B'(\mathcal P') B(P)对应位姿基 B = { ( c j , r j ) } \mathcal B=\{(\mathbf c_j, \mathbf r_j)\} B={(cj,rj)}中的部分为:

B ′ ( P ′ ) = { ( c j , r j ) ∣ e x i s t s   I ∈ T ′ w i t h ∥ a j I ∥ > 0 } \mathcal B'(\mathcal P') = \left\{(\bf c_j, \bf r_j)| exists \: \mathcal I \in \mathcal T' with \|a_j^\mathcal I\| > 0 \right\} B(P)={(cj,rj)existsITwithajI>0}

泛化的一个强必要条件是每个 B ′ ( P ′ ) \mathcal B'(\mathcal P') B(P)的线性张成包含测试图像集合 P ′ 3 \mathcal P'^3 P3中对应的所有位姿。在实际实验中并不能保证这种情况。

图1和图3展示了更加常规的轨迹。可以看到:

  1. 所有的平移基都在一个平面上,因为训练图像的拍摄位置都在同一个平面上;
  2. 当测试轨迹与训练轨迹相交时,网络泛化的很好;在其他情况下,预测的测试位姿都是更加解决具有相似外观的训练图像中的位姿。场景下,训练得到的平移基不能准确的对测试位置进行建模,这表明了需要更多的训练数据。
  3. 当测试图像与训练图像有较少的视觉重合时,基于结构的Active Search方法失败或提供了不足够准确的解,由于没有足够的匹配对。

在这里插入图片描述
在这里插入图片描述

图4展示了一个更加复杂的实验,其中训练轨迹是多个平行的直线,测试轨迹包括了一些平行直线、穿插在训练轨迹间的曲线以及一些训练视场内的曲线组成。可以看到

  1. 基于CNN的方法可以预测靠近训练轨迹的部分图像,但是很难对在其之间的测试位姿进行插值,没有实现泛化。
  2. Active Search方法几乎解决了训练与测试图像有较大视角变化的情况,但当这种变化太大时难以提供足够的匹配以实现位姿估计。因此基于结构的方法的发展更加依赖于对大视角变化更加鲁棒的局部特征。

使用密集采样的训练数据

由于密集采样设计到大量数据,这小节的实验使用了仿真数据。验证了随着训练数据的增加,PoseNet和MapNet的性能都有所提升,但是仍然没有超过Active Search。

在这里插入图片描述

结论

在训练数据较少以及视角变化较大的情况下,位姿回归技术性能不佳。这限制了其在实际中的应用。尽管提供了充足的训练数据,位姿回归方法仍然没能达到与基于结构的方法相同的性能。事实上,基于结构的方法遵循了摄影几何的规律,并且强调了场景的3D结构。

与图像检索的比较

前面展示了在训练数据较少的情况下,APR技术得到的测试图像预测值往往比较与训练集相近。这点与图像检索比较相似。这不是巧合,事实上,APR与图像检索有着很强的联系。

I \mathcal I I 为一张测试图像, J \mathcal J J为一训练图像,两者具有同一场景的相同部分。记 α I = α J + Δ I \alpha^\mathcal I = \alpha^\mathcal J + \Delta^\mathcal I αI=αJ+ΔI。因此, I \mathcal I I的位姿估计值 ( c ^ I , r ^ I ) (\hat\mathbf c_\mathcal I, \hat\mathbf r_\mathcal I) (c^I,r^I) J \mathcal J J的位姿估计值 ( c ^ J , r ^ J ) (\hat\mathbf c_\mathcal J, \hat\mathbf r_\mathcal J) (c^J,r^J)的关系为:

( 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 \mathbf c_ \mathcal I \\ \hat \mathbf r_ \mathcal I \end{pmatrix} = \begin{pmatrix} \hat \mathbf c_ \mathcal J \\ \hat \mathbf r_ \mathcal J \end{pmatrix} + \begin{pmatrix} \sum_{j=1}^n\Delta_j^\mathcal I \mathbf c_ \mathcal I \\ \sum_{j=1}^n\Delta_j^\mathcal I \mathbf r_ \mathcal I \end{pmatrix} = \begin{pmatrix} \hat \mathbf c_ \mathcal J \\ \hat \mathbf r_ \mathcal J \end{pmatrix} + \begin{pmatrix} \hat \mathbf c_ \mathcal{I, J} \\ \hat \mathbf r_ \mathcal{I, J} \end{pmatrix} (c^Ir^I)=(c^Jr^J)+(j=1nΔjIcIj=1nΔjIrI)=(c^Jr^J)+(c^I,Jr^I,J)

其中 ( c ^ I , J , r ^ I , J ) (\hat \mathbf c_ \mathcal{I, J}, \hat \mathbf r_ \mathcal{I, J} ) (c^I,J,r^I,J) I \mathcal I I的位姿相对于 J \mathcal J J位姿的预测值的预测值。

标准的图像记过方法首先找到与给定测试图像 I \mathcal I I最相似的训练图像 J \mathcal J J,其相似度的定义有一些特征空间定义,例如词袋(Bag-of-Words)或VLDA。然后,测试图像的位姿由检索得到的图像位姿逼近得到,即 ( c ^ I , r ^ I ) = ( c ^ J , r ^ J ) (\hat \mathbf c_ \mathcal{I}, \hat \mathbf r_ \mathcal{I}) = (\hat \mathbf c_ \mathcal{J}, \hat \mathbf r_ \mathcal{J} ) (c^I,r^I)=(c^J,r^J),没有添加便宜项。但是,检索方法可以由检索得到的前k个训练图像的位姿的仿射组合提供偏置项,即 ∑ j = 1 k a i ( c J i , r J i ) , ∑ a j = 1 \sum_{j=1}^ka_i(\mathbf c _ {\mathcal J_i}, \mathbf r _{\mathcal J_i}), \sum a_j = 1 j=1kai(cJi,rJi),aj=1。设检索过程中的 I \mathcal I I的描述子为 d ( I ) \mathbf d(\mathcal I) d(I)。权重 a j a_j aj可以由最小化 ∥ d ( I ) − ∑ i = 1 k a i d ( J i ) ∥ \|\mathbf d(\mathcal I )- \sum_{i=1}^ka_i\mathbf d(\mathcal J_i)\| d(I)i=1kaid(Ji)得到。

这种插值方法与基于CNN的位姿回归方法中位姿基线性组合方法比较类似。

实验比较

进行了四组实验,分别是

  1. Cambridge Landmarks 和 7 Scens 数据集,纹理较丰富,有利于SIFT,训练集与测试集位姿差异较大
  2. TUM LSI 数据集,纹理较差
  3. RobotCar数据集
  4. 密集采样数据集,仿真生成

这四组实验都从表明了APR方法最好不会超过图像检索(在密集采样、训练数据较多时可能超过),其性能更加接近与检索的基线而不是基于结构的方法。

结论

  1. 提出了APR的理论模型,并分析了APR什么能干什么不能干,分析了APR不能泛化的原因,
  2. 说明了APR更加类似与逼近测试位姿的图像检索而不是较为准确的估计位姿的基于结构的方法,而且展示了没有一种位姿回归方法可以达到基于结构方法的基线。
  3. 在基于CNN的回归方法可以实用之前,仍然需要大量的工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值