掌桥专利:专业的专利平台
掌桥专利
首页

基于自监督深度学习的视觉里程计方法

文献发布时间:2023-06-19 19:28:50


基于自监督深度学习的视觉里程计方法

技术领域

本发明涉及一种基于自监督深度学习的视觉里程计方法。

背景技术

进入21世纪以来,人工智能技术开始广泛的应用在人们日常生活的方方面面,例如高级驾驶员辅助系统,自动驾驶,智能车辆,机器人等。其中,感知场景3D结构和解析场景几何关系有助于机器人理解现实环境,这对于广泛的人工智能应用是至关重要的。在诸多人工智能工程应用中,感知与解析场景3D结构的同时,我们还需要应用计算机视觉技术做检测、识别、路径规划和目标定位等任务。正是由于场景3D信息的帮助,这些计算机视觉任务才得以简化。毕竟知道场景的结构信息就更容易分辨出物体的边界,分辨出物体边界就更容易检测、识别出物体,而检测、识别出物体又是其他计算机视觉任务的基础。

前端视觉里程计在整个视觉SLAM技术中最基础的问题,只有一个好的前端初始值,才能顺利的进行后端的优化和回环检测以及最后的建图。而在求解视觉里程计问题上,图像只具有二维信息,丢失了场景深度信息,如何恢复深度信息对求解视觉里程计十分重要。在视觉SLAM中,是如何得到场景深度?对于单目摄像头方式,深度估计都存在一个尺度不确定性的问题,不利于实际中的应用;对于单目摄像头加激光组合的方式,虽然能够通过激光测到实际的场景深度,解决了尺度上的问题,它能收集的只是稀疏的深度信息,而有时我们需要的是密集的深度图;另一种方式是通过RGB-D摄像头可以直接测量得到场景的深度图,他不仅能解决尺度上的问题,还能得到稠密的深度图,但是只能在室内场景下进行深度信息标注,在室外场景下难以达到较高的标注质量,相对于普通摄像头来说价格也偏贵;对于立体匹配,或者说双目深度估计,不仅能得到稠密的深度图,还能解决尺度上的问题,并且能适用于室内跟室外,价格也比较便宜。

用计算机视觉的方法从相机图片(或与低成本的深度传感器相结合)估计出场景深度具有重要的学术意义。本文通过使用双目摄像头方式,并结合深度学习技术,来实现场景的深度估计和摄像头的位姿估计。它具有很强的鲁棒性来处理由光照变化,图像噪声和图像运动模糊引起的问题,适用于多场景。因此,研究SLAM前端视觉里程计部分对高级驾驶员辅助系统,自动驾驶、智能车辆,机器人等方面具有重要的理论和研究意义。

发明内容

为了解决上述问题,本发明提供一种基于自监督深度学习的视觉里程计方法,它具有很强的鲁棒性来处理由光照变化,图像噪声和图像运动模糊引起的问题,适用于多场景。

基于自监督深度学习的视觉里程计方法,它包括如下步骤:

第一步,使用双目摄像头硬件装置采集图片数据前,对双目摄像头进行标定;

第二步,通过双目进行视频图像数据的采集;

第三步,对采集得到视频图像数据进行预处理;

第四步,搭建深度估计模型;

第五步,搭建位姿估计模型;

第六步,搭建双目视觉SLAM系统框架。

进一步的,第三步中,数据预处理如下:图像降噪采用高斯平滑滤波;图像增强使用尺度变换、随机裁剪、颜色调整的方法;将RGB图像数据归一化到0到1之间。

进一步的,第四步中,设函数g为实现

进一步的,第五步中,设N为像素点的个数,图像重构损失函数定义如下:

通过图像相似度指标SSIM来综合计算重构图像和原始图像在光度上的误差,公示为:

其中,α是基本重构误差和相似度误差的权重,α取0.85。

本发明的有益效果:

