一种基于自监督深度学习的单目视觉惯导定位方法

    专利查询2022-07-07  127



    1.本发明涉及智能车辆的导航定位方法,特别是涉及了一种基于自监督深度学习的单目视觉惯导定位方法。


    背景技术:

    2.高精度的导航和定位是自动驾驶汽车的核心技术。常规的高精度定位手段,如差分gps和惯性导航设备在一些gps信号不佳的场合误差较大。其次,高精度惯导设备的价格往往较高,并不适用于商用的无人驾驶汽车方案。相比而言,一些基于语义地图的匹配定位方案相对廉价,但是考虑到视觉语义感知的误差和语义地图中语义要素的稀疏性,此类方案并不能实现任意场景下的定位。视觉惯性里程计(visual inertial odometry)是一种融合图像视觉和惯性器件数据的组合定位方法。它通过摄像头和廉价惯性器件的结合,既可以有效抑制惯性器件的漂移,又可以克服视觉里程计中的尺度缺失、受环境光照影响大等问题,是实现低成本高精度定位的有效手段。然而,传统的基于物理模型的视觉惯导里程计依赖于鲁棒的初始化以及视觉传感器和惯导传感器的严格标定,当初始化失败、标定不准确、场景模糊或者场景特征稀疏的情况下,定位性能下降明显。随着深度学习在计算机视觉领域的成功应用,基于深度学习方法的视觉惯导里程计也逐步受到关注。但是全监督的视觉里程计需要提供位姿真值用于训练,限制了方法的应用。


    技术实现要素:

    3.为了解决背景技术中存在的问题,本发明的目的在于提供一种基于自监督深度学习的单目视觉惯导定位方法,适用于无人车、机器人等需要视觉定位的领域。
    4.本发明利用神经网络的参数学习与非线性模型拟合的能力,利用深度学习解决视觉惯导组合的相机位姿估计和深度估计问题。利用不同的子网络分别对视觉图像、惯导传感器原始数据及其预积分数据进行建模,并通过自监督训练来优化网络模型的参数。在测试阶段,给定目标场景的图像数据与对应的惯导传感器数据,能够得到具有绝对尺度的6自由度的位姿。
    5.本发明采用的技术方案的步骤如下:
    6.1)利用单目视觉惯导里程计中的相机和惯导分别采集每个场景的原始图像数据和原始惯导传感器数据,对场景的原始图像数据进行预处理,获得图像预处理数据;接着对原始惯导传感器数据进行预积分后,获得惯导传感器预积分数据,再对当前场景的原始惯导传感器数据和对应的惯导传感器预积分数据分别进行归一化处理后,分别获得归一化后的原始惯导传感器数据以及惯导传感器预积分数据;
    7.2)将当前场景的归一化后的原始惯导传感器数据以及惯导传感器预积分数据,根据时间戳分别与图像预处理数据进行数据对齐,分别获得对齐后的原始惯导传感器数据和对应的惯导传感器预积分数据,由多个场景的图像预处理数据、对齐后的原始惯导传感器数据和对应的惯导传感器预积分数据构成训练集;
    8.3)将训练集输入自监督视觉惯导里程计深度学习网络中进行训练,获得训练好的自监督视觉惯导里程计深度学习网络;
    9.4)采集目标场景的原始图像数据和原始惯导传感器数据,对原始惯导传感器数据进行预积分获得惯导传感器预积分数据,对目标场景的原始图像数据和原始惯导传感器数据和对应的惯导传感器预积分数据分别进行处理后,获得目标场景的归一化后的原始惯导传感器数据以及惯导传感器预积分数据和图像预处理数据并输入训练好的自监督视觉惯导里程计深度学习网络中,输出预测的6自由度的相对位姿,基于目标场景的惯导传感器预处理数据利用最小二乘法对预测的6自由度的相对位姿进行绝对尺度处理后,获得相机的6自由度的绝对位姿。
    10.所述步骤1)中,将场景的原始图像数据的图像尺寸裁剪至预设尺寸,获得图像预处理数据;接着对场景的原始惯导传感器数据和对应的惯导传感器预积分数据分别进行零均值归一化处理后,分别获得归一化后的原始惯导传感器数据和对应的惯导传感器预积分数据。
    11.所述步骤3)中的自监督视觉惯导里程计深度学习网络由目标图像帧提取模块、深度估计网络和位姿估计网络构成,目标图像帧提取模块分别与深度估计网络和位姿估计网络相连;
    12.训练集中的图像预处理数据输入目标图像帧提取模块,目标图像帧提取模块分别输出原始目标图像帧和源图像帧,原始目标图像帧输入深度估计网络,原始目标图像帧、源图像帧和训练集中的对齐后的原始惯导传感器数据以及对应的惯导传感器预积分数据输入位姿估计网络。
    13.所述位姿估计网络包括卷积神经网络、深度自注意力变换网络、第一多层感知机和第二多层感知机;
    14.原始目标图像帧和源图像帧输入卷积神经网络中,对齐后的原始惯导传感器数据输入深度自注意力变换网络中,对齐后的惯导传感器预处理数据输入第一多层感知机中,卷积神经网络、深度自注意力变换网络和第一多层感知机的输出进行特征融合后输入到第二多层感知机中,第二多层感知机的输出作为位姿估计网络的输出。
    15.所述自监督视觉惯导里程计深度学习网络基于目标图像帧提取模块输出的源图像帧、位姿估计网络输出的6自由度的相对位姿、深度估计网络输出的深度图和单目视觉惯导里程计中相机的内参矩阵利用视图重建方法进行视图重建后,获得重建目标图像帧,再利用双线性采样的方法对重建目标图像帧进行双线性插值,获得预测目标图像帧,最后基于预测目标图像帧和原始目标图像帧提取模块输出的原始目标图像帧计算总损失函数,根据总损失函数对自监督视觉惯导里程计深度学习网络进行训练。
    16.所述目标图像帧提取模块中输入的图像预处理数据为图像序列,每个图像序列包含至少两张图像,当每个图像序列的图像个数为2时,前一帧的图像作为源图像帧,后一帧的图像作为原始目标图像帧;当每个图像序列的图像个数为奇数时,中间帧的图像作为原始目标图像帧,剩余帧的图像共同作为源图像帧。
    17.所述深度自注意力变换网络包括位置编码模块、6个编码模块和第三多层感知机,对齐后的原始惯导传感器数据输入位置编码模块,位置编码模块的输出与对齐后的原始惯导传感器数据相加后输入到第一编码模块中,第一编码模块依次经第二编码模块、第三编
    码模块、第四编码模块和第五编码模块后与第六编码模块相连,第六编码模块的输出输入到第三多层感知机中,第三多层感知机的输出作为深度自注意力变换网络的输出;6个编码模块的结构相同,包括多头注意力机制模块、第一残差模块、第一归一化层、前馈神经网络、第二残差模块和第二归一化层;每个编码模块中,当前编码模块的输入分别输入到当前编码模块的多头注意力机制模块和第一残差模块中,多头注意力机制模块和第一残差模块的输出相加后再输入到第一归一化层中,第一归一化层的输出分别输入到前馈神经网络和第二残差模块中,前馈神经网络和第二残差模块的输出相加后再输入到第二归一化层中,第二归一化层的输出作为当前编码模块的输出。
    18.所述步骤4)中相机的6自由度的绝对位姿是通过平移量的绝对尺度与相机的6自由度的相对位姿相乘计算获得,其中平移量的绝对尺度的计算公式如下:
    19.scale
    *
    =arg min||y
    i-scale*xi||220.其中,scale
    *
    表示最终的平移量的绝对尺度,6自由度的相对位姿包括平移量xi和旋转量,yi表示对齐后的惯导传感器预积分数据,argmin||||2表示最小二乘操作,scale表示计算过程中的平移量的绝对尺度。
    21.本发明利用神经网络的参数学习与非线性模型拟合的能力,利用自监督深度学习解决视觉惯导组合传感器导航定位估计和深度估计问题。利用卷积神经网络、深度自注意力变换网络以及多层感知机等不同类的网络分别对视觉图像、惯导传感器原始数据及其的预积分数据与导航参数之间的关系进行建模,并通过长时间训练来优化模型的参数。又由于惯导传感器数据的加成,在仅使用单目视觉数据和采用自监督学习的情况下,使得最终可以获得具有绝对尺度的6自由度的位姿估计以及场景深度估计。
    22.与背景技术相比,本发明具有的有益效果是:
    23.(1)本发明能够提高基于自监督深度学习单目视觉里程计方法的鲁棒性,且不需要对视觉传感器和惯导传感器进行严格的时空标定;
    24.(2)本发明将原始惯导传感器数据和对应的惯导传感器预积分数据引入网络模型的学习过程,进一步提高了自监督深度学习单目视觉里程计的位姿估计和深度估计精度;
    25.(3)本发明能够在仅使用单目图像数据和采用自监督学习的情况下,使得最终可以获得具有绝对尺度的6自由度的位姿估计以及场景深度估计。
    26.综合来说,本发明与基于自监督深度学习的纯单目视觉里程计相比,多了原始惯导传感器数据和其惯导传感器预积分数据,提升了位姿估计和深度估计的精度,提高了模型的鲁棒性。特别的,与传统的视觉惯导联合定位的方法相比,本发明不需要对视觉传感器和惯导传感器进行严格的时空标定,具有很强的鲁棒性。
    附图说明
    27.图1是本发明方法的整体网络框架示意图;
    28.图2是惯导传感器数据预积分示意图;
    29.图3是本发明构造的深度自注意力变换网络结构示意图。
    具体实施方式
    30.下面结合附图和实施例对本发明做进一步说明。
    31.按照本发明的发明内容完整方法实施的实施例及其实施过程如下:
    32.本发明包括以下步骤:
    33.1)单目视觉惯导里程计主要由相机和惯导构成,利用单目视觉惯导里程计中的彩色相机和惯导分别采集每个场景的原始图像数据和原始惯导传感器数据,其中,彩色相机以相对较低频率采集图像数据,惯导传感器同步以较高频率采集自主车或者机器人三个方向上的加速度和角速度数据;原始惯导传感器数据包括惯导传感器的3轴加速度和3轴角速度;惯导传感器的数据采集频率相对彩色相机的拍摄频率要大于10倍以上。具体实施中,彩色相机的采集频率为10hz,惯导传感器的采集频率为100hz。对场景的原始图像数据进行预处理,获得图像预处理数据;接着对原始惯导传感器数据imu进行预积分后,获得惯导传感器预积分数据,再对当前场景的原始惯导传感器数据和对应的惯导传感器预积分数据分别进行零均值归一化处理后,分别获得归一化后的原始惯导传感器数据以及惯导传感器预积分数据;
    34.步骤1)中,为了排除不利因素的影响,对于场景中动态物体较多、遮挡严重或者自主车停车时采集的图像和惯导数据均筛除,将场景的原始图像数据的图像尺寸裁剪至预设尺寸,获得图像预处理数据;具体实施中,预设尺寸为640
    ×
    192。如果图像数据的图像尺寸过小,则需要对图像数据进行边缘填充,使得图像数据的图像尺寸为预设尺寸;因惯导传感器的数据采集频率远大于图像数据的采集频率,造成前后相邻两帧图像之间对应数十组惯导数据,每组数据对应一个位姿的约束。事实上,连续两帧图像之间只需要一个约束,因此,需要把连续两帧图像之时刻内的惯导传感器数据积分起来,如图2所示。为避免每次因积分前项的变动造成严重的重复计算问题和计算资源的浪费,对惯导传感器数据进行预积分运算;具体实施中,将前后相邻两帧图像之间对应10条惯导数据进行预积分处理。
    35.为了消除惯导传感器数据的量纲的影响,使得不同数据或指标之间具有可比性,保证网络的收敛,需要对其原始数据及其预积分数据在输入网络之前进行零均值归一化处理,获得归一化后的原始惯导传感器数据和对应的惯导传感器预积分数据。
    36.2)将当前场景的高频率的归一化后的原始惯导传感器数据和对应的惯导传感器预积分数据,根据时间戳分别与低频率的图像预处理数据进行数据对齐,分别获得对齐后的原始惯导传感器数据和对应的惯导传感器预积分数据,由多个场景的图像预处理数据、对齐后的原始惯导传感器数据和对应的惯导传感器预积分数据构成训练集;
    37.3)将训练集输入自监督视觉惯导里程计深度学习网络中进行训练,获得训练好的自监督视觉惯导里程计深度学习网络;
    38.如图1所示,步骤3)中的自监督视觉惯导里程计深度学习网络由目标图像帧提取模块、深度估计网络和位姿估计网络构成,目标图像帧提取模块分别与深度估计网络和位姿估计网络相连;
    39.训练集中的图像预处理数据输入目标图像帧提取模块,目标图像帧提取模块分别输出原始目标图像帧和源图像帧,原始目标图像帧输入深度估计网络,深度估计网络输出深度图,原始目标图像帧、源图像帧和训练集中的对齐后的原始惯导传感器数据以及对应的惯导传感器预积分数据输入位姿估计网络。
    40.位姿估计网络包括卷积神经网络、深度自注意力变换网络(transformer网络)、第一多层感知机和第二多层感知机;
    41.原始目标图像帧和源图像帧输入卷积神经网络中,对齐后的原始惯导传感器数据输入深度自注意力变换网络中,对齐后的惯导传感器预处理数据输入第一多层感知机中,卷积神经网络、深度自注意力变换网络和第一多层感知机的输出进行特征融合后输入到第二多层感知机中,具体实施中,特征融合为特征级联,第二多层感知机的输出作为位姿估计网络的输出,位姿估计网络输出6自由度的相对位姿。位姿估计网络通过卷积神经网络、深度自注意力变换网络以及第一多层感知机分别对原始目标图像帧和源图像帧、具有时序属性的惯导传感器数据以及其预积分数据进行特征学习和神经网络参数化表达,具体地,通过卷积神经网络对原始目标图像帧和源图像帧的导航参数进行特征学习,来获得一个n维的视觉特征向量;通过深度自注意力变换网络对具有时序属性的原始惯导传感器数据进行导航参数特征学习,获得一个n维的原始惯导数据特征向量;通过第一多层感知机对惯导传感器预积分数据进行神经网络参数化表达,由于惯导传感器预积分数据已经是两个时间点之间的相对6自由度位姿,因此可直接通过一个b层的多层感知机,将6维的预积分数据扩展成n维的表征向量,最终得到一个n维的预积分特征向量。将三个特征向量级联,获得总特征向量。通过第二多层感知机对获得的总特征向量进行回归操作,将总特征向量映射到6个自由度的位姿参数,包括三维加速度和三维角速度;
    42.自监督视觉惯导里程计深度学习网络基于目标图像帧提取模块输出的源图像帧fs、位姿估计网络输出的6自由度的相对位姿、深度估计网络输出的深度图和单目视觉惯导里程计中的相机内参矩阵利用视图重建方法进行视图重建后,获得重建后的目标图像帧f

    t
    ,具体公式如下:
    [0043][0044]
    其中,f

    t
    表示重建目标图像帧,k为相机的内参矩阵,为位姿估计网络输出的6自由度的相对位姿,为计算深度估计网络输出的深度图p
    t
    中各像素点的深度,k-1
    表示相机内参矩阵的逆矩阵,由于该公式计算出的像素值是连续的,再利用双线性采样的方法对重建后的目标图像帧进行双线性插值,从周围的像素按照比例得到重建后的像素值,获得重建目标图像帧f

    t
    ,从而优化重建的目标图像帧与原始目标图像帧之间的误差,来约束整个网络模型的训练过程。最后基于重建的目标图像帧f

    t
    和原始目标图像帧f
    t
    提取模块输出的原始目标图像帧计算总损失函数,根据总损失函数对自监督视觉惯导里程计深度学习网络进行训练。总损失函数包括视图重建损失函数和边缘感知平滑度损失函数。自监督视觉惯导里程计深度学习网络的学习过程不需要任何真值参与,利用总损失函数同时约束深度估计网络和位姿估计网络,并完成对整体网络的训练。以总损失函数,耦合两个网络完成自监督训练过程。
    [0045]
    目标图像帧提取模块中输入的图像预处理数据为图像序列,每个图像序列包含至少两张图像,当每个图像序列的图像个数为2时,前一帧的图像作为源图像帧fs,后一帧的图像作为原始目标图像帧f
    t
    ;当每个图像序列的图像个数为奇数时,中间帧的图像作为原始目标图像帧f
    t
    ,剩余帧的图像共同作为源图像帧fs。
    [0046]
    如图3所示,深度自注意力变换网络包括位置编码模块、6个编码模块和第三多层感知机,对齐后的原始惯导传感器数据输入位置编码模块,位置编码模块的输出与对齐后
    的原始惯导传感器数据相加后输入到第一编码模块中,第一编码模块依次经第二编码模块、第三编码模块、第四编码模块和第五编码模块后与第六编码模块相连,第六编码模块的输出输入到第三多层感知机中,第三多层感知机的输出作为深度自注意力变换网络的输出;6个编码模块的结构相同,包括多头注意力机制模块、第一残差模块、第一归一化层、前馈神经网络、第二残差模块和第二归一化层;每个编码模块中,当前编码模块的输入分别输入到当前编码模块的多头注意力机制模块和第一残差模块中,多头注意力机制模块和第一残差模块的输出相加后再输入到第一归一化层中,第一归一化层的输出分别输入到前馈神经网络和第二残差模块中,前馈神经网络和第二残差模块的输出相加后再输入到第二归一化层中,第二归一化层的输出作为当前编码模块的输出。
    [0047]
    具体实施中,为了增强网络的表达能力和防止网络加深造成的网络退化,深度估计网络的编码部分采用标准的resnet18网络。其中,深度估计网络仅以原始目标图像帧作为输入,将原始目标图像帧和源图像帧在通道上级联之后作为位姿估计网络的卷积神经网络部分的输入。
    [0048]
    由于原始惯性导航传感器数据的维度为6,因此,深度自注意力变换网络网络的输入节点设置为6。
    [0049]
    为了使注意力层的输出包含更加丰富的编码表示信息,增强模型的表达能力,将多头注意力机制模块的注意力头的数量设置为n。
    [0050]
    经过自监督训练,深度网络和位姿估计网络可分别输出场景的深度图和两帧图像之间的相对位姿。
    [0051]
    4)采集目标场景的原始图像数据和原始惯导传感器数据,对原始惯导传感器数据进行预积分获得惯导传感器预积分数据,对目标场景的原始图像数据和原始惯导传感器数据和对应的惯导传感器预积分数据分别进行处理后,获得目标场景的归一化后的原始惯导传感器数据以及惯导传感器预积分数据和图像预处理数据并输入训练好的自监督视觉惯导里程计深度学习网络中,输出预测的6自由度的相对位姿,基于目标场景的惯导传感器预处理数据利用最小二乘法对预测的6自由度的相对位姿进行绝对尺度处理后,获得相机的6自由度的绝对位姿。
    [0052]
    步骤4)中相机的6自由度的绝对位姿是通过平移量的绝对尺度与相机的6自由度的相对位姿相乘计算获得,其中利用最小二乘法对平移量xi和对齐后的惯导传感器预积分数据yi之间的误差进行优化,获得平移量的绝对尺度,平移量的绝对尺度的计算公式如下:
    [0053]
    scale
    *
    =argmin||y
    i-scale*xi||2[0054]
    其中,scale
    *
    表示最终的平移量的绝对尺度,6自由度的相对位姿包括平移量xi和旋转量,yi表示对齐后的惯导传感器预积分数据,argmin||||2表示最小二乘操作,scale表示计算过程中的平移量的绝对尺度。
    [0055]
    在kitti数据集上进行测试,位姿估计误差详见下表1。方法1(sc-sfmlearner)、方法2(zhou et al.)、方法3(zhan et al.)是目前性能优异的基于学习的纯视觉里程计方法。
    [0056]
    表1在kitti数据集上测试的位姿估计误差
    [0057][0058]
    可以看出,采用本发明的方法后,在kitti 09序列上,模型的平移误差和旋转误差都得到了明显的提升;在kitti 10序列上,旋转误差获得了明显的提升。需要指出的,方法1的性能是在依靠真值恢复绝对尺度的情况下获得的,而本发明的方法没有任何真值参与,仅依靠imu数据恢复出位姿的绝对尺度。
    [0059]
    下表2为在kitti数据上测试的深度估计误差数据。方法4(monodepth2)、方法1(sc-sfmlearner)、方法5(d3vo)、方法6(packnet-sfm)均为目前深度估计性能优异的基于学习的纯视觉里程计方法。表中,

    表示该指标越大性能越好,

    表示该指标越小性能越好。
    [0060]
    表2在kitti数据上测试的深度估计误差
    [0061][0062]
    可以看出,与目前性能优异的基于学习的纯视觉里程计相比,采用本发明的方法能够有效提高深度估计各个指标的性能。
    转载请注明原文地址:https://tc.8miu.com/read-898.html

    最新回复(0)