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

基于语义分割的图像特征提取方法、装置及SLAM系统与流程

2023-03-28 09:53:30 来源:中国专利 TAG:

基于语义分割的图像特征提取方法、装置及slam系统
技术领域
1.本发明属于计算机视觉与人工智能技术领域,具体涉及利用改进的orb-slam2算法,基于语义分割进行图像特征提取的方法、装置及slam系统。


背景技术:

2.近年来,研究者们在研究如何进一步提升地图构建的准确性和鲁棒性的同时也越来越关注无人机、机器人等智能设备对周围环境的理解能力,将深度学习与视觉slam相结合有着巨大的潜力,语义视觉slam已经成为研究热点。
3.虽然视觉slam相较于激光slam有运营成本低、信息丰富等优点,但是其存在着数据处理复杂、探测距离短、易受光照和动态物体影响等缺点。得益于orb特征点的快速性和图优化,2017年提出的orb-slam2算法在保证准确性的同时大大提升了处理速度。然而,由于orb-slam2仅可以生成稀疏点云地图,不能对周围的环境进行充分的表述,同时orb特征点在纹理不明显、纹理高度重复(例如植物枝叶)和有动态物体干扰等情况下地图的鲁棒性会显著变差,该算法仅在光照好的静态室内环境中有着很好的精度,在拍摄纹理不明显的物体时或场景中有动态物体干扰时算法的鲁棒性会大幅下降。
4.为了解决纹理信息不丰富的图像序列以及相机在大角度转动时定位与建图失败的问题,研究人员在orb-slam2的基础上,利用图片的信息熵对特征提取不明显的图片帧进行锐化,以提高在纹理信息不丰富时算法提取特征点的能力。然而,该方法存在更改图片固有角点和增加额外特征点的风险,可能会导致前后帧的特征点不匹配。同时,该算法在动态物体干扰下的鲁棒性也不理想。


技术实现要素:

5.本发明公开了一种基于语义分割的图像特征点提取方法、装置及slam系统,以解决orb-slam算法在纹理不明显和动态物体干扰下稳定性差的问题。
6.本发明的第1方面,公开了一种基于语义分割的图像特征提取方法,包括:
7.获取rgb图像,对图像进行语义分割以剔除图像中的动态物体;
8.将经过动态物体剔除的图像划分为图像块,基于信息熵提取所述图像块中的纹理明显的第一图像块集以及纹理不明显的第二图像块集,并对所述第二图像块集中的图像块进行对比度增强处理;
9.对所述第一图像块集的图像块以及经过对比度增强处理的所述第二图像块集中的图像块进行特征点提取。
10.在一些示例中,所述对图像进行语义分割以剔除图像中的动态物体,包括:为rgb图像上对应动态物体的色块添加蒙版。
11.在一些示例中,将剔除动态物体后的rgb图像转换为灰度图,并以预定的缩放因子对灰度图进行降采样处理,以扩展成图像金字塔,将图像金字塔的每层图像划分为图像块,计算各图像块的信息熵e,并将信息熵e与信息熵阈值e0作比较,根据比较结果,将所述图像
块划分第一图像块集和第二图像块集。
12.在一些示例中,采用fast特征点提取算法提取出所述特征点,并对提取出的特征点进行均匀化处理,以及对均匀化处理后的特征点进行brief描述,生成特征点的二进制描述子。
13.本发明的第2方面,公开了另外一种基于语义分割的图像特征提取方法,包括:
14.获取语义图片序列,所述语义图片序列为对rgb图像进行语义分割以剔除图像中的动态物体后得到的语义图像;
15.将所述语义图像划分为图像块,基于信息熵提取所述图像块中的纹理明显的第一图像块集以及纹理不明显的第二图像块集,并对所述第二图像块集中的图像块进行对比度增强处理;
16.对所述第一图像块集的图像块以及经过对比度增强处理的所述第二图像块集中的图像块进行特征点提取。
17.对应地,公开了一种基于语义分割的图像特征提取装置,包括:
18.图像分割模块,用于对获取的rgb图像进行语义分割以剔除图像中的动态物体;
19.图像划分模块,用于将经过动态物体剔除的图像划分为图像块,基于信息熵提取所述图像块中的纹理明显的第一图像块集以及纹理不明显的第二图像块集;
20.图像增强模块,用于对所述第二图像块集中的图像块进行对比度增强处理;
21.特征点提取模块,用于对所述第一图像块集的图像块以及经过对比度增强处理的所述第二图像块集中的图像块进行特征点提取。
22.对应地,公开了另外一种基于语义分割的图像特征提取装置,包括:
23.输入端口,用于获取语义图片序列,所述语义图片序列为对rgb图像进行语义分割以剔除图像中的动态物体后得到的语义图像;
24.图像划分模块,用于将所述语义图像划分为图像块,基于信息熵提取所述图像块中的纹理明显的第一图像块集以及纹理不明显的第二图像块集;
25.图像增强模块,用于对所述第二图像块集中的图像块进行对比度增强处理;
26.特征点提取模块,用于对所述第一图像块集的图像块以及经过对比度增强处理的所述第二图像块集中的图像块进行特征点提取。
27.本发明的第3方面,公开了一种视觉slam方法,包括:
28.获取二维图像序列和深度图像序列;
29.提取所述二维图像序列中相邻两帧图像的特征点;
30.基于所述特征点利用光束法平差和最近点迭代计算相机运动轨迹;
31.提取所述二维图像序列中的关键帧图像,将每张关键帧图像的特征点投影到三维空间作为地图点以生成三维稀疏点云地图,以及将三维稀疏点云地图基于所述相机运动轨迹进行拼接,以得到三维稠密点云地图;
32.基于所述三维稠密点云地图,通过计算空间栅格占用率生成三维语义八叉树地图。
33.在一些示例中,所述提取所述二维图像序列中相邻两帧图像的特征点,包括:
34.对所述二维图像序列进行语义分割以剔除图像中的动态物体;
35.将经过动态物体剔除的图像划分为图像块,基于信息熵提取所述图像块中的纹理
明显的第一图像块集以及纹理不明显的第二图像块集,并对所述第二图像块集中的图像块进行对比度增强处理;
36.对所述第一图像块集的图像块以及经过对比度增强处理的所述第二图像块集中的图像块进行特征点提取。
37.对应地,还公开了一种视觉slam系统,包括:
38.图像获取单元,用于获取二维图像序列和深度图像序列;
39.特征点提取单元,用于提取所述二维图像序列中相邻两帧图像的特征点;
40.相机运动轨迹计算单元,用于基于所述特征点利用光束法平差和最近点迭代计算相机运动轨迹;
41.三维点云地图构建单元,用于提取所述二维图像序列中的关键帧图像,将每张关键帧图像的特征点投影到三维空间作为地图点以生成三维稀疏点云地图,以及将三维稀疏点云地图基于所述相机运动轨迹进行拼接,以得到三维稠密点云地图;
42.八叉树地图构建单元,用于基于所述三维稠密点云地图,通过计算空间栅格占用率生成三维语义八叉树地图。
43.采用上述方案,本发明能够在受到动态物体严重干扰的情况下依然保持很好的鲁棒性和准确性。此外,本发明还可以提高特征匹配的准确性,减少光照、相机运动过快对系统准确性的影响。
附图说明
44.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其他特征、目的和优点将会变得更明显:
45.图1为根据本发明实施例的基于语义分割的图像特征点提取方法流程示意图;
46.图2(a)、(b)、(c)分别展示了rgb图像、语义图像以及滤除动态物体后的图像示例;
47.图3展示了剔除完动态物体后的特征点分布情况;
48.图4为根据本发明实施例的基于语义分割的图像特征点提取装置组成示意图;
49.图5为根据本发明实施例的视觉slam方法流程示意图;
50.图6为根据八叉树原理进行三维空间分割示意图;
51.图7为根据本发明实施例的视觉slam系统组成示意图;
52.图8为rviz生成的语义八叉树示例。
具体实施方式
53.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
54.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
55.图1为根据本发明实施例的基于语义分割的图像特征(或特征点)提取方法流程示意图。如图所示,该方法包括如下步骤:
56.步骤101、获取rgb图像,对图像进行语义分割以剔除图像中的动态物体;
57.对读取的rgb图像序列进行语义分割,从图像中分割出人类、猫狗等动态物体,以消除这些动态物体上的特征点对后续特征匹配的影响。示例性地,可以经过训练的神经网络,例如pspnet网络对图像进行语义分割。可以理解,除了使用pspnet网络,也可以使用其他的神经网络,例如caffe、unet等。
58.根据语义分割结果,为rgb图像上对应动态物体的色块添加蒙版(例如黑色蒙版),使得在对这些图像进行特征提取时,一方面动态物体的特征点不会参与特征匹配,同时,剔除动态物体后的图像上所提取的特征点总数不会发生改变。
59.本发明通过神经网络剔除出动态物体增强了存在动态物体干扰时的鲁棒性,具有应用于无人监测、智慧农业等领域的能力。
60.图2(a)、(b)、(c)分别展示了rgb图像、语义图像以及滤除动态物体后的图像。
61.步骤102、将经过动态物体剔除的图像划分为图像块,基于信息熵提取所述图像块中的纹理明显的第一图像块集以及纹理不明显的第二图像块集,并对所述第二图像块集中的图像块进行对比度增强处理;
62.针对剔除完动态物体后的rgb图像,首先将其转换为灰度图,并以预定的缩放因子(例如1.2)对灰度图进行相应缩放比例(1/1.2)的降采样处理,扩展成8层图像金字塔(包括原始图像)。将图像金字塔的每层图像划分为图像块,计算各图像块的信息熵e,并将信息熵e与信息熵阈值e0作比较。根据比较结果,将所述图像块划分第一图像块集和第二图像块集,其中,第一图像块集中的图像块为信息熵e大于或等于阈值e0的图像块,其含有较多的角点信息,纹理明显,可以直接进行特征提取。第二图像块集中的图像块为信息熵e小于阈值e0的图像块,其含有较少的角点信息,纹理不明显,不利于特征匹配,因此需要对这些信息熵小于阈值的图像块进行对比度增强处理。这里,采用对比度增强处理的方法只改变了特征点与周围像素点之间的灰度差(比值),并没有更改特征点的位置,不仅有助于特征点提取,同时,与锐度调整的方法相比,也规避了更改固有角点的风险,从而提高了后续特征点提取的准确性。
63.步骤103、对所述第一图像块集的图像块以及经过对比度增强处理的所述第二图像块集中的图像块进行特征点提取。
64.对信息熵小于阈值的图像块完成对比度增强处理后,与信息熵大于阈值的图像块一起进行orb特征点提取。
65.具体地,在图像金字塔中采用fast特征点提取算法提取出特征点,并对提取出的特征点进行均匀化处理,使得提取特征点分布更加均匀,避免了特征点出现扎堆的现象,使算法更具有鲁棒性。
66.在采用fast特征点提取算法提取灰度图像特征点时,若某点的灰度值比其周围领域内足够多的像素点的灰度值大或者小,则该点可能为特征点(或角点)。例如,先选择特征点p,其次选择1、9、5、13四个点,如果四个点中与点p的灰度值之差的绝对值大于给定的阈值有3个,就假设该点p为候选特征点。再将候选特征点与图像上的16个像素遍历,如果至少有9个或12个满足之前的阈值差,则该点就是特征点。
67.最后对均匀化处理后的特征点进行brief描述,生成特征点的二进制描述子。brief(binary robust independent elementary features)是一种二进制编码的描述子,用于对已检测到的特征点进行描述,算法步骤如下:
68.以特征点p为中心,取一个s
×
s大小的patch邻域;
69.在这个邻域内随机取n对像素点,然后对这2
×
n像素点分别做高斯平滑,比较n对像素点的像素值大小,以得到n个二进制编码组成的一个n维向量,这个编码就是特征点的特征描述子。
70.最后生成的具有brief描述子的特征点即为orb特征,具有视点不变性和光照不变性。orb特征在orb-slam2系统中用于图匹配和识别。图3展示了剔除完动态物体后的特征点分布情况。
71.作为替代方案,还可以直接从语义图像端口输入已分割好的语义图片序列,其中所述语义图片序列也是基于rgb图像,通过对rgb图像进行语义分割剔除图像中的动态物体后得到的。
72.图4为根据本发明实施例的基于语义分割的图像特征(或特征点)提取装置400组成示意图。如图所示,该装置包括:
73.图像分割模块401,用于对获取的rgb图像进行语义分割以剔除图像中的动态物体;
74.图像划分模块402,用于将经过动态物体剔除的图像划分为图像块,基于信息熵提取所述图像块中的纹理明显的第一图像块集以及纹理不明显的第二图像块集;
75.示例性地,该图像划分模块402包括:
76.图像块划分模块,用于将剔除动态物体后的rgb图像转换为灰度图,并以预定的缩放因子将所述灰度图扩展成图像金字塔,以及将图像金字塔的每层图像划分为图像块;
77.信息熵计算模块,用于计算各图像块的信息熵e,并将信息熵e与信息熵阈值e0作比较;根据比较结果,将所述图像块划分第一图像块集和第二图像块集。其中,第一图像块集中的图像块为信息熵e大于或等于阈值e0的图像块,其含有较多的角点信息,纹理明显;第二图像块集中的图像块为信息熵e小于阈值e0的图像块,其含有较少的角点信息,纹理不明显。
78.图像增强模块403,用于对所述第二图像块集中的图像块进行对比度增强处理;
79.特征点提取模块404,用于对所述第一图像块集的图像块以及经过对比度增强处理的所述第二图像块集中的图像块进行特征点提取;
80.示例性地,该特征点提取模块404包括:fast特征点提取模块,用于在图像金字塔中采用fast特征点提取算法提取出特征点;均匀化模块,用于对提取出的特征点进行均匀化处理;brief描述模块,用于对均匀化处理后的特征点进行brief描述,生成特征点的二进制描述子。
81.作为替代方案,还可以直接从语义图像端口输入已分割好的语义图片序列,即在上述图像特征(或特征点)提取装置中,设置语义图像输入端口用于替换所述图像分割模块301。其中所述语义图片序列也是基于rgb图像,通过对rgb图像进行语义分割剔除图像中的动态物体后得到的。
82.传统的基于orb-slam2的语义slam系统大多沿用了orb-slam2的双输入端口,分别用于输入rgb图片序列及深度图片序列,用户不能更改内置的神经网络模型。本发明的该实施例在orb-slam2的基础上额外增加一个输入端口用于读取语义图片,使得该装置具有更好的通用性,用户可以直接在该端口前面添加经过训练的神经网络或输入已完成分割的语
义图片序列。
83.在上述图像特征(或特征点)提取方法的基础上,本发明还公开了一种视觉slam方法,如图5所示,该slam方法包括:
84.步骤501、获取二维图像序列和深度图像序列;
85.其中,深度图像序列可以使用rgb-d相机或双目相机采集得到。
86.步骤502、提取所述二维图像序列中相邻两帧图像的特征点;
87.这里,使用前面描述的基于语义分割的图像特征(或特征点)提取方法提取所述二维图像序列中相邻两帧图像的特征点,在此不再重复说明。
88.步骤503、基于所述特征点利用光束法平差和最近点迭代计算相机运动轨迹;
89.例如,p1和p2是空间点p在前后两帧相机平面上面的投影,可以根据相机的匀速运动模型可以粗略估计出相机的位姿变换矩阵t。是p1根据位姿变换矩阵t计算得到的投影,则p2与之间的偏差即为重投影误差。利用最小二乘法构建优化函数使重投影误差e取最小值,即可得到相邻两帧真实的相机位姿,也即相机的运动轨迹。
90.步骤504、提取所述二维图像序列中的关键帧图像,将每张关键帧图像的特征点投影到三维空间作为地图点以生成三维稀疏点云地图,以及将三维稀疏点云地图基于所述相机运动轨迹进行拼接,以得到三维稠密点云地图;
91.考虑到orb-slam2算法只能生成三维稀疏点云地图,无法对周围的环境进行充分的表述,因此本发明对原算法进行了进一步的拓展。通过相机模型可以将相机的二维图片的像素点重新投影至三维空间,每一个关键帧生成的三维点云可以根据实时计算得到的相机运动轨迹进行拼接。
92.通过更改预设文件用户可以根据需要生成rgb点云或者语义点云。由于在特征点提取之前已经根据语义分割剔除了不稳定物体的特征点,因此在最终生成的稠密点云中不会包含动态物体。
93.步骤505、基于所述三维稠密点云地图,通过计算空间栅格占用率生成三维语义八叉树地图。
94.稠密点云地图虽然能详细地表示周围环境,但也常常伴随着信息冗余、点云重叠等问题,因此无法直接应用于机器人导航、智慧农业等领域,实现例如实时无人避障等功能,因此本发明在稠密点云基础上,利用ros(robot operating system,机器人操作系统)可以实时生成三维语义八叉树地图。
95.如图6所示,根据八叉树原理将三维空间分割成若干个正方体,每个正方体代表一个节点,每个节点又可以分割成八个子节点。最小的节点被称为叶子节点,也代表了分辨率最高的情况。例如,分辨率设为0.01米,即三维空间中最小的单位是1立方厘米的小方块。使用0或者1表示节点的占据情况,0表示节点没有占据,1表示节点占据,即存在障碍物。当相邻的八个子节点都被占据的时候,可以将这八个节点合并成一个父节点,从而节省数据空间。
96.考虑到观测过程中存在的白噪声、相机位姿误差等干扰,在将点云转换为八叉树之前首先进行降采样和滤波处理,这里,使用一个浮点数p表示某一栅格被占据的概率。p的初始值为0.5,当这一栅格被多次观测到时,p的概率会增加;当这一栅格不再被观测到时,p
的概率会减小。
97.使用logit函数来表达八叉树地图的动态更新:
[0098][0099][0100]
通过这种方式,可以使原本属于(0,1)的概率函数p映射到(-∞, ∞)。假设z1,

