一种基于改进DSO的动态环境地图构建方法

文档序号:31708832发布日期:2022-10-01 13:48阅读:178来源:国知局
一种基于改进DSO的动态环境地图构建方法
一种基于改进dso的动态环境地图构建方法
技术领域
1.本发明涉及动态环境地图构建领域,特别是涉及一种基于改进dso的动态环境地图构建方法。


背景技术:

2.dso(direct sparse odometry)是一个视觉slam的里程计算法。与传统的特征点法不同,dso使用最小化光度误差求解相机的运动和地图的坐标点,使得相机的位姿计算和地图的坐标求解全部放在了一个优化函数中求解。而特征点法使用最小化重投影误差对相机的运动进行求解,之后再对地图的数据进行计算,这两种数据的关联是分开的。因此在同等精度下dso有着特征点法的5倍速度,可以满足实时性要求较高的系统。
3.现有的基于dso地图构建方法,难以适应复杂环境的应用需求,特别是针对存在大量动态目标的复杂环境中,构建的地图噪音过多,特征不明细。其主要原因在于,在实际应用中,光照条件、不同速度移动的目标对特征提取算法的影响和干扰较大,从而在很大程度上影响了特征点的提取和匹配效果,从而对后续的构图质量造成了较大的影响。但是作为一种最广泛和最自然的地图构建技术,dso构图被广泛应用于复杂环境条件下的地图构建、环境感知、目标识别等领域,其要求构图系统具有在各种环境条件下仍然具有稳定的构图性能。因此,如何解决复杂动态环境下的dso快速构图或是在建图中去除动态目标的干扰问题已经成为当今构图识别技术的一个亟待解决的技术问题。


技术实现要素:

4.本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于改进dso的动态环境地图构建方法。
5.为了实现本发明的上述目的,本发明提供了一种基于改进dso的动态环境地图构建方法,包括以下步骤:
6.s1,图像数据采集:根据构建地图的环境选择相机完成图像采集,保证采集图像中环境的特征明显,不能有较大的重影。能否拍摄清晰的照片通常与相机的快门速度,相机运动的速度,拍摄光线相关,因此,需要根据环境挑选合适的相机从而获得清晰图像。并转换为环境地图构建系统的输入格式;
7.s2,梯度点提取:使用dso中原始的梯度点检测算法对梯度点进行检测;
8.即提取采集图像中梯度较大像素点,所述梯度较大的像素点即对图像分成若干块,对各个块内的像素求梯度平均值,若梯度值大于所述块的梯度平均值,则称为较大像素点。
9.s3,动态目标检测:利用yolo网络对图像中的动态目标进行检测和识别;
10.s4,梯度点筛选:根据s3得到的动态目标检测结果对s2得到的梯度点进行筛选,然后去除在实际中产生运动的梯度点,得到静止梯度点集s;
11.s5,前端跟踪:使用dso中原始的跟踪算法对所述静止梯度点集s进行跟踪,完成相
机位置与姿态的计算;
12.s6,后端优化:使用dso中原始的优化算法根据多组图像对所述相机位置与姿态进行优化;
13.s7,地图构建:使用dso原始的地图构建算法进行地图构建,即将检测出的图像梯度点变换至统一的坐标系中。
14.进一步地,所述格式转换包括以下步骤:
15.s11,若采集的数据为视频格式,将视频分帧,然后转换为图片格式保存;若采集的数据为图像,则直接转换为图片格式保存;
16.s12,按照时间顺序对所有图像数据进行命名,从0号开始编号名称长度为6位,长度不够时使用0进行补齐,并将图像大小进行统一转换;
17.s13,使用图像增强算法对图像进行增强,用于缓解光照对dso建图的影响。
18.进一步地,所述图像增强算法为retinex图像增强算法:
19.logri(x,y)=logii(x,y)-log[f(x,y)*ii(x,y)]
[0020]
其中ri(x,y)为增强后图像;
[0021]ii
(x,y)表示相机抓取到的图像信息;
[0022]
i为颜色红、绿、蓝的通道之一,或者为单色通道;当采集的图像为灰度图时,为单色通道,当采集的图像为彩色图时,为红、绿、蓝通道之一。
[0023]
*为卷积运算;
[0024]
f(x,y)为高斯环绕函数:
[0025][0026]
其中δ为尺度常数,修改尺度常数可以调整图像增强的效果;
[0027]
e为自然常数;
[0028]
x为相素的横坐标;
[0029]
y为相素的纵坐标。
[0030]
进一步地,所述s3包括以下步骤:
[0031]
s31,利用改进的yolo v4-tiny网络对运动物体进行目标检测,并输出运动物体的包围框。
[0032]
yolo v4-tiny相对于其它yolo网络,其具有运算速度快、精度高、性能更好等优点。改进的yolo v4-tiny相比原yolo v4-tiny的改进之处在于:使用mish激活函数替代原有的relu激活函数。mish激活函数在x小于0处是光滑曲线,相较于relu激活函数在0处为拐点,mish在x小于0时仍有输出。因此可以保留部分特征,这会使得神经网络提取的信息更加丰富,有利于提高网络的准确性。mish其表达式如下所示:
[0033]
y=x
·
tanh(ln(1+e
x
))
[0034]
其中tanh为双曲正切函数。
[0035]
s32,将所有包围框数据以相同的边界坐标顺序进行保存,数据之间用空格符隔开,同一张图中多个包围框使用换行符隔开,一张图像的包围框信息使用一个txt文本保存。
[0036]
进一步地,所述s4包括以下步骤:
[0037]
s41,根据目标检测的结果计算基础矩阵;
[0038]
s42,将包围框外的数据归为静止梯度点集s;
[0039]
s43,利用梯度点几何约束法验证目标检测包围框中的梯度点是否产生了运动,梯度点若不满足梯度点几何约束法则说明该梯度点产生运动,则删除;若满足梯度点几何约束法,则加入静止梯度点集s。
[0040]
进一步地,所述s41包括:
[0041]
读取图像对应的包围框信息,选择包围框外的8组梯度点进行基础矩阵的计算,每组有2个梯度点,求解方程如下所示:
[0042][0043]
其中u1、u2分别表示相邻两帧图像中对应梯度点的横坐标;
[0044]
v1、v2分别表示相邻两帧图像中对应梯度点的纵横坐标;
[0045]
为基础矩阵,fi,i=1,2,...,9表示待求取的未知量;所述基础矩阵是用于刻画相邻图像之间的空间关系;基础矩阵是一个旋转矩阵,包含物体的空间运动,所以是个3*3的矩阵。
[0046]
或选择包围框外的所有梯度点,使用最小二乘法计算基础矩阵。
[0047]
进一步地,所述梯度点几何约束法为:
[0048]
选定包围框外的2个梯度点a
i1ai2
,选取原则分别为包围框外左侧、右侧、上侧和下侧共四组,i=1~4,其中左侧为包围框上边线的延长线、下边线的延长线、左边线围成的区域,右侧为包围框上边线的延长线、下边线的延长线、左边线围成的区域,上侧为包围框左边线的延长线、右边线的延长线、上边线围成的区域,下侧为包围框左边线的延长线、右边线的延长线、下边线围成的区域;
[0049]
并选择包围框内梯度点bj,0《j≤n,n为包围框中梯度点的个数,构成一个三角形δa
i1ai2bj
,然后使用光流法找到相邻帧中找到对应的梯度点,构成三角形δa

i1a′
i2b′j,然后量化并对比三角形δa
i1ai2bj
与三角形δa

i1a′
i2b′j判断梯度点是否发生变化。
[0050]
进一步地,所述量化并对比三角形δa
i1ai2bj
与三角形δa

i1a′
i2b′j判断梯度点是否发生变化包括:
[0051]
使用下式对包围框中的点进行评价,得到评价分数sj:
[0052][0053]
其中a
i1
,a
i2
为包围框外的梯度点;
[0054]a′
i1
,a

i2
为相邻帧匹配的梯度点;
[0055]bj
为包围框内的梯度点;
[0056]b′j为相邻帧匹配的梯度点;
[0057]
d(
·
,
·
)为欧式距离的计算;
[0058]
|
·
|为绝对值符号;
[0059]
e为自然常数;
[0060]
a为相邻帧中静止梯度点与待分类梯度点的平均距离之和:
[0061][0062]
根据下式子进行判定:
[0063][0064]
包围框外的梯度点不变,对包围框内的点进行逐一验证,每一个bj对应一个sj,最终带入pj进行判定,当pj为1时认为梯度点产生了运动。
[0065]
其中α为波动系数;
[0066]
θ
th
为第一判定阈值;
[0067]
所有的包围框内的所有梯度点计算pj,并求和:
[0068][0069]
其中n为包围框内点的个数,进一步得到包围内运动特征的比例t:
[0070][0071]
当t超过第二判定阈值时,即可判定包围框内的梯度点为动态的梯度点。
[0072]
所述第二判定阈值的取值范围为65%~75%,优选为70%。
[0073]
综上所述,由于采用了上述技术方案,本发明的优点在于:
[0074]
(1)首先根据yolo网络对图像中具有运动能力的物体进行目标检测,得到这些运动物体在图像中的位置,即为运动物体的包围框,完成对运动目标梯度点的粗提取。这些包围框外的物体一定是在现实环境中静止的物体,因此这些物体上检测出的梯度点是不会对dso的建图产生影响,可以根据这些点对相机运动的基础矩阵进行较为精确的估计。
[0075]
(2)跟据yolo检测出的包围框内的点是有运动能力物体上梯度点,这些物体可能没有发生运动,因此需要使用梯度点几何约束法对包围框中的梯度点进行运动检测,保留没有产生运动的梯度点,防止删除了具有使用价值的静态梯度点。基于此原理,本发明删除了环境中运动物体在图像中的梯度点,解决了动态环境中运动物体会对dso建图产生影响的问题。
[0076]
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0077]
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0078]
图1是本发明的流程示意图。
[0079]
图2是本发明运动目标检测的效果示意图。
[0080]
图3是本发明梯度点筛选的效果示意图。
[0081]
图4是原始dso建图效果与本发明改进dso建图效果的对比示意图。
具体实施方式
[0082]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0083]
本发明的基本思路是:基于采集的数据进行梯度点的检测,之后运动目标检测模块根据改进的yolo v4-tiny网络对图像中能够运动的目标进行检测,得到能够运动物体的包围框。完成对环境中运动物体的梯度点进行初步的筛选,缩小细粒度的运动检测算法的使用范围,从而提高算法的性能。得到运动物体的包围信息后,梯度点筛选模块基于包围框外的梯度点计算相机运动的基础矩阵。得到基础矩阵之后根据梯度点几何约束法对包围框内的梯度点逐一进行验证,保证删除的梯度点所属的物体是在现实中产生了运动。之后完成对相机运动的估计和优化,最终输出对周围环境的点云地图。在进行运动估计和地图构建之前,本发明使用基于yolo的目标检测和梯度点几何约束法对梯度点进行筛选,从而去除了运动梯度点对dso的影响,有效提高了dso的建图精度。
[0084]
下面结合附图和具体实施例对本发明作进一步说明。
[0085]
本发明改进dso的示意图如图1所示,包括:数据采集、梯度点提取、特征筛选模块、前端跟踪、后端优化,以及建图,其中特征筛选模块包括yolo目标检测、梯度点筛选。
[0086]
数据采集的数据输出端与梯度点提取的数据输入端,yolo目标检测的数据输入端相连,梯度点提取的数据输出端,yolo目标检测的数据输出端均与梯度点筛选的数据输入端相连,梯度点筛选的数据输出端与前端跟踪的数据输入端相连,前端跟踪的数据输出端与后端优化的数据输入端相连,后端优化的数据输出端与建图的数据输入端相连。
[0087]
本发明的具体实施方案如下:
[0088]
s1,数据采集:使用全局曝光的相机对环境进行数据的采集;
[0089]
首先针对所构建场景的环境,选择合适的相机对周围的信息进行采集,以保证采集图像中环境的特征明显,不能有较大的重影。并转换为环境地图构建系统的输入格式。格式转换的具体步骤如下:
[0090]
1.若采集的数据为视频格式,将视频分帧,转换为jpg格式保存。若采集的数据为图像,转换为jpg格式;
[0091]
2.按照时间顺序对所有图像数据进行命名,从0号开始编号名称长度为6位,长度不够时使用0进行补齐,例如000000,000001,并将图像大小转换为640
×
480。
[0092]
3.使用retinex图像增强算法对图像进行增强。缓解光照对dso建图的影响。在dso中视觉里程计的算法是基于直接法,直接法是基于图像灰度不变的假设提出。因此在使用
dso时光照的变化会对三维重建的效果产生很大的影响。retinex图像增强算法模型可以从光照中恢复图像原始的像素值,从而减少光照对dso的影响。其计算方式如下:
[0093]
logri(x,y)=logii(x,y)-log[f(x,y)*ii(x,y)]
[0094]ri
(x,y)为增强后图像;
[0095]ii
(x,y)表示相机抓取到的图像信息;
[0096]
i为颜色红、绿、蓝的通道;
[0097]
*为卷积运算;
[0098]
f(x,y)为高斯环绕函数:
[0099][0100]
其中δ为尺度常数,修改尺度常数可以调整图像增强的效果;
[0101]
e为自然常数;
[0102]
x为相素的横坐标;
[0103]
y为相素的纵坐标。
[0104]
s2,梯度点检测:使用dso中原始的梯度点检测算法对梯度点进行检测。
[0105]
s3,动态目标检测:该步骤使用改进后的yolo v4-tiny网络对场景中能够运动的目标进行检测,并输出检测出物体的包围框。分为以下两个分步骤:
[0106]
s31,利用改进的yolo v4-tiny网进行目标检测。改进网络中使用mish激活函数替代原有的relu激活函数。mish激活函数在x小于0处是光滑曲线,相较于relu激活函数在0处为拐点,mish在x小于0时仍有输出。因此可以保留部分特征,这会使得神经网络提取的信息更加丰富,有利于提高网络的准确性。mish其表达式如下所示:
[0107]
y=x
·
tanh(ln(1+e
x
))
[0108]
其中tanh为双曲正切函数。
[0109]
动态目标检测结果如图2所示,其中图2(a)代表原始的图像,图2(b)为目标检测结果即使用yolo网络检测出的包围框。
[0110]
s32,将所有包围框数据以左边界坐标、右边界坐标、上边界坐标、下边界坐标的顺序进行保存,数据之间用空格符隔开,同一张图中多个包围框使用换行符隔开,一张图像的包围框信息使用一个txt文本保存。
[0111]
s4,梯度点筛选:基于步骤s3中提取的物体包围框信息和s2中提取的梯度点,对梯度点进行分类筛选,并去除其中的运动物体的梯度点。该过程包含以下步骤:
[0112]
s41,读取图像对应的包围框信息,实际情况中可能存在多个运动物体对应的包围框,任选一个即可。选择包围框外的8组梯度点进行基础矩阵的计算,每组有2个梯度点,求解方程如下所示:
[0113][0114]
其中(u1,v1)和(u2,v2)为相邻两帧图像中对应梯度点的坐标;
[0115]fi
,i=1,2,...,9为待求解的未知数,所组成的矩阵即为基础矩阵;
[0116]
所述基础矩阵是用于刻画相邻图像之间的空间关系;
[0117]
该方程有9个未知数,但是由于相机在成像过程中缺失了尺度信息,导致该方程仅需8个点即可完成计算。在需要较高精度的情况下可以使用最小二乘法对基础矩阵进行求解。
[0118]
s42,将包围框外的数据归为静止梯度点集s;
[0119]
s43,使用梯度点几何约束法对检测包围框内的梯度点进行验证,梯度点几何约束法过程如下:
[0120]
由于dso中的梯度点没有计算描述子,无法直接通过汉明距离对梯度点进行匹配跟踪,同时因为dso同样基于灰度不变的假设,所使用图像的质量较高,同时还进行了图像增强,去除了光照对图像的影响,相邻帧图像没有明显的灰度变化,符合光流法的使用条件。因此使用光流法对梯度点进行跟踪,确定相邻帧图像之间的梯度点对应关系:
[0121]
相机经过dt时间的运动,物体到达像素坐标系(x+dx,y+dy)点处,基于灰度不变假设即可得到等式:
[0122]
i(x+dx,y+dy,t+dt)=i(x,y,t)
[0123]
对经过运动的左式进行泰勒展开:
[0124][0125]
因为同一物体在图像中的灰度不会发生改变,因此下一刻的灰度值会与当前的灰度值相同得到等式:
[0126][0127]
对上式两边除以dt得:
[0128][0129]
是横坐标关于时间的导数,即为像素在x轴上得运动速度记为u,是像素在y轴上的运动速度记为v,是图像灰度关于横坐标的一阶偏导数,可视为图像在该点x方向的梯度值记为i
x
,是y方向上的梯度记为iy,是关于时间的梯度记为i
t
,上式记为矩阵:
[0130][0131]
得到梯度点在在图像坐标系的运动速度,即可完成对梯度点的追踪,找到梯度点在下一帧图像中的位置。
[0132]
选定包围框外的2个梯度点a
i1ai2
,这2个梯度点选取原则分别为包围框外左侧、右侧、上侧和下侧共四组,编号i分别为1~4,其中左侧为包围框上边线的延长线、下边线的延长线、左边线围成的区域,右侧为包围框上边线的延长线、下边线的延长线、左边线围成的
区域,上侧为包围框左边线的延长线、右边线的延长线、上边线围成的区域,下侧为包围框左边线的延长线、右边线的延长线、下边线围成的区域。
[0133]
针对每一个包围框外都选择两点作为判定的基准,并选择包围框内梯度点bj,j为包围框中梯度点的个数,构成一个三角形δa
i1ai2bj
。然后使用光流法找到相邻帧中找到对应的梯度点,构成三角形δa

i1a′
i2b′j。相邻帧相机运动较小,若不存在运动物体就可认为三角形没有发生变化,通过量化并对比三角形即可确定梯度点是否发生变化。可以计算得到三角形的对应边大小变化的值:
[0134]
|d(a
i1
,bj)-d(a

i1
,b
′j)|+|d(a
i2
,bj)-d(a

i2
,b
′j)|
[0135]
其中a
i1
,a
i2
为包围框外的梯度点,a

i1
,a

i2
为相邻帧匹配的梯度点,bj为包围框内的梯度点,b
′j为相邻帧匹配的梯度点,d(
·
,
·
)为欧式距离的计算。使用下式对包围框中的点进行评价,得到评价分数sj:
[0136][0137]
其中a为两帧中静止梯度点与待分类梯度点的平均距离之和:
[0138][0139]
根据下式子进行判定:
[0140][0141]
包围框外的梯度点不变,对包围框内的点进行逐一验证,每一个bj对应一个sj,最终带入pj进行判定,当pj为1时认为梯度点产生了运动。其中α为波动系数,θ
th
为第一判定阈值
[0142]
包围框内的所有梯度点进行计算pj,并求和:
[0143][0144]
其中n为包围框内点的个数,进一步得到包围内运动特征的比例:
[0145][0146]
当t超过70%时,即可判定包围框内的梯度点为动态的梯度点。
[0147]
图3为梯度点筛选的效果示意图。其中图3(a)为梯度点检测结果,图3(b)对相临图像的梯度点进行了跟踪得到的跟踪结果,可以看出从左侧汽车上的梯度点有明显的变化,图3(c)为利用梯度点的约束对梯度点进行筛选的筛选结果。
[0148]
s5,前端跟踪:使用dso中原始的跟踪算法对s4中静止梯度点集s进行跟踪。
[0149]
s6,后端优化:使用dso中原始的优化算法对s5中的结果进行优化。
[0150]
s7,建图:使用dso原始的地图构建算法进行地图构建。
[0151]
图4为原始dso建图效果与改进dso建图效果对比示意图,其中图4(a)为图像的原始数据,图4(b)为对图像中的运动梯度点进行筛选的结果,图4(c)为未进行动态梯度点提取的原始dso三维建图结果,图4(d)为未进行动态梯度点去除后的三维重建结果。可以看出构建地图中将行人等动态因素剔除,只留下了静态环境的地图。
[0152]
使用旋转误差与平移误差作为系统的评价指标。其中旋转误差为系统在某一时刻的旋转角度估计与真正轨迹旋转角度之差占真正轨迹旋转角度的百分比。平移误差系统在某一时刻的平移量估计与真正轨迹平移量之差占真正轨迹平移量的百分比。使用kitti07号数据集对改进dso和原始dso进行评估,原始的平移误差为26.275%,旋转误差为1.6%,经过优化后的平移误差为14.736%,旋转误差为0.927%。
[0153]
实验效果如表1所示:
[0154]
表1 kitti 07号数据集误差对比
[0155] 平移误差旋转误差dso26.275%1.6%改进dso14.736%0.927%
[0156]
综上所述,在较为复杂的环境中存在运动物体时,本发明实施例相比原始dso系统有更好的地图构建效果。
[0157]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1