CN112233179A - 一种视觉里程计测量方法 - Google Patents
一种视觉里程计测量方法 Download PDFInfo
- Publication number
- CN112233179A CN112233179A CN202011122212.9A CN202011122212A CN112233179A CN 112233179 A CN112233179 A CN 112233179A CN 202011122212 A CN202011122212 A CN 202011122212A CN 112233179 A CN112233179 A CN 112233179A
- Authority
- CN
- China
- Prior art keywords
- layer
- image
- optical flow
- depth
- occlusion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/269—Analysis of motion using gradient-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Multimedia (AREA)
- Automation & Control Theory (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种视觉里程计测量方法,包括以下步骤:步骤1、获取视觉里程计拍摄的图像;步骤2、对各连续的前后帧图像,分别获取其2D‑2D匹配关系,从而得到对应的相机相对位姿;利用训练好的深度预测模型获取各帧图像的预测深度;深度网络模型训练过程中,先从样本图像的2D‑2D匹配关系中得到样本图像的三角化深度;再基于三角化深度对深度预测模型输出的样本图像的预测深度进行尺度转换,并基于样本图像经尺度转换后的预测深度与三角化深度之间的深度误差优化深度预测模型;步骤3、根据各帧图像的预测深度生成点云,并结合前后帧图像对应的相机相对位姿,确定各点的空间坐标和相机的运动轨迹。本发明能够解决视觉里程计的尺度漂移问题。
Description
技术领域
本发明涉及一种视觉里程计测量方法。
背景技术
随着科技的发展,人们对移动机器人的自主性要求越来越高,在陌生环境中实现移动机器人的自主导航成为机器人领域的研究热点。基于视觉的同时定位与地图构建(Simultaneous Localization and Mapping,SLAM)是实现这一技术的核心,视觉里程计(Visual Odometry,VO)根据图像帧的运动估计相机位姿,是视觉SLAM中关键的一环,在无法预知地图的情况下,视觉里程计对于定位来说至关重要。
传统视觉里程计算法都是基于多视图几何的方法,在理想的场景下,它的精度是可靠且准确的。ORB-SLAM2是目前最精确地SLAM系统之一,但是它的视觉里程计算法是基于稀疏ORB特征的方法,对特征点的提取和匹配有着较高要求,在动态场景下,定位比较困难。基于直接法的视觉里程计算法中比较经典的是DSO-SLAM,该方法是直接基于关键帧的稀疏视觉里程计算法,对光照变化敏感,闭环难度大。传统视觉里程计算法,在实际运用场景下存在尺度漂移问题。
随着深度学习技术的不断发展,基于深度学习的视觉里程计逐渐成为热门。Agrawal等建议从运动估计任务中学习良好的视觉特征,该方法能够对相机相对姿态进行有效估计。Zhou等提出将运动结构作为一个监督学习问题,以端到端的方式学习单目深度和位姿。Tinghui Zhou等提出了SfM-Learner方法,第一个提出用自监督方法将相机位姿和深度进行联合学习。JiawangBian等在SfM-Learner的基础上提出了SC-SfMLearner方法,通过加强深度一致性来解决尺度不一致性问题。上述基于学习的方法都是在假设所有图像的深度图和位姿尺度一致的基础上进行的,且没有明确考虑相机运动而存在的多视图几何约束,导致泛化能力降低,鲁棒性差。
针对上述问题,有必要提供一种能够解决实际运用场景下存在的尺度漂移问题的视觉里程计测量方法。
发明内容
本发明所解决的技术问题是,针对现有技术的不足,提供一种视觉里程计测量方法,能够解决视觉里程计在实际运用场景下存在的尺度漂移问题,鲁棒性好。
本发明所提供的技术方案为:
一种视觉里程计测量方法,包括以下步骤:
步骤1、获取视觉里程计拍摄的图像;
步骤2、对各连续的前后帧图像,分别获取其像素对应关系,即2D-2D匹配关系,从而得到对应的相机相对位姿;
利用训练好的深度预测模型获取各帧图像的预测深度(将一帧图像输入训练好的深度预测模型,输出该帧图像的深度图,即预测深度);
所述深度网络模型训练过程中,先利用三角测量(三角化)的方法从样本图像的2D-2D匹配关系中得到样本图像的三角化深度(伪地面真实深度);再基于样本图像的三角化深度对深度预测模型输出的样本图像的预测深度进行尺度转换(矫正,对齐),并将样本图像经尺度转换后的预测深度与三角化深度之间的深度误差加入深度预测模型的损失函数中,作为深度预测模型训练过程的监督,优化深度预测模型;
步骤3、根据各帧图像的预测深度生成点云,并结合前后帧图像对应的相机相对位姿,确定各点的空间坐标和相机的运动轨迹。
本发明将预测深度的尺度与相对位姿进行匹配,从而优化尺度模糊问题,得到尺度一致的轨迹。
进一步地,所述步骤2中,获取前后帧图像对应的相机相对位姿包括以下步骤:
步骤2.1、将当前帧图像和前一帧图像输入训练好的光流估计网络模型进行光流估计,得到这两帧图像对应的前后向光流图;
步骤2.2、基于前后向光流一致性评估中表现最好的一部分像素点得到两帧图像间的像素对应关系,即形成精确的2D-2D匹配关系;
步骤2.3、根据得到的2D-2D匹配关系,采用对极几何方法求解本质矩阵,从而得到这两帧图像对应的相机相对位姿[R,t],其中R表示旋转矩阵,t表示平移矩阵。
进一步地,所述步骤2.2中,每个像素点对应的前后向光流一致性评估标准为:
Ms=1/(0.1+df)
其中,df为该像素点在前后向光流上对应的两个光流矢量之间的距离,距离越小,表示该像素点对应的前后向光流差异越小,该像素点对应的前后向光流一致性程度Ms越高,即该像素点在前后向光流一致性评估中表现越好。
进一步地,所述光流估计网络模型包括特征金字塔提取网络、光流估计网络和上下文网络;其中光流估计网络包括扭曲层、代价体积层、遮挡估计器和光流估计器;其计算方法为:
特征金字塔提取网络以两帧图像I1和I2为输入,对两帧图像分别进行卷积下采样,将它们编码为空间分辨率逐层降低的特征金字塔,特征金字塔中第0层特征即为原始图像,第1层~第L层为L个特征层;
遮挡估计器与光流估计器根据分辨率从低到高的顺序从特征金字塔中逐层提取特征,采用从低分辨率到高分辨率的方式逐层工作,最终输出原始分辨率的光流和遮挡图,具体过程如下:
首先,计算第L层估计光流:
先从金字塔顶中提取两帧图像I1和I2的第L层特征,将其输入代价体积层;再将当前代价体积层的输出输入遮挡估计器,得到第L层遮挡图;
将第L层遮挡图、当前代价体积层的输出和图像I1的第L层特征输入光流估计器,得到第L层估计光流;
然后,对于k=L-1,L-2,…,0,依次执行以下步骤,逐层计算各层估计光流,最终得到第0层估计光流:
先将第k+1层估计光流的上采样光流和图像I2的第k层特征输入扭曲层;再将扭曲层的输出和图像I1的第k层特征输入代价体积层;
将第k+1层遮挡图的上采样遮挡图、第k+1层估计光流的上采样光流和当前代价体积层的输出输入遮挡估计器,得到第k层遮挡图;
将图像I1的第k层特征、第k+1层估计光流的上采样光流、当前代价体积层的输出、第k层遮挡图作为光流估计器的输入,得到第k层估计光流;
计算过程中,令上述两帧图像I1和I2分别为t时刻和t+1时刻采集到的图像,则通过上述方法得到的为第0层估计光流为前向光流;令两帧图像I1和I2分别为t+1时刻和t时刻采集到的图像,则通过上述方法得到的为第0层估计光流为后向光流。
进一步地,所述光流估计网络采用深度学习方法进行训练;
光流估计网络的损失函数由光度损失、光流平滑度损失和遮挡估计损失加权而成;
其中光度损失Lf为:
光流平滑度损失Ls为:
遮挡估计损失Lo为:
其中,Pr通过遮挡估计器中soft-max函数计算得到,Pr(O(x)=1|X)表示soft-max函数计算得到的图像X中像素x被遮挡的概率,Pr(O(x)=0|X)表示soft-max函数计算得到的图像X中像素x未被遮挡的概率,Pr(O(x)=1|X)+Pr(O(x)=0|X)=1;ρ(x)是图像X中像素x的真实标签,若图像X中像素x被遮挡,则对应的ρ(x)=1,若图像X中像素x未被遮挡,则对应的ρ(x)=0;wocc和wnoc分别是被遮挡和未被遮挡的像素的权重因子;在计算第k层遮挡图(第k层估计光流)时,X取当前代价体积层输入的样本图像I1的第k层特征,k=L-1,L-2,…,0;
进一步地,所述遮挡图为两个通道的图像,分别表示输入图像上各个像素点被遮挡和未被遮挡的概率;图像上未被遮挡的概率大于被遮挡的概率的像素点属于非遮挡区域;
所述步骤2.3中,对非遮挡区域和前后向光流一致性评估中表现最好的一部分像素点的对应关系进行采样,然后利用RANSAC算法随机抽取一定数量的样本,通过归一化“八点法”求解本质矩阵E,然后通过SVD分解求得[R,t]。
进一步地,所述深度预测模型采用深度学习方法进行训练,采用以下函数Ld作为深度预测模型的损失函数:
其中,D是深度预测模型输出的样本图像的预测深度,Dtri是样本图像的三角化深度,s是尺度自适应因子。
有益效果:
本发明上述技术方案提供的视觉里程计测量方法(DOF-VO),有效利用深度学习方法进行单目深度预测以及两帧图像间的光流估计;其中光流估计网络由特征金字塔网络、光流估计网络和上下文网络三部分组成;采用特征金字塔网络对不同尺度的图像进行特征提取,光流估计网络部分集成了遮挡估计器,即在光流估计器之前增加遮挡估计器,先对遮挡区域进行估计,作为光流估计器的附加输入,这样遮挡估计不依赖于不精确的光流估计,并且光流估计器受益于额外的输入;采用空洞卷积来整合光流的上下文信息,结合逐层学习的方法,缩小光流模型,改进了光流估计性能。从光流估计结果中得到两帧图像间的像素对应关系,即2D-2D匹配关系,通过2D-2D匹配关系求解本质矩阵,从而得到相机相对位姿;然后利用三角测量的方法,从2D-2D匹配关系中求解三角化深度,将深度预测模型输出的预测深度与三角化深度进行尺度自适应对齐,并将转换后的预测深度与三角化深度之间的深度误差引入损失函数中,作为深度预测模型训练过程的监督,优化深度预测模型,解决尺度不一致问题;优化后的深度预测模型得到的预测深度和相对位姿具有相同的尺度,结合预测深度和相对位姿可以得到一个尺度确定的轨迹图,优化了尺度模糊问题,改善了视觉里程计的鲁棒性。在KITTI数据集上进行仿真实验,将本发明方法与其他典型的视觉里程计方法进行了对比,结果表明,本发明的视觉里程计测量方法在通用评价指标上与ORB_SLAM2和SC-SfMLearner相比有明显提升,在轨迹跟踪上具有良好的表现,尺度漂移问题得到有效改善,验证了本发明的有效性。
附图说明
图1为本发明流程图
图2为现有的光流估计网络整体架构
图3为本发明实施例改进后的光流估计网络原理图
图4为本发明实施例中光流估计示例;其中图4(a)为2D-2D对应关系,图4(b)为相应的前向光流,图4(c)为相应的后向光流;
图5为本发明实施例中预测深度示例;其中图5(a)为输入图像,图5(b)为相应的预测深度;
图6为本发明实施例中不同方法得到的轨迹对比图;其中图6(a)~6(c)分别为使用KITTI数据集的序列08~10进行测试得到的x—z轴轨迹;图6(d)~6(f)分别为使用KITTI数据集的序列08~10进行测试得到的移动距离—x、y、z轴轨迹。
具体实施方式
以下结合附图和具体实施例对本发明进行进一步具体说明。
如图1所示,本实施例公开了一种视觉里程计测量方法,包括以下步骤:
步骤1、获取视觉里程计拍摄的图像;
步骤2、对各连续的前后帧图像,分别获取其像素对应关系,即2D-2D匹配关系,从而得到对应的相机相对位姿;
利用训练好的深度预测模型获取各帧图像的预测深度(将一帧图像输入训练好的深度预测模型,输出该帧图像的深度图,即预测深度);
所述深度网络模型训练过程中,先利用三角测量(三角化)的方法从样本图像的2D-2D匹配关系中得到样本图像的三角化深度(伪地面真实深度);再基于样本图像的三角化深度对深度预测模型输出的样本图像的预测深度进行尺度转换(矫正,对齐),并将样本图像经尺度转换后的预测深度与三角化深度之间的深度误差加入深度预测模型的损失函数中,作为深度预测模型训练过程的监督,优化深度预测模型;
步骤3、根据各帧图像的预测深度生成点云,并结合前后帧图像对应的相机相对位姿,确定各点的空间坐标和相机的运动轨迹。
本发明将预测深度的尺度与相对位姿进行匹配,从而优化尺度模糊问题,得到尺度一致的轨迹。
实施例2:
本实施例在实施例1的基础上,采样融合深度学习的相对位姿估计方法。具体地,所述步骤2中,获取前后帧图像对应的相机相对位姿包括以下步骤:
步骤2.1、将当前帧图像和前一帧图像输入训练好的光流估计网络模型进行光流估计,得到这两帧图像对应的前后向光流图;
步骤2.2、基于前后向光流一致性评估中表现最好的一部分像素点得到两帧图像间的像素对应关系,即形成精确的2D-2D匹配关系;
步骤2.3、根据得到的2D-2D匹配关系,采用对极几何方法求解本质矩阵,从而得到这两帧图像对应的相机相对位姿[R,t],其中R表示旋转矩阵,t表示平移矩阵。
以下对上述各主要步骤的原理进行详细说明:
(1)采用基于深度学习的光流估计网络模型
深层神经网络将光流估计看作一个学习问题,采用端到端的网络模型对光流进行估计,在特征提取和相邻帧之间的密集对应估计方面具有很好的效果,在速度和准确率上都超过了传统光流算法。现有的光流估计网络模型(光流估计卷积神经网络模型)整体架构(PWC-Net)包括特征金字塔提取网络、光流估计网络和上下文网络(Context network),整体网络架构如图2所示;其中光流估计网络包括图中的扭曲层(warping层)和代价体积层(cost volume层)和光流估计器(optical flow estimator)。
在特征金字塔提取网络中,因为原始图像的光照一直变化,将传统的图像金字塔方法变换为可学习的特征金字塔。给定两帧输入图像I1、I2,对它们使用相同的孪生卷积神经网络进行编码,每个卷积层后面都跟着一个带泄露修正线性单元(leaky ReLU),通过卷积层对L-2层进行下采样得到第L-1层。对L层光流进行上采样得到的光流与L-1层分辨率一致,采用反卷积的方法实现上采样。
在光流估计网络中,将传统方法中的扭曲运算作为网络中的一层来估计大运动,由于代价体积(cost volume)表示两幅图像各自像素的匹配程度,比原始图像更能区分光流,网络中设计了一个代价体积层,用于存储下一帧像素与其对应帧像素相关联的匹配代价,光流估计器来估计光流。扭曲层和代价体积层不包含可训练参数。扭曲层通过使用双线性插值来实现扭曲操作;扭曲层的输入是第二帧图像I2第L-1层的特征和第L层估计光流的上采样光流,得到扭曲后的图像作为代价体积层的输入;光流估计器是一个多层的卷积神经网络,它的输入是代价体积层的输出、第一帧图像第L-1层的特征和第L层估计光流的上采样光流,输出是光流信息。光流估计器采用DenseNet作为全连接层,保证网络中层与层之间最大程度的信息传输的前提下,直接将所有层连接起来,故使用DenseNet连接来增强光流估计器架构性能。
上下文网络从光流估计器获取估计光流和特征,采用空洞卷积来整合光流的上下文信息,以有效地扩大每个输出单元在所需金字塔等级的感知野大小,并输出精确光流。
本实施例对现有的光流估计网络进行了改进,将遮挡估计集成到光流估计中,即在光流估计器之前增加遮挡估计器,先对遮挡区域进行估计,作为光流估计器的附加输入。
大多数光流方法将遮挡检测为对应场的异常值,或者通过对估计的前向和后向光流进行一致性检查,然后将光流外推到遮挡区域。这种方法的缺点是初始光流已经受到遮挡的不利影响。PWC-Net通过相关代价体积来估计光流,代价体积除了光流估计之外,也包含了遮挡相关的信息,直观来说,非遮挡区域的代价体积较小,遮挡区域的代价体积较高,当某个像素的所有代价体积很高时,该像素很可能在下一帧中被遮挡。为了利用这些信息,在代价体积计算之后直接在估计光流之前进行遮挡估计,如图3所示。然后,遮挡估计器的输出与代价体积本身一起发送到光流估计器。这样,遮挡估计不依赖于不精确的光流估计,并且光流估计器受益于额外的输入。本实施例中,遮挡估计器包括依次连接的五个卷积层,前四个卷积层均使用leakyReLU函数作为激活函数,最后一个卷积层使用soft-max函数作为激活函数;五个卷积层输出通道数分别为D、D/2、D/4、D/8和2,最后的输出表示图像上各个像素点被遮挡和未被遮挡的概率。
改进后光流估计网络模型包括特征金字塔提取网络、光流估计网络和上下文网络;其中光流估计网络包括扭曲层、代价体积层、遮挡估计器和光流估计器;其工作原理如下:
特征金字塔提取网络以连续两帧图像I1和I2为输入,对两帧图像分别进行卷积下采样,将它们编码为空间分辨率逐层降低的特征金字塔,特征金字塔中第0层特征即为原始图像,第1层~第L层为L个特征层,空间分辨率逐层降低,在高层低分辨率图像上,大的偏移将变为小的偏移。遮挡估计器与光流估计器根据分辨率从低到高的顺序从特征金字塔中逐层提取特征,采用从低分辨率到高分辨率的方式逐层求解光流,最终输出原始分辨率的光流和遮挡图。具体过程如下:
首先,计算第L层估计光流:
从金字塔顶中提取两帧图像I1和I2的第L层特征,将其输入代价体积层;然后将当前代价体积层的输出输入遮挡估计器,得到第L层遮挡图;所述遮挡图为两个通道的图像,分别表示输入图像上各个像素点被遮挡和未被遮挡的概率;图像上未被遮挡的概率大于被遮挡的概率的像素点属于非遮挡区域;
将第L层遮挡图、当前代价体积层的输出和图像I1的第L层特征输入光流估计器,得到第L层估计光流;
然后,对于k=L-1,L-2,…,0,依次执行以下步骤,逐层计算各层估计光流,最终得到第0层估计光流(即原始分辨率光流):
将第k+1层估计光流的上采样光流(对第k+1层估计光流进行上采样得到)和图像I2的第k层特征输入扭曲层(即利用第k+1层估计光流的上采样光流来扭曲图像I2的第k层特征,其中图像I2第k层的特征作为参考图像,得到扭曲后的图像,即合成图像);再将扭曲层的输出和图像I1的第k层特征输入代价体积层(计算两帧图像间的代价体积);
将第k+1层遮挡图的上采样遮挡图(对k+1层遮挡图进行上采样得到)、第k+1层估计光流的上采样光流和当前代价体积层的输出输入遮挡估计器,得到第k层遮挡图;
将图像I1的第k层特征、第k+1层估计光流的上采样光流、当前代价体积层的输出、第k层遮挡图作为光流估计器的输入,得到第k层估计光流;
令两帧图像I1和I2分别为t时刻和t+1时刻采集到的图像,则通过上述方法得到的为第0层估计光流为前向光流;令两帧图像I1和I2分别为t+1时刻和t时刻采集到的图像,则通过上述方法得到的为第0层估计光流为后向光流。
2D-2D对应关系的精度对于准确估计相对位姿具有重要意义,为了提高光流估计精确度,采用前后向光流一致性作为衡量对应关系的标准来滤除光流异常值,选择前后向一致性评估中表现最好的一部分像素点来形成2D-2D匹配,用于估计相机相对姿态。即所述步骤2.2中,每个像素点对应的前后向光流一致性评估标准为:
Ms=1/(0.1+df) (7)
其中,df为该像素点在前后向光流上对应的两个光流矢量之间的距离,距离越小,表示该像素点对应的前后向光流差异越小,该像素点对应的前后向光流一致性程度Ms越高,即该像素点在前后向光流一致性评估中表现越好。光流估计效果图如图4所示,其中图4(a)是两帧图像间的2D-2D匹配,图4(b)、图4(c)是前后向光流。
(2)光流估计网络模型的损失函数
光流估计网络模型的损失函数由光度损失、光流平滑度损失和遮挡估计损失加权而成。
其中,α为权重因子(本实施例中α=0.85),表示Ii和的结构相似性(SSIM,structural similarity index),是衡量两幅图像相似度的指标;在计算第k层估计光流时,Ii为当前扭曲层输入的图像I2的第k层特征,k=L-1,L-2,…,0,为当前扭曲层的输出;
光流平滑度损失是由光度损失在低纹理场景或均匀区域无法提供充分信息而造成的,为解决该问题,对光流估计进行正则化前先引入平滑度损失函数Ls。
其中,Dm是将Im输入深度网络得到的预测深度,和分别表示求图像沿x和y方向的一阶导数,它可以确保平滑度受图像边缘的影响;在计算第k层估计光流时,Im为当前代价体积层输入的图像I1的第k层特征,k=L-1,L-2,…,0;
遮挡估计损失采用加权像素交叉熵损失Lo:
Lo(Pr,ρ(x))=-wocc∑x:ρ(x)=1ρ(x)logPr(O(x)=1|X)-wnoc∑x:ρ(x)=0(1-ρ(x))logPr(O(x)=0|X) (3)
其中,Pr通过遮挡估计器中soft-max函数计算得到,Pr(O(x)=1|X)表示soft-max函数计算得到的图像X中像素x被遮挡的概率,Pr(O(x)=0|X)表示soft-max函数计算得到的图像X中像素x未被遮挡的概率,Pr(O(x)=1|X)+Pr(O(x)=0|X)=1;ρ(x)是图像X中像素x的真实标签,若图像X中像素x被遮挡,则对应的ρ(x)=1,若图像X中像素x未被遮挡,则对应的ρ(x)=0;在计算第k层遮挡图(第k层估计光流)时,X取当前代价体积层输入的图像I1的第k层特征,k=L-1,L-2,…,0;wocc和wnoc分别是被遮挡和未被遮挡的像素的权重因子;wocc和wnoc根据图像X中两类像素的比例来确定,比如图像X一共有N1+N0个像素,被遮挡的像素有N1个,未被遮挡的像素有N0个,那么被遮挡的像素的权重为N0/(N1+N0),未被遮挡的像素的权重为N1/(N1+N0),给数量少的类别像素足够大的权重,卷积网络就可训练出最后满意结果。
(3)对极几何
给定两帧图像I1、I2,估计相机相对姿态的基本方法是求解本质矩阵,即当两帧图像之间形成2D-2D像素(p1,p2)对应关系时,采用对极约束求解本质矩阵,从而得到相机的相对姿态[R,t]。
光流为每个像素提供对应关系,而其中一些像素是有噪声的,不适合求解本质矩阵。因此本实施例中,使用前后向光流一致性评估来选择可靠的对应关系,即所述步骤2.3中,对非遮挡区域(根据遮挡估计器中soft-max函数计算得到的结果,图像上未被遮挡的概率大于被遮挡的概率的像素点属于非遮挡区域)和前后向光流一致性评估中表现最佳的一部分像素(本实施例中选取表现最佳的10%~20%,经过测试选取表现最佳的15%的像素效果最好)的对应关系进行采样,然后利用RANSAC算法随机抽取一定数量的(本实施例中为6K个)样本,通过归一化“八点法”求解本质矩阵E,然后通过SVD分解求得[R,t]。
(4)深度估计与尺度对齐
得到相机的相对位姿后,需要估计地图点的空间位置,由于在深度学习训练过程中不能保证图像片段之间使用一致的比例,所以仍然存在尺度不一致的问题。从基于光流估计的匹配关系中得到三角化深度,将预测深度与三角化深度进行尺度对齐,并将转换后的预测深度与三角化深度之间的深度误差加入损失函数中,作为深度预测模型训练过程的监督,解决尺度不一致问题,使学习问题更简单,提高了泛化能力。
尽管大多数三角化深度的效果都不错,但被遮挡区域和极点区域周围的深度值是有噪声的。对精确的像素匹配重新进行采样,通过三角测量得到稀疏的三角化深度,并采用中点三角测量方法来求解三角化深度。
预测深度模型采用带有跳跃连接的标准全卷积编码器/解码器网络架构,ResNet18作为编码器,DispNet作为解码器,深度预测效果图如图5所示。
(5)深度损失函数
深度损失函数由边缘感知深度平滑度损失和三角化深度(三角测量深度)误差损失组成,边缘感知深度平滑度损失与式(9)一致。将预测深度与三角化深度进行尺度自适应,并将转换后的预测深度与三角化深度之间的深度误差最小化,以最小误差作为深度损失进行反向传播,深度误差损失Ld如下:
其中,D是深度预测模型输出的预测深度,Dtri是三角化深度,s是尺度自适应因子。
实验结果与分析
实验所使用的设备内存为16GB,CPU为Intel CORE i5-7500H,GPU为NVIDIAGTX1080Ti,显存为11GB,运行系统为Ubuntu16.04,使用Pytorch深度学习框架对光流网络和深度网络进行训练。为了保证实验结果的有效性和实验方法对比的一致性,实验在同一硬件及软件环境下完成。
(1)数据集和训练参数设置
实验采用KITTI视觉里程计数据集,为了使实验结果可对比和评估,选取提供真实轨迹的00~10共11个序列,使用序列00~07进行训练,序列08~10进行测试并用来评估视觉里程计的性能。在训练过程中,使用Adam优化器对20个周期进行训练,其中1阶矩指数衰减率β1=0.9,2阶矩指数衰减β2=0.999,每一小批样本量为8,初始学习率设置为10-4,经过15次迭代训练后调整为10-5,KITTI数据集图片大小调整为640×192。
(2)视觉里程计仿真实验结果分析
为了验证本发明视觉里程计的性能,对采用本发明方法的视觉里程计DOF-VO与采用ORB_SLAM2方法和SC-SfMLearner方法的视觉里程计进行仿真实验,结果如图6所示,其中,GT代表真实轨迹,DOF-VO、ORB_SLAM2、SC-SfMLearner分别表示三种方法得到的预测轨迹。从图6中可以看出DOF-VO对真实轨迹的跟踪效果较好,在精度方面优于ORB-SLAM2和SC-SfMLearner预测轨迹。
为了进行更详细的跟踪精度分析,在KITTI数据集的00~10这11个不同长度序列(100m,200m,……800m)上计算平移矢量、旋转量、绝对轨迹误差、相对位姿误差的均方误差,并计算其均值作为视觉里程计的评价指标,DOF-VO和ORB_SLAM2、SC-SfMLearner在平移矢量、旋转量、绝对轨迹误差、相对位姿误差上的对比如表1所示。
表1视觉里程计结果对比图
从表1的平均误差项可以看出,由于存在尺度漂移问题,几何方法ORB_SLAM2表现出较低的旋转误差和较高的平移误差,深度学习方法SC-SfMLearner在相对位姿估计上具备一定的优势,表现出较低的相对位姿误差,但平移误差和旋转误差较高。本发明的视觉里程计定位方法(DOF-VO)使用尺度一致的预测深度来进行尺度恢复,有效缓解了尺度漂移问题,在轨迹跟踪上具有良好的表现,与ORB_SLAM和SC-SfmLearner相比,在平移误差和旋转误差方面得到了显著改善,相对位姿误差明显降低,绝对轨迹误差有所下降,具有更好的定位精度。
Claims (7)
1.一种视觉里程计测量方法,其特征在于,包括以下步骤:
步骤1、获取视觉里程计拍摄的图像;
步骤2、对各连续的前后帧图像,分别获取其像素对应关系,即2D-2D匹配关系,从而得到对应的相机相对位姿;
利用训练好的深度预测模型获取各帧图像的预测深度;
所述深度网络模型训练过程中,先利用三角测量的方法从样本图像的2D-2D匹配关系中得到样本图像的三角化深度;再基于样本图像的三角化深度对深度预测模型输出的样本图像的预测深度进行尺度转换,并将样本图像经尺度转换后的预测深度与三角化深度之间的深度误差加入深度预测模型的损失函数中,作为深度预测模型训练过程的监督,优化深度预测模型;
步骤3、根据各帧图像的预测深度生成点云,并结合前后帧图像对应的相机相对位姿,确定各点的空间坐标和相机的运动轨迹。
2.根据权利要求1所述的视觉里程计测量方法,其特征在于,所述步骤2中,获取前后帧图像对应的相机相对位姿包括以下步骤:
步骤2.1、将当前帧图像和前一帧图像输入训练好的光流估计网络模型进行光流估计,得到这两帧图像对应的前后向光流图;
步骤2.2、基于前后向光流一致性评估中表现最好的一部分像素点得到两帧图像间的像素对应关系,即形成2D-2D匹配关系;
步骤2.3、根据得到的2D-2D匹配关系,采用对极几何方法求解本质矩阵,从而得到这两帧图像对应的相机相对位姿[R,t],其中R表示旋转矩阵,t表示平移矩阵。
3.根据权利要求2所述的视觉里程计测量方法,其特征在于,所述步骤2.2中,每个像素点对应的前后向光流一致性评估标准为:
Ms=1/(0.1+df)
其中,df为该像素点在前后向光流上对应的两个光流矢量之间的距离,距离越小,表示该像素点对应的前后向光流差异越小,该像素点对应的前后向光流一致性程度Ms越高,即该像素点在前后向光流一致性评估中表现越好。
4.根据权利要求2所述的视觉里程计测量方法,其特征在于,所述光流估计网络模型包括特征金字塔提取网络、光流估计网络和上下文网络;其中光流估计网络包括扭曲层、代价体积层、遮挡估计器和光流估计器;其计算方法为:
特征金字塔提取网络以两帧图像I1和I2为输入,对两帧图像分别进行卷积下采样,将它们编码为空间分辨率逐层降低的特征金字塔,特征金字塔中第0层特征即为原始图像,第1层~第L层为L个特征层;
遮挡估计器与光流估计器根据分辨率从低到高的顺序从特征金字塔中逐层提取特征,采用从低分辨率到高分辨率的方式逐层工作,最终输出原始分辨率的光流和遮挡图,具体过程如下:
首先,计算第L层估计光流:
先从金字塔顶中提取两帧图像I1和I2的第L层特征,将其输入代价体积层;再将当前代价体积层的输出输入遮挡估计器,得到第L层遮挡图;
将第L层遮挡图、当前代价体积层的输出和图像I1的第L层特征输入光流估计器,得到第L层估计光流;
然后,对于k=L-1,L-2,…,0,依次执行以下步骤,逐层计算各层估计光流,最终得到第0层估计光流:
先将第k+1层估计光流的上采样光流和图像I2的第k层特征输入扭曲层;再将扭曲层的输出和图像I1的第k层特征输入代价体积层;
将第k+1层遮挡图的上采样遮挡图、第k+1层估计光流的上采样光流和当前代价体积层的输出输入遮挡估计器,得到第k层遮挡图;
将图像I1的第k层特征、第k+1层估计光流的上采样光流、当前代价体积层的输出、第k层遮挡图作为光流估计器的输入,得到第k层估计光流;
计算过程中,令上述两帧图像I1和I2分别为t时刻和t+1时刻采集到的图像,则通过上述方法得到的为第0层估计光流为前向光流;令两帧图像I1和I2分别为t+1时刻和t时刻采集到的图像,则通过上述方法得到的为第0层估计光流为后向光流。
5.根据权利要求4所述的视觉里程计测量方法,其特征在于,所述光流估计网络采用深度学习方法进行训练;
光流估计网络的损失函数由光度损失、光流平滑度损失和遮挡估计损失加权而成;
其中光度损失Lf为:
光流平滑度损失Ls为:
遮挡估计损失Lo为:
其中,Pr通过遮挡估计器中soft-max函数计算得到,Pr(O(x)=1|X)表示soft-max函数计算得到的图像X中像素x被遮挡的概率,Pr(O(x)=0|X)表示soft-max函数计算得到的图像X中像素x未被遮挡的概率,Pr(O(x)=1|X)+Pr(O(x)=0|X)=1;ρ(x)是图像X中像素x的真实标签,若图像X中像素x被遮挡,则对应的ρ(x)=1,若图像X中像素x未被遮挡,则对应的ρ(x)=0;wocc和wnoc分别是被遮挡和未被遮挡的像素的权重因子;在计算第k层遮挡图(第k层估计光流)时,X取当前代价体积层输入的样本图像I1的第k层特征,k=L-1,L-2,…,0。
6.根据权利要求1所述的视觉里程计测量方法,其特征在于,所述遮挡图为两个通道的图像,分别表示输入图像上各个像素点被遮挡和未被遮挡的概率;图像上未被遮挡的概率大于被遮挡的概率的像素点属于非遮挡区域;
所述步骤2.3中,对非遮挡区域和前后向光流一致性评估中表现最好的一部分像素点的对应关系进行采样,然后利用RANSAC算法随机抽取一定数量的样本,通过归一化“八点法”求解本质矩阵E,然后通过SVD分解求得[R,t]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011122212.9A CN112233179B (zh) | 2020-10-20 | 2020-10-20 | 一种视觉里程计测量方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011122212.9A CN112233179B (zh) | 2020-10-20 | 2020-10-20 | 一种视觉里程计测量方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112233179A true CN112233179A (zh) | 2021-01-15 |
CN112233179B CN112233179B (zh) | 2022-08-19 |
Family
ID=74119159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011122212.9A Active CN112233179B (zh) | 2020-10-20 | 2020-10-20 | 一种视觉里程计测量方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112233179B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112785629A (zh) * | 2021-01-21 | 2021-05-11 | 陕西师范大学 | 一种基于无监督深度光流网络的极光运动表征方法 |
CN112906766A (zh) * | 2021-02-02 | 2021-06-04 | 电子科技大学 | 一种融合深度学习和几何推理的单目视觉里程计方法 |
CN113658231A (zh) * | 2021-07-07 | 2021-11-16 | 北京旷视科技有限公司 | 光流预测方法、装置、电子设备及存储介质 |
CN113989318A (zh) * | 2021-10-20 | 2022-01-28 | 电子科技大学 | 基于深度学习的单目视觉里程计位姿优化与误差修正方法 |
CN114429555A (zh) * | 2022-01-20 | 2022-05-03 | 中国科学技术大学 | 由粗到细的图像稠密匹配方法、系统、设备及存储介质 |
CN115294375A (zh) * | 2022-10-10 | 2022-11-04 | 南昌虚拟现实研究院股份有限公司 | 一种散斑深度估算方法、系统、电子设备及存储介质 |
CN118115764A (zh) * | 2024-01-18 | 2024-05-31 | 电子科技大学(深圳)高等研究院 | 一种无人机多层特征尺度稳定器的单目视觉里程计方法 |
CN118397038A (zh) * | 2024-06-24 | 2024-07-26 | 中南大学 | 基于深度学习的运动目标分割方法、系统、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954498B1 (en) * | 2000-10-24 | 2005-10-11 | Objectvideo, Inc. | Interactive video manipulation |
CN109741383A (zh) * | 2018-12-26 | 2019-05-10 | 西安电子科技大学 | 基于空洞卷积和半监督学习的图像深度估计系统与方法 |
CN110351511A (zh) * | 2019-06-28 | 2019-10-18 | 上海交通大学 | 基于场景深度估计的视频帧率上变换系统及方法 |
CN111325794A (zh) * | 2020-02-23 | 2020-06-23 | 哈尔滨工业大学 | 一种基于深度卷积自编码器的视觉同时定位与地图构建方法 |
CN111612825A (zh) * | 2020-06-28 | 2020-09-01 | 南昌航空大学 | 基于光流与多尺度上下文的图像序列运动遮挡检测方法 |
-
2020
- 2020-10-20 CN CN202011122212.9A patent/CN112233179B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954498B1 (en) * | 2000-10-24 | 2005-10-11 | Objectvideo, Inc. | Interactive video manipulation |
CN109741383A (zh) * | 2018-12-26 | 2019-05-10 | 西安电子科技大学 | 基于空洞卷积和半监督学习的图像深度估计系统与方法 |
CN110351511A (zh) * | 2019-06-28 | 2019-10-18 | 上海交通大学 | 基于场景深度估计的视频帧率上变换系统及方法 |
CN111325794A (zh) * | 2020-02-23 | 2020-06-23 | 哈尔滨工业大学 | 一种基于深度卷积自编码器的视觉同时定位与地图构建方法 |
CN111612825A (zh) * | 2020-06-28 | 2020-09-01 | 南昌航空大学 | 基于光流与多尺度上下文的图像序列运动遮挡检测方法 |
Non-Patent Citations (3)
Title |
---|
CL´EMENT GODARD.ET AL: ""Digging Into Self-Supervised Monocular Depth Estimation"", 《CVF》 * |
DEQING SUN.ET AL: ""PWC-Net: CNNs for Optical Flow Using Pyramid,Warping, and Cost Volume"", <ARXIV:1709.02371V3> * |
张聪炫等: ""深度学习光流计算技术研究进展"", 《电子学报》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112785629A (zh) * | 2021-01-21 | 2021-05-11 | 陕西师范大学 | 一种基于无监督深度光流网络的极光运动表征方法 |
CN112906766A (zh) * | 2021-02-02 | 2021-06-04 | 电子科技大学 | 一种融合深度学习和几何推理的单目视觉里程计方法 |
CN113658231A (zh) * | 2021-07-07 | 2021-11-16 | 北京旷视科技有限公司 | 光流预测方法、装置、电子设备及存储介质 |
CN113658231B (zh) * | 2021-07-07 | 2023-09-26 | 北京旷视科技有限公司 | 光流预测方法、装置、电子设备及存储介质 |
CN113989318A (zh) * | 2021-10-20 | 2022-01-28 | 电子科技大学 | 基于深度学习的单目视觉里程计位姿优化与误差修正方法 |
CN114429555A (zh) * | 2022-01-20 | 2022-05-03 | 中国科学技术大学 | 由粗到细的图像稠密匹配方法、系统、设备及存储介质 |
CN115294375A (zh) * | 2022-10-10 | 2022-11-04 | 南昌虚拟现实研究院股份有限公司 | 一种散斑深度估算方法、系统、电子设备及存储介质 |
CN115294375B (zh) * | 2022-10-10 | 2022-12-13 | 南昌虚拟现实研究院股份有限公司 | 一种散斑深度估算方法、系统、电子设备及存储介质 |
CN118115764A (zh) * | 2024-01-18 | 2024-05-31 | 电子科技大学(深圳)高等研究院 | 一种无人机多层特征尺度稳定器的单目视觉里程计方法 |
CN118115764B (zh) * | 2024-01-18 | 2024-10-15 | 电子科技大学(深圳)高等研究院 | 一种无人机多层特征尺度稳定器的单目视觉里程计方法 |
CN118397038A (zh) * | 2024-06-24 | 2024-07-26 | 中南大学 | 基于深度学习的运动目标分割方法、系统、设备及介质 |
CN118397038B (zh) * | 2024-06-24 | 2024-09-03 | 中南大学 | 基于深度学习的运动目标分割方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112233179B (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112233179B (zh) | 一种视觉里程计测量方法 | |
CN114782691B (zh) | 基于深度学习的机器人目标识别与运动检测方法、存储介质及设备 | |
CN107564061B (zh) | 一种基于图像梯度联合优化的双目视觉里程计算方法 | |
CN110807809B (zh) | 基于点线特征和深度滤波器的轻量级单目视觉定位方法 | |
CN110689562A (zh) | 一种基于生成对抗网络的轨迹回环检测优化方法 | |
CN110490928A (zh) | 一种基于深度神经网络的相机姿态估计方法 | |
CN111024066A (zh) | 一种无人机视觉-惯性融合室内定位方法 | |
CN105865462B (zh) | 带有深度增强视觉传感器的基于事件的三维slam方法 | |
CN114663496B (zh) | 一种基于卡尔曼位姿估计网络的单目视觉里程计方法 | |
CN111899280B (zh) | 采用深度学习和混合型位姿估计的单目视觉里程计方法 | |
CN109272493A (zh) | 一种基于递归卷积神经网络的单目视觉里程计方法 | |
CN109974743A (zh) | 一种基于gms特征匹配及滑动窗口位姿图优化的rgb-d视觉里程计 | |
CN115035171B (zh) | 基于自注意力导向特征融合的自监督单目深度估计方法 | |
CN109029425A (zh) | 一种采用区域滤波的模糊星图复原方法 | |
CN114964276B (zh) | 一种融合惯导的动态视觉slam方法 | |
CN111798485A (zh) | 一种利用imu增强的事件相机光流估计方法及系统 | |
CN112907557A (zh) | 道路检测方法、装置、计算设备及存储介质 | |
CN114202579B (zh) | 一种面向动态场景的实时多体slam系统 | |
CN114612525A (zh) | 基于网格分割与双地图耦合的机器人rgb-d slam方法 | |
Singh et al. | Fusing semantics and motion state detection for robust visual SLAM | |
CN111275751B (zh) | 一种无监督绝对尺度计算方法及系统 | |
CN116704032A (zh) | 一种基于单目深度估计网络和gps的室外视觉slam方法 | |
CN114943762B (zh) | 一种基于事件相机的双目视觉里程计方法 | |
CN107992677B (zh) | 基于惯导信息和亮度修正的红外弱小移动目标跟踪方法 | |
CN112837374B (zh) | 一种空间定位方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |