动态环境下的SLAM方法和系统技术方案

技术编号:38862133 阅读:19 留言:0更新日期:2023-09-17 10:04
本发明专利技术公开了一种动态环境下的SLAM方法和系统,该方法包括:获取动态环境的目标数据,目标数据包括图像序列或视频流;采用C++版本的OpenCV

【技术实现步骤摘要】
动态环境下的SLAM方法和系统


[0001]本专利技术属于定位与地图构建
,本专利技术涉及一种动态环境下的SLAM方法和系统。

技术介绍

[0002]SLAM(Simultaneous Localization And Mapping,同时定位与地图构建技术)是机器人领域的热门问题,也是实现机器人在复杂场景自主运动的关键技术,在移动机器人、自动驾驶、无人机和增强现实与虚拟现实等领域有广泛的应用。
[0003]相关技术中,在当前大多数SLAM系统中,无论是使用何种方法,都假设环境是静态的,这意味着当相机处于运动状态时,场景中所有对象的几何分布都应该保持静止状态。场景中的动态对象,如行走的人和行驶中的汽车,都会破坏特征关联和状态估计,降低定位精度和系统鲁棒性,甚至导致系统故障。

技术实现思路

[0004]本专利技术的目的在于提供一种动态环境下的SLAM方法。
[0005]本专利技术的另一个目的是提供一种动态环境下的SLAM系统。
[0006]实现本专利技术目的的技术解决方案为:
[0007]一种动态环境下的SLAM方法,包括以下步骤:获取动态环境的目标数据,其中,所述目标数据包括图像序列或视频流;采用C++版本的OpenCV

DNN模块部署YOLOv5

seg网络模型,以获取相应的目标检测模型;采用所述目标检测模型对所述目标数据进行目标检测和分割,以获取所述目标数据中的动态物体和可移动物体的mask掩膜以及相应的坐标信息;对所述目标数据中的每一帧图像进行ORB特征点的提取;根据提取出的所述ORB特征点和所述坐标信息将坐标在所述动态物体和所述可移动物体上的动态ORB特征点剔除,并保留相应的静态ORB特征点;采用ORB

SLAM3系统根据所述静态ORB特征点进行特征点匹配,以及计算相机位姿并建图,以完成SLAM工作。
[0008]在本专利技术的一个实施例中,所述采用C++版本的OpenCV

DNN模块部署YOLOv5

seg网络模型,以获取相应的目标检测模型,包括:将.pt格式的模型文件导出成.onnx格式的模型文件;将Python语言的YOLOv5

seg代码改写成C++语言;采用所述C++版本的OpenCV

DNN模块根据所述.onnx格式的模型文件以及改写为C++语言的YOLOv5

seg代码部署所述YOLOv5

seg网络模型,以获取所述目标检测模型。
[0009]在本专利技术的一个实施例中,根据提取出的所述ORB特征点和所述坐标信息将坐标在所述动态物体和所述可移动物体上的动态ORB特征点剔除,包括:针对所述动态物体,读取所述动态物体的边界框的坐标,并在将所述边界框中将所述动态物体上的动态ORB特征点对应的像素值设为1,以及所述动态物体外的静态ORB特征点对应的像素值设为0;根据所述边界框的坐标建立第一坐标系,并获取所述边界框内的所有ORB特征点在所述第一坐标系中的坐标;在所述第一坐标系中将像素值为1的坐标重置为(

1,

1);将坐标(

1,

1)对应
的ORB特征点剔除。
[0010]在本专利技术的一个实施例中,根据提取出的所述ORB特征点和所述坐标信息将坐标在所述动态物体和所述可移动物体上的动态ORB特征点剔除,还包括:针对所述可移动物体,计算所述可移动物体上的所述ORB特征点的第一平均深度;计算所述动态物体上的所述ORB特征点的第二平均深度;判断所述第一平均深度和所述第二平均深度的差值的绝对值是否小于第一预设值;如果是,则判断所述可移动物体的边界框与所述动态物体的边界框是否相交;如果相交,则判定所述可移动物体上的所述ORB特征点为所述动态ORB特征点,并将所述动态ORB特征点剔除。
[0011]一种动态环境下的SLAM系统,包括:第一获取模块,所述第一获取模块用于获取动态环境的目标数据,其中,所述目标数据包括图像序列或视频流;部署模块,所述部署模块用于采用C++版本的OpenCV

DNN模块部署YOLOv5

seg网络模型,以获取相应的目标检测模型;第二获取模块,所述第二获取模块用于采用所述目标检测模型对所述目标数据进行目标检测和分割,以获取所述目标数据中的动态物体和可移动物体的mask掩膜以及相应的坐标信息;提取模块,所述提取模块用于对所述目标数据中的每一帧图像进行ORB特征点的提取;剔除模块,所述剔除模块用于根据提取出的所述ORB特征点和所述坐标信息将坐标在所述动态物体和所述可移动物体上的动态ORB特征点剔除,并保留相应的静态ORB特征点;建图模块,所述建图模块用于采用ORB

SLAM3系统根据所述静态ORB特征点进行特征点匹配,以及计算相机位姿并建图,以完成SLAM工作。
[0012]一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述的动态环境下的SLAM方法。
[0013]一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的动态环境下的SLAM方法。
[0014]本专利技术与现有技术相比,其显著优点为:
[0015]本专利技术能够实时高效地剔除动态ORB特征点,以提高定位精度和系统鲁棒性,从而避免系统发生故障。
附图说明
[0016]图1为本专利技术实施例的动态环境下的SLAM方法的流程图。
[0017]图2为本专利技术实施例的动态环境下的SLAM系统的方框示意图。
具体实施方式
[0018]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0019]图1为本专利技术实施例的动态环境下的SLAM方法的流程图。
[0020]如图1所示,本专利技术实施例的动态环境下的SLAM方法可包括以下步骤:
[0021]S1,获取动态环境的目标数据。其中,目标数据包括图像序列或视频流。
[0022]具体地,可利用开源的OpenCV(Open Computer Vision,计算机视觉库)读取数据
集的目标数据,即图像序列或者是相机的视频流,并将每一帧的图像数据存储为cv::mat格式。
[0023]S2,采用C++版本的OpenCV

DNN模块部署YOLOv5

seg网络模型,以获取相应的目标检测模型。
[0024]在本专利技术的一个实施例中,采用C++版本的OpenCV

DNN模块部署YOLOv5
...

【技术保护点】

【技术特征摘要】
1.一种动态环境下的SLAM方法,其特征在于,包括以下步骤:获取动态环境的目标数据,其中,所述目标数据包括图像序列或视频流;采用C++版本的OpenCV

DNN模块部署YOLOv5

seg网络模型,以获取相应的目标检测模型;采用所述目标检测模型对所述目标数据进行目标检测和分割,以获取所述目标数据中的动态物体和可移动物体的mask掩膜以及相应的坐标信息;对所述目标数据中的每一帧图像进行ORB特征点的提取;根据提取出的所述ORB特征点和所述坐标信息将坐标在所述动态物体和所述可移动物体上的动态ORB特征点剔除,并保留相应的静态ORB特征点;采用ORB

SLAM3系统根据所述静态ORB特征点进行特征点匹配,以及计算相机位姿并建图,以完成SLAM工作。2.根据权利要求1所述的动态环境下的SLAM方法,其特征在于,所述采用C++版本的OpenCV

DNN模块部署YOLOv5

seg网络模型,以获取相应的目标检测模型,包括:将.pt格式的模型文件导出成.onnx格式的模型文件;将Python语言的YOLOv5

seg代码改写成C++语言;采用所述C++版本的OpenCV

DNN模块根据所述.onnx格式的模型文件以及改写为C++语言的YOLOv5

seg代码部署所述YOLOv5

seg网络模型,以获取所述目标检测模型。3.根据权利要求1所述的动态环境下的SLAM方法,其特征在于,根据提取出的所述ORB特征点和所述坐标信息将坐标在所述动态物体和所述可移动物体上的动态ORB特征点剔除,包括:针对所述动态物体,读取所述动态物体的边界框的坐标,并在将所述边界框中将所述动态物体上的动态ORB特征点对应的像素值设为1,以及所述动态物体外的静态ORB特征点对应的像素值设为0;根据所述边界框的坐标建立第一坐标系,并获取所述边界框内的所有ORB特征点在所述第一坐标系中的坐标;在所述第一坐标系中将像素值为1的坐标重置为(

1,

1);将坐标(

【专利技术属性】
技术研发人员:徐本连周理想鲁明丽施健从金亮周旭张龙欣
申请(专利权)人:苏州科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1