测绘地理信息   2022, Vol. 47 Issue (6): 46-49
0
基于全卷积编解码网络的视觉定位方法[PDF全文]
李晨旻1, 姚剑1, 龚烨1, 刘欣怡1    
1. 武汉大学遥感信息工程学院,湖北 武汉,430079
摘要: 针对目前视觉定位方法中使用人工特征的限制, 提出了一种基于全卷积编解码网络的视觉定位方法。该方法将场景点3D坐标映射到图像的BGR(blue-green-red)通道, 建立了图像到场景的直接联系, 并通过全卷积编解码网络学习图像与场景结构的关系。给出一张图像, 网络可以预测其每个像素点对应的3D点在当前场景世界坐标系的坐标; 然后结合RANSAC(random sample consensus)和PnP(perspective-n-point)算法求解位姿并优化, 得到最终的相对位姿。在7-Scenes数据集上的实验结果表明本文方法可实现厘米级的高精度定位, 并且相比其他基于深度学习的方法, 该方法在保证精度的同时, 模型尺寸更小。
关键词: 视觉定位    场景构建    姿态估计    深度学习    
Visual Localization with a Fully Convolutional Encoder-Decoder Network
LI Chenmin1, YAO Jian1, GONG Ye1, LIU Xinyi1    
1. School of Remote Sensing and Information Engineering, Wuhan University, Wuhan 430079, China
Abstract: To address the limitations of using the hand-crafted feature in present visual localization methods, a method is proposed in this paper based on a fully convolutional encoderdecoder network for visual localization. Different from the previous approaches of scene construction, this method maps 3D scene coordinates to the BGR cube, thus directly establishes the connection between images and the structure of scene, and learns their conncection through the fully convolutional encoder-decoder network. Given an image, for each pixel in it, the network can infer the corresponding scene coordinate under the current scene′s world coordinate system. Then the final camera pose is obtained with RANSAC and PnP algorithm.Lastly, results on the 7-Scenes dataset indicate that the method can achieve highly accurate visual localization at centimeter-level. Besides, compared with other methods based on deep learning, the network has a smaller size model while ensuring accuracy.
Key words: visual localization    scene construction    pose estimation    deep learning    

视觉定位凭借其方便灵活、低成本、且在其他定位技术(如卫星导航、WiFi)失效时仍能正常工作的优点,已成为机器人导航、自动驾驶和增强现实等应用中的关键环节[1],其核心在于建立并寻找查询图像和场景之间的对应关系。例如,基于图像检索的方法[2, 3]使用全局特征将查询图像与场景中的图像进行匹配,基于结构的方法[4, 5]通过匹配场景中的3D点和查询图像的特征点之间的描述符实现定位。但是,这些方法都需要通过人工特征间接建立查询图像和场景之间的匹配关系,由于特征检测和特征描述的局限性[6],在大视点变化、重复结构和无纹理的场景下通常会产生错误匹配,从而导致定位失败。

随着深度学习在计算机视觉领域的快速发展,基于深度学习的视觉定位方法受到了更多关注[7-10]。PoseNet[7]实现了端到端实时相机姿态回归,克服了人工特征的局限性。然而,从图像直接恢复位姿不是一个可微的过程,导致端到端方法的定位精度仍低于传统方法。与PoseNet直接建立图像和相机姿态的映射关系不同,基于场景坐标回归的方法[9-11]通过学习从图像到场景3D坐标的映射来直接建立2D到3D的匹配关系,但由于网络只有下采样部分,输出的场景坐标图未恢复到原图大小,不能预测全图所有像素的场景坐标,图像信息使用有限。

本文提出了一种基于全卷积编解码网络的视觉定位方法。首先,网络使用解码器将预测值上采样到原图大小,以便于预测图像上任意像素的3D坐标。其次,利用一种从粗到精的训练策略,添加重投影误差对模型进行精调,以提升场景坐标预测精度。

1 视觉定位方法

基于全卷积编解码网络的视觉定位分为两个步骤,一是场景坐标图回归;二是结合随机抽样一致性(random sample consensus, RANSAC)算法和N点透视投影(perspective-n-point, PnP)的位姿优化,其流程如图 1所示。

图 1 视觉定位算法流程图 Fig.1 Pipeline of Visual Localization Method

1.1 场景坐标图回归 1.1.1 场景构建

视觉定位需要建立查询图像和场景之间的对应关系,通常做法是先通过运动恢复结构(structure from motion, SFM)算法离线构建场景的三维点云模型,再利用视觉词(visual words)将3D点与像素点相关联。

而在基于场景坐标回归的定位方法中,三维点坐标的XYZ被分别对应映射到图像的BGR通道,原来的点云模型被一张三通道的图像来表达,这幅图像被称为场景坐标图。在场景坐标图上,可以同时获得点的像素坐标和其在场景中对应的三维坐标,即图像的三通道值。通过这样的编码方式,直接建立了查询图像与场景之间的对应关系,无需进行SFM建模;同时,所有像素匹配都能使用,也避免了人工特征在相机定位中的局限。