,z
t-1
,z
t
表示不同观测时间点的观测值,则在时间节点t,这一栅格被占据的概率可以用以下公式表示:
[0101][0102]
当概率p大于0.7时会认为栅格占据,当概率p小于0.4时会被认为栅格空缺。
[0103]
栅格颜色可以由语义分割结果确定。生成的语义八叉树地图结果可以通过ros可视化工具rviz实时展示。
[0104]
另外,本发明还公开了一种视觉slam系统,如图7所示,该slam系统700包括:
[0105]
图像获取单元701,用于获取二维图像序列和深度图像序列;
[0106]
特征点提取单元702,用于提取所述二维图像序列中相邻两帧图像的特征点;
[0107]
相机运动轨迹计算单元703,用于基于所述特征点利用光束法平差和最近点迭代计算相机运动轨迹;
[0108]
三维点云地图构建单元704,用于提取所述二维图像序列中的关键帧图像,将每张关键帧图像的特征点投影到三维空间作为地图点以生成三维稀疏点云地图,以及将三维稀疏点云地图基于所述相机运动轨迹进行拼接,以得到三维稠密点云地图;
[0109]
八叉树地图构建单元705,用于基于所述三维稠密点云地图,通过计算空间栅格占用率生成三维语义八叉树地图。
[0110]
为了测试本发明,使用orb-slam2算法作为对比算法,基于blender构建了一个三维农业场景,场景中静态的物体有植物、西瓜和南瓜,而按照特定轨迹移动的两只猫作为动态物体对系统进行干扰。在语义分割时西瓜被赋予绿色,南瓜为蓝色,猫为红色,由于植物并不是值得在意的物体,因而不会被赋予任何颜色。
[0111]
测试结果显示,在该动态场景中orb-slam2的绝对轨迹误差为0.1631米,本发明的绝对轨迹误差为0.0409米,轨迹精度提升了43.65%。使用rviz生成的语义八叉树如图8所示。
[0112]
由此可见,使用本发明,用户可以使用内置的pspnet进行语义分割,也可以使用其他的神经网络,或者直接从该系统额外配置的端口输入已经分割好的语义图片序列。借助于语义分割可以让机器人对周围的环境更好地理解,体现了相机视觉slam相较于激光slam的优越性。通过在orb-slam2基础上利用语义分割剔除动态物体,可以让该slam系统在受到动态物体严重干扰的情况下依然保持很好的鲁棒性和准确性。以绝对轨迹误差(ate)作为评判依据的情况下,使用自建数据集进行测试,该系统的准确性相较于原orb-slam2系统提升了43.65%。
[0113]
此外,本发明利用信息熵对特征提取的过程进行优化可以提高特征匹配的准确
性,减少光照、相机运动过快对系统准确性的影响。同时,本发明利用信息熵对特征提取进行优化的过程中使用了对比度调整,只改变了特征点与周围像素点之间的灰度差(比值),并没有更改特征点的位置,从而避免了上述风险。
[0114]
此外,传统的基于orb-slam2的语义slam系统大多沿用了orb-slam2的双输入端口(rgb图片序列,深度图片序列),用户无法更改内置的神经网络模型。本发明在orb-slam2的基础上额外增加了一个输入端口,用于读取语义图片,使得该系统更加地通用,用户还可以直接在该输入端口前设置训练的神经网络或输入已分割好的语义图片序列。
[0115]
虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明发明构思的情况下,可以对本本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献