一种RGB-D相机在动态场景下的SLAM方法技术

技术编号:26304874 阅读:24 留言:0更新日期:2020-11-10 20:01
本发明专利技术公开了一种RGB‑D相机在动态场景下的SLAM方法,使RGB‑D相机有效地克服动态物体的影响,提高RGB‑D相机在动态场景下的定位精度。为了实时检测动态目标上的特征点,本发明专利技术提出一种二重聚类的动态特征点检测机制;然后,同时在几何和时间维度上估计特征点是静态的可能性。在几何维度中,为当前帧的每个特征点建立静态概率来表示特征点是静态的;在时间维度中,根据所有帧而不是当前帧来判断特征点是否是静态特征点。最后,为了使RANSAC算法更适用于动态环境,本发明专利技术对传统的RANSAC算法进行改进。实验结果表明,本发明专利技术有效地提高了RGB‑D相机在动态环境下的定位精度,并且可以实时地在CPU上运行。

【技术实现步骤摘要】
一种RGB-D相机在动态场景下的SLAM方法
本专利技术涉及计算机视觉
,具体涉及一种RGB-D相机在动态场景下的SLAM方法。
技术介绍
经过多年的发展,SLAM(同时定位与地图构建)技术已经很成熟并应用到多个领域。传统上,大多数视觉SLAM系统都假定在静态的环境运行的,然而,在SLAM的真实应用场景里,存在着许许多多的动态物体,比如在工厂运输线上,有许多来回走动的工人;在商场里总有四处走动的客人等等。因此现实生活中的大部分场景都是动态的,这也意味着许多SLAM系统很难在实际的动态环境中工作。因此,很多研究者对动态环境下的SLAM做了大量的研究工作,一般有三种方法可以用来降低由动态物体引起的相机位姿估计的误差。第一种是直接将运动对象上的像素点或特征点视为离群点并将其去除,这种方法中最常用的是通过使用RANSAC及其改进算法去剔除动态物体上的点。这些方法在低动态场景具有不错的位姿估计精度。但是,这些方法很难在动态对象过多的场景中工作。第二种方法主要利用帧间信息来剔除动态物体上的点,也是运用得比较广泛的动态环境下的SLAM方法。这种方法通过多个以前帧建立好一个只包含静态场景的三维背景模型,根据静态背景模型通过重投影的方式去除动态物体的干扰,从而提高相机的位姿估计精度。这种方法能够较好地在动态环境下工作,但是建立静态背景模型的计算量非常大,难以实时地在CPU上运行。第三种方法是基于深度学习的方法。这种方法一般通过基于深度学习的目标检测算法将图像帧可能的动态物体检测出来,再对这些动态物体进行像素级分割,从而去除动态物体。基于深度学习的方法在高度动态的场景下具有相当不错的性能,然而这种方法使用了基于深度学习的目标检测算法和像素级的物体分割算法,导致计算开销大,非常耗时,同样难以实时在CPU上运行。
技术实现思路
本专利技术的目的是为了解决现有技术中的上述缺陷,提供一种RGB-D相机在动态场景下的SLAM方法。本专利技术的目的可以通过采取如下技术方案达到:一种RGB-D相机在动态场景下的SLAM方法,所述方法包括以下步骤:S1、在RGB-D相机采集的当前帧的RGB图像上进行ORB特征点提取和对所提取的ORB特征点进行描述子计算,将当前帧的RGB图像与上一帧的RGB图像进行描述子匹配,通过最小化重投影误差初步计算出当前帧的位姿;S2、将当前帧的位姿与所有关键帧的位姿进行比较,找出位姿与当前帧相近并且时间上与当前帧相远的前m个关键帧,设为参考关键帧集,表示为:其中,a,b,c,d为大于0的常数,id是关键帧的序号,idc是当前帧的序号,R是关键帧的旋转矩阵,t是关键帧的平移矩阵,Rc是当前帧的旋转矩阵,tc是当前帧的平移矩阵;S3、将参考关键帧集中的每一帧的所有深度值大于0的特征点投影到当前帧上,找出投影后的深度值zproj与当前帧投影点位置的实际深度值z之差的绝对值Δz大于阈值Tz的点,记为投影动态点,表示为:Δz=|zproj-z|>Tz;S4、根据深度值对当前帧的特征点进行K-Means聚类,找出初始动态集;S5、在根据深度值对当前帧的特征点进行K-Means聚类的基础上,再根据二维图像坐标(u,v)对当前帧的每个初始动态集中的特征点进行第二次K-Means聚类,得到最终动态集,最终动态集中的特征点记为动态点,当前帧除动态点外的所有特征点记为静态特征点;S6、在时间维度上,计算当前帧每个特征点的静态观测数,得到每个特征点的静态观测权重;S7、在几何维度上,计算当前帧每个特征点的静态概率,通过特征点的静态观测权重和静态概率得到该特征点的静态权重;S8、对传统的RANSAC算法的特征点进行改进,进一步剔除当前帧误匹配的特征点和处于动态对象上的特征点,再将剩下的特征点对应的地图点重投影到当前帧,对每个特征点进行静态权重加权,最小化加权重投影之和,求得相机当前帧的最终位姿。进一步地,所述步骤S4过程如下:S41、根据深度值对当前帧的特征点通过K-Means聚类算法将特征点聚成K类,并且计算出属于第i类的聚类中心ci,表示为:其中,Ni为属于第i类的特征点数量,dik为第i类的第k个特征点的深度值;S42、将每个投影动态点的深度值与每个聚类中心进行比较,找出与每个投影动态点的深度值之差的绝对值最小的聚类中心的类sj,表示为:其中,sj为第j个投影动态点对应的类,depthj为第j个投影动态点的深度值,然后,统计每个类的投影动态点的数量,表示为:其中,Nproj为投影动态点的数量,numi为属于第i类的投影动态点的数量;S43、统计属于每个类的投影动态点的数量,将投影动态点的数量numi大于阈值Td的类记为初始动态集。进一步地,所述步骤S5过程如下:S51、在根据深度值对当前帧的特征点进行聚类的基础上,根据二维图像坐标(u,v)对每个初始动态集的特征点进行K-Means聚类,并且计算出第i个初始动态集的第j个类的聚类中心cij,表示为:其中,Nij为属于第i个初始动态集的第j个类的特征点数量,uijk和vijk为属于第i个初始动态集的第j个类的第k个特征点的二维图像坐标;进一步写成:cij=(uij,vij)其中,(uij,vij)为聚类中心cij的二维坐标;S52、将属于第i个初始动态集的投影动态点的二维图像坐标与第i个初始动态集的每个聚类中心cij进行比较,计算出与投影动态点pik的二维图像坐标的距离最小的类s(i,k),表示为:其中,(upik,vpik)为投影动态点pik的二维图像坐标;S53、统计所有初始动态集的每个类的投影动态点的数量,表示如下:其中,Nproj(i)为第i个初始动态集的投影动态点的数量,numij为第i个初始动态集的第j类的投影动态点的数量;S54、统计属于每个类的投影动态点的数量,投影动态点的数量numij大于阈值Tuv的类为最终动态集。进一步地,所述步骤S6过程如下:S61、在时间维度上统计当前帧每个特征点对应的地图点的静态观测数,表示规则如下:从第一帧开始到当前帧,如果特征点pi被观测到并且被判定为静态特征点,则特征点pi的静态观测数更新为:Vst(pi)=Vst(pi)+1其中,Vst(pi)为特征点pi的静态观测数,初始值为0,如果Vst(pi)大于静态观测阈值Tv,则特征点pi的静态观测数更新为:Vst(pi)=Tv如果特征点pi被观测到,但特征点被判定为动态点,则特征点pi的静态观测数更新为:Vst(pi)=Vst(pi)-1;S62、计算当前帧内所有特征点的静态观测数的均值μ及标准差S:其中Nm为当前帧对应的地图点的数量;S63、计算当前帧内的每个特征点的静态观本文档来自技高网
...