本发明通过使用双目摄像头方式,并结合深度学习技术,来实现场景的深度估计和摄像头的位姿估计。它具有很强的鲁棒性来处理由光照变化,图像噪声和图像运动模糊引起的问题,适用于多场景。本发明的SLAM前端视觉里程计部分对高级驾驶员辅助系统,自动驾驶、智能车辆,机器人等方面具有重要的理论和研究意义。

附图说明

图1为本发明系统流程图;

具体实施方式

下面结合附图1对本发明做详细介绍:

本发明的基于自监督深度学习的视觉里程计方法具体步骤方法如下:

1)相机标定:由于相机镜头上的透镜的存在,使得光线投影到成像平面的过程会产生畸变。畸变又分径向畸变或者切向畸变。为了消除畸变对普通摄像头拍摄图像的影响和确定图像在图像坐标系、相机坐标系、世界坐标系下的转换关系,在使用双目摄像头硬件装置采集图片数据前,必须先对双目摄像头进行标定。

桶形畸变是由于图像放大率随着离光轴的距离增加而减小,而枕形畸变却恰好相反。在这两种畸变中,穿过图像中心和光轴有交点的直线还能保持形状不变。除了透镜的形状会引入径向畸变外,在相机的组装过程中由于不能使得透镜和成像面严格平行也会引入切向畸变。

对于径向畸变,无论是桶形畸变还是枕形畸变,由于它们都是随着离中心的距离增加而增加。我们可以用一个多项式函数来描述畸变前后的坐标变化:这类畸变可以用和中心距离有关的二次及高次多项式函数进行纠正,公式如下3.1,3.2:

x

y

其中是[x,y]

另一方面,对于切向畸变,可以使用另外的两个参数p

x

y

因此,联合式3.1、3.2式和联合式3.3、3.4式,对于相机坐标系中的一点P[X,Y,Z]

1.将三维空间点投影到归一化图像平面。设它的归一化坐标为[x,y]

2.对归一化平面上的点进行径向畸变和切向畸变纠正;

x

y

3.将纠正后的点通过内参数矩阵投影到像素平面,得到该点在图像上的正确位置,公式如下3.7,3.8。

u=f

v=f

坐标变换

相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述。这个模型有很多种,其中最简单的称为针孔模型。针孔模型是很常用,而且有效的模型,它描述了一束光线通过针孔之后,在针孔背面投影成像的关系。

对针孔相机模型简单的几何建模。设O-x-y-z为相机坐标系,习惯上我们让z轴指向相机前方,x向右,y向下。o为摄像机的光心,也是针孔模型中的针孔现实世界的空间点P,经过小孔O投影之后,落在物理成像平面上,成像点为P′。设P的坐标为[X,Y,Z]

并且设物理成像平面到小孔的距离为f(焦距)。那么,根据三角形相似关系,有公式如下3.9:

其中负号表示成的像是倒立的。为了简化模型,我们把可以成像平面对称到相机前方,和三维空间点一起放在摄像机坐标系的同一侧。这样做可以把公式3.9中的负号去掉,使式子更加简洁:

整理(3.9)式可得,如下公式为3.10,3.11:

公式3.10、3.11描述了点P和它的像之间的空间关系。设在物理成像平面上固定着一个像素平面o-u-v。我们在像素平面得到了P′的像素坐标:[u,v]

代入公式3.10和3.11并把α

其中,f的单位为米,α,β的单位为像素每米,f

把Z挪到左侧,整理得:

公式3.15中,把中间的量组成的矩阵称为相机的内参数矩阵(CameraIntrinsics)K。通过相机标定能确定相机内参数矩阵和图像畸变矫正,为下一步采集图像制作数据集估准备。

在实际标定过程中,由于双目的基线发现变化后,相机的参数也会随之发生改变,先预设定不同长度的基线,对不同长度的基线,分类进行相机标定。

2)数据采集

双目完成标定后,通过双目进行视频图像数据的采集。

3)数据预处理

