CN114898062A - 一种基于动态场景下slam的地图构建方法及装置 - Google Patents
一种基于动态场景下slam的地图构建方法及装置 Download PDFInfo
- Publication number
- CN114898062A CN114898062A CN202210595103.1A CN202210595103A CN114898062A CN 114898062 A CN114898062 A CN 114898062A CN 202210595103 A CN202210595103 A CN 202210595103A CN 114898062 A CN114898062 A CN 114898062A
- Authority
- CN
- China
- Prior art keywords
- dynamic
- map
- point
- semantic segmentation
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Graphics (AREA)
- Remote Sensing (AREA)
- Image Analysis (AREA)
Abstract
本发明实施例提供了一种基于动态场景下SLAM的地图构建方法及装置,包括:使用RGB‑D相机获取输入图像;对当前帧的RGB图像转换为灰度图,进行ORB特征点提取;得到语义分割图;对语义分割图进行深度补偿,将分割不完整的物体补全;根据语义分割图中动态物体像素的位置,剔除分布在动态物体上的特征点;利用静态特征点对进行相机位姿计算;生成关键帧,利用关键帧进行静态环境稠密点云建立地图,对于每一帧提取动态物体的像素点,进行动态稠密点云建立地图;生成关键帧,利用关键帧进行静态环境稠密点云建立地图提升了位姿估计精度,优化了稠密点云建图效果;能够显示动态物体运动模型的点云,能够将动态物体在全局环境下的运动模型可视化。
Description
技术领域
本发明涉及装备检测技术领域,特别是涉及一种基于动态场景下SLAM的地图构建方法、一种基于动态场景下SLAM的地图构建装置、一种计算机设备和一种存储介质。
背景技术
同时定位与建图(Simultaneous Localization and Mapping,SLAM)是指以传感器为环境信息采集媒介,在未知环境中,于运动过程中估计自身的运动,并同时建立环境模型的技术。而视觉SLAM则是以相机作为传感器,具有成本低、获取环境信息丰富等优点。且随着计算硬件和图像处理算法的发展,视觉SLAM在无人机、VGV智能小车、AR等领域的应用如火如荼。
基于静态环境假设的ORB-SLAM2是经典的SLAM算法,其主要包含跟踪线程、局部建图线程、回环检测三大线程。在跟踪线程中,其提取具有旋转、尺度不变性的ORB特征点,并利用帧间的ORB特征点配对来进行相机位姿估计,再根据相关规则产生关键帧。当环境光变化导致跟踪失败时,还能借助重定位算法更新位姿,一定程度上提升了在静态环境内的鲁棒性。在局部建图线程中,处理关键帧、产生新的地图点,完成局部地图的构建。在回环检测线程中,使用词袋模型描述图像的相似性,并进行回环矫正,减弱建图漂移现象。
为了提高视觉SLAM的动态鲁棒性,DynaSLAM使用Mask R-CNN实例分割算法识别出潜在动态物体,并结合多视角几何原理判断动态点并剔除,提升动态环境下的鲁棒性。DS-SLAM使用移动一致性算法初步剔除动态点,再采用Segnet语义分割算法,识别出动态物体在图像中的位置并进一步剔除动态点,能够完成动态环境下的位姿估计。
ORB-SLAM2运行在动态环境时,动态物体会频繁干扰特征点的配对,产生大量的特征点误匹配现象,此时系统求解出的位姿精度将会下降,最终导致定位失败;DynaSLAM,多视角几何耗时超过300ms,背景修复耗时超过200ms,Mask R-CNN实例分割耗时超过200ms且对计算硬件要求高,无法达到实时运行的要求;DS-SLAM,其所采用的segnet语义分割网络分割精度低、计算耗时超过30ms,位姿估计误差大、实时性不高。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于动态场景下SLAM的地图构建方法、一种基于动态场景下SLAM的地图构建装置、一种计算机设备和一种存储介质。
为了解决上述问题,本发明实施例公开了一种基于动态场景下SLAM的地图构建方法,包括:
使用RGB-D相机获取输入图像,得到RGB图像以及对应的深度图像;
对当前帧的RGB图像转换为灰度图,进行ORB特征点提取和计算ORB特征点对应的描述子;
对当前帧的RGB图像使用基于TensorRT部署的PSPnet语义分割算法,得到语义分割图;
对语义分割图进行深度补偿,将分割不完整的物体补全;
根据语义分割图中动态物体的位置,剔除分布在动态物体上的特征点;
将当前帧剔除动态点后剩余的ORB特征点与上一帧的ORB特征点进行配对,进行相机位姿计算;
生成关键帧,利用关键帧进行静态环境稠密点云建立地图,对于每一帧提取动态物体的像素点,进行动态稠密点云建立地图。
优选地,所述对当前帧的RGB图像使用基于TensorRT部署的PSPnet语义分割算法,得到语义分割图,包括:
使用pytorch深度学习框架,在Pascal VOC2012数据集上训练以resnet50为网络骨干的PSPnet语义分割网络,得到pth模型文件;
将pth模型文件通过pytorch的ONNX处理接口,转化为ONNX模型;
将ONNX模型导入到TensorRT中,生成TensorRT引擎文件;
将引擎文件通过TensorRT C++接口导入到SLAM系统中进行模型部署,用于复数次图像推理,得到语义分割图。
优选地,所述对语义分割图进行深度补偿,将分割不完整的物体补全,包括:
根据语义分割图中动态物体在图像中的位置,在深度图中相应地得到动态物体每个像素的深度值;
对动态物体每个像素按深度值进行聚类,以区分不同的动态物体;
将聚类得到的若干个点集分别形成一个范围限制框;
根据每个聚类点集的平均深度值,在语义分割图中把对应的范围限制框内所有深度值落在筛选区间的像素点的标签值修改为动态物体的标签值。
优选地,所述对动态物体每个像素按深度值进行聚类,以区分不同的动态物体,包括:
遍历语义分割图,找到动态物体的第一个像素点,并在深度图中得到相同位置像素点的深度值;
初始化第一个聚类点集,将第一个动态物体像素点的深度值加入到第一个聚类点集中,并把第一个聚类点集的平均深度值置为该像素点的深度值;
获得动态物体的下一个像素点及其深度值,计算其深度值与各个聚类点集对应的平均深度值之差的绝对值;
当所有值都超过所设定的聚类阈值,则该点深度值自成一类,并将该新的聚类点集的平均深度值置为该像素点的深度值;
当所有值都不超过所设定的聚类阈值,将该点深度值加入到最小值对应的聚类点集中,同时更新该聚类点集的平均深度值;
循环执行获得动态物体的下一个像素点及其深度值,计算其深度值与各个聚类点集对应的平均深度值之差的绝对值,将其深度值加入对应聚类点集并更新聚类点集的平均深度值的步骤,直到动态物体的所有像素点都完成聚类;
删除规模较小的聚类点集。
优选地,所述根据语义分割图中动态物体像素的位置,剔除分布在动态物体上的特征点,包括:
获取语义分割图与提取的ORB特征点集;
遍历提取得到的ORB特征点集进行动态特征点删除,若ORB特征点所在的位置处于动态物体的语义标签范围内,该ORB特征点为动态特征点,将所述动态特征点进行剔除。
优选地,所述生成关键帧,利用关键帧进行静态环境稠密点云建立地图,对于每一帧提取动态物体的像素点,进行动态稠密点云建立地图,包括:
将关键帧的静态环境的像素点和每一帧的动态物体的像素点从二维像素坐标转换为三维空间坐标;
将历史关键帧的点云与当前关键帧融合,得到全局点云;
擦除全局点云中,上一帧动态物体的点集,并将擦除后的全局点云与当前帧的动态物体点云融合,再实时显示全局点云;
循环执行所述将关键帧的静态环境的像素点和每一帧的动态物体的像素点从二维像素坐标转换为三维空间坐标至擦除全局点云中,上一帧动态物体的点集,并将擦除后的全局点云与当前帧的动态物体点云融合,再实时显示全局点云的步骤,实时更新稠密点云地图中动态物体的位置实现动态点云显示。
本发明实施例公开了一种基于动态场景下SLAM的地图构建装置,包括:
图像获取模块,用于使用RGB-D相机获取输入图像,得到RGB图像以及对应的深度图像;
提取和计算模块,用于对当前帧的RGB图像转换为灰度图,进行ORB特征点提取和计算ORB特征点对应的描述子;
语义分割图获得模块,用于对当前帧的RGB图像使用基于TensorRT部署的PSPnet语义分割算法,得到语义分割图;
深度补偿模块,用于对语义分割图进行深度补偿,将分割不完整的物体补全;
特征点剔除模块,用于根据语义分割图中动态物体像素的位置,剔除分布在动态物体上的特征点;
相机位姿计算模块,用于将当前帧剔除动态点后剩余的ORB特征点与上一帧的ORB特征点进行配对,进行相机位姿计算;
地图建立模块,用于生成关键帧,利用关键帧进行静态环境稠密点云建立地图,对于每一帧提取动态物体的像素点,进行动态稠密点云建立地图。
优选地,所述语义分割图获得模块包括:
pth模型文件获得子模块,用于使用pytorch深度学习框架,在Pascal VOC2012数据集上训练以resnet50为网络骨干的PSPnet语义分割网络,得到pth模型文件;
转化子模块,用于将pth模型文件通过pytorch的ONNX处理接口,转化为ONNX模型;
生成子模块,用于将ONNX模型导入到TensorRT中,生成TensorRT引擎文件;
语义分割图获得子模块,用于将引擎文件通过TensorRT C++接口导入到SLAM系统中进行模型部署,用于复数次图像推理,得到语义分割图。
本发明实施例公开了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的基于动态场景下SLAM的地图构建方法的步骤。
本发明实施例公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于动态场景下SLAM的地图构建方法的步骤。
本发明实施例包括以下优点:
本发明实施例的技术方案中,融合了TensorRT C++接口与视觉SLAM系统(C++编写);能够将运动的物体进行点云可视化;选用分割精度更高、计算量更少的PSPnet语义分割网络,能够进一步提高视觉SLAM系统的定位精准性和实时性;利用TensorRT的C++接口在SLAM系统中部署语义分割神经网络,能够加速神经网络的推理适合部署在边缘设备,同时,可扩展性强,能够兼容当前主流神经网络框架训练的模型如pytorch、tensorflow、caffe、paddlepaddle等;能够显示动态物体运动模型的点云,能够将动态物体在全局环境下的运动模型可视化;使用深度补偿算法,能够对语义分割图中的物体残缺部分进行修补,便于更好地剔除动态特征点,提升位姿估计的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图
图1是本发明实施例的一种基于动态场景下SLAM的地图构建方法实施例的步骤流程图;
图2是本发明实施例的一种点云地图建立的示意图;
图3是本发明实施例的一种TensorRT部署的结构图;
图4是本发明实施例的一种聚类的流程图;
图5是本发明实施例的一种左右边界调整的示意图;
图6是本发明实施例的一种基于动态场景下SLAM的地图构建装置实施例的结构框图;
图7是一个实施例的一种计算机设备的内部结构图。
具体实施方式
为了使本发明实施例所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明实施例进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,示出了本发明实施例的一种基于动态场景下SLAM的地图构建方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,使用RGB-D相机获取输入图像,得到RGB图像以及对应的深度图像;
参照图2,示出了本发明实施例的一种点云地图建立的示意图,首先可以获取到输入图像,进一步得到输入图像的RGB图像以及对应的深度图像,以便下一步操作。
步骤102,对当前帧的RGB图像转换为灰度图,进行ORB特征点提取和计算ORB特征点对应的描述子;
步骤103,对当前帧的RGB图像使用基于TensorRT部署的PSPnet语义分割算法,得到语义分割图;
本发明实施例中,上述的步骤103可以分为以下的子步骤:
步骤21,使用pytorch深度学习框架,在Pascal VOC2012数据集上训练以resnet50为网络骨干的PSPnet语义分割网络,得到pth模型文件;
步骤22,将pth模型文件通过pytorch的ONNX处理接口,转化为ONNX模型;
步骤23,将ONNX模型导入到TensorRT中,生成TensorRT引擎文件;其中,TensorRT的结构图的如图3所示;
步骤24,将引擎文件通过TensorRT C++接口导入到SLAM系统中进行模型部署,用于复数次图像推理,得到语义分割图。
步骤104,对语义分割图进行深度补偿,将分割不完整的物体补全;
进一步地,所述对语义分割图进行深度补偿,将分割不完整的物体补全,具体包括以下步骤:
步骤31:根据语义分割图中动态物体在图像中的位置,在深度图中相应地得到动态物体每个像素的深度值;
步骤32:对动态物体每个像素按深度值进行聚类,以区分不同的动态物体;
步骤33:将聚类得到的若干个点集分别形成一个范围限制框;
步骤34:根据每个聚类点集的平均深度值,在语义分割图中把对应的范围限制框内所有深度值落在筛选区间的像素点的标签值修改为动态物体的标签值,筛选区间定义如下:
(di-a,di+a)其中didi表示第i个聚类点集的平均深度,a表示筛选阈值。
进一步地,如图4所示的一种聚类的流程图,所述步骤32具体包括以下步骤:
步骤321:遍历语义分割图,找到动态物体的第一个像素点,并在深度图中得到相同位置像素点的深度值;
步骤322:初始化第一个聚类点集,将第一个动态物体像素点的深度值加入到第一个聚类点集中,并把第一个聚类点集的平均深度值置为该像素点的深度值;
步骤323:得到动态物体的下一个像素点及其深度值,计算其深度值与各个聚类点集对应的平均深度值之差的绝对值,若所有值都超过所设定的聚类阈值,则该点深度值自成一类,并将该新的聚类点集的平均深度值置为该像素点的深度值;否则,将该点深度值加入到最小值对应的聚类点集中,同时更新该聚类点集的平均深度值;
步骤324:循环执行步骤323,直到动态物体的所有像素点都完成聚类;
步骤325:删除规模较小的聚类点集,以减轻坏点的影响。
进一步地,所述步骤33具体包括以下步骤:
步骤331:记录每个聚类点集中,最大行坐标umax、最小行坐标umin、最大列坐标vmax、最小列坐标vmin,以(umin,vmin)、(umin,vmax)、(umax,vmin)、(umax,vmax)作为四个顶点坐标构建每个聚类点集的范围限制框。
步骤332:调整范围限制框的左右边界,使得左右边界控制线恰好与动态物体接触。若左边界离动态物体像素点较近,则左边界向左平移一段距离,使框往左扩大;若左边界离动态物体太远,则左边界向右平移,使框往右缩小;若右边界离动态物体较近,则右边界向右平移一段距离,使框往右扩大;若右边界离动态物体太远,则右边界向左平移一段距离,使框往左缩小。该步骤示意图如下图5所示:
步骤333:根据每个聚类点集中点的数目分为两种情况:1、点太少,认为分割极度残缺,扩展范围限制框的左右边界,并将上下边界置为与图像等高;2、点较多,认为分割较为精准,略微扩展限制框的左右边界。
步骤105,根据语义分割图中动态物体像素的位置,剔除分布在动态物体上的特征点;
实际应用到本发明实施例中,获取语义分割图与提取的ORB特征点集;遍历提取得到的ORB特征点集进行动态特征点删除,若ORB特征点所在的位置处于动态物体的语义标签范围内,该ORB特征点为动态特征点,将所述动态特征点进行剔除。
步骤106,将当前帧剔除动态点后剩余的ORB特征点与上一帧的ORB特征点进行配对,进行相机位姿计算;
具体而方,该将当前帧剔除动态点后剩余的ORB特征点与上一帧的ORB特征点进行配对,再利用静态特征点对进行相机位姿计算可以包括:
步骤41:将上一帧特征点投影到当前帧,并与当前帧匹配点构建重投影误差:
其中,f(T)为重投影误差,ui为当前帧第i个特征点的像素坐标,si为上一帧第i个特征点深度,K为相机内参,Pi为上一帧第i个特征点的空间坐标,T为待优化相机位姿;
步骤42:应用列文伯格—马夸尔特法迭代求解最小化重投影误差,公式如下:
其中ΔTk为第k次迭代的位姿增量,μ为优化半径,D为系数矩阵。
步骤43:定义信赖区域指标ρ,若ρ>0.75,设置μ=2μ;若ρ<0.25,设置μ=0.5μ,信赖区域指标ρ计算公式如下:
步骤44:令Tk+1=Tk+ΔTk,循环执行步骤42到步骤43,直到算法收敛,得到最优相机位姿T*。
步骤107,生成关键帧,利用关键帧进行静态环境稠密点云建立地图,对于每一帧提取动态物体的像素点,进行动态稠密点云建立地图。
在一种实施例中,步骤107可以分为以下具体的子步骤:
步骤51,将关键帧的静态环境的像素点和每一帧的动态物体的像素点从二维像素坐标转换为三维空间坐标;
公式如下:
p=TcwK-1Zx
其中,P为世界坐标系下的空间点,TcwTCW为相机位姿,K为相机内参矩阵,Z为像素点的深度,x为像素点的归一化坐标;
步骤52,将历史关键帧的点云与当前关键帧融合,得到全局点云;
步骤53,擦除全局点云中,上一帧动态物体的点集,并将擦除后的全局点云与当前帧的动态物体点云融合,再实时显示全局点云;
步骤54,循环执行所述步骤51至步骤53的步骤,实时更新稠密点云地图中动态物体的位置实现动态点云显示。
本发明的具体效果验证实验:
本发明的算法测试实验在一台操作系统为ubuntu18.04,配备有AMD RADEON R7-4800H CPU,NVIDIA GEFORCE RTX 2060GPU,16G内存的笔记本上完成。
实验使用TUM RGB-D数据集来对算法的性能进行评估。TUM RGB-D数据集是由慕尼黑工业大学使用Microsoft Kinect RGB-D相机以30HZ的速率采集的图像信息组成的,其彩色图像是以PNG格式存储的分辨率为640*480的8位RGB图像,其深度图是以PNG格式存储的分辨率为640*480的16位单色图像。本发明主要使用TUM RGB-D数据集中freiburg3系列的walking_halfsphere、walking_rpy、walking_xyz共三个场景序列进行测试。
walking_halfsphere的场景为:两个人在一个办公桌旁频繁走动,同时相机沿着直径一米的小半球轨迹移动;walking_rpy的场景为:两个人在一个办公桌旁频繁走动,同时相机以翻转角、俯仰角和偏航角的方式旋转;walking_xyz的场景为:两个人在一个办公桌旁频繁走动,同时相机保持不旋转的状态在x轴、y轴、z轴方向上平移。
首先将本发明算法分别与基于静态环境假设的ORB-SLAM2算法和DS-SLAM算法进行对比,选取ATE(绝对位姿误差)作为评估指标。实验结果如表1、表2所示,其中RMSE表示均方根误差,std表示方差。
表1:本发明算法与ORB-SLAM2算法的ATE(绝对位姿误差)对比
表2:本发明算法与DS-SLAM算法的ATE(绝对位姿误差)对比
表3:本发明算法内部模块的ATE(绝对位姿误差)对比
由表1、表2所示,本发明算法在高动态环境下能够精准分割出动态物体并将动态特征点剔除,极大减少动态物体运动导致的特征点误匹配现象,使得本算法在定位精准度层面上要优于ORB-SLAM2和DS-SLAM;如表3所示,本发明引入的深度补偿策略可以有效修补语义分割不完整部分,进而提升位姿估计准确性。
表4语义分割耗时统计与对比
表5跟踪一帧耗时统计与对比
由表4、表5所示,本发明算法采用TensorRT部署的PSPnet语义分割模型,能够减少语义分割模型的推理时间,同时融合了深度补偿技术并优化了整体视觉SLAM算法的框架,使得本发明算法跟踪一帧耗时较DS-SLAM和DynaSLAM大大缩短,更具实时性。
本发明实施例的技术方案中,融合了TensorRT C++接口与视觉SLAM系统(C++编写);能够将运动的物体进行点云可视化;选用分割精度更高、计算量更少的PSPnet语义分割网络,能够进一步提高视觉SLAM系统的定位精准性和实时性;利用TensorRT的C++接口在SLAM系统中部署语义分割神经网络,能够加速神经网络的推理适合部署在边缘设备,同时,可扩展性强,能够兼容当前主流神经网络框架训练的模型如pytorch、tensorflow、caffe、paddlepaddle等;能够显示动态物体运动模型的点云,能够将动态物体在全局环境下的运动模型可视化;使用深度补偿算法,能够对语义分割图中的物体残缺部分进行修补,便于更好地剔除动态特征点,提升位姿估计的准确性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明实施例的一种基于动态场景下SLAM的地图构建装置实施例的结构框图,具体可以包括如下模块:
图像获取模块301,用于使用RGB-D相机获取输入图像,得到RGB图像以及对应的深度图像;
提取和计算模块302,用于对当前帧的RGB图像转换为灰度图,进行ORB特征点提取和计算ORB特征点对应的描述子;
语义分割图获得模块303,用于对当前帧的RGB图像使用基于TensorRT部署的PSPnet语义分割算法,得到语义分割图;
深度补偿模块304,用于对语义分割图进行深度补偿,将分割不完整的物体补全;
特征点剔除模块305,用于根据语义分割图中动态物体的位置,剔除分布在动态物体上的特征点;
相机位姿计算模块306,用于将当前帧剔除动态点后剩余的ORB特征点与上一帧的ORB特征点进行配对,进行相机位姿计算;
地图建立模块307,用于生成关键帧,利用关键帧进行静态环境稠密点云建立地图,对于每一帧提取动态物体的像素点,进行动态稠密点云建立地图。
优选地,所述语义分割图获得模块包括:
pth模型文件获得子模块,用于使用pytorch深度学习框架,在Pascal VOC2012数据集上训练以resnet50为网络骨干的PSPnet语义分割网络,得到pth模型文件;
转化子模块,用于将pth模型文件通过pytorch的ONNX处理接口,转化为ONNX模型;
生成子模块,用于将ONNX模型导入到TensorRT中,生成TensorRT引擎文件;
语义分割图获得子模块,用于将引擎文件通过TensorRT C++接口导入到SLAM系统中进行模型部署,用于复数次图像推理,得到语义分割图。
优选地,所述深度补偿模块包括:
深度值获得子模块,用于根据语义分割图中动态物体在图像中的位置,在深度图中相应地得到动态物体每个像素的深度值;
聚类子模块,用于对动态物体每个像素按深度值进行聚类,以区分不同的动态物体;
范围限制框形成子模块,用于将聚类得到的若干个点集分别形成一个范围限制框;
标签值修改子模块,用于根据每个聚类点集的平均深度值,在语义分割图中把对应的范围限制框内所有深度值落在筛选区间的像素点的标签值修改为动态物体的标签值。
优选地,所述聚类子模块包括:
深度值获得单元,用于遍历语义分割图,找到动态物体的第一个像素点,并在深度图中得到相同位置像素点的深度值;
初始化单元,用于初始化第一个聚类点集,将第一个动态物体像素点的深度值加入到第一个聚类点集中,并把第一个聚类点集的平均深度值置为该像素点的深度值;
绝对值计算单元,用于获得动态物体的下一个像素点及其深度值,计算其深度值与各个聚类点集对应的平均深度值之差的绝对值;
第一深度值获得单元,用于当所有值都超过所设定的聚类阈值,则将该新的聚类点集的平均深度值置为该像素点的深度值;
第二深度值获得单元,用于当所有值都不超过所设定的聚类阈值,将该点深度值加入到最小值对应的聚类点集中,同时更新该聚类点集的平均深度值;
循环执行单元,用于循环执行获得动态物体的下一个像素点及其深度值,计算其深度值与各个聚类点集对应的平均深度值之差的绝对值,将其深度值加入对应聚类点集并更新聚类点集的平均深度值的步骤,直到动态物体的所有像素点都完成聚类;
删除单元,用于删除规模较小的聚类点集。
优选地,所述特征点剔除模块包括:
获取子模块,用于获取语义分割图与提取的ORB特征点集;
遍历子模块,用于遍历提取得到的ORB特征点集进行动态特征点删除,若ORB特征点所在的位置处于动态物体的语义标签范围内,该ORB特征点为动态特征点,将所述动态特征点进行遍历。
优选地,所述地图建立模块包括:
转换子模块,用于将关键帧的静态环境的像素点和每一帧的动态物体的像素点从二维像素坐标转换为三维空间坐标;
融合子模块,用于将历史关键帧的点云与当前关键帧融合,得到全局点云;
显示子模块,用于擦除全局点云中,上一帧动态物体的点集,并将擦除后的全局点云与当前帧的动态物体点云融合,再实时显示全局点云;
实时更新显示子模块,用于循环执行所述将关键帧的静态环境的像素点和每一帧的动态物体的像素点从二维像素坐标转换为三维空间坐标至擦除全局点云中,上一帧动态物体的点集,并将擦除后的全局点云与当前帧的动态物体点云融合,再实时显示全局点云的步骤,实时更新稠密点云地图中动态物体的位置实现动态点云显示。
上述基于动态场景下SLAM的地图构建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
上述提供的基于动态场景下SLAM的地图构建装置可用于执行上述任意实施例提供的基于动态场景下SLAM的地图构建方法,具备相应的功能和有益效果。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于动态场景下SLAM的地图构建方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现图1至图2的实施例的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下图1至图2的实施例的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种基于动态场景下SLAM的地图构建方法、一种基于动态场景下SLAM的地图构建装置、一种计算机设备和一种存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种基于动态场景下SLAM的地图构建方法,其特征在于,包括:
使用RGB-D相机获取输入图像,得到RGB图像以及对应的深度图像;
对当前帧的RGB图像转换为灰度图,进行ORB特征点提取和计算ORB特征点对应的描述子;
对当前帧的RGB图像使用基于TensorRT部署的PSPnet语义分割算法,得到语义分割图;
对语义分割图进行深度补偿,将分割不完整的物体补全;
根据语义分割图中动态物体的位置,剔除分布在动态物体上的特征点;
将当前帧剔除动态点后剩余的ORB特征点与上一帧的ORB特征点进行配对,进行相机位姿计算;
生成关键帧,利用关键帧进行静态环境稠密点云建立地图,对于每一帧提取动态物体的像素点,进行动态稠密点云建立地图。
2.根据权利要求1所述的基于动态场景下SLAM的地图构建方法,其特征在于,所述对当前帧的RGB图像使用基于TensorRT部署的PSPnet语义分割算法,得到语义分割图,包括:
使用pytorch深度学习框架,在Pascal VOC2012数据集上训练以resnet50为网络骨干的PSPnet语义分割网络,得到pth模型文件;
将pth模型文件通过pytorch的ONNX处理接口,转化为ONNX模型;
将ONNX模型导入到TensorRT中,生成TensorRT引擎文件;
将引擎文件通过TensorRT C++接口导入到SLAM系统中进行模型部署,用于复数次图像推理,得到语义分割图。
3.根据权利要求1所述的基于动态场景下SLAM的地图构建方法,其特征在于,所述对语义分割图进行深度补偿,将分割不完整的物体补全,包括:
根据语义分割图中动态物体在图像中的位置,在深度图中相应地得到动态物体每个像素的深度值;
对动态物体每个像素按深度值进行聚类,以区分不同的动态物体;
将聚类得到的若干个点集分别形成一个范围限制框;
根据每个聚类点集的平均深度值,在语义分割图中把对应的范围限制框内所有深度值落在筛选区间的像素点的标签值修改为动态物体的标签值。
4.根据权利要求3所述的基于动态场景下SLAM的地图构建方法,其特征在于,所述对动态物体每个像素按深度值进行聚类,以区分不同的动态物体,包括:
遍历语义分割图,找到动态物体的第一个像素点,并在深度图中得到相同位置像素点的深度值;
初始化第一个聚类点集,将第一个动态物体像素点的深度值加入到第一个聚类点集中,并把第一个聚类点集的平均深度值置为该像素点的深度值;
获得动态物体的下一个像素点及其深度值,计算其深度值与各个聚类点集对应的平均深度值之差的绝对值;
当所有值都超过所设定的聚类阈值,则该点深度值自成一类,并将该新的聚类点集的平均深度值置为该像素点的深度值;
当所有值都不超过所设定的聚类阈值,将该点深度值加入到最小值对应的聚类点集中,同时更新该聚类点集的平均深度值;
循环执行获得动态物体的下一个像素点及其深度值,计算其深度值与各个聚类点集对应的平均深度值之差的绝对值,将其深度值加入对应聚类点集并更新聚类点集的平均深度值的步骤,直到动态物体的所有像素点都完成聚类;
删除规模较小的聚类点集。
5.根据权利要求1所述的基于动态场景下SLAM的地图构建方法,其特征在于,所述根据语义分割图中动态物体像素的位置,剔除分布在动态物体上的特征点,包括:
获取语义分割图与提取的ORB特征点集;
遍历提取得到的ORB特征点集进行动态特征点删除,若ORB特征点所在的位置处于动态物体的语义标签范围内,该ORB特征点为动态特征点,将所述动态特征点进行剔除。
6.根据权利要求1所述的基于动态场景下SLAM的地图构建方法,其特征在于,所述生成关键帧,利用关键帧进行静态环境稠密点云建立地图,对于每一帧提取动态物体的像素点,进行动态稠密点云建立地图,包括:
将关键帧的静态环境的像素点和每一帧的动态物体的像素点从二维像素坐标转换为三维空间坐标;
将历史关键帧的点云与当前关键帧融合,得到全局点云;
擦除全局点云中,上一帧动态物体的点集,并将擦除后的全局点云与当前帧的动态物体点云融合,再实时显示全局点云;
循环执行所述将关键帧的静态环境的像素点和每一帧的动态物体的像素点从二维像素坐标转换为三维空间坐标至擦除全局点云中,上一帧动态物体的点集,并将擦除后的全局点云与当前帧的动态物体点云融合,再实时显示全局点云的步骤,实时更新稠密点云地图中动态物体的位置实现动态点云显示。
7.一种基于动态场景下SLAM的地图构建装置,其特征在于,包括:
图像获取模块,用于使用RGB-D相机获取输入图像,得到RGB图像以及对应的深度图像;
提取和计算模块,用于对当前帧的RGB图像转换为灰度图,进行ORB特征点提取和计算ORB特征点对应的描述子;
语义分割图获得模块,用于对当前帧的RGB图像使用基于TensorRT部署的PSPnet语义分割算法,得到语义分割图;
深度补偿模块,用于对语义分割图进行深度补偿,将分割不完整的物体补全;
特征点剔除模块,用于根据语义分割图中动态物体像素的位置,剔除分布在动态物体上的特征点;
相机位姿计算模块,用于将当前帧剔除动态点后剩余的ORB特征点与上一帧的ORB特征点进行配对,进行相机位姿计算;
地图建立模块,用于生成关键帧,利用关键帧进行静态环境稠密点云建立地图,对于每一帧提取动态物体的像素点,进行动态稠密点云建立地图。
8.根据权利要求7所述的基于动态场景下SLAM的地图构建装置,其特征在于,所述语义分割图获得模块包括:
pth模型文件获得子模块,用于使用pytorch深度学习框架,在Pascal VOC2012数据集上训练以resnet50为网络骨干的PSPnet语义分割网络,得到pth模型文件;
转化子模块,用于将pth模型文件通过pytorch的ONNX处理接口,转化为ONNX模型;
生成子模块,用于将ONNX模型导入到TensorRT中,生成TensorRT引擎文件;
语义分割图获得子模块,用于将引擎文件通过TensorRT C++接口导入到SLAM系统中进行模型部署,用于复数次图像推理,得到语义分割图。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的基于动态场景下SLAM的地图构建方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的基于动态场景下SLAM的地图构建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210595103.1A CN114898062A (zh) | 2022-05-28 | 2022-05-28 | 一种基于动态场景下slam的地图构建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210595103.1A CN114898062A (zh) | 2022-05-28 | 2022-05-28 | 一种基于动态场景下slam的地图构建方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114898062A true CN114898062A (zh) | 2022-08-12 |
Family
ID=82726810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210595103.1A Pending CN114898062A (zh) | 2022-05-28 | 2022-05-28 | 一种基于动态场景下slam的地图构建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114898062A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115797412A (zh) * | 2023-02-07 | 2023-03-14 | 广东技术师范大学 | 动态对象异常值并行检测方法、装置、系统、设备及介质 |
CN117906595A (zh) * | 2024-03-20 | 2024-04-19 | 常熟理工学院 | 基于特征点法视觉slam的场景理解导航方法及系统 |
-
2022
- 2022-05-28 CN CN202210595103.1A patent/CN114898062A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115797412A (zh) * | 2023-02-07 | 2023-03-14 | 广东技术师范大学 | 动态对象异常值并行检测方法、装置、系统、设备及介质 |
CN115797412B (zh) * | 2023-02-07 | 2023-05-16 | 广东技术师范大学 | 动态对象异常值并行检测方法、装置、系统、设备及介质 |
CN117906595A (zh) * | 2024-03-20 | 2024-04-19 | 常熟理工学院 | 基于特征点法视觉slam的场景理解导航方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062776B (zh) | 相机姿态跟踪方法和装置 | |
CN108197547B (zh) | 人脸姿态估计方法、装置、终端及存储介质 | |
US10254845B2 (en) | Hand gesture recognition for cursor control | |
CN114898062A (zh) | 一种基于动态场景下slam的地图构建方法及装置 | |
US11842514B1 (en) | Determining a pose of an object from rgb-d images | |
CN111739005B (zh) | 图像检测方法、装置、电子设备及存储介质 | |
CN110610453A (zh) | 一种图像处理方法、装置及计算机可读存储介质 | |
CN111767853B (zh) | 车道线检测方法和装置 | |
CN109584302A (zh) | 相机位姿优化方法、装置、电子设备和计算机可读介质 | |
CN109493417A (zh) | 三维物体重建方法、装置、设备和存储介质 | |
US20210319578A1 (en) | Unsupervised depth prediction neural networks | |
CN112562001B (zh) | 一种物体6d位姿估计方法、装置、设备及介质 | |
KR102508860B1 (ko) | 이미지에서의 키 포인트 위치의 인식 방법, 장치, 전자기기 및 매체 | |
CN115008454A (zh) | 一种基于多帧伪标签数据增强的机器人在线手眼标定方法 | |
Wang et al. | Improving RGB-D SLAM accuracy in dynamic environments based on semantic and geometric constraints | |
CN108520532B (zh) | 识别视频中物体运动方向的方法及装置 | |
WO2021106855A1 (ja) | データ生成方法、データ生成装置、モデル生成方法、モデル生成装置及びプログラム | |
CN113177432A (zh) | 基于多尺度轻量化网络的头部姿态估计方法、系统、设备及介质 | |
CN111531546A (zh) | 一种机器人位姿估计方法、装置、设备及存储介质 | |
CN116843867A (zh) | 增强现实虚实融合方法、电子设备和存储介质 | |
CN117252914A (zh) | 深度估计网络的训练方法、装置、电子设备及存储介质 | |
KR20230167086A (ko) | 공간과 시간에 따른 어텐션을 이용한 비디오 시퀀스에서 객체 표현에 대한 비지도 학습 | |
Zhou et al. | Vision sensor‐based SLAM problem for small UAVs in dynamic indoor environments | |
Lin et al. | RICH: Robust Implicit Clothed Humans Reconstruction from Multi-scale Spatial Cues | |
TWI823416B (zh) | 深度估計網路之訓練方法、裝置、電子設備及存儲介質 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |