少学即是多-通过三维面回归实现相机6个自由度的定位

泡泡三分钟,带你精读机器人顶级会议文章

标题:Learning Less is More – 6D Camera Localization via 3D Surface Regression

作者:Eric Brachmann and Carsten Rother ,Visual Learning Lab,Heidelberg University (HCI/IWR)

来源:CVPR 2018

播音员:包子

编译:尹双双

审核:杨健博

欢迎个人转发朋友圈;其他机构或自媒体如需转载,后台留言申请授权

摘要

大家好,今天为大家带来的文章是——Learning Less is more--通过三维面回归实现相机6个自由度的定位,该文章发表于CVPR2018。

随着自动驾驶和增强现实这些热门领域的发展,基于影像的相机定位研究也火热了起来,本文便意在解决从单张RGB影像中预测相机6个自由度位姿值的问题。由于神经网络的出现,之前的研究工作要么学习整个相机定位过程,要么流程的多个部分。本文关键贡献就是展示和解释只需要学习流程中的一个组成部分就足够了。这部分就是用一个全卷积神经网络(FCN)密集地回归表示输入影像与三维场景之间相关性的场景坐标,而这个神经网络被预先设置成一个新的端对端训练过程。我们系统具有高效率、高精度、稳健的训练,并表现了突出的泛化能力,在室内和室外数据集上都超过了目前最好的水平。有趣的是,即使在训练过程中没有用场景的3D模型,我们的方法也超越了现有的技术。因为仅通过单视图约束,网络就能自动发现三维场景的几何结构。

主要贡献

1. 提出了一个新的相机定位方式,其中CNN拟合场景坐标是唯一应用深度学习的部分。我们用一个不需训练参数,新的、熵控制的soft inlier计数来假设评分,这大大提高了泛化能力。

2.表明通过局部线性化可以有效地对位姿优化参数微分,从而产生稳定的端到端学习。

3.首次表明可以仅通过已有真实位姿的RGB影像可以学习场景坐标的回归。

图1 单张相机定位。上:我们用我们的位姿估计拟合一个3D模型来测试影像;中:将相机位置用点表示,连接相邻帧后可视化的轨迹线,青色代表我们的估计值,绿色代表真实值,可见除了一些外点,我们的结果精度很高。实验只用了具有真实位姿的RGB影像训练,没有用到3D场景模型;下:其他方法不准确,而且有很多错误的结果,为了方便可视化,我们只把5米以内的相邻帧连接起来。红色表示训练一个CNN直接预测位姿的PoseNet方法,橙色表示用3D场景模型训练的DSAC。

算法流程

图2. 系统概览。分两阶段来估计RGB影像对应的相机6D位姿。首先,用一个全卷积神经网络回归3D场景坐标(为了

可视化将XYZ映射到RGB),这个CNN是系统唯一的学习部分。然后,系统在一组位姿假设值中采样,用一种soft inlier计数方式评分,根据分数选择并优化出最终估计。第二阶段不含可学习参数,但完全可微。

第一部分:场景坐标回归

用一个没有向上采样的全卷积神经网络,预测每个像素i在位置pi对应的在场景局部坐标系中的三维点yi(w)。 以一个640×480像素的RGB图像作为输入,生成80×60的场景坐标预测。

图3 网络架构图。我们的FCN网络体系结构是由3x3的卷积、ReLU激活和跨卷积子采样组成的。全连接层是通过1x1的卷积来实现的。

第二部分:假设打分

基于RANSAC的思想,soft inlier计数,用一个Heaviside阶跃函数来得到inlier数目,然后用一个sigmoid函数构建可微回归的分值:

超参数β 控制sigmoid的柔度,h表示一个位姿假设,w表示学习参数,ri表示重投影误差函数,t为内点阈值。

熵控制,即为了把分数控制在一个合理的范围,从而有一个宽分布P (j; w, α)来稳定端对端训练,采用Shannon熵作为α函数测量分布宽度:

通过平行于端到端训练过程的梯度下降,依据最小化S(α)与目标熵值S*的绝对差来优化 α。该方法在端到端训练的前几次迭代中得到目标熵,使其始终保持稳定。

图4.泛化能力。训练2个CNN来回归场景坐标,并根据DSAC方法只用2个训练影像(灰色)来给位姿假设打分。系统不能扩展到一个没见过的测试影像(绿色),而且估计值偏远(橙色,3.7m和12.6°的位姿误差)。为soft inlie计数改变打分CNN,可获得准确的估计(蓝色,0.1m和0.3°的位姿误差)。

第三部分:训练步骤

我们提出一个新的3步训练模式,每一步都有不同的目标函数。无论是否有3D的场景模型可用,我们用渲染或近似的场景坐标来初始化网络。最重要的是当没有为初始化提供3D模型时,训练步骤2和3能提高系统的准确性。

场景坐标初始化:

用真实的位姿值h*和可用的3D场景模型来得到场景坐标y*。没有3D场景模型时,用h*(dxi/f,dyi/f,depth,1)T,其中xi,yi表示2维像坐标,f表示焦距,depth表示先验的常深度值。初始假设所有场景点都在一个固定距离的相机平面上,完全忽略掉场景的几何结构。然而,它通过粗糙地把正确的场景坐标值范围分配到不同三维环境的空间部分,有效地计算了摄像机的位姿。初始假设本身的定位精度不高,但为下一个训练步骤的作基础。

图5.初始场景坐标启发。当真实场景坐标(中间)不知道时,用启发的值(右)来初始化,启发值假定每个场景点到相机平面的距离是一个常数。

重投影误差优化:

端对端优化

要求所有相机优化参数都可微,为了优化,把所有inlier的投影误差用一个残差向量连接起来,

然后根据利用高斯-牛顿迭代算法下式优化,

高斯牛顿模型线性化后,我们可以用上一次迭代优化得到的值近似出下一次迭代的梯度值。

主要结果

文章结果主要针对上述三点贡献:

1. 相机定位精度。

表格1.平均6D定位误差。*表示DSAC的结果在没有收敛的

端对端优化之前,-表示定位完全失败。

2.稳定的端到端学习。

表格 2 7Scenes数据集上的详细结果。我们用误差在5cm和5°以内的位姿估计值的百分比来报告每个场景的精度。“Complete”反应在整个数据集的所有测试帧上的精度。左:有或没有3D模型的端对端训练后结果。右:改变输出场景坐标回归(默认80x60)的分辨率的影响,数据是用3D模型和在端对端训练后给出的。

3.通过优化重投影误差恢复的深度信息。

图8 学习场景几何。在端对端优化之后给出了测试影像的场景坐标预测。为了比较,我们用测量的深度值

(7Scenes)或者3D场景模型(Cambridge Hospital)计算了场景坐标的真实值(b)。当用3D模型训练时(c),我们的方法可以准确地学习场景几何。没有用3D模型(d)时,可以自动发现一个近似的几何结构。最后两栏表示(d)和(b)栏的3维构网。

4.文章最后提到方法适用于大型户外场景,但城市规模的场景,比在如难度大的Cambridge Street数据集中失败了。在未来,我们可能在系统中引入图像检索方法。公开了源代码和训练模型:

https://hci.iwr.uni-heidelberg.de/vislearn/research/scene-understanding/pose-estimation/

#CVPR18

Abstract

Popular research areas like autonomous driving andaugmented reality have renewed the interest in image-basedcamera localization. In this work, we address the taskof predicting the 6D camera pose from a single RGB image in a given 3D environment. With the advent of neural networks, previous works have either learned the entire camera localization process, or multiple componentsof a camera localization pipeline. Our key contributionis to demonstrate and explain that learning a single component of this pipeline is sufficient. This component is a fully convolutional neural network for densely regressingso-called scene coordinates, defining the correspondencebetween the input image and the 3D scene space. Theneural network is prepended to a new end-to-end trainablepipeline. Our system is efficient, highly accurate, robust intraining, and exhibits outstanding generalization capabilities. It exceeds state-of-the-art consistently on indoor andoutdoor datasets. Interestingly, our approach surpasses existing techniques even without utilizing a 3D model of thescene during training, since the network is able to discover3D scene geometry automatically, solely from single-viewconstraints.

如果你对本文感兴趣,想要下载完整文章进行阅读,可以关注【泡泡机器人SLAM】公众号

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180614A06KTL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券