采集得到视频图像数据,不能直接拿去进行网络模型的训练,还需要对视频图像数据进行预处理,数据预处理的方法针对不同的问题是不同的。对于本文,只需要图像降噪、图像增强、归一化操作就能满足数据要求。图像降噪采用高斯平滑滤波,能有效降低图像的椒盐噪声;对于图像增强,考虑到物体刚性变换对位姿估计的影响,不能使用图像平移或者随机旋转,仅使用尺度变换、随机裁剪、颜色调整的方法;最后将RGB图像数据归一化到0到1之间,可以有效防止在后面优化过程中梯度爆炸或者梯度消失的情况,加快算法的收敛。

(2)搭建深度估计模型

视差估计网络模型的结构如下:设函数g为实现

注:I

(3)位姿估计模型

视觉里程计关心的是相邻图像之间摄像机的相对运动,最简单的即是考虑相邻两帧图像之间相机的相对位姿变换。同样的,这里也用一个旋转矩阵R和一个位移矩阵t来描述相机的相对位姿变换。根据实现方法的不同,视觉里程计可分为需要提取特征点的特征点法和直接法。建立自监督的位姿模型,可以借用直接法的思想建立模型。

由定义,需要求取的是第二帧图片相对于第一帧图片的相机相对位姿,即旋转R和位移t。以第一帧照片为参照系,设相机的内参为K,由相机模型可得,公式3.16和3.17:

其中,Z

e=I

直接法通过几何约束建立最小光度误差为目标函数。本文利用卷积网络能提起图像高级特征,将卷积网络与直接法思想结合,建立端到端的位姿估计网络结构,并将深度估计信息传给位姿估计网络,解决了尺度不确定性,不仅仅只考虑几何特征,在误差函数中引入平滑度损失。

在训练阶段,本文用连续双目图像之间的几何约束将深度估计网络和位姿估计网络耦合在一起联合训练。训练时左右图像都使用,测试时只使用单目图像。深度估计网络训练时,以右图为监督信息,训练后可以得到图像的绝对尺度。由于深度估计网络和位姿估计网络的耦合,绝对尺度信息会共享给位姿估计网络。在测试阶段,系统可以使用单目图像执行稠密深度重建和相机位姿估计。

该损失和自编码器类似,我们最容易想到的就是通过重建图像来作损失函数。假设原来的左图(参考图像)为

经过重构的图像具有很大的失真,仅仅采用重构图像和原图的比较不够,我们会引入图像相似度指标SSIM来综合计算重构图像和原始图像在光度上的误差,如下公式3.20。

其中,a是基本重构误差和相似度误差的权重。a一般取0.85,相似度误差占据更大的比重,取值也可以根据实验结果适当调节。由于深度的不连续性通常与图像梯度有关,因此引入了由图像梯度加权的边缘感知深度的平滑度损失L

综上,整个网络的L

L

其中,λ是深度平滑损失的权重。

(4)搭建双目视觉SLAM系统框架

系统运行在内置Ubuntu18.04系统的笔记本电脑上,搭建了基于LINUX环境下的OpenCV3.4.1、PCL、G2O等三方开源库环境,并根据SLAM系统框架用C++语言把各个模块之间的算法进行综合,然后移植到开发板上,构成一个完整的视觉SLAM系统工程。为对系统的精确性和实时性进行评估,采用KITTI标准数据集和双目摄像机实时采集数据模拟移动机器人的运动并进行系统评估。搭建双目视觉SLAM系统框架,应用在ROS环境下的智能移动机器人上,在实际场景中进行现场测试。在完成实验后,由于纯视觉可能产生比较大的误差,为了提高该系统的精度,可以相机融合其他传感器(如IMU、激光等)一起进行测试该系统。

相关技术
  • 基于无监督深度学习的单目视觉里程计的设计方法
  • 基于深度学习的视觉里程计特征点提取方法及视觉里程计
技术分类

06120115920039