【技术保护点】
1.一种RGB-D相机在动态场景下的SLAM方法,其特征在于,所述方法包括以下步骤:/nS1、在RGB-D相机采集的当前帧的RGB图像上进行ORB特征点提取和对所提取的ORB特征点进行描述子计算,将当前帧的RGB图像与上一帧的RGB图像进行描述子匹配,通过最小化重投影误差初步计算出当前帧的位姿;/nS2、将当前帧的位姿与所有关键帧的位姿进行比较,找出位姿与当前帧相近并且时间上与当前帧相远的前m个关键帧,设为参考关键帧集,表示为:/n

【技术特征摘要】
1.一种RGB-D相机在动态场景下的SLAM方法,其特征在于,所述方法包括以下步骤:
S1、在RGB-D相机采集的当前帧的RGB图像上进行ORB特征点提取和对所提取的ORB特征点进行描述子计算,将当前帧的RGB图像与上一帧的RGB图像进行描述子匹配,通过最小化重投影误差初步计算出当前帧的位姿;
S2、将当前帧的位姿与所有关键帧的位姿进行比较,找出位姿与当前帧相近并且时间上与当前帧相远的前m个关键帧,设为参考关键帧集,表示为:



其中,a,b,c,d为大于0的常数,id是关键帧的序号,idc是当前帧的序号,R是关键帧的旋转矩阵,t是关键帧的平移矩阵,Rc是当前帧的旋转矩阵,tc是当前帧的平移矩阵;
S3、将参考关键帧集中的每一帧的所有深度值大于0的特征点投影到当前帧上,找出投影后的深度值zproj与当前帧投影点位置的实际深度值z之差的绝对值Δz大于阈值Tz的点,记为投影动态点,表示为:
Δz=|zproj-z|>Tz;
S4、根据深度值对当前帧的特征点进行K-Means聚类,找出初始动态集;
S5、根据二维图像坐标(u,v)对当前帧的每个初始动态集中的特征点进行第二次K-Means聚类,得到最终动态集,最终动态集中的特征点记为动态点,当前帧除动态点外的所有特征点记为静态特征点;
S6、在时间维度上,计算当前帧每个特征点的静态观测数,得到每个特征点的静态观测权重;
S7、在几何维度上,计算当前帧每个特征点的静态概率,通过特征点的静态观测权重和静态概率得到该特征点的静态权重;
S8、对传统的RANSAC算法的特征点进行改进,剔除当前帧误匹配的特征点和处于动态对象上的特征点,再将剩下的特征点对应的地图点重投影到当前帧,对每个特征点进行静态权重加权,最小化加权重投影之和,求得相机当前帧的最终位姿。


