CN115393538A - 基于深度学习的室内动态场景的视觉slam方法及*** - Google Patents
基于深度学习的室内动态场景的视觉slam方法及*** Download PDFInfo
- Publication number
- CN115393538A CN115393538A CN202211008215.9A CN202211008215A CN115393538A CN 115393538 A CN115393538 A CN 115393538A CN 202211008215 A CN202211008215 A CN 202211008215A CN 115393538 A CN115393538 A CN 115393538A
- Authority
- CN
- China
- Prior art keywords
- dynamic
- static
- point cloud
- scene
- image information
- 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
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
-
- 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/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
- G06V10/16—Image acquisition using multiple overlapping images; Image stitching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/30—Noise filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Radar, Positioning & Navigation (AREA)
- Automation & Control Theory (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种基于深度学习的室内动态场景的视觉SLAM方法及***,其属于视觉SLAM技术领域,所述方案包括:实时获取室内动态场景下的图像信息;基于GCNv2算法对所述图像信息进行特征提取;基于提取的特征,利用动态点去除算法去除所述图像信息中的动态特征点;基于图像信息中剩余的静态特征点,获得图像信息中的静态关键帧,并基于获得的静态关键帧进行点云地图构建,生成基于静态关键帧的稠密点云;获取静态关键帧位姿,并根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图。
Description
技术领域
本公开属于视觉SLAM技术领域,尤其涉及一种基于深度学习的室内动态场景的视觉SLAM方法及***。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
发明人发现,现有技术中机器人在执行同时定位与地图创建(simultaneouslocalization and mapping,SLAM)的复杂任务时,容易受到移动物体的干扰,导致定位精度下降、地图可读性差、***鲁棒性不足等问题。
发明内容
本公开为了解决上述问题,提供了一种基于深度学习的室内动态场景的视觉SLAM方法及***,所述方案在ORB-SLAM2框架的基础上,利用GCNv2特征提取算法代替ORB-SLAM2的相应模块,添加动态点去除模块和点云建图线程,有效减少动态特征点对视觉里程计的干扰,并使用去除动态物体的关键帧构建静态点云场景地图,有效提高了定位精度和地图的可读性。
根据本公开实施例的第一个方面,提供了一种基于深度学习的室内动态场景的视觉SLAM方法,包括:
实时获取室内动态场景下的图像信息;
基于GCNv2算法对所述图像信息进行特征提取;
基于提取的特征,利用动态点去除算法去除所述图像信息中的动态特征点;
基于图像信息中剩余的静态特征点,获得图像信息中的静态关键帧,并基于获得的静态关键帧进行点云地图构建,生成基于静态关键帧的稠密点云;
获取静态关键帧位姿,并根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图。
进一步的,所述利用动态点去除算法去除所述图像信息中的动态特征点,具体为:利用Yolo-Fastest目标检测算法去除动态环境中先验动态物体上的特征点,利用Farneback光流法去除目标检测模型中未定义的动态物体上的特征点。
进一步的,所述根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图,具体为:通过回环检测线程得到关键帧位姿,然后根据静态关键帧在三维空间中的位置对稠密点云建图模块中生成的稠密点云进行拼接和滤波,获得稠密点云场景地图。
进一步的,对于获得的稠密点云场景地图,利用机器人操作***的octomap_server建图功能包在线实时生成可以用于移动机器人导航的八叉树地图和二维栅格地图。
进一步的,所述回环检测线程,被配置为:对于筛选后的关键帧检测回环;计算Sim3;回环融合;位姿图优化;全局BA优化,获得关键帧位姿。
进一步的,所述图像信息包括RGB图像信息和深度图像信息。
根据本公开实施例的第二个方面,提供了一种基于深度学习的室内动态场景的视觉SLAM***,包括:
数据获取单元,其用于实时获取室内动态场景下的图像信息;
特征提取单元,其用于基于GCNv2算法对所述图像信息进行特征提取;
动态特征点去除单元,其用于基于提取的特征,利用动态点去除算法去除所述图像信息中的动态特征点;
稠密点云生成单元,其用于基于图像信息中剩余的静态特征点,获得图像信息中的静态关键帧,并基于获得的静态关键帧进行点云地图构建,生成基于静态关键帧的稠密点云;
静态场景点云地图构建单元,其用于获取静态关键帧位姿,并根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图。
根据本发明实施例的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,所述处理器执行所述程序时实现所述的一种基于深度学习的室内动态场景的视觉SLAM方法。
根据本发明实施例的第四个方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的一种基于深度学习的室内动态场景的视觉SLAM方法。
与现有技术相比,本公开的有益效果是:
(1)本公开提供了一种基于深度学习的室内动态场景的视觉SLAM方法及***,所述方案在ORB-SLAM2框架的基础上,利用GCNv2特征提取算法代替ORB-SLAM2的相应模块,添加动态点去除模块和点云建图线程,有效减少动态特征点对视觉里程计的干扰,并使用去除动态物体的关键帧构建静态点云场景地图,有效提高了定位精度和地图的可读性;
(2)本公开所述方案在构建静态稠密点云场景地图的基础上,利用机器人操作***(ROS,Robot Operating System)的octomap_server建图功能包在线实时生成可以用于移动机器人导航的八叉树地图和二维栅格地图,有效解决了由于室内场景中的物体总是有着极为丰富的纹理,导致了大多数由视觉SLAM***所生成的稠密点云地图的规模巨大,需要大量的存储空间的问题,以及稠密点云地图容易受到相机畸变、环境变化等影响导致生成的地图出现重影、畸形的问题。
本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例中所述的一种基于深度学习的室内动态场景的视觉SLAM方法流程图;
图2为本公开实施例中所述的动态点去除方法流程图;
图3(a)至图3(d)分别为本公开实施例中所述的YOLOv3、YOLOv4、YOLObile和Yolo-Fastest检测效果示意图;
图4(a)至图4(b)分别为本公开实施例中所述的利用Farneback光流法检测动态区域的原始帧图像和基于Farneback光流法检测出的动态区域示意图;
图5为本公开实施例中所述的基于ROS构建八叉树地图的计算图;
图6为本公开实施例中所述的实际动态场景下的动态点去除测试结果示意图;
图7为本公开实施例中所述的另一实际动态场景下的动态点去除测试结果示意图;
图8(a)至图8(c)为本公开实施例中所述的基于移动机器人的动态点去除结果示意图;
图9为本公开实施例中所述的基于移动机器人的位姿轨迹示意图;
图10(a)至图10(c)为本公开实施例中所述的基于移动机器人的静态地图构建示意图,其中,图10(a)为静态稠密点云地图,图10(b)为静态八叉树地图,图10(c)为静态二维栅格地图。
具体实施方式
下面结合附图与实施例对本公开做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例一:
本实施例的目的是提供一种基于深度学习的室内动态场景的视觉SLAM方法。
一种基于深度学习的室内动态场景的视觉SLAM方法,包括:
实时获取室内动态场景下的图像信息;
基于GCNv2算法对所述图像信息进行特征提取;
基于提取的特征,利用动态点去除算法去除所述图像信息中的动态特征点;
基于图像信息中剩余的静态特征点,获得图像信息中的静态关键帧,并基于获得的静态关键帧进行点云地图构建,生成基于静态关键帧的稠密点云;
获取静态关键帧位姿,并根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图。
进一步的,所述利用动态点去除算法去除所述图像信息中的动态特征点,具体为:利用Yolo-Fastest目标检测算法去除动态环境中先验动态物体上的特征点,利用Farneback光流法去除目标检测模型中未定义的动态物体上的特征点。
进一步的,所述根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图,具体为:通过回环检测线程得到关键帧位姿,然后根据静态关键帧在三维空间中的位置对稠密点云建图模块中生成的稠密点云进行拼接和滤波,获得稠密点云场景地图。
进一步的,对于获得的稠密点云场景地图,利用机器人操作***的octomap_server建图功能包在线实时生成可以用于移动机器人导航的八叉树地图和二维栅格地图。
进一步的,所述回环检测线程,被配置为:对于筛选后的关键帧检测回环;计算Sim3;回环融合;位姿图优化;全局BA(Bundle Adjustment)优化,获得关键帧位姿。
进一步的,所述图像信息包括RGB图像信息和深度图像信息。
具体的,为了便于理解,以下结合附图对本实施例所述方案进行详细说明:
为了解决现有技术存在的问题,本实施例提供了一种基于深度学习的室内动态场景的视觉SLAM方法,所述方法主要技术构思为:在ORB-SLAM2(Oriented FAST andRotated-Simultaneous Localization and Mapping)框架的基础上,利用GCNv2(GraphConvolutional Network v2)特征提取算法代替ORB-SLAM2的相应模块,添加动态点去除模块和点云建图线程,减少动态特征点对视觉里程计的干扰,并使用去除动态物体的关键帧构建静态点云场景地图。所述方法流程框图如图1所示,其主要包括跟踪、动态点去除、局部地图、闭环检测及稠密点云建图5个并行部分。当图像信息输入视觉里程计后,同时输入动态点检测模块和跟踪模块,两者并行地对图像进行处理。动态点去除模块利用Yolo-Fastest目标检测算法去除动态环境中先验动态物体上的特征点,Farneback光流法去除目标检测模型中未定义的动态物体上的特征点,然后去除动态对象中的全部特征点并利用静态特征点进行位姿估计。最后,将动态点去除模块和局部建图线程共同筛选的静态关键帧与回环检测模型计算得到的对应关键帧位姿信息输入点云建图模型,构建只包含静态物体的点云地图。以下对本实施例所述方法的改进点分别进行详细说明:
(一)动态点去除算法
为了提高视觉SLAM***在室内动态环境下的定位精度,结合Yolo-Fastest目标检测和Farneback光流法,设计动态特征点去除算法。Yolo-Fastest目标检测可以去除动态环境中先验动态物体上的特征点,Farneback光流法去除目标检测未定义的动态物体上的特征点,动态点去除模块流程如图2。
动态点去除算法的工作流程如下:
1)首先深度相机获取到的RGB图像和深度图像分别传入特征提取模块和动态点去除模块;
2)利用Yolo-Fastest目标检测检测先验动态物体,计算动静点判断Mask矩阵M1;
3)利用Farneback光流法计算动静点判断Mask矩阵M2,将矩阵M1与矩阵M2合并得到最终的动静点判断矩阵M3,根据最终的动静点判断矩阵对图像帧中的动态特征点进行去除。
进一步的,基于深度学习的动态点目标检测,具体为:
针对室内环境中动态物体的检测,采用一种基于深度学习的YOLO-Fastest网络,选用MSCoCo数据集自带的预训练权重作为训练参数,基于Opencv库的DNN模块实现Yolo-Fastest目标检测算法。考虑到该算法主要针对室内场景,故将人、椅子、键盘、鼠标和显示器这五种类型的目标进行目标检测,并将检测到的人设定为动态目标。ORB-SLAM2算法是在姿态初始化时对两帧图像进行特征点对的匹配,然后利用RANSAC算法去除一些不匹配点对和动态点对。但是,当动态物体较多时,SLAM算法的初始化位姿会不准确。为了初始化一个相对鲁棒的相机位姿,使用Yolo-Fastest的检测结果和MSCoCo数据集中定义的类别将原始图像中的物体进行标注,然后将获得的检测结果输入动态点去除模块,以去掉动态物体上的特征点,只保留静态特征点。本实施例在Ubuntu18.04LTS、Opencv3.4.11、cuda10.0的实验环境下,通过OpenCV库的DNN模块读取MSCoCo数据集的预训练权重和配置文件,构建基于OpenCV的YOLOv3、YOLOv4、YOLObile和Yolo-Fastest这四种目标检测算法的程序。在TUM数据集中的fr3_walking_xyz场景序列进行目标检测测试,实验结果如图3(a)至图3(d)和表1所示:
表1 YOLOv3、YOLOv4、YOLObile和Yolo-Fastest计算耗时对比
与Yolo-Fastest相比YOLObile实时性较差,Yolo-Fastest在GPU的支持下,处理一帧图像所用的时间大约在15ms,运行速度在67fps左右,在手持深度相机的情况下完全可以达到实时。比较图3(a)至图3(d)可以发现,Yolo-Fastest对于小物体检测的效果不是很好,图3(d)中的显示屏、键盘没有检测出来。由于本课题针对室内动态场景下的视觉SLAM,主要的动态物体主要是人,而人在图像帧中通常都以大目标的形式出现,所以Yolo-Fastest能够达到***的要求。
进一步的,基于Farneback光流法检测动态点,具体为:
深度学习训练出来的目标检测模型只针对预先设定好的先验动态物体,然而真实的室内环境下物体的动态性是极其不确定的,比如一个人手中的书,一个人推着的椅子等。使Farneback光流法可以一定程度上检测到图像帧中深度学习模型未定义的动态物体。
Farneback光流法通过计算图像帧中所有像素点的运动,得到图像帧中所有像素点的偏移量,从而形成一个稠密的光流场。Farneback光流法将输入图像近似为二维函数,并利用二次多项式对图像进行建模,可得表达式为:
其中,二维坐标点X=(x,y)T为因变量,c1为常数。通过在上一帧图像的基础上增加全局位移d来构建下一图像帧的模型,得到下一帧的图像表达式为:
展开得到:
由公式(4)计算结果可以得到图像帧中每个像素点在水平和竖直方向的偏移量。
为了消除动态区域的特征点,需要对图像帧中像素点的位移设置一个阈值,当超过设定阈值时则将像素点视为动态点。在实际使用过程中,计算图像帧的光流场采用OpenCvSharp库中所提出的Farneback光流算法方案,函数的调用形式如下:voidcalcOpticalFlowFarneback(InputArray prev,InputArray next,CV_OUTInputOutputArray flow,double pyr_scale,int levels,int winsize,int iterations,int poly_n,double poly_sigma,int flags)。其中,每个参数的意义如表2所示:
表2 CalcOpticalFlowFarneback参数说明
Farneback光流法中引入了图像金字塔,其目的是为了解决该方法只适合小位移运动的情况,空间金字塔算法的主要思想是构建一个图像序列的金字塔模型,利用下采样技术逐级缩小图像,可将相邻图像帧的大尺度运动缩小,以缓解由于相机运动过大所导致的空间一致性失效问题。通过使用OpenCvSharp库中提供的CalcOpticalFlowFarneback函数,可以计算图像帧对应的光流场,函数的参数设置为calcOpticalFlowFarneback(mImGrayLast,mImGrayCurrent,flow,0.5,3,9,3,7,1.5,0),图像帧中的动态点检测效果如图4(a)至图4(b)所示。
(二)静态地图构建
本实施例所述方法通过在ORB-SLAM2方法的基础上增加了动态点去除模块和局部建图线程共同对构建场景地图的关键帧进行筛选,只保留包含静态物体的关键帧,并将静态关键帧输入到稠密点云建图模块进行点云地图构建,由此可以生成基于静态关键帧的稠密点云。通过回环检测线程得到关键帧位姿,然后根据静态关键帧在三维空间中的位置对稠密点云建图模块中生成的稠密点云进行拼接和滤波,即可以得到稠密点云场景地图。
室内场景中的物体总是有着极为丰富的纹理,导致了大多数由视觉SLAM***所生成的稠密点云地图的规模巨大,需要大量的存储空间。并且稠密点云地图容易受到相机畸变、环境变化等影响导致生成的地图出现重影、畸形等问题。为此,提出的SLAM***在构建静态稠密点云场景地图的基础上,同时利用机器人操作***(ROS,Robot OperatingSystem)的octomap_server建图功能包在线实时生成可以用于移动机器人导航的八叉树地图和二维栅格地图。
基于ROS的八叉树和二维栅格地图构建方法如图5所示,其工作流程如下:
1)RGB-D相机作为SLAM的视觉传感器采集场景的彩色和深度信息输入到ORB-SLAM2(RGBD节点),RGBD节点订阅图像信息执行同时定位与地图构建功能,输出全局一致的相机轨迹和稀疏点云地图;
2)在ROS中通过创建的TUM_with_PointCloud节点将稠密点云建图模块中生成的静态稠密点云地图信息以消息的形式进行发布;
3)octomap_server建图功能包创建的octomap_server节点订阅静态稠密点云地图消息并将点云地图数据转换成八叉树地图和二维栅格地图,然后将地图信息再以消息的形式进行发布;
4)在Rviz三维可视化平台中订阅地图信息在线生成八叉树地图和二维栅格地图。
进一步的,为了证明本实施例所述方法的有效性,以下进行了相应对比实验及分析:
为验证本实施例所述方法的有效性,进行如下两个实验:
1)将本实施例所述方法在真实场景中进行动态点去除,通过手持D435i深度相机验证本实施例所述方法在真实场景中动态点去除的有效性;
2)将本实施例所述方法在真实场景中进行静态地图构建,通过在移动机器人上机载D435i深度相机验证本实施例所述方法在真实场景中静态地图构建的有效性。上述实验均在电脑配置为Inter Core i5-9400FCPU,NVIDIA Geforce GTX1060ti,***版本为Ubuntu18.04LTS的环境中测试。
为评价SLAM***的综合能力,采用TUM公开数据集对***进行实验。TUM数据集由39个序列所组成,这些序列由微软公司的Kinect传感器以30Hz频率记录在不同的室内场景中,包含彩色图像、深度图像和位姿真值,并且包含纹理丰富的办公室动态场景的高动态序列和低动态序列,满足在动态场景下评估***综合能力的条件。同时,该数据集还提供了2种用于评估SLAM***跟踪结果的标准,分别为绝对轨迹误差(RPE)和相对位姿误差(ATE)。绝对轨迹误差(ATE)直接计算相机位姿的真实值与本实施例所述方法的估计值之间的差,该标准可以非常直观地反映算法精度和相机轨迹全局一致性。
(1)实际场景下的动态点去除实验
对于真实场景下的动态点去除,选择了两种场景进行测试:
1)场景中只存在深度学习模型中设定的先验动态物体;
2)场景中包含深度学习模型中未设定的动态物体,即潜在动态物体。实验结果如图6和图7所示:
如图6,在实验场景中只包含先验动态物体(即一个人在镜头中走过)的情况下,改进SLAM***中添加的GCNv2特征提取模块和动态点去除算法模块对先验动态物体上的动态点进行了剔除,并且提取的静态GCNv2特征点分布合理。
如图7,在实验场景中除了“人”这类先验动态物体外还包含潜在动态物体(即人推着的椅子)的情况下,利用动态点去除算法中的Farneback光流法,人推着的椅子上的动态特征点也得到了合理剔除,而处在静态椅子上的GCNv2特征点得到了提取。
综上所述,本实施例所述方法中的动态点去除算法无论是对先验动态物体还是潜在动态物体,都具有良好的动态点去除效果,并且添加的GCNv2特征提取模块提取的静态GCNv2特征点分布均匀合理,说明改进SLAM***中的动态点去除算法模块和GCNv2特征提取模块在真实动态场景中进行动态特征点去除和静态特征点提取的功能是可行和有效的。
(2)实际场景下的静态地图构建实验
对于真实场景下的静态地图构建,在移动机器人上搭载D435i深度相机,通过ROS框架进行PC主机与移动机器人之间的数据通信,验证本实施例所述方法基于移动机器人在真实动态场景中在线生成静态八叉树和二维栅格地图功能的可行性。
本实验在实验室的日常真实场景下进行,并且在测试场景中存在人在移动机器人平台前面经过的情况,通过控制移动机器人在实验室走廊中沿直线前进,在线实时构建实验室的静态场景地图,测试结果如图8(a)至图8(c)、图9和图10(a)至图10(c)所示。
在真实动态场景下移动机器人上搭载D435i深度相机数据进行动态点去除的效果如图8(a)至图8(c),可以看出本实施例所述方法结合的GCNv2特征提取模块在场景中提取的GCNv2特征点分布合理且提取的特征点都是在场景中纹理较为突出的点,使得所提取的特征点更加稳定,有利于后续位姿估计(图8(a)),并且在动态场景下本实施例所述方法并没有受到动态物体的干扰,无论是场景中包含完整的动态物体(图8(b)),还是受限于移动机器人的高度太低导致在相机附近出现的不完整的动态物体(图8(c)),本实施例所述方法的动态点去除算法模块都能够较好地去除动态特征点。
如图9,本实施例所述方法在动态场景下计算出来的位姿轨迹没有受到场景中动态物体的干扰,与控制移动机器人沿直线运动的真实轨迹相一致。
在图10(a)中,由于移动机器人导航和避障等任务不需要完整的场景地图,只需要保留移动机器人所需要的场景信息,通过使用直通滤波器设定稠密点云地图生成的高度值(本实验中高度值设定为1.5m),去掉移动机器人导航和避障过程中所用不到的高度较高的室内场景信息。这样做有两个好处,一是能够减少稠密点云地图的存储空间;二是RGB-D相机所获取的视角外部图像会发生较大的相机畸变,导致生成的稠密点云地图中存在大量离群点,生成不准确的场景地图。
考虑到图10(a)生成的稠密点云地图含有地面信息,在图10(b)生成八叉树地图的过程中,需要对地面信息进行滤除,否则生成的八叉树地图会将地面信息也当作障碍物进行显示。地面信息滤除过程中,将本实验使用的移动机器人作为参考,设定对地面高度10cm以下的信息进行滤除,以保证八叉树地图不会将地面信息作为障碍物。
如图10(c),通过使用octomap_server建图功能包将八叉树地图在Rviz中生成八叉树地图的平面上进行投影既可以得到二维栅格地图。
综上所述,本实施例所述方法在真实动态场景下能够较好地构建出与静态场景相一致的静态稠密点云地图(图10(a)),以及在Rviz中实时生成的静态八叉树地图(图10(b))和二维栅格地图(图10(c)),测试结果充分验证本实施例所述方法在真实动态场景下具有良好的动态点去除效果和静态地图构建功能。
本实施例所述方案针对ORB-SLAM2在处理复杂任务,尤其是处理含有动态物体的场景任务时,容易受到动态物体的干扰,导致定位精度下降、地图可读性差、***鲁棒性不足等问题。提出一种基于深度学习的室内动态场景的视觉SLAM方法,首先,设计动态点去除算法,利用Yolo-Fastest算法对图像帧中深度学习模型定义的先验动态物体进行检测,并结合Farneback光流法检测图像帧中深度学习模型未定义的动态物体,共同进行动态特征点的检测和去除。然后,在ORB-SLAM2中添加稠密点云建图模块,通过ORB-SLAM2中的局部建图模块和动态点去除算法共同筛选静态关键帧,并获取回环检测线程对应关键帧的位姿,进行点云的滤波和拼接,构建静态场景点云地图,基于ROS框架在线构建动态场景下的静态八叉树和二维栅格地图。最后,通过两组实验对本实施例所述方法在真实场景中进行测试,实验结果表明,所提出的算法表现出较好的综合性能,并且在实际场景中是可行和有效的。
实施例二:
本实施例的目的是提供一种基于深度学习的室内动态场景的视觉SLAM***。
一种基于深度学习的室内动态场景的视觉SLAM***,包括:
数据获取单元,其用于实时获取室内动态场景下的图像信息;
特征提取单元,其用于基于GCNv2算法对所述图像信息进行特征提取;
动态特征点去除单元,其用于基于提取的特征,利用动态点去除算法去除所述图像信息中的动态特征点;
稠密点云生成单元,其用于基于图像信息中剩余的静态特征点,获得图像信息中的静态关键帧,并基于获得的静态关键帧进行点云地图构建,生成基于静态关键帧的稠密点云;
静态场景点云地图构建单元,其用于获取静态关键帧位姿,并根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图。
进一步的,所述利用动态点去除算法去除所述图像信息中的动态特征点,具体为:利用Yolo-Fastest目标检测算法去除动态环境中先验动态物体上的特征点,利用Farneback光流法去除目标检测模型中未定义的动态物体上的特征点。
进一步的,本实施例所述***与实施例一中所述方法相对应,其技术细节在实施例一中已经进行了详细说明,故此处不再赘述。
在更多实施例中,还提供:
一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例一中所述的方法。为了简洁,在此不再赘述。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一中所述的方法。
实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
上述实施例提供的一种基于深度学习的室内动态场景的视觉SLAM方法及***可以实现,具有广阔的应用前景。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种基于深度学习的室内动态场景的视觉SLAM方法,其特征在于,包括:
实时获取室内动态场景下的图像信息;
基于GCNv2算法对所述图像信息进行特征提取;
基于提取的特征,利用动态点去除算法去除所述图像信息中的动态特征点;
基于图像信息中剩余的静态特征点,获得图像信息中的静态关键帧,并基于获得的静态关键帧进行点云地图构建,生成基于静态关键帧的稠密点云;
获取静态关键帧位姿,并根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图。
2.如权利要求1所述的一种基于深度学习的室内动态场景的视觉SLAM方法,其特征在于,所述利用动态点去除算法去除所述图像信息中的动态特征点,具体为:利用Yolo-Fastest目标检测算法去除动态环境中先验动态物体上的特征点,利用Farneback光流法去除目标检测模型中未定义的动态物体上的特征点。
3.如权利要求1所述的一种基于深度学习的室内动态场景的视觉SLAM方法,其特征在于,所述根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图,具体为:通过回环检测线程得到关键帧位姿,然后根据静态关键帧在三维空间中的位置对稠密点云建图模块中生成的稠密点云进行拼接和滤波,获得稠密点云场景地图。
4.如权利要求3所述的一种基于深度学习的室内动态场景的视觉SLAM方法,其特征在于,对于获得的稠密点云场景地图,利用机器人操作***的octomap_server建图功能包在线实时生成可以用于移动机器人导航的八叉树地图和二维栅格地图。
5.如权利要求3所述的一种基于深度学习的室内动态场景的视觉SLAM方法,其特征在于,所述回环检测线程,被配置为:对于筛选后的关键帧检测回环;计算Sim3;回环融合;位姿图优化;全局BA(Bundle Adjustment)优化,获得关键帧位姿。
6.如权利要求1所述的一种基于深度学习的室内动态场景的视觉SLAM方法,其特征在于,所述图像信息包括RGB图像信息和深度图像信息。
7.一种基于深度学习的室内动态场景的视觉SLAM***,其特征在于,包括:
数据获取单元,其用于实时获取室内动态场景下的图像信息;
特征提取单元,其用于基于GCNv2算法对所述图像信息进行特征提取;
动态特征点去除单元,其用于基于提取的特征,利用动态点去除算法去除所述图像信息中的动态特征点;
稠密点云生成单元,其用于基于图像信息中剩余的静态特征点,获得图像信息中的静态关键帧,并基于获得的静态关键帧进行点云地图构建,生成基于静态关键帧的稠密点云;
静态场景点云地图构建单元,其用于获取静态关键帧位姿,并根据静态关键帧在三维空间中的位置对所述稠密点云进行拼接和滤波,获得静态场景点云地图。
8.如权利要求7所述的一种基于深度学习的室内动态场景的视觉SLAM***,其特征在于,所述利用动态点去除算法去除所述图像信息中的动态特征点,具体为:利用Yolo-Fastest目标检测算法去除动态环境中先验动态物体上的特征点,利用Farneback光流法去除目标检测模型中未定义的动态物体上的特征点。
9.一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6任一项所述的一种基于深度学习的室内动态场景的视觉SLAM方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一项所述的一种基于深度学习的室内动态场景的视觉SLAM方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211008215.9A CN115393538A (zh) | 2022-08-22 | 2022-08-22 | 基于深度学习的室内动态场景的视觉slam方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211008215.9A CN115393538A (zh) | 2022-08-22 | 2022-08-22 | 基于深度学习的室内动态场景的视觉slam方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115393538A true CN115393538A (zh) | 2022-11-25 |
Family
ID=84120945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211008215.9A Pending CN115393538A (zh) | 2022-08-22 | 2022-08-22 | 基于深度学习的室内动态场景的视觉slam方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115393538A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116758148A (zh) * | 2023-05-08 | 2023-09-15 | 苏州科技大学 | 动态环境下的slam方法和*** |
CN117906595A (zh) * | 2024-03-20 | 2024-04-19 | 常熟理工学院 | 基于特征点法视觉slam的场景理解导航方法及*** |
-
2022
- 2022-08-22 CN CN202211008215.9A patent/CN115393538A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116758148A (zh) * | 2023-05-08 | 2023-09-15 | 苏州科技大学 | 动态环境下的slam方法和*** |
CN117906595A (zh) * | 2024-03-20 | 2024-04-19 | 常熟理工学院 | 基于特征点法视觉slam的场景理解导航方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108898676B (zh) | 一种虚实物体之间碰撞及遮挡检测方法及*** | |
CN112150575B (zh) | 场景数据获取方法及模型训练方法、装置及计算机设备 | |
CN109063301B (zh) | 一种基于热力图的单幅图像室内物体姿态估计方法 | |
CN108292362B (zh) | 用于光标控制的手势识别 | |
CN111243093B (zh) | 三维人脸网格的生成方法、装置、设备及存储介质 | |
CN111563442A (zh) | 基于激光雷达的点云和相机图像数据融合的slam方法及*** | |
Gao et al. | Robust RGB-D simultaneous localization and mapping using planar point features | |
JP2021534495A (ja) | ビデオデータを使用するオブジェクトインスタンスのマッピング | |
CN111665842A (zh) | 一种基于语义信息融合的室内slam建图方法及*** | |
CN110648397B (zh) | 场景地图生成方法、装置、存储介质及电子设备 | |
CN108537876A (zh) | 基于深度相机的三维重建方法、装置、设备及存储介质 | |
US9747668B2 (en) | Reconstruction of articulated objects from a moving camera | |
CN115393538A (zh) | 基于深度学习的室内动态场景的视觉slam方法及*** | |
EP3408848A1 (en) | Systems and methods for extracting information about objects from scene information | |
CN108665541B (zh) | 一种基于激光传感器的地图生成方法及装置和机器人 | |
CN104732587A (zh) | 一种基于深度传感器的室内3d语义地图构建方法 | |
CN106530407A (zh) | 一种用于虚拟现实的三维全景拼接方法、装置和*** | |
CN115439607A (zh) | 一种三维重建方法、装置、电子设备及存储介质 | |
CN108961385B (zh) | 一种slam构图方法及装置 | |
CN115601511B (zh) | 三维重建方法、装置、计算机设备及计算机可读存储介质 | |
CN107330980A (zh) | 一种基于无标志物的虚拟家具布置*** | |
CN111415420A (zh) | 空间信息确定方法、装置及电子设备 | |
CN113112542A (zh) | 一种视觉定位方法、装置、电子设备及存储介质 | |
Shalaby et al. | Algorithms and applications of structure from motion (SFM): A survey | |
CN112967340A (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 |