基于在线学习深度预测网络的实时稠密单目SLAM方法与系统与流程

文档序号:14217435阅读:864来源:国知局

本发明属于计算机视觉三维重建技术领域,更具体地,涉及一种基于在线学习深度预测网络的实时稠密单目slam方法与系统。



背景技术:

即时定位与地图重建技术(simultaneouslocalizationandmapping,slam)可以实时的预测传感器的位姿并且重建出周围环境的3d地图,因此在无人机避障以及增强现实等领域发挥着重要的作用。其中,仅仅依靠单个摄像头作为输入传感器的slam系统被称为单目slam系统。单目slam具有低功耗、硬件门槛低以及操作简单等特性,被研究人员广泛使用。但是,现有流行的单目slam系统,无论是基于特征方法的ptam(paralleltrackingandmappingforsmallarworkspaces)和orb-slam(orb-slam:aversatileandaccuratemonocularslamsystem),还是采用直接法的lsd-slam(lsd-slam:large-scaledirectmonocularslam),都存在两个主要的问题:(1)只能构建出场景的稀疏或者半稠密的地图,因为只有少数关键点或是高梯度点的深度可以计算出来;(2)具有尺度不确定性,存在尺度飘移的现象。

近几年,用于单目图片深度估计的深度卷积神经网络(convolutionalneuralnetwork,cnn)已经取得了巨大的进步,其主要原理是在大量的训练数据之中学习物体的深度和形状、纹理、场景语义以及场景上下文等之间的内在联系,从而准确预测输入到网络之中图片的深度信息。将cnn与单目slam结合不但可以提高建图的完整率,还可以获得绝对的尺度信息,因此弥补了单目slam的缺陷与不足。目前,最成功将两者结合的系统被称为cnn-slam(cnn-slam:realtimedensemonocularslamwithlearneddepthprediction),该系统把cnn深度预测的结果作为slam关键帧的初始深度值,然后采用像素匹配、三角测量和图优化的方法对关键帧中高梯度点的深度进行优化,从而获得稠密的3d重建结果,并使尺度信息更加接近真实尺度。虽然取得了一定的效果,但是该系统仍存在以下问题:

(1)只有少数高梯度像素点的深度值被优化,大部分低梯度像素点的深度值没有变化,造成重建效果不理想,特别是对于未知场景;(2)利用cnn输出之中高梯度像素点的深度信息来预测尺度信息不够准确,造成初始化不够充分,会增大slam系统建图和追踪的误差。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种将在线学习深度预测网络与单目slam相结合的方法与系统,其目的在于充分利用深度卷积神经网络的优势实现对于单目slam系统关键帧的稠密深度估计,并根据结果恢复场景真实尺度信息,由此解决传统单目slam缺少尺度信息和不能实现稠密建图的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种基于在线学习深度预测网络的实时稠密单目slam方法,包括:

(1)从单目视觉传感器通过旋转和平移运动采集的图片序列中选择关键帧,通过最小化高梯度点的光度误差优化得到关键帧的相机姿态,并且采用三角测量法预测高梯度点的深度得到当前帧的半稠密地图;

(2)根据所述关键帧选择在线训练图片对,采用逐块随机梯度下降法根据所述在线训练图片对来在线训练更新cnn网络模型,并利用训练后cnn网络模型对当前帧图片进行深度预测得到稠密地图;

(3)根据所述当前帧的半稠密地图和预测稠密地图进行深度尺度回归,得到当前帧深度信息的绝对尺度因子;

(4)根据相机姿态将所述预测稠密地图通过位姿变换投影到上一关键帧中,并根据所述绝对尺度因子将所述半稠密地图投影到上一关键帧中,采用ncc得分投票方法根据所述两种投影结果选择所述当前帧的各像素深度预测值得到预测深度图,并对所述预测深度图进行高斯融合得到最终深度图。