2.根据权利要求1所述的一种RGB-D相机在动态场景下的SLAM方法,其特征在于,所述步骤S4过程如下:
S41、根据深度值对当前帧的特征点通过K-Means聚类算法将特征点聚成K类,并且计算出属于第i类的聚类中心ci,表示为:



其中,Ni为属于第i类的特征点数量,dik为第i类的第k个特征点的深度值;
S42、将每个投影动态点的深度值与每个聚类中心进行比较,找出与每个投影动态点的深度值之差的绝对值最小的聚类中心的类sj,表示为:



其中,sj为第j个投影动态点对应的类,depthj为第j个投影动态点的深度值,然后,统计每个类的投影动态点的数量,表示为:



其中,Nproj为投影动态点的数量,numi为属于第i类的投影动态点的数量;
S43、统计属于每个类的投影动态点的数量,将投影动态点的数量numi大于阈值Td的类记为初始动态集。


3.根据权利要求1所述的一种RGB-D相机在动态场景下的SLAM方法,其特征在于,所述步骤S5过程如下:
S51、根据二维图像坐标(u,v)对每个初始动态集的特征点进行K-Means聚类,并且计算出第i个初始动态集的第j个类的聚类中心cij,表示为:



其中,Nij为属于第i个初始动态集的第j个类的特征点数量,uijk和vijk为属于第i个初始动态集的第j个类的第k个特征点的二维图像坐标;
进一步写成:
cij=(uij,vij)
其中,(uij,vij)为聚类中心cij的二维坐标;
S52、将属于第i个初始动态集的投影动态点的二维图像坐标与第i个初始动态集的每个聚类中心cij进行比较,计算出与投影动态点pik的二维图像坐标的距离最小的类s(i,k),表示为:



其中,(upik,vpik)为投影动态点pik的二维图像坐标;
S53、统计所有初始动态集的每个类...

【专利技术属性】
技术研发人员:刘屿潘文钊邬依林
申请(专利权)人:华南理工大学广州现代产业技术研究院
类型:发明
国别省市:广东;44

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

1