场景几何约束在视觉定位中的探索-程序员宅基地

技术标签: 算法  机器学习  计算机视觉  定位  人工智能  

点击上方“计算机视觉工坊”,选择“星标”

干货第一时间送达

本文来源:美团无人配送

导读 /

视觉定位是自动驾驶和移动机器人领域的核心技术之一,旨在估计移动平台当前的全局位姿,为环境感知和路径规划等其他环节提供参考和指导。美团无人配送团队长期在该方面进行深入探索,积累了大量创新性工作。不久前,视觉定位组提出的融合3D场景几何信息的视觉定位算法被ICRA2020收录,本文将对该方法进行介绍。ICRA的全称是IEEE机器人与自动化国际会议(International Conference on Robotics and Automation),是机器人领域一年一度的顶级会议之一。

背景

1. 视觉定位算法介绍

1.1 传统视觉定位算法

传统的视觉定位方法通常需要预先构建视觉地图,然后在定位阶段,根据当前图像和地图的匹配关系来估计相机的位姿(位置和方向)。在这种定位框架中,视觉地图通常用带有三维信息和特征描述子的稀疏关键点表示。然后,通过当前图像与地图之间的关键点匹配获取2D-3D对应关系,利用PnP结合RANSAC的策略来估计相机位姿。其中,获得准确的2D-3D对应关系对定位结果至关重要。近年来,许多工作为提高2D-3D的匹配精度进行了各方面的探索,但大多传统方法[1,3,4]还是基于SIFT、SURF、ORB等底层特征,很难处理具有挑战性(光照改变或季节改变)的情况。

1.2 深度学习视觉定位算法

最近几年,融合神经网络的视觉定位算法被广泛研究,大家希望用神经网络取代传统方法中的部分模块(例如关键点和描述子生成)或者直接端到端的估计相机位姿。本论文研究内容属于对后面这种类型算法的优化。端到端视觉定位算法用神经网络的权值来表征场景信息,网络的训练过程实现建图,定位由网络的推理过程实现。PoseNet[2]是第一个基于神经网络的端到端视觉定位算法,它利用GoogLeNet的基础架构直接对输入的RGB图像进行6DoF相机位姿回归。在该思路的基础上,后续的改进包括加深网络结构、增加约束关系、融合时序信息和多任务联合建模等,例如,[5]加入贝叶斯CNN来建模精度不确定性;[6]将网络改为encoder-decoder结构;[7]和[8]引入了LSTM,利用视频流的时间和运动平滑性约束网络学习;[9]和[10]提出了多任务学习框架,联合建模视觉定位、里程计估计和语义分割三个任务,以上的工作都取得了定位精度的提升。

1.3 研究目的及意义

在上述提到的优化方法中,虽然[9]和[10]在定位精度上表现的更有优势,但是往往需要语义分割等大量的标注信息,在大规模的场景下代价太大。对于加深网络结构的优化方法,又可能带来训练的难度,因此,我们认为合理利用容易获取的信息来优化约束关系,具有更好的普适性和灵活性,这也是本研究的动机之一。一些其他研究者也在这方面开展了工作,例如受传统方法的启发,几何一致性误差、重投影误差、相对变换误差等被构建为正则化项加入损失函数中。这些改进比仅公式化预测位姿和真值位姿之间欧式距离的效果更好,并且不受网络结构的约束,可以灵活的适用于各种网络做进一步的性能提升。

在此基础上,我们进一步探索以更好的方式用几何信息来约束网络权重的更新。在SLAM应用和无人车平台中,深度信息是不可或缺的。例如,室内情况,利用现有的深度估计算法,可以直接从结构光相机、ToF相机或立体相机中获取深度信息;室外环境,通常采用三维激光雷达来获取深度/距离信息。因此,我们的改进也对深度信息加以利用。此外,我们使用了光度一致性的假设,也就是说,根据三维几何知识,当在多个图像中观察三维场景中的同一个点时,我们认为其对应的像素强度应该是相同的,这也被用于许多视觉里程计或光流算法。受此启发,我们构建了光度差损失项,并自然而然地搭配结构相似性(SSIM)损失项。前者为像素级约束,后者为图像级约束,和常用的欧式距离一起作为网络的损失函数,训练过程中约束网络权重的更新。我们优化后的损失函数融合了运动信息、3D场景几何信息和图像内容,帮助训练过程更高效、定位效果更准确。

2. 相关工作介绍

2.1 几何一致性约束

几何一致性约束最近被用来帮助提高位姿回归的准确性,并被证明比单独使用欧氏距离约束更有效。[9]和[10]通过惩罚与相对运动相矛盾的位姿预测,将几何一致性引入到损失函数中。[11]利用图像对之间的相对运动一致性来约束绝对位姿的预测。[12]引入了重投影误差,使用真值和预测位姿分别将3D点投影到2D图像平面上,将像素点位置的偏差作为约束项。这些方法都被认为是当时使用几何一致性损失的最先进方法。在本研究中,我们探索了一个3D场景几何约束即光度差约束,通过聚合三维场景几何结构信息,使得网络不仅能将预测的位姿与相机运动对齐,还能利用图像内容的光度一致性。

2.2 光度差约束

光度差约束通常用于处理带监督或无监督学习的相对位姿回归、光流估计和深度预测。例如,[13]研究了视频序列的时间关系,为深度补全网络提供额外的监督。[14]利用无监督学习的稠密深度和带有光度差损失的相机位姿构建了神经网络,以学习场景级一致性运动。[15]提出了一种多任务无监督学习稠密深度、光流和ego-motion的方法,其中光度差约束对不同任务之间的一致性起着重要作用。由于光度差约束在相对位姿回归和深度预测中被证明是有效的,我们引入并验证了它在绝对位姿预测中的有效性。 

与上述工作相比,我们的研究扩展了以下几点工作:

  • 搭建了一个深度神经网络模型,可以直接从输入图像估计相应的相机绝对位姿。

  • 利用深度传感器信息,构建了 3D 场景几何约束来提高位姿预测精度。并且,稀疏深度信息足以获得显著的定位精度提升,这意味着我们的方法可以适用于任何类型的深度传感器(稀疏或稠密)。

  • 在室内和室外数据集上进行了广泛的实验评估,证明了加入 3D 场景几何约束后,可以提高网络的定位精度,并且这一约束可以灵活地加入到其他网络中,帮助进一步提高算法性能。


算法介绍

1. 算法框架

本研究提出的算法框架和数据流如图a所示,蓝色部分是算法中的神经网络部分(图b),绿色部分是warping计算过程,黄色部分是网络的损失函数项,只有蓝色部分包含可训练的权重。

蓝色部分的网络模型采用主流的ResNet-50网络,保留原来的block设置,并在最后一个block后加入3个全连接层,分别预测3维的translation(x)和3维的rotation(q)。网络的训练过程需要输入两张连续的有共视的图像以及其中一张图像的深度图,建立真值位姿和预测位姿之间的欧式距离约束作为损失项。大部分先前文献中的工作仅以这个损失项作为损失函数,我们的工作则进一步融入了3D场景几何信息,通过利用比较容易获取的深度信息将这个约束公式化为光度差和SSIM。相比之下,3D场景几何约束是像素级的,可以利用更多的信息包括相机运动,场景的三维结构信息和图像内容相关的光度信息,从而使网络的学习更加高效,更好地朝着全局极小值的方向收敛。

2. Warping计算

绿色部分的warping计算利用连续两张图像之间的相对位姿变换和其中一张图像的深度图,将本张图像上的像素投影到另一张图像的视角上,生成视warping后的图像,计算公式如下所示。

在warping计算中,从二维图像像素重建三维结构需要深度信息,实际应用中我们可以从深度传感器(结构光相机、ToF相机和三维激光雷达)获取深度信息或通过相关算法回归深度,例如从两个重叠的图像中提取匹配点的三角测量方法。为了不引入误差,我们更倾向于选择来自深度传感器的比较鲁棒的深度信息。为了方便反向传播的梯度计算,我们采用双线性插值作为采样机制,生成与当前图像格式相同的合成图像。此外,这部分计算不含可训练的参数,并且inference过程不需要进行这部分的计算,因此不会带来额外的时间或者资源开销。

3. 损失函数

在训练过程中,应用了三个约束条件来帮助训练收敛:一个经典的欧式距离损失项来约束预测位姿和真值位姿的距离,欧式距离损失项此处不再赘述,直接给出公式如下:

当视角变化较小且环境光不变时,同一个三维点在不同图像中的光强应该相同。这种光度一致性用于解决许多问题,如光流估计、深度估计、视觉里程计等。在这里,我们使用它来进行绝对位姿估计,并光度差损失项公式化为warping计算后的图像与原始图像对应像素点的光度差值:

其中,M是用来过滤没有深度信息或者不服从光度一致性的像素。在我们的实验中,主要用它来屏蔽两种类型的像素:移动目标对应的像素和带有无效深度信息的像素。光度差损失项会约束预测的位姿离真值位姿不远,以保证在相邻图像间进行warping计算后重建的图像与原始图像对应像素的光度值一致。考虑到warping计算后,获得了视角重建后的图像,自然而然的引入结构相似性约束作为损失项。这个约束反映了场景结构的一致性,计算公式如下所示:

网络的损失函数定义为三个损失项的加权和,用三个加权系数进行尺度均衡。


实验结果

为了验证我们提出的算法的性能,进行了以下实验:

1. 与其他算法定位结果对比

在7Scene数据集中,除了MapNet[11]在chess场景中的表现稍好之外,我们的方法在其他场景都取得了最优的结果(见table 1)。在所需的训练时间上,MapNet 需要300个epochs和PoseNet[2]需要多于120个epochs,我们的方法只需要50个epochs。同时,在室外的Oxford robotcar数据集上,我们的方法也取得了较大的定位精度提升。Figure2显示了在7Scene中随机挑选的场景的测试结果。很明显,PoseNet的预测位姿噪声较大,MapNet表现的更稳定,但预测精度欠佳,我们的定位结果更为精确。

2. 损失项的消融实验

为了充分验证我们提出的光度差损失和SSIM损失对视觉定位算法性能提升的贡献,分别进行两个训练:在PoseNet网络的损失函数中加入光度差损失和SSIM损失后训练网络。在我们的算法中去掉这两项损失项,只在欧式距离的约束下训练网络。结果表明加入光度差和SSIM损失项总是能提高网络的定位性能(详细结果见论文)。同时,也表明新的损失项可以灵活的加入其他网络,用于进一步提高定位精度。

3. 深度稀疏实验

实际视觉定位应用中,并不总是有可靠的稠密深度可用,如果我们的算法在稀疏深度上依然可以表现的很好,则可以证明我们的方法具有较广泛的适用性。我们把可用的深度随机稀疏至原来的20%和60%后,重新训练网络,最终的结果如Table3所示,定位精度并没有被严重恶化。

4. 自监督方法的实验

在进行warping计算时,我们用了输入两帧图像的位姿预测结果来计算相对位姿变换,进而做warping计算,单就光度差和SSIM损失项来说,这是一种自监督的学习方法,那么,也可以一帧图像用预测结果,另一帧用真值来计算相对位姿变换。通过实验对比这两种方法,实验结果(详细结果见论文)表明,自监督策略的结果更优。除了网络被训练的次数更多这一原因外,它有助于网络以一种更自然的方式学习相机位姿的连续性和一致性,因为对于共视的图像,其相应的位姿应该是高度相关的。

结论与展望

本文提出了一种新的视觉定位算法,搭建一个新的网络框架端到端的估计相机位姿,在对网络约束关系的优化中,通过融合3D场景几何结构、相机运动和图像信息,引入了3D场景几何约束,帮助监督网络训练,提高网络的定位精度。实验结果表明,我们的方法优于以往的同类型工作。并且,在不同的网络中加入新的约束关系后可以进一步提高定位精度。

基于深度学习的视觉定位算法正在被广泛而又深入的研究,无论是提升算法的精度还是增强实际场景的适用性,各方面的尝试和努力都是迫切需要的。希望在未来的工作中,能够通过融入语义信息或者采用从粗到精多阶段级连的方法,在室内外场景上实现更高精度更加鲁棒的位姿估计,更多细节见论文.

论文原文:3D Scene Geometry-Aware Constraint for Camera Localization with Deep Learning