本发明的一个实施例中,所述根据所述关键帧选择在线训练图片,具体为:采用如下约束条件在关键帧前后帧图片中筛选图片帧与所述关键帧构成图片对:

第一,相机运动约束:两帧图片之间水平方向上的位移满足|tx|>0.9*t,其中t代表两帧图片之间的基线距离;

第二,视差约束:对于每一对图片,采用光流法计算图片间的垂直方向的平均视差disavg,只有当disavg小于预设阈值δ时才会将该对图片保存为候选训练图片;

第三,多样性约束:同一个关键帧只能产生一对训练图片;

第四,训练池容量约束:每当训练图片对的数量到达设定阈值v时,就将训练池中的图片送入到网络,对网络进行在线训练,保存训练得到的网络模型,同时清空训练池继续进行训练数据的筛选。

本发明的一个实施例中,采用逐块随机梯度下降法根据所述在线训练图片来在线训练更新cnn网络模型,具体为:

将resnet-50之中的卷积层分为5个块,其中每一个块具体表示为conv1,conv2_x,conv3_x,conv4_x,conv5_x;conv1由一个单一的7x7的全卷积层组成;conv2_x由一个3x3的卷积层和3个瓶颈构建块共10层组成;conv3_x由4个瓶颈构建块共12层组成;conv4_x由6个瓶颈构建块共18层组成:conv5_x由3个瓶颈构建块共9层组成,五个部分加起来构成了resnet-50的50层结构;

在每一次在线学习和更新的过程之中,每一次迭代k,只更新一个部分的参数wi(i=1,2,3,4,5),保持剩余4个部分网络层参数不变,而在下一次迭代中,更新第i块参数,其中i=(i+1)%5;其他层参数保持不变,整个在线学习和更新的迭代一直在进行,直到预设停止条件被满足。

本发明的一个实施例中,所述在线训练更新cnn网络模型为选择性更新,具体为:

计算每一批输入到cnn网络模型之中图片的训练损失函数,一旦一批图片的所有图片的损失函数都大于预先设定的阈值lhigh,将启动在线学习和更新的进程,在线学习和更新的进程将会一直进行,直到训练图片的损失函数降到阈值llow之下,或者是迭代的次数达到了预先设定的阈值。

本发明的一个实施例中,所述深度尺度回归方法为:ransac算法或最小二乘算法。

本发明的一个实施例中,所述将所述预测稠密地图通过位姿变换投影到上一关键帧中,并根据所述绝对尺度因子将所述半稠密地图投影到上一关键帧中,采用ncc得分投票方法根据所述两种投影结果选择所述当前帧的各像素深度预测值得到预测深度图,具体为:

将关键帧i之中的每一个像素点p,根据cnn预测的稠密地图dcnn(p)和位姿变换将该像素点投影到与之相距最近的关键帧i-1中,投影的结果表示为p′cnn;

将关键帧i之中的像素点p做另外一个投影,映射到关键帧i-1中记为p′sd,投影是基于半稠密地图的结果dsp(p)和绝对的尺度因子;

分别在关键帧i-1中投影点p′cnn和p′sd附近选取小的区域,并且分别计算区域r(p)与rcnn(p′)之间的归一化互相关系数ncccnn和区域r(p)与rsd(p′)之间归一化互相关系数nccsd,如果ncccnn小于nccsd,那么表明半稠密深度图的深度预测结果要好于cnn的结果,选择dsp(p)作为像素点p的最终深度预测值,否则选择rcnn(p′),如果有些点只有cnn的预测结果,就使用rcnn(p′)作为像素点p的最终深度。

本发明的一个实施例中,对所述预测深度图进行高斯融合得到最终深度图,具体为:

对ncc得分投票方法得到的深度图进一步处理,根据关键帧之间的上下文关系,并且结合关键帧深度图的不确定度图进行联合优化,通过联合优化得到最终的深度图。

本发明的一个实施例中,利用训练后cnn网络模型对当前帧图片进行深度预测得到稠密地图中还包括:

将深度图中每一个像素点的深度值乘以一个尺度系数

其中,fadapted为用于在线获取训练数据的单目相机焦距,badapted为双目训练图片的基线,fpre-train和bpre-train分别为用于训练原始cnn网络模型训练图片的焦距和基线。

本发明的一个实施例中,所述关键帧为:定义整个图像序列或者相机实时得到的第一张图片为关键帧,除了第一帧,后边的一部分图片帧也会被定义为关键帧,其中定义关键帧的原则是监测当前帧与之前一个最近的关键帧之间的平移和旋转是否达到了预先设定的阈值。

按照本发明的另一方面,还提供了一种基于在线学习深度预测网络的实时稠密单目slam系统,包括直接法单目slam模块、在线自适应cnn预测模块、绝对尺度回归模块以及深度图融合模块,其中:

所述直接法单目slam模块,用于从单目视觉传感器通过旋转和平移运动采集的图片序列中选择关键帧,通过最小化高梯度点的光度误差优化得到关键帧的相机姿态,并且采用三角测量法预测高梯度点的深度得到当前帧的半稠密地图;

所述在线自适应cnn预测模块,用于根据所述关键帧选择在线训练图片对,采用逐块随机梯度下降法根据所述在线训练图片对来在线训练更新cnn网络模型,并利用训练后cnn网络模型对当前帧图片进行深度预测得到稠密地图;

所述绝对尺度回归模块,用于根据所述当前帧的半稠密地图和预测稠密地图进行深度尺度回归,得到当前帧深度信息的绝对尺度因子;

所述深度图融合模块,用于根据相机姿态将所述预测稠密地图通过位姿变换投影到上一关键帧中,并根据所述绝对尺度因子将所述半稠密地图投影到上一关键帧中,采用ncc得分投票方法根据所述两种投影结果选择所述当前帧的各像素深度预测值得到预测深度图,并对所述预测深度图进行高斯融合得到最终深度图。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发剪采用单目slam采用直接法为基础,采用优化的方式得到场景的半稠密地图和相机姿态;在线自适应cnn采用了弱监督的深度预测网络,并且根据场景信息进行在线更新,使得网络在未知场景下具有良好的效果;深度尺度回归可以得到深度值的尺度信息,用来提高3d重建的准确性;数据融合采用了区域投票和高斯融合的方式,在保证完整率的情况下,提高了结果的精度。

附图说明

图1是本发明实施例中基于在线学习深度预测网络的实时稠密单目slam方法原理示意图;

图2是本发明实施例中三角测量法模型示意图;

图3是本发明实施例中筛选训练图片的约束关系;其中图(a)是第一种像素对应关系的图像对,图(b)是第二种像素对应关系的图像对;

图4是本发明实施例中尺度系数调整原理图,其中上半部分是原始的网络结构,下半部分是本发明对于网络的改进;

图5是本发明实施例中逐块梯度下降法(block-wisesgd)示意图;

图6是本发明实施例中尺度回归及效果图;

图7为本发明实施例中基于在线学习深度预测网络的实时稠密单目slam系统结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明要解决的问题是实现一个实时的单目稠密建图slam系统,该系统采用自适应在线cnn深度预测网络和基于直接法的单目slam系统相结合的方式,不但可以明显提高对于未知场景深度预测的准确性和鲁放性,还能够解决单目slam系统尺度不确定性的问题。

为了实现上述目的,本发明采用了将cnn与slam结合的方式,针对单目slam存在的问题,提出了准确性更好鲁放性更强的算法,该方案的主要创新点包括:

(1)采用了自适应在线cnn深度预测网络,这也是整个领域第一次将该类型网络与单目slam系统结合,这样做可以大大提高系统在未知场景中深度预测的准确性;

(2)提出了一种“逐块随机梯度下降”(block-wisesgd)的方法和选择性更新的策略,使cnn在有限的训练数据条件下可以取得更好的深度预测结果;

(3)设计了一种基于自适应网络的绝对尺度回归方法,可以极大地提高深度预测的准确性,并且使整个系统追踪和建图的精度更高。

该系统主要由四个组成部分:直接法单目slam,在线自适应cnn,深度尺度回归和数据融合,方法原理框图如图1所示。单目slam采用直接法,并以直接法为基础,采用优化的方式得到场景的半稠密地图和相机姿态;在线自适应cnn采用了弱监督的深度预测网络,并且根据场景信息进行在线更新,使得网络在未知场景下具有良好的效果;深度尺度回归可以得到深度值的尺度信息,用来提高3d重建的准确性;数据融合采用了区域投票和高斯融合的方式,在保证完整率的情况下,提高了结果的精度。

具体地,所述方法包括如下过程:

(1)直接法单目slam:本部分是在lsd-slam的基础之上进行的改造,通过最小化高梯度点的光度误差,优化得到每一帧图片的相机姿态,并且采用三角测量法来预测高梯度点的深度,从而得到半稠密的地图;

图片采集:本方法以单目视觉传感器为基础,在采集图片时,要求单目相机有旋转和平移的运动,而且平移的幅度适当加大一些。这样做的原因主要有两个:一是如果只存在静止和纯旋转的情况,则有可能造成本部分初始化失败或者图片追踪失败,进而造成整个系统的不正常工作;二是适当的增加平移的幅度,有助于系统挑选合适的训练图片,从而保证在线训练和更新cnn过程的正常进行。

关键帧定义:单目slam部分定义整个序列或者相机实时得到的第一张图片为keyframe(关键帧),除了第一帧,后边的一部分图片帧也会被定义为关键帧,其中定义关键帧的原则是监测当前帧与之前一个最近的关键帧之间的平移和旋转是否达到了预先设定的阈值;基于关键帧的算法组成是直接法单目slam后端优化的基础也是网络部分重要的框架结构,因此需要特别介绍。

相机姿态追踪:相机在三维空间中的运动共有六个自由度,在δt时间内的运动量可用一个六维数组表示:ξ=[v(1)ν(2)ν(3)ψ(1)ψ(2)ψ(3)]t。其中[ν(1)ν(2)ν(3)]t表示刚体运动量沿三个坐标轴的平移分量,且[ν(1)ν(2)ν(3)]t∈r3是欧式空间中的向量;[ψ(1)ψ(2)ψ(3)]t表示刚体运动沿三坐标轴的旋转分量,且[ψ(1)ψ(2)ψ(3)]t∈so(3)是非欧式三维旋转群so(3)中的向量。基于视觉的相机就是跟踪通过视觉信息求解ξ的过程。本发明所采用的单目slam采用直接法来追踪相机姿态,将图a中有深度信息的所有点投影到图b中,得到一张新的图片b',通过优化b'与b之间所有位置的灰度值之差的总和(photometricerror)来得到b相对于a的位置变化。直接法能更好的应对视角变化、光照变化、场景纹理稀疏等情况,是目前比较流行的一类方法,因此本项目采用基于直接法来实现相机位姿跟踪。

具体而言,直接法用于相机姿态追踪的关键想法是在当前帧n和相距最近的关键帧k之间寻找一个最优的相机姿态使得当前帧n和关键帧k之间的光度学误差最小。均匀区域的存在可能会造成帧间的像素匹配不准确,因为不同的相机姿态可能会有相似的光度学误差。为了获得高鲁放性的追踪结果并且减少优化所用的时间开销,光度学误差r只在关键帧k中的高梯度点{p}进行计算,如下所示:

其中d(p)代表高梯度像素点p的深度值,π是投影的模型可以将相机坐标系中的3d空间点pc投影到2d图片平面像素点p,π是由相机内参k决定的。

同样地,π-1是反向投影的模型,可以将2d平面的像素点投影到3d空间。一个经过优化之后的相机姿态就可以通过最小化所有高梯度像素点的光度学误差r计算出来,如下所示:

其中wp是用于提高鲁放性并且最小化异常值影响的像素点p的权值。

(2)式的问题可以被一个标准的高斯牛顿优化算法解决。当然,这种通过上述方法进行相机位姿跟踪会因为误差的累积而产生漂移,但是这种漂移可以通过额外添加回环检测来消除,本项目拟采用基于词袋模型的回环检测方法解决累计误差带来的漂移问题。

半稠密深度估计:单目直接法slam系统中用于建图的线程通过小基线立体比较的方法来估计高梯度像素点的深度值,也就是三角测量法所采用的像素匹配的方法。具体而言特征匹配及三角测量法的模型如下图2所示,c和c'分别是关键帧和参考帧的摄像机坐标系原点,x为要计算深度的3d点,m和m'分别为点x在摄像机c和c'摄像机投影平面上的投影。

因为单目视觉中关键帧和参考帧来源于同一个摄像机,所以它们的投影内参是相同的,此时若已经根据视觉方法得到两个摄像机坐标系之间的旋转平移[r,t],则有下式:

其中,fx,fy,cx,cy,s是相机的内参,r,t分别是一个3×3和3×1的矩阵,表示摄像机c'坐标系相对于摄像机c坐标系的旋转和平移,(xc,yc,zc)t,(xc',yc',zc')t分别表示点x在摄像机坐标系c和c'下的齐次坐标,(u,v)t,(u',v')t分别表示点x在摄像机c和c'的投影平面上的像素坐标。由于相机标定后内参矩阵为已知值,[r,t]可以由前面的定位得到,所以(m11...m34)均为已知数,于是上式可化简为:

即:a(xc,yc,zc)t=b,该方程组含有3个未知数,4个方程,是一个超定方程组,对其求最小二乘解解得使得满足

一旦一个新的关键帧k被创建,它的深度图dpri和深度值预测的不确定度upri首先会被初始化,通过将第k-1个关键帧的深度dk-1和不确定度uk-1投影到当前关键帧,具体做法如下所示:

dpri=dk-1-tz(6)

其中,tz是相机沿视轴方向上的平移,σ2表示初始化噪声的标准差。初始化的深度图会根据后来的图片帧被不断的修复,修复过程首先是沿着双极线检索当前帧中每一个高梯度像素点p在关键帧k中的匹配像素点,其中,双极线上的检索区间是由像素点p的深度不确定度决定的;一旦找到了匹配像素点,p的深度值就可以通过三角测量法计算出来。本发明用一个函数f来表示像素点匹配和三角测量法的整个过程,基于f,本发明得到的深度值的观测结果dobs可以表示为如下所示:

其中ik和icur分别代表关键帧k和当前的图片帧,代表关键帧k到当前图片帧之间的相机运动,k代表相机的内参矩阵。深度的观测值dobs的不确定度uobs由噪声产生,这些噪声存在于ik和icur之间的像素匹配和相机运动的估计过程之中。经过修复之后的深度图和它相应的不确定度其实就是初始深度信息和观测深度信息的一种融合,符合如下分布:

(2)在线自适应训练cnn,并利用所述cnn对关键帧进行预测得到稠密地图(densedepthmap):

在线自适应cnn:首先,本发明采用了一种最先进的弱监督方法作为基础来进行单幅图片深度估计。该种弱监督方法的网络架构主要由两部分组成,第一部分是基于resnet-50的全卷积层(convlayers);第二部分则是把resnet-50中位于后边的池化层和全连接层(fclayers)替换为一系列由反卷积层和短连接层组成的上采样区域。训练整个cnn需要成对的经过矫正的立体图片,这些立体图片的基线bpre-train和相机焦距fpre-train都是固定的。网络的输出为视差图,根据视差图可以生成源图片的重构图,源图片和重构图片之间的光度学误差加上平滑项构成了整个网络的损失函数。实验中,通过单目slam系统可以获取一系列关键帧{i1,…ij}图片间平移{t1,2,…,ti-1,i,…,tj-1,j}和旋转变化{r1,2,…,ri-1,i,…,rj-1,j},本发明以此信息作为真值,学习能够最小化任意两张关键帧之间重投影误差的二维图片的深度图。

预训练cnn:整个在线自适应cnn部分基于本发明预训练的cnn网络模型,在预训练网络模型时,本发明按照传统的cnn训练方法,使用cmu数据集(theweanhalldataset)的6510对图片加上自己录制的本实验室场景35588对图片共42098对图片作为训练集,对网络进行训练。其中训练集图片的基线为0.12米,本实验室场景图片是使用zed立体相机拍摄得到,并且采用了随机的颜色,尺度和镜像变化对训练集进行数据增强。所有的训练集图片经过处理之后输入到网络进行迭代,迭代次数40000次,学习率为0.0001,最终得到了想要的预训练模型,整个系统也会基于此模型进行在线学习和更新。

在单个视频场景序列下,每一次训练cnn都会保存并更新网络的模型,并用新的模型生成深度图。在线自适应cnn策略主要有以下四个:

1)在线学习图片筛选:深度预测网络需要成对立体相机拍摄的图片作为训练图片,这些立体图片具有固定的基线bpre-train。为了实时训练和更新cnn网络模型,本发明在单目相机运动的同时根据双目相机的规则收集成对的单目图片来模拟立体图片。本发明采用了高标准的要求来收集可信赖的训练图片以减小噪声产生的cnn网络模型对错误样本的过拟合现象。本发明设计了四个主要的筛选条件:第一,相机运动约束。两帧图片之间水平方向上的位移满足|tx|>0.9*t,其中t代表两帧图片之间的基线距离第二,视差约束。对于每一对图片,都会采用光流法计算图片间的垂直方向的平均视差disavg,只有当disavg小于阈值δ(实验时取为5)时才会将该对图片保存为候选训练图片。效果如图3所示,(a),(b)分别是两对图片,当每一对图片之中的像素关系满足如(a)所示的关系时,这样的图像对就会被筛选为训练的候选图片,当它们的关系如(b)所示时,就会被丢弃掉;第三,多样性约束。每一对训练图片的筛选都是和关键帧图片唯一对应的,也就是说同一个关键帧最多只能产生一对训练图片;第四,训练池容量约束。每当训练图片对的数量到达阈值v(实验时取4)时,就将训练池中的图片送入到网络,对网络进行在线训练,保存训练得到的网络模型,同时清空训练池继续进行训练数据的筛选;

2)相机参数调整:用于在线获取训练数据的单目相机焦距fadapted和双目训练图片的基线badapted很有可能和用于训练原始cnn网络模型训练图片的焦距fpre-train和基线bpre-train有很大不同。相机参数和场景深度值之间的关系已经被隐含的融入到网络结构之中,因此如果用不同焦距图片输入网络测试,得到的3d重建结果的绝对尺度可能会不准确。因此,整个网络需要被调整以适应不同相机参数的变化,但是这样做会使每一次在线学习的更新速度变慢。为了解决这个问题,提出了调整输出深度图的新思路,基本构想如图4所示,基本思想是通过将深度图中每一个像素点的深度值乘以一个尺度系数来保证深度图的准确性;

3)逐块sgd方法:随机梯度下降(stochasticgradientdescent,sgd)是现今主流的一种深度学习的最全优化算法。其主要思路是对于训练数据集,首先将其分成n个batch,每个batch包含m个样本。每次更新网络的参数都只利用一个batch的数据,而非整个训练集。

优点是:当训练数据很多时,使用batch可以减少机器的压力,并且可以更快地收敛;当训练集有很多冗余时(类似的样本出现多次),batch方法收敛更快。

缺点是:容易收敛到局部最优,并不是全局最优。

我们提出的逐块梯度下降法(block-wisesgd)是在随机梯度下降法(stochasticgradientdescent,sgd)之上进行的一次创新性改进。