在本文中,首先利用相机内参数C、已配准的彩色图像和深度图像depth以及当前相机的姿态H,计算出彩色图像像素点(u, v)对应的场景坐标图真值(Xw, Yw, Zw),见式(1);然后再将其分别作为场景坐标回归网络的输入与真值,对网络进行训练,学习当前场景的2D-3D映射关系,完成基于场景坐标回归的场景构建。

$ \operatorname{depth}(u, v)\left(\begin{array}{l} u \\ v \\ 1 \end{array}\right)=\operatorname{CH}\left(\begin{array}{l} X_w \\ Y_w \\ Z_w \end{array}\right) $ (1)
1.1.2 全卷积编解码网络设计

场景构建的精度取决于场景坐标回归模型。为了实现更鲁棒的场景构建,本文提出了一种全卷积编解码网络架构。网络由卷积层和反卷积层连接构成,每层使用线性整流函数作为激活函数,网络结构如图 2所示。

图 2 场景坐标预测网络结构图 Fig.2 Structure of Scene Coordinates Map Prediction Network

网络的编码器产生带有结构信息的特征图像,而解码器的反卷积层将编码器输出的低分辨率特征图上采样至输入图像的大小,以实现对场景坐标图的密集预测。相较于基于图像块的坐标回归网络[9, 10],全卷积编解码器网络的感受野几乎覆盖了整个输入图像,从而可以在回归时加入更丰富的图像上下文信息,同时,密集预测能够为下一阶段的位姿优化提供更多可用匹配。

1.1.3 由粗到精的训练策略

在模型训练过程中,受DSAC++[10]中由粗到精的训练策略的启发,本文的训练分为初始模型训练和模型精调训练两个步骤,在训练时先后执行。对于初始模型训练步骤,以场景三维坐标误差作为损失函数Linit:

$ \boldsymbol{L}_{\text {init }}=\sum\nolimits_{i, j} V_{i j}\left\|\hat{\boldsymbol{Y}}_{i j}-\boldsymbol{Y}_{i j}\right\| $ (2)

式中,Yij代表图像上点pij的场景坐标回归值;$ \hat{\boldsymbol{Y}}_{i j}$代表场景坐标点的真值;Vij用0/1代表该像素点是否存在场景坐标真值。而在模型精调训练步骤中,则以像素点的重投影误差作为损失函数Lrefine:

$ {\boldsymbol{L}_{{\rm{refine }}}} = \sum\nolimits_{i, j} {\left\| {{{\boldsymbol{\hat p}}_{ij}} - \boldsymbol{ChY}_{ij}^c} \right\|} $ (3)

式中,$ {{\boldsymbol{\hat p}}_{ij}}$代表查询图像的像素点坐标;Yijc代表场景点的归一化坐标;C代表相机内参数;h代表当前相机位姿的真值。

训练时,先执行初始模型训练,以场景坐标误差作为约束,得到一个粗略的回归模型Minit。然后以Minit作为预训练模型并复制模型参数,再利用重投影误差约束对模型Minit精调,得到最终的场景回归模型。

1.2 基于RANSAC的位姿求解与优化

获取场景坐标图后,使用已预测的2D-3D匹配点对进行位姿估计。通常做法是随机选取4组点对,根据相似三角形的性质求解PnP问题。然而,考虑到选取点对的质量难以保证,影响位姿求解的鲁棒性,故本文采取结合RANSAC算法滤除外点,迭代求解位姿,本文位姿求解策略分为两个部分,位姿初始解估计和位姿候选解优化,具体步骤如图 3所示。其中,定义重投影误差小于τ个像素的像素点为内点,初始估计的RANSAC迭代次数为N,优化估计的RANSAC迭代次数为M,最佳候选位姿Hf,位姿收敛阈值δ,重投影内点计数函数为r(·)。

图 3 位姿估计流程图 Fig.3 Process of Pose Estimation

2 实验与分析 2.1 实验数据集

为了评估本方法的性能,并与其他先进的方法进行比较,本文使用了微软研究院的7-Scenes[7]室内数据集进行测试。7-Scenes是在视觉定位中广泛使用的RGB-D数据集,它由7个不同的室内小场景组成,每个场景内都划分了几千帧的训练和测试序列。数据集的彩色图像和深度图像均带有运动模糊、无纹理、重复结构(Stairs场景中的楼梯)、镜像(RedKitchen场景中的反光柜)等复杂情况,为实现高精度的视觉定位带来了挑战。

2.2 实验结果与分析

定位精度是视觉定位最重要的指标,本文选用定位误差的中位数作为精度评价指标,包括距离误差和角度误差;并与视觉定位算法的先进算法进行比较。本文选取传统方法Active Search[4]、端到端位姿回归算法PoseNet[6]、基于场景坐标回归的方法DSAC[11]3种方法进行对比实验,结果如表 1所示,其中场景定位的最佳结果用粗体表示。

表 1 视觉定位方法精度对比表 Tab.1 Accuracy Comparison of the State of Art Visual Localization Methods