链接:https://arxiv.org/abs/2005.06147

参考文献

[1] Ke, Yan and R. Sukthankar. “PCA-SIFT: a more distinctive representation for local image descriptors.” Proceedings of the 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), 2004.

[2] A. Kendall, M. Grimes, and R. Cipolla, “Posenet: A convolutional network for real-time 6-dof camera relocalization,” in ICCV, 2015.

[3] Bay, Herbert, et al. “Speeded-up robust features (SURF).” Computer vision and image understanding 110.3 (2008): 346-359.

[4] Rublee, Ethan, et al. “ORB:An efficient alternative to SIFT or SURF.” ICCV. Vol. 11. No. 1. 2011.

[5] A. Kendall and R. Cipolla,“Modelling uncertainty in deep learning for camera relocalization,” ICRA, 2016.

[6] I. Melekhov, J. Ylioinas, J. Kannala, and E. Rahtu, “Image-based localization using hourglass networks,” arXiv:1703.07971, 2017.

[7] F. Walch, C. Hazirbas, et al.,“Image-based localization using lstms for structured feature correlation,” in ICCV, 2017.

[8] Xue, Fei, et al. “Beyond Tracking: Selecting Memory and RefiningPoses for Deep Visual Odometry.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019

[9] A. Valada, N. Radwan, and W. Burgard, “Deep auxiliary learning for visual localization and odometry,” in ICRA, 2018.

[10] N. Radwan, A. Valada, W. Burgard, “VLocNet++: Deep MultitaskLearning for Semantic Visual Localization and Odometry”, IEEE Robotics and Automation Letters (RA-L), 3(4): 4407-4414, 2018.

[11] Brahmbhatt, Samarth, et al. “Geometry-aware learning of maps for camera localization.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.

[12] A. Kendall and R. Cipolla, “Geometric loss functions for camera pose regression with deep learning,” CVPR, 2017.

[13] Ma, Fang chang, Guilherme Venturelli Cavalheiro, and Sertac Karaman.“Self-supervised sparse-to-dense: Self-supervised depth completion from lidar and monocular camera.” 2019 International Conference on Robotics and Automation (ICRA). IEEE, 2019.

[14] Zhou, Tinghui, et al. “Unsupervised Learning of Depth and Ego-Motion from Video.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017.

[15] Yin, Zhichao, and Jianping Shi. “Geonet: Unsupervised learning of dense depth, optical flow and camera pose.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。

下载2

在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。

下载3

在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_29462849/article/details/118159718

智能推荐

攻防世界_难度8_happy_puzzle_攻防世界困难模式攻略图文-程序员宅基地

文章浏览阅读645次。这个肯定是末尾的IDAT了,因为IDAT必须要满了才会开始一下个IDAT,这个明显就是末尾的IDAT了。,对应下面的create_head()代码。,对应下面的create_tail()代码。不要考虑爆破,我已经试了一下,太多情况了。题目来源:UNCTF。_攻防世界困难模式攻略图文

达梦数据库的导出(备份)、导入_达梦数据库导入导出-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏10次。偶尔会用到,记录、分享。1. 数据库导出1.1 切换到dmdba用户su - dmdba1.2 进入达梦数据库安装路径的bin目录,执行导库操作  导出语句:./dexp cwy_init/[email protected]:5236 file=cwy_init.dmp log=cwy_init_exp.log 注释:   cwy_init/init_123..._达梦数据库导入导出

js引入kindeditor富文本编辑器的使用_kindeditor.js-程序员宅基地

文章浏览阅读1.9k次。1. 在官网上下载KindEditor文件,可以删掉不需要要到的jsp,asp,asp.net和php文件夹。接着把文件夹放到项目文件目录下。2. 修改html文件,在页面引入js文件:<script type="text/javascript" src="./kindeditor/kindeditor-all.js"></script><script type="text/javascript" src="./kindeditor/lang/zh-CN.js"_kindeditor.js

STM32学习过程记录11——基于STM32G431CBU6硬件SPI+DMA的高效WS2812B控制方法-程序员宅基地

