一种基于深度学习的单目SLAM动态点滤除方法、装置及介质

文档序号:38870694发布日期:2024-08-02 02:42阅读:38来源:国知局
一种基于深度学习的单目SLAM动态点滤除方法、装置及介质

本发明涉及计算机视觉,尤其是涉及一种基于深度学习的单目slam动态点滤除方法、装置及介质。


背景技术:

1、由于科学和技术的不断进步,许多先进的slam算法应运而生。其中基于低成本相机传感器的视觉slam(vslam)系统在机器人、自动驾驶和增强现实等领域得到了极大的关注。经过多年的研究,vslam的理论框架已经较为完善,如orb-slam2和dso。然而,大多数vslam算法都是假设它们在非动态环境中运行的情况下开发的。动态目标在现实世界中是不可避免的,静态假设会导致姿态估计和闭环检测错误,从而降低slam算法的性能。

2、随着人工智能在计算机视觉领域的迅速发展,深度学习极大地推动了vslam的发展。ds-slam和dynaslam是两种经典的vslam算法,主要用于处理动态环境中的运动物体,上述两种算法在实现中都使用了语义分割。然而,由于耗时的缺点,越来越多的研究人员在进行slam时更倾向于目标检测而不是语义分割。yolo-slam将rgb图像中的目标检测与深度图像中的ransac算法相结合,消除动态特征点。由于该算法假设人在大多数场景中通常是移动的,因此无法确定人的实际运动状态,并且该假设在现实场景中无效。因此,将目标检测与slam算法相结合以确定实时场景中目标的运动状态的方法是一个具有挑战性的研究领域。消除动态特征点,最大限度地利用静态目标信息,可以显著提高slam系统的精度。

3、综上,在动态环境中使用语义分割和目标检测辅助slam算法得到广泛研究,但这些方法存在一个主要缺点,就是如果可移动对象是静止的,它们可能会将这些静态特征点误认为是动态的;或者如果静态对象是移动的,它们可能会错误地将其识别为动态特征点。此外,大多数关注动态场景的slam算法主要关注消除动态对象以优化性能,而未能充分利用静态对象语义信息的潜在优势。


技术实现思路

1、本发明的目的是为了提供一种基于深度学习的单目slam动态点滤除方法、装置及介质,结合目标检测、语义分割技术,并利用滑动窗口的方法,快速有效地过滤出真实的动态特征点,从而大大降低动态对象对slam算法的影响。

2、本发明的目的可以通过以下技术方案来实现:

3、一种基于深度学习的单目slam动态点滤除方法,包括以下步骤:

4、s1,获取待处理图像;

5、s2,基于yolo segment对待处理图像进行特征提取得到特征图,并进行语义分割预测,对特征图中每一像素点分配一个类别标签,得到二值化掩膜图像;

6、s3,基于二值化掩膜图像进行形心估计:利用遍历搜索算法对图像边界轮廓进行提取,计算相应的图像矩,确定目标轮廓的形心;

7、s4,利用匈牙利算法和卡尔曼滤波对形心进行追踪;

8、s5,采用滑动窗口机制,基于形心追踪结果确定检测目标运动的显著差异,判断目标是否处于运动状态,将目标划分为动态目标和静态目标;

9、s6,利用静态目标的形心追踪结果对动态目标误判情况进行优化;

10、s7,基于优化后的动态目标进行slam环境中的动态特征点滤除。

11、所述步骤s3中,利用遍历搜索算法对图像边界轮廓进行提取具体为:使用一个一维数组记录处理的像素点的周围8邻域的信息;若8个邻域的像素点的灰度值和中心点的灰度值相同,则认为该点在物体的内部,删除该点;否则,认为该点在图像的边缘,保留该点;依次处理图像中的每一个像素,得到图像的轮廓提取结果。

12、所述步骤s3中,计算相应的图像矩,确定目标轮廓的形心的方法为:

13、计算图像的几何矩,所述几何矩包括空间矩、中心矩和中心归一化矩;

14、基于图像的几何零阶矩和一阶矩计算目标轮廓所对应的形心:

15、

16、m10=∑i∑ji*v(i,j),m01=∑i∑jj*v(i,j)

17、

18、其中,m00是零阶矩,m01和m10是一阶矩,ic和jc是图像的重心坐标,在二维图像中,图像的形心与重心重合。

19、所述步骤s4包括以下步骤:

20、s41,设连续多帧的相同动态目标形心组成一个动态目标的形心运动轨迹,以λi={pi,vi,starti,endi}表示编号为i的形心运动的轨迹,其中,轨迹的编号和动态目标的编号一一对应,pi,vi构成轨迹的状态xi,pi=[xi,yi]t表示动态目标掩膜对应形心位置,表示动态目标形心运动速度,starti表示动态目标轨迹起始帧的索引,endi表示动态目标轨迹结束帧的索引,即动态目标i在第starti帧到第endi帧被连续追踪;设当前帧为第k帧,动态目标轨迹集合为:动态目标检测结果为

21、s42,使用卡尔曼滤波预测λk中的每个轨迹在当前帧的状态,得到所有轨迹在当前帧的先验状态,构成

22、s43,使用匈牙利算法匹配当前帧的动态目标形心检测结果和中的轨迹,匹配完成后,中的形心被分为两类:成功与已有轨迹匹配的动态目标形心和未成功匹配的动态目标形心;中的轨迹被分为两类:成功与动态目标形心匹配的轨迹和未成功与动态目标形心匹配的轨迹。

23、s44,根据步骤s43中的匹配结果分别进行处理,完成形心的归类及其在连续帧间的追踪,以及,得到轨迹集合设置完成轨迹状态的更新与维护,同时,以数字编码区分不同的检测类别,以颜色区分不同的动态目标。

24、所述步骤s44包括以下步骤:

25、s441,对于成功匹配的动态目标与轨迹,利用动态目标对轨迹建立观测:

26、设与成功匹配,并且的形心为po=[xo,yo]t,建立观测方程如下式所示:

27、

28、矩阵表示为:po=hx,其中:

29、

30、设观测过程中噪声的协方差矩阵为r,计算得到卡尔曼增益k:

31、

32、利用卡尔曼滤波完成轨迹的状态更新,如下式所示:

33、

34、完成轨迹更新的同时,被归类为编号为ki的动态目标,完成轨迹在当前帧的连续追踪;

35、s442,对于未成功匹配的形心,将其视作新出现的轨迹,进行轨迹增加:

36、在中加入一个新的轨迹,为该新轨迹赋予一个新的编号;

37、将点云的形心作为轨迹状态量中的点云形心,同时将轨迹状态量中的速度设置为[0,0]t;完成轨迹状态初始化后,将的编号设置为新创建的轨迹编号;

38、s443,对于未成功匹配的轨迹,采取延迟删除的轨迹管理策略:

39、当轨迹未成功匹配时,记录轨迹连续未被成功匹配的数量,当连续未被成功匹配的数量大于预先设定的数量阈值时,将轨迹从中删除。

40、所述步骤s5中,滑动窗口机制具体为:

41、轨迹集λi={pi,vi,starti,endi}中包括不同目标形心的运动状态和二维位置pi=[xi,yi]t,采用高斯加权移动平均滤波器和高斯分布函数进行平滑处理:定义一个滤波窗口,包括当前样本点及其周围的若干个点;对窗口内的每个点根据高斯分布计算其权值,其中,距离当前样本点越远的点权值越小;对窗口内的每个点的权值进行加权平均,得到当前样本点的滤波结果;将滤波窗口向前移动一个位置,重复上述平滑处理步骤,直到所有样本点都被处理完毕。

42、所述步骤s5具体为:

43、基于滑动窗口机制的处理结果,对轨迹λi中对应时间为starti,endi的目标检测框宽高求平均得到wmean、hmean;将形心在x、y轴上的增量dx、dy分别除wmean、hmean进行归一化,得到归一化后的坐标增量;根据归一化后的坐标增量计算对应的形心速度和加速度,将大于预设速度和加速度的形心所属目标标记为动态目标,小于预设速度和加速度的形心所属目标标记为静态目标。

44、所述步骤s6具体为:将步骤s5划分的静态目标池中的元素形心xi、yi轴上的增量dx、dy归一化,分别除分别得到归一化后的坐标增量序列;根据归一化后的坐标增量计算静止目标运动分速度vx|i、vy|i,并求出平均静止目标运动分速度;将动态目标的运动分速度减去静止目标对应的分速度,得到动态目标的真实二维移动速度,以筛除误判的动态目标。

45、一种基于深度学习的单目slam动态点滤除装置,包括存储器、处理器,以及存储于所述存储器中的程序,所述处理器执行所述程序时实现如上述所述的方法。

46、一种存储介质,其上存储有程序,所述程序被执行时实现如上述所述的方法。

47、与现有技术相比,本发明具有以下有益效果:

48、(1)本发明采用滑动窗口和高斯加权移动平均滤波方法,不仅能够有效消除质心轨迹的震荡,降低静态目标的质心运动误差,还能准确捕捉动态目标的运动特征;

49、(2)本发明根据检测目标运动的位移、速度、方向和加速度等因素,给出一种动态目标的检测方法,可以有效实现静态相机环境下的动态目标检测,滤除部分动态点;

50、(3)本发明使用静态目标对动态对象进行约束,有效的降低了因相机运动而对动态对象进行误判的概率,提高动态点滤除的精确度;

51、(4)本发明将动态点检测和滤除方案融于orb-slam2系统中,提高建图和定位的准确度。

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