同时,本文统计了定位距离误差小于5 cm且角度误差小于5°的定位点所占的百分比,即高精度定位点百分比,来验证基于场景坐标方法比基于人工特征方法定位更具有鲁棒性的表现,实验结果如图 4所示。

由结果可知,本文方法可实现厘米级的定位精度,有着和目前先进方法同样优异的定位表现,尤其是对旋转分量上的估计,在多个数据集上超越了其他现有方法。同时,在复杂场景(如Office、RedKitchen)中,基于场景坐标回归方法的表现均优于传统方法。但在训练图像较少的场景(如Fire、Stairs)中,定位精度还有待提高,说明模型的泛化能力还有提升的空间。在Stairs数据集中,由于场景出现的大量楼梯造成了视觉的歧义性。Active Search利用匹配点共同出现的特性,保留已匹配点对从2D到3D的搜索路径,并在已匹配点邻域逆向搜索未匹配3D点的对应2D点,缓解了歧义问题,故在该数据集上的精度超过了基于学习的视觉定位方法。

而在高精度定位点百分比上,利用ORB特征的PnP定位方法,对比了直接建立像素点与地图点联系的场景坐标回归方法与传统人工特征方法的定位鲁棒性,可以看出,由于不受限于特征匹配,本文方法比ORB-PnP方法多出一倍的高精度定位点。而对比其他基于学习的方法,如DSAC、Li’s的全图回归网络[8],本文方法也有着更高的高精度定位点百分比。

图 4 高精度定位点百分比 Fig.4 Percent of High Accuracy Points

此外,为了验证从粗到精的训练策略以及利用重投影误差精调模型的有效性,本文对比了有无模型精调步骤的定位精度(见表 2)。实验结果显示精调模型对距离和角度的定位都有明显的提升,平均提升可达到25.7%和31.2%。对于Stairs这样困难的定位场景,角度精度提升至68.9%。这是因为重投影误差的优化可以学习场景中未见的结构信息,提高了模型的泛化能力和定位的准确性。

表 2 模型精调策略定位精度提升百分比/% Tab.2 Positioning Loss Comparison Between the Models with Refine Strategy or Not/%

最后,低存耗也是视觉定位的目标之一,模型尺寸越小,在移动端的应用更便捷。相较于其他基于学习的方法,本文网络训练的模型大小约50 MB,相比DSAC网络模型250 MB大小,具有明显的优势。

3 结束语

本文提出了一种基于全卷积编解码网络的视觉定位方法,通过利用场景坐标误差和重投影误差,先后对模型进行由粗到精的训练和精调,以学习场景的结构信息,直接建立图像到场景的匹配关系以完成定位任务。实验表明,本文方法在7-Scenes数据集上可以达到甚至超越目前先进方法的定位表现,并且拥有更小尺寸的模型,在移动端移植的可行性更强。下一步将提高模型的泛化能力,并尝试解决视觉定位中的大尺度定位问题。

参考文献
[1]
基于图像的相机定位技术综述[J]. 人工智能, 2019(2): 50-64.
[2]
Schindler G, Brown M, Szeliski R. City-Scale Location Recognition[C]. IEEE Conference on Computer Vision and Pattern Recognition, Minneapolis, MN, USA, 2007
[3]
Arandjelovic R, Gronat P, Torii A, et al. NetVLAD: CNN Architecture for Weakly Supervised Place Recognition[C]. IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas, NV, USA, 2016
[4]
Sattler T, Leibe B, Kobbelt L. Efficient & Effective Prioritized Matching for Large-Scale Image-Based Localization[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 39(9): 1 744-1 756.
[5]
基于ORB特征的单目视觉定位算法研究[J]. 计算机科学, 2016, 43(S1): 198-202.
[6]
一种双目直接法视觉里程计[J]. 测绘地理信息, 2020, 45(2): 111-115.
[7]
Kendall A, Grimes M, Cipolla R. Posenet: A Convolutional Network for Real-Time 6-Dof Camera Relocalization[C]. IEEE International Conference on Computer Vision, Santiago, Chile, 2015
[8]
Li X T, Ylioinas J, Kannala J. Full-Frame Scene Coordinate Regression for Image-Based Localization[C]. Robotics: Science and Systems Conference, Pittsburgh, USA, 2018
[9]
Brachmann E, Krull A, Nowozin S, et al. Dsac-Differentiable Ransac for Camera Localization[C]. IEEE Conference on Computer Vision and Pattern Recognition, Honolulu, HI, USA, 2017
[10]
Brachmann E, Rother C. Learning Less is More-6D Camera Localization via 3D Surface Regression[C]. IEEE Conference on Computer Vision and Pattern Recognition, Salt Lake City, UT, USA, 2018
[11]
Shotton J, Glocker B, Zach C, et al. Scene Coordinate Regression Forests for Camera Relocalization in RGB-D Images[C]. IEEE Conference on Computer Vision and Pattern Recognition, Portland, OR, USA, 2013