文章浏览阅读2.3k次,点赞6次,收藏14次。SPI的详情简介不必赘述。假设我们通过SPI发送0xAA,我们的数据线就会变为10101010,通过修改不同的内容,即可修改SPI中0和1的持续时间。比如0xF0即为前半周期为高电平,后半周期为低电平的状态。在SPI的通信模式中,CPHA配置会影响该实验,下图展示了不同采样位置的SPI时序图[1]。CPOL = 0,CPHA = 1:CLK空闲状态 = 低电平,数据在下降沿采样,并在上升沿移出CPOL = 0,CPHA = 0:CLK空闲状态 = 低电平,数据在上升沿采样,并在下降沿移出。_stm32g431cbu6

计算机网络-数据链路层_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏8次。数据链路层习题自测问题1.数据链路(即逻辑链路)与链路(即物理链路)有何区别?“电路接通了”与”数据链路接通了”的区别何在?2.数据链路层中的链路控制包括哪些功能?试讨论数据链路层做成可靠的链路层有哪些优点和缺点。3.网络适配器的作用是什么?网络适配器工作在哪一层?4.数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?5.如果在数据链路层不进行帧定界,会发生什么问题?6.PPP协议的主要特点是什么?为什么PPP不使用帧的编号?PPP适用于什么情况?为什么PPP协议不_接收方收到链路层数据后,使用crc检验后,余数为0,说明链路层的传输时可靠传输

软件测试工程师移民加拿大_无证移民,未受过软件工程师的教育(第1部分)-程序员宅基地

文章浏览阅读587次。软件测试工程师移民加拿大 无证移民,未受过软件工程师的教育(第1部分) (Undocumented Immigrant With No Education to Software Engineer(Part 1))Before I start, I want you to please bear with me on the way I write, I have very little gen...

随便推点

Thinkpad X250 secure boot failed 启动失败问题解决_安装完系统提示secureboot failure-程序员宅基地

文章浏览阅读304次。Thinkpad X250笔记本电脑,装的是FreeBSD,进入BIOS修改虚拟化配置(其后可能是误设置了安全开机),保存退出后系统无法启动,显示:secure boot failed ,把自己惊出一身冷汗,因为这台笔记本刚好还没开始做备份.....根据错误提示,到bios里面去找相关配置,在Security里面找到了Secure Boot选项,发现果然被设置为Enabled,将其修改为Disabled ,再开机,终于正常启动了。_安装完系统提示secureboot failure

C++如何做字符串分割(5种方法)_c++ 字符串分割-程序员宅基地

文章浏览阅读10w+次,点赞93次,收藏352次。1、用strtok函数进行字符串分割原型: char *strtok(char *str, const char *delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include <string.h>#include <stdio.h&_c++ 字符串分割

2013第四届蓝桥杯 C/C++本科A组 真题答案解析_2013年第四届c a组蓝桥杯省赛真题解答-程序员宅基地

文章浏览阅读2.3k次。1 .高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。在高斯发现的一个重要定理的日记_2013年第四届c a组蓝桥杯省赛真题解答

基于供需算法优化的核极限学习机(KELM)分类算法-程序员宅基地

文章浏览阅读851次,点赞17次,收藏22次。摘要:本文利用供需算法对核极限学习机(KELM)进行优化,并用于分类。

metasploitable2渗透测试_metasploitable2怎么进入-程序员宅基地

文章浏览阅读1.1k次。一、系统弱密码登录1、在kali上执行命令行telnet 192.168.26.1292、Login和password都输入msfadmin3、登录成功,进入系统4、测试如下:二、MySQL弱密码登录:1、在kali上执行mysql –h 192.168.26.129 –u root2、登录成功,进入MySQL系统3、测试效果:三、PostgreSQL弱密码登录1、在Kali上执行psql -h 192.168.26.129 –U post..._metasploitable2怎么进入

Python学习之路:从入门到精通的指南_python人工智能开发从入门到精通pdf-程序员宅基地

文章浏览阅读257次。本文将为初学者提供Python学习的详细指南,从Python的历史、基础语法和数据类型到面向对象编程、模块和库的使用。通过本文,您将能够掌握Python编程的核心概念,为今后的编程学习和实践打下坚实基础。_python人工智能开发从入门到精通pdf

推荐文章

热门文章

相关标签