本发明将resnet-50用于在图片中提取不同级别的特征信息,这些特征信息随后会通过一系列下采样操作被编码到视差图之中。为了减少由于训练图片局限性造成cnn过拟合的风险,本发明提出了一种“逐块随机梯度下降”(block-wisesgd)的新方法,将resnet-50之中的卷积层分为了5个块,如图5所示,其中每一个块具体表示为conv1,conv2_x,conv3_x,conv4_x,conv5_x。conv1由一个单一的7x7的全卷积层组成;conv2_x由一个3x3的卷积层和3个瓶颈构建块(每个瓶颈构建块为1x164,3x364,1x1256)共10层组成;conv3_x由4个瓶颈构建块(每个瓶颈构建块为1x1128,3x3128,1x1512)共12层组成;conv4_x由6个瓶颈构建块(每个瓶颈构建块为1x1256,3x3256,1x11024)共18层组成:conv5_x由3个瓶颈构建块(每个瓶颈构建块为1x1512,3x3512,1x12048)共9层组成,五个部分加起来构成了resnet-50的50层结构。在每一次在线学习和更新的过程之中,每一次迭代k,只更新一个部分的参数wi(i=1,2,3,4,5),保持剩余4个部分网络层参数不变。而在下一次迭代中,更新第i块(i=(k+1)%5)参数,其他层参数保持不变,由此减少了每一次更新网络的复杂度。整个在线学习和更新的迭代一直在进行,直到停止条件被满足(比如迭代的次数的限制,或者是训练的损失函数达到预先设定的阈值);

4)选择性更新:每当有合适的训练数据产生时就进行在线学习和cnn网络模型的更新,这种做法容易造成不必要的计算开销。只要当前cnn网络模型对于当前场景可以提供足够准确的深度预测结果,就一直使用当前的cnn网络模型,直到迫不得已进行网络模型的调整。基于这个思路,本发明设计了一种“系统选择性更新”的工作模式,通过计算每一批输入到cnn网络模型之中图片的训练损失函数,一旦一批图片的所有图片的损失函数都大于预先设定的阈值lhigh,将启动在线学习和更新的进程。在线学习和更新的进程将会一直进行,直到训练图片的损失函数降到llow之下,或者是迭代的次数达到了预先设定的阈值。这个策略不但在很大程度上减少了计算量,而且可以满足对于网络深度预测结果精度的要求。

(3)深度尺度回归:具有准确尺度信息的相机姿态对于挑选合适的训练图片具有重要意义,直接影响到网络的输出结果。由于单目slam系统无法得到绝对的尺度,因此本发明提出了一种“基于自适应cnn进行准确尺度回归”的方法。我们绘制了dsd(p)-dgt(p)之间的关系图,如图6所示,其中(b)图中的黑线是场景中groundtruth(真实值)的相机姿态,蓝线是单目slam得到的相机姿态,而红线则是采用了ransac算法回归得到尺度并作用到相机姿态之后的结果;发现dsd(p)(单目slam得到的高梯度点p的深度)与dgt(p)(像素p点的真实深度值)的比值代表了p点的绝对尺度信息。基于此本发明提出利用所有高梯度点的深度关系来回归出绝对尺度信息的思路,但是在实际应用时真实的深度信息是未知的,所以本发明采用cnn的预测结果来进行尺度回归。考虑到cnn预测深度存在着一些异常值的不利影响,我们分别实验了ransac算法和最小二乘两种算法进行尺度回归,实验结果如图6(a)中绿线和红线所示,证明采用ransac算法可以取得更准确的拟合效果,因此本发明实施例采用了ransac的方法。当我们利用这种方法计算出深度信息的绝对尺度之后,根据映射关系又可以得到姿态的尺度信息,会反过来提高单目slam系统的追踪精度,如图6(b)所示,本发明在tum数据集中的两个场景进行了测试,其中蓝色部分为单目slam追踪的姿态,黑色部分为真实深度信息,红色部分将尺度信息增加到单目slam追踪之中的结果,显示该种方法可以较好的拟合追踪尺度。

