一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于无监督深度学习的单目视觉里程计的设计方法与流程

2022-07-02 13:08:15 来源:中国专利 TAG:
1.本发明涉及一种基于无监督深度学习的单目视觉里程计的设计方法。
背景技术
::2.近年来移动机器人、自动驾驶技术得到快速发展,对自主定位和导航的精度要求也越来越高。在室内或弱卫星导航环境下,基于视觉的同时定位与建图(simultaneouslocalizationandmapping,slam)技术有着至关重要的作用,视觉里程计(visualodometry,vo)作为视觉slam的关键环节,也迎来了越来越多的关注和研究。3.视觉里程计可分为基于特征的方法和直接方法。基于特征的方法通过检测特征点和提取局部描述符作为中间表示,然后在图像之间进行特征匹配,并且使用重投影误差来优化相机位姿。而直接方法则对图像形成过程建模,通过假设灰度不变性对光度误差函数进行优化。4.深度学习近年来席卷了计算机视觉领域,基于深度学习的slam研究也取得了显著进展。目前相关工作主要关注于slam标准环节的子问题,例如特征提取,特征匹配,异常值剔除和光束法平差(bundleadjustment,ba)等。端到端的视觉里程计框架提出从cnn网络中直接回归相机相对姿态或定位信息。cnn-slam在lsd-slam的基础上将深度估计和图像匹配均替换成基于cnn网络的方法,但在室外精度严重不足。gen-slam使用单目rgb相机利用传统几何slam的结果来训练网络得到位姿和深度估计。sfm-learner同时训练姿态和深度网络得到了与orb-slam相竞争的结果,deep-vo-feat和d3vo使用双目相机进行训练,可在单目相机运行下直接得到真实尺度下的轨迹。然而,由于缺乏多视图几何约束,端到端的深度学习方法往往面临着极大的尺度漂移问题,很难取得与传统vo相竞争的结果。上述研究中,单目视觉里程计还是存在尺度漂移和尺度不一致的问题。技术实现要素:5.为了解决上述技术问题,本发明提供一种能够有效减少尺度不一致和尺度漂移问题的基于无监督深度学习的单目视觉里程计的设计方法。6.本发明解决上述技术问题的技术方案是:一种基于无监督深度学习的单目视觉里程计的设计方法,包括以下步骤:7.步骤一:结合深度一致性和图像相似性损失函数得到尺度一致的无监督深度学习网络,并与raft光流网络联合训练得到更加鲁棒的光流;8.步骤二:根据前后一致性误差,在密集光流中进行稀疏采样,得到对应关系;9.步骤三:根据对应关系选择最优跟踪方式,联合深度网络进行深度对齐,从而得到尺度一致的视觉里程计。10.上述基于无监督深度学习的单目视觉里程计的设计方法,所述步骤一中,无监督深度学习网络的框架包括三个部分:深度网络、相对姿态网络和光流网络,深度网络接收单个rgb图像作为输入并输出逆深度图,相对姿态网络和光流网络均接收两帧图像作为输入,相对姿态网络输出两帧之间的六自由度相对位姿,光流网络输出两帧之间的双通道光流。11.上述基于无监督深度学习的单目视觉里程计的设计方法,所述步骤一中,在训练期间,同时估计相邻两帧图像深度,使用空间一致性约束使其深度信息一致;姿态网络和光流网络的输入为两张相邻rgb图像,联合相对位姿估计和深度估计得到合成图像,采用光度一致性损失函数和图像平滑损失函数优化深度信息和相机姿态,通过合成光流对raft网络进行联合优化;12.在缺少真实深度信息和光流信息的情况下,无监督深度学习网络利用合成视图,以帧间相似性作为监督信号来训练网络模型;深度网络和光流网络通过相对姿态网络进行几何关联,其中相对姿态网络用来帮助约束深度网络和光流网络,且只在训练期间使用;13.考虑两张相邻图像ik和ik 1,ik表示第k张图像,通过相对姿态网络和深度网络得到相邻帧之间的相对运动tk→k 1和单视图深度dk,dk 1,dk表示第k个单视图深度,根据等式[0014][0015]其中,为从第k张图像像素坐标经过变换得到第k 1张图像的像素坐标;为从序列k到序列k 1的预测相机相对运动,为第k张图像像素的预测深度;p是图像像素坐标,pk是第k张图像的像素坐标,k是相机内参矩阵;将输入图像ik进行变换得到合成图像由于图像是连续离散数值,使用可微双线性插值得到连续的像素坐标值,并由此得到一种合成光流fsyn:[0016][0017]无监督训练假设帧间相同物体表面外观也相同,在简单逐像素差基础上,引入结构相似度损失以学习相邻帧之间的结构信息,使用l1和ssim损失结合作为重建图像损失:[0018][0019]其中,lp:损失函数结果;结构相似损失函数;α=0.85,ssim使用3×3大小的窗口计算,v是相邻帧有效共视区域;[0020]在低纹理场景或均匀区域下,假设的光度不变性会导致预测空洞问题,为了得到平滑的深度预测,引入一阶边缘平滑项损失:[0021][0022]其中,ls:平滑损失函数结果;di,j:表示图像视差梯度;表示图像边缘概率图梯度,下标i,j表示像素坐标;x,y表示像素方向;ii,j:图像(i,j)位置像素点;分别是沿x,y方向的一阶导数;[0023]对于动态物体,联合图像分割网络进行掩码处理,根据monodepth2,使用二进制掩码,忽略与摄像机同步运动的对象,该掩码在网络的正向传递中自动计算:[0024][0025]其中ω:二进制掩码;lp(ik,ik 1):正文公式(3)中提到的图像重建损失函数;分别表示第k张图像,第k张图像的合成图像,第k 1张图像;通过合成光流和raft光流网络的误差联合训练进行微调:[0026][0027]lf:联合微调损失函数结果;flow:图像光流场共同有效像素区域;fr(p):raft网络光流预测结果;fsyn(p):合成光流网络光流预测结果;[0028]在训练中,为了到结构一致的深度预测,通过光流网络将dk 1与dk对齐,计算深度一致性损失:[0029][0030]其中,ldc:深度一致性损失函数结果;dk(p):第k张图像深度;通过光流网络匹配计算得到的第k张图像的深度;s是光流和深度的共同有效区域,以此得到一致的深度估计;[0031]综上所述,网络总体损失函数l为:[0032]l=lp λsls λflf λdcldcꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(8)[0033]其中,λs、λf和λdc表示各项损失的权重,所有损失共同应用于深度网络和光流网络。[0034]上述基于无监督深度学习的单目视觉里程计的设计方法,所述步骤二具体步骤为:[0035](2-1)前后光流一致性:从光流网络得到前向光流ff和后向光流fb并计算前后向一致性df=|ff(p) fb(p ff(p))|2;[0036](2-2)稀疏点采样:将图像划分为10×10网格区域,并在每个区域中取df小于阈值δ的前20组稀疏匹配点。[0037]上述基于无监督深度学习的单目视觉里程计的设计方法,所述步骤三具体步骤为:[0038](3-1)模型选择:计算本质矩阵和单应矩阵,然后计算模型得分rf,rf=sf/(sf sh),sf、sh分别为f,r模型得分;如果rf》0.5,则选择2d-2d跟踪模式;反之,则选择3d-3d跟踪模式;[0039](3-2)尺度恢复:对于2d-2d跟踪模式,从本质矩阵分解得到归一化的相机运动r表示旋转矩阵,表示位移向量,其模长为单位1;然后使用三角化方法进行尺度对齐,恢复尺度因子s,得到齐,恢复尺度因子s,得到表示相机运动,表示尺度恢复得到的实际位移长度;对于3d-3d跟踪模式,使用icp方式进行求解,得到tk→k 1=[r|t],[r|t]表示相机的运动方式,t表示相机位移向量。[0040]上述基于无监督深度学习的单目视觉里程计的设计方法,所述步骤(3-1)中,受orb-slam初始化方法启发,考虑了2d-2d和3d-3d两种跟踪方式;orb-slam使用模型得分方法仅进行初始化模型选择,跟踪过程则使用恒速运动模型以及pnp方法求解运动轨迹,由于同时具有2d-2d和3d-3d对应关系,仅使用模型得分rf进行跟踪方式的选择;首先求解单应矩阵hcr和本质矩阵fcr:[0041][0042]其中,pc为相邻两帧中前一帧的匹配点,pr为相邻两帧中后一帧的匹配点,然后为h模型和f模型分别计算sh和sf得分:[0043][0044]其中,m为h或f,ρm:模型得分s的中间计算结果;d2:表示对称转移误差;γ:等同于th,是无效数据排除阈值;当前帧第i′匹配点;参考帧第i′匹配点;分别是当前帧到参考帧之间、参考帧到当前帧之间的对称传递误差;误差tm为距离阈值,参考orb-slam,设th=5.99,tf=3.84,γ与th定义相同;[0045]当发生三维点云结构退化的情况时,通过深度网络得到尺度一致的深度信息,避免分解单应矩阵,通过svd方法求解[r|t]:[0046][0047]n:表示相邻两张图像特征匹配点数;i′:表示匹配点序号;r:表示相机旋转矩阵;表示第k张图像的第i′处匹配点。[0048]本发明的有益效果在于:本发明通过通过联合训练深度、相对姿态和光流来提高视觉里程计的性能,使用深度网络和光流网络得到长序列一致的深度信息和密集光流信息,通过前后一致性误差进行精确的稀疏光流采样,由模型得分选择最优跟踪方式,并与深度信息对齐得到尺度一致的视觉里程计,结合传统方法的几何约束条件和深度网络的鲁棒性匹配,在多项误差评估指标中明显优于单纯的几何方法和端到端的深度学习方法,在并且通过实验证明该方法有效减少了尺度不一致和尺度漂移问题。附图说明[0049]图1为本发明的流程图。[0050]图2为本发明无监督深度学习网络的架构图。[0051]图3为深度估计的示意图。[0052]图4为从前向和后向光流中提取稀疏匹配关系的示意图。[0053]图5为kitti09序列轨迹图。[0054]图6为kitti10序列轨迹图。具体实施方式[0055]下面结合附图和实施例对本发明作进一步的说明。[0056]如图1所示,一种基于无监督深度学习的单目视觉里程计的设计方法,包括以下步骤:[0057]步骤一:结合深度一致性和图像相似性损失函数得到尺度一致的无监督深度学习网络,并与raft光流网络联合训练得到更加鲁棒的光流。[0058]无监督学习的关键是使用图像重建损失,利用估计的深度、位姿、光流和源图像计算合成图像与目标图像之间的差异。单视图深度网络、光流网络和相机相对姿态网络是三个单独的任务,但他们有相互关联的图像相似性约束关系,通过视图合成,在现有无监督信号的基础上,结合空间一致性损失函数和图像相似性损失函数,耦合这三个网络的训练过程。[0059]无监督深度学习网络的框架包括三个部分:深度网络、相对姿态网络和光流网络,深度网络接收单个rgb图像作为输入并输出逆深度图,相对姿态网络和光流网络均接收两帧图像作为输入,相对姿态网络输出两帧之间的六自由度相对位姿,光流网络输出两帧之间的双通道光流。[0060]无监督深度学习网络架构如图2所示,在训练期间,同时估计相邻两帧图像深度,使用空间一致性约束使其深度信息一致;姿态网络和光流网络的输入为两张相邻rgb图像,联合相对位姿估计和深度估计得到合成图像,采用光度一致性损失函数和图像平滑损失函数优化深度信息和相机姿态,通过合成光流对raft网络进行联合优化;与网络单独训练相比,结合多任务一致性约束,加强了网络之间的联系,得到更加精确和鲁棒的深度、姿态和光流估计。[0061]在缺少真实深度信息和光流信息的情况下,无监督深度学习网络利用合成视图,以帧间相似性作为监督信号来训练网络模型;深度网络和光流网络通过相对姿态网络进行几何关联,其中相对姿态网络用来帮助约束深度网络和光流网络,且只在训练期间使用。[0062]考虑两张相邻图像ik和ik 1,ik表示第k张图像,通过相对姿态网络和深度网络得到相邻帧之间的相对运动tk→k 1和单视图深度dk,dk 1,dk表示第k个单视图深度,根据等式[0063][0064]其中,为从第k张图像像素坐标经过变换得到第k 1张图像的像素坐标;为从序列k到序列k 1的预测相机相对运动,为第k张图像像素的预测深度;p是图像像素坐标,pk是第k张图像的像素坐标,k是相机内参矩阵;将输入图像ik进行变换得到合成图像由于图像是连续离散数值,使用可微双线性插值得到连续的像素坐标值,并由此得到一种合成光流fsyn:[0065][0066]无监督训练假设帧间相同物体表面外观也相同,在简单逐像素差基础上,引入结构相似度损失以学习相邻帧之间的结构信息,使用l1和ssim损失结合作为重建图像损失:[0067][0068]其中,lp:损失函数结果;结构相似损失函数;α=0.85,ssim使用3×3大小的窗口计算,v是相邻帧有效共视区域;[0069]在低纹理场景或均匀区域下,假设的光度不变性会导致预测空洞问题,为了得到平滑的深度预测,引入一阶边缘平滑项损失:[0070][0071]其中,ls:平滑损失函数结果;di,j:表示图像视差梯度;表示图像边缘概率图梯度,下标i,j表示像素坐标;x,y表示像素方向;ii,j:图像(i,j)位置像素点;分别是沿x,y方向的一阶导数;[0072]对于动态物体,联合图像分割网络进行掩码处理,根据monodepth2,使用二进制掩码,忽略与摄像机同步运动的对象,该掩码在网络的正向传递中自动计算:[0073][0074]其中ω:二进制掩码;lp(ik,ik 1):正文公式(3)中提到的图像重建损失函数;分别表示第k张图像,第k张图像的合成图像,第k 1张图像。[0075]选择使用泛化能力强,快速且准确的raft网络作为光流主干网络。与使用从粗到细的金字塔迭代式网络相比,raft只以高分辨率维护和更新单个光流场,并且在迭代期间共享权重,克服了从粗到细优化网络的难以在粗分辨率下修正错误和难以检测小物体的快速运动的两大困难。通过合成光流和raft光流网络的误差联合训练进行微调:[0076][0077]lf:联合微调损失函数结果;flow:图像光流场共同有效像素区域;fr(p):raft网络光流预测结果;fsyn(p):合成光流网络光流预测结果;[0078]在训练中,为了到结构一致的深度预测,通过光流网络将dk 1与dk对齐,计算深度一致性损失:[0079][0080]其中,ldc:深度一致性损失函数结果;dk(p):第k张图像深度;通过光流网络匹配计算得到的第k张图像的深度;s是光流和深度的共同有效区域,以此得到一致的深度估计。[0081]综上所述,网络总体损失函数l为:[0082]l=lp λsls λflf λdcldcꢀꢀꢀꢀꢀꢀ(8)[0083]其中,λs、λf和λdc表示各项损失的权重,所有损失共同应用于深度网络和光流网络。[0084]步骤二:根据前后一致性误差,在密集光流中进行稀疏采样,得到对应关系。[0085]具体步骤为:[0086](2-1)前后光流一致性:从光流网络得到前向光流ff和后向光流fb并计算前后向一致性df=|ff(p) fb(p ff(p))|2。[0087]使用深度网络得到尺度一致的深度信息,三角化对齐过程独立进行,可以最大限度减少尺度漂移问题。[0088]为了从光流网络中提取稀疏匹配,同时使用前向光流和后向光流,利用双向一致性误差过滤得到精确的稀疏对应关系。由于不依赖运动模型进行局部匹配,避免了突然的运动转向引起的大量特征点误匹配问题。[0089](2-2)稀疏点采样:将图像划分为10×10网格区域,并在每个区域中取df小于阈值δ的前20组稀疏匹配点。[0090]步骤三:根据对应关系选择最优跟踪方式,联合深度网络进行深度对齐,从而得到尺度一致的视觉里程计。[0091]具体步骤为:[0092](3-1)模型选择:计算本质矩阵和单应矩阵,然后计算模型得分rf,rf=sf/(sf sh),sf、sh分别为f,r模型得分;如果rf》0.5,则选择2d-2d跟踪模式;反之,则选择3d-3d跟踪模式。[0093]受orb-slam初始化方法启发,考虑了2d-2d和3d-3d两种跟踪方式;orb-slam使用模型得分方法仅进行初始化模型选择,跟踪过程则使用恒速运动模型以及pnp方法求解运动轨迹,由于同时具有2d-2d和3d-3d对应关系,仅使用模型得分rf进行跟踪方式的选择;首先求解单应矩阵hcr和本质矩阵fcr:[0094][0095]其中,pc为相邻两帧中前一帧的匹配点,pr为相邻两帧中后一帧的匹配点,然后为h模型和f模型分别计算sh和sf得分:[0096][0097]其中,m为h或f,ρm:模型得分s的中间计算结果;d2:表示对称转移误差;γ:等同于th,是无效数据排除阈值;当前帧第i′匹配点;参考帧第i′匹配点;分别是当前帧到参考帧之间、参考帧到当前帧之间的对称传递误差;误差tm为距离阈值,参考orb-slam,设th=5.99,tf=3.84,γ与th定义相同;[0098]当发生三维点云结构退化的情况时,通过深度网络得到尺度一致的深度信息,避免分解单应矩阵,通过svd方法求解[r|t]:[0099][0100]n:表示相邻两张图像特征匹配点数;i′:表示匹配点序号;r:表示相机旋转矩阵;表示第k张图像的第i′处匹配点。[0101](3-2)尺度恢复:对于2d-2d跟踪模式,从本质矩阵分解得到归一化的相机运动r表示旋转矩阵,表示位移向量,其模长为单位1;然后使用三角化方法进行尺度对齐,恢复尺度因子s,得到齐,恢复尺度因子s,得到表示相机运动,表示尺度恢复得到的实际位移长度;对于3d-3d跟踪模式,使用icp方式进行求解,得到tk→k 1=[r|t],[r|t]表示相机的运动方式,t表示相机位移向量。[0102]实验验证与结果分析[0103]采用ubuntu20.04系统,cpu为i5-10300h,gpu为nvidiageforcegtx1660ti,显卡内存为6gb,设备内存为16gb。在kitti数据集上进行视觉里程计实验,并与传统方法和基于端到端的深度学习的方法进行对比,验证方法的有效性。[0104]网络架构与参数设置:[0105]深度估计网络基于通用的u-net网络架构,即编码器-解码器结构,以resnet18作为编码器网络;解码器使用跳跃链接架构,网络层之间的跳跃连接使其能同时融合浅层几何信息和高层抽象特征。由于相邻帧之间的运动很小,多尺度输出既不准确也不必要,我们只输出单尺度深度预测结果,这也极大节省了计算资源。光流网络使用raft网络作为主干网络;相对位姿网络是一个具有resnet18结构的姿态估计网络,使用轴角表示三维旋转。[0106]网络模型使用pytorch框架实现,使用adam优化器进行两阶段训练。第一阶段训练20个周期,学习速率设置为10-4,批量样本大小为8。第二阶段训练100个周期,学习速率设置为10-5,批量样本大小为4。在训练中,设置λs=0.4,λf=0.4,λdc=0.1,将图像序列大小调整为480×640。[0107]视觉里程计:[0108]kitti数据集共提供了22组序列数据,其中0-10提供了真实轨迹,实验在0-8序列进行训练,9-10序列进行评估测试,并与orb-slam2和端到端的深度学习方法进行对比研究。由于单目视觉里程计无法得到真实世界下的尺度,为了公平比较,统一将结果与真实轨迹尺度对齐。定性轨迹结果如图5和图6所示,相较于orb-slam2、sfmlearner、sc-sfmlerner和depth-vo-feat,我们方法的轨迹平移漂移量明显减少,这得益于我们尺度一致的深度估计。尽管depth-vo-feat使用双目相机训练,能够得到与真实世界尺度一致的结果,但其尺度漂移问题却最为严重。相反,由于提取了精确的匹配关系,经过尺度对齐之后,我们的方法与真实轨迹更加吻合。[0109]表1kitti09&10序列对比[0110]table1comparisonofkittisequence09&10[0111][0112]在不同子序列(100m,200m,···,800m)上使用平移误差(terr)、旋转误差(rerr)、相对位姿误差rpe(m/°)以及绝对轨迹误差(ate)进行更加详尽的分析,加粗字体表示该评估方面最好的结果。由表1可知,我们的方法在绝大多数指标都优于传统方法和纯深度学习方法,orb-slam2在旋转误差上有更好的表现,这是由于载具主要以匀速行驶,而其运动模型也假设两帧之间是匀速运动而导致误差较小,并且与我们方法之间的差距也非常小。sc-sfmlearner在训练过程中也使用了深度一致性约束,在序列9上的绝对轨迹误差稍微优于我们,并与其他方法均有较大差距,但由于其在位姿估计中未施加多视图几何约束,在其他大部分指标方面不如我们。本文提取多结构特征的稀疏匹配关系,利用对极几何约束,在其他评估方面展现出明显的优势,综合性能更好。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献