(4)数据融合:对于每一个关键帧,我们可以得到两张深度图,一张是单目slam经过优化后的结果dsd,另一张则是cnn的预测结果dcnn。本发明设计了一种“ncc得分投票与高斯融合相结合”的方式,以达到最好的结合效果。该过程由两个部分组成,第一部分为ncc得分投票。ncc(normalizedcrosscorrelation)是归一化互相关的缩写,用来计算两个图片区域a和b之间的相关性,计算公式为关键帧i之中的每一个像素点p,根据cnn预测的深度图dcnn(p)和位姿变换将该像素点投影到与之相距最近的关键帧i-1中,投影的结果表示为p′cnn;与之相似的是,将关键帧i之中的像素点p做另外一个投影,映射到关键帧i-1中记为p′sd,但是投影是基于半稠密地图的结果dsp(p)和绝对的尺度因子。分别在关键帧i-1中投影点p′cnn和p′sd附近选取小的区域,并且分别计算区域r(p)与rcnn(p′)之间的归一化互相关系数ncccnn和区域r(p)与rsd(p′)之间归一化互相关系数nccsd。如果ncccnn小于nccsd,那么表明半稠密深度图的深度预测结果要好于cnn的结果,选择dsp(p)作为像素点p的最终深度预测值,否则,选择rcnn(p′)。如果有些点只有cnn的预测结果,我们就使用rcnn(p′)作为像素点p的最终深度。第二部分为高斯融合。对于上一步得到的深度图进一步处理,根据关键帧之间的上下文关系,并且结合关键帧深度图的不确定度图进行联合优化,这就是所谓的高斯融合。通过联合优化得到最终的深度图。实验之中我们在多个数据集的场景序列进行了测试,取得了比较好的效果。

由于使用了cnn,我们的单目稠密slam系统需要采用gpu的加速才能够取得很好实时性效果。在tum数据集和icl-nuim数据集上,我们的算法进行了测试,与当前以直接法为基础的最先新的单目slam系统lsd-slam相比,我们的姿态追踪精度的绝对轨迹误差由0.622m降低到了0.231m。关键帧深度图的完整率(深度图中误差在10%以内的点占全图的比例)由0.61%提高到了26.47%;与单纯采用弱监督深度预测网络相比,关键帧深度图的完整率由21.05%提高到了26.47%。此外,整个系统的运行速度也可以达到实时的效果。

进一步地,如图7所示,本发明还提供了一种基于在线学习深度预测网络的实时稠密单目slam系统,包括直接法单目slam模块1、在线自适应cnn预测模块2、绝对尺度回归模块3以及深度图融合模块4,其中:

所述直接法单目slam模块1,用于从单目视觉传感器通过旋转和平移运动采集的图片序列中选择关键帧,通过最小化高梯度点的光度误差优化得到关键帧的相机姿态,并且采用三角测量法预测高梯度点的深度得到当前帧的半稠密地图;

所述在线自适应cnn预测模块2,用于根据所述关键帧选择在线训练图片对,采用逐块随机梯度下降法根据所述在线训练图片对来在线训练更新cnn网络模型,并利用训练后cnn网络模型对当前帧图片进行深度预测得到稠密地图;

所述绝对尺度回归模块3,用于根据所述当前帧的半稠密地图和预测稠密地图进行深度尺度回归,得到当前帧深度信息的绝对尺度因子;

所述深度图融合模块4,用于根据相机姿态将所述预测稠密地图通过位姿变换投影到上一关键帧中,并根据所述绝对尺度因子将所述半稠密地图投影到上一关键帧中,采用ncc得分投票方法根据所述两种投影结果选择所述当前帧的各像素深度预测值得到预测深度图,并对所述预测深度图进行高斯融合得到最终深度图。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1