CN111914832A - 一种rgb-d相机在动态场景下的slam方法 - Google Patents
一种rgb-d相机在动态场景下的slam方法 Download PDFInfo
- Publication number
- CN111914832A CN111914832A CN202010492646.1A CN202010492646A CN111914832A CN 111914832 A CN111914832 A CN 111914832A CN 202010492646 A CN202010492646 A CN 202010492646A CN 111914832 A CN111914832 A CN 111914832A
- Authority
- CN
- China
- Prior art keywords
- dynamic
- current frame
- points
- static
- point
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000003068 static effect Effects 0.000 claims abstract description 115
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000003064 k means clustering Methods 0.000 claims description 14
- 230000009466 transformation Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000013519 translation Methods 0.000 claims description 6
- 238000010187 selection method Methods 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 abstract description 10
- 230000007246 mechanism Effects 0.000 abstract description 3
- 230000002123 temporal effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 11
- 238000013135 deep learning Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 4
- 238000004513 sizing Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/62—Text, e.g. of license plates, overlay texts or captions on TV images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种RGB‑D相机在动态场景下的SLAM方法,使RGB‑D相机有效地克服动态物体的影响,提高RGB‑D相机在动态场景下的定位精度。为了实时检测动态目标上的特征点,本发明提出一种二重聚类的动态特征点检测机制;然后,同时在几何和时间维度上估计特征点是静态的可能性。在几何维度中,为当前帧的每个特征点建立静态概率来表示特征点是静态的;在时间维度中,根据所有帧而不是当前帧来判断特征点是否是静态特征点。最后,为了使RANSAC算法更适用于动态环境,本发明对传统的RANSAC算法进行改进。实验结果表明,本发明有效地提高了RGB‑D相机在动态环境下的定位精度,并且可以实时地在CPU上运行。
Description
技术领域
本发明涉及计算机视觉技术领域,具体涉及一种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个投影动态点的深度值,然后,统计每个类的投影动态点的数量,表示为:
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、计算当前帧内的每个特征点的静态观测权重Wvst(pi):
其中β为大于0的常数。
进一步地,所述步骤S7过程如下:
S71、对当前帧建立静态概率图,将当前帧划分为Nr×Nc个块,每个块为Lu×Lv的长方形,块(i,j)的静态概率Wgst(i,j)为:
其中:
其中(i,j)为位于第i行第j列的方块的序号,numst(x,y)和numdy(x,y)分别为序号为(x,y)的方块的静态特征点数量和动态特征点数量;
S72、对于二维坐标为(ui,vi)的特征点pi,其静态概率Wgst(pi)被计算如下:
其中,符号int(·)为对括号内的数进行取整操作,至此,所有方块对应的静态概率构成当前帧的静态概率图;
S73、将静态概率Wgst(pi)与静态观测权重Wvst(pi)结合起来,得到特征点pi的静态权重Wst(pi):
Wst(pi)=Wgst(pi)+αWvst(pi)
其中,Wvst(pi)是当前帧内的每个特征点pi的静态观测权重,α为大于0的常数。
进一步地,所述步骤S8过程如下:
对传统的RANSAC算法进行改进,提出了一种基于静态权重的RANSAC算法,具体改进为特征点选取方法和目标函数两个方面;
S81、对传统的RANSAC算法的特征点选取方法进行改进,在当前帧的所有特征点中,根据静态权重,每个特征点被选取到的概率为;
其中,Wst(pi)为特征点pi的静态权重,pro(pi)为特征点pi被选中的概率,N为当前帧的特征点的数量;
S82、对传统的RANSAC算法的目标函数进行改进,将传统的RANSAC算法的目标函数改进为:
其中:
其中,f(·)为目标函数,θk为当前变换参数,η为取值范围为(0,1)的常数,pi为当前帧第i个特征点;
S83、将改进的RANSAC算法选取出的每个特征点(内点)对应的地图点重投影到当前帧,建立静态权重加权的重投影误差,表示为:
其中,ew为静态权重加权的重投影误差,Tcw为RGB-D相机当前帧的最终位姿,K为RGB-D相机的内参数矩阵,zi为特征点pi的对应的地图点;
S84、最小化静态权重加权的重投影误差ew,即可求得RGB-D相机当前帧的最终位姿Tcw。
本发明相对于现有技术具有如下的优点及效果:
针对传统的SLAM方法无法克服动态物体的干扰的问题,本发明提出一种二重聚类的动态特征点检测机制去检测出动态特征点,有效地克服了传统的SLAM方法在动态环境下定位精度低的缺点。针对深度学习的动态SLAM方法,这些方法大部分使用了基于深度学习的目标检测算法和像素级的物体分割算法,计算开销非常大,难以实时地在CPU上运行。针对非深度学习的动态SLAM方法,这些方法大部分是使用静态背景模型通过重投影的方式去除动态物体的干扰,并没有考虑特征点与特征点之间的关系。在本发明中,当前帧的每个特征点都有一个静态概率,用来表示该特征点是静态的可能性,这个静态概率是根据该特征点与周围的特征点的关系得出的。同时,大多数非深度学习的动态SLAM方法也仅仅是根据以前多帧去判断点是静态的可能性,在本发明中,每个特征点为静态的可能性,是根据所有帧而不是以前多帧来判断的。最后,为了使RANSAC算法更适用于动态环境,本发明对传统的RANSAC算法进行改进。实验结果表明,本发明不仅有效地提高了RGB-D相机在动态环境下的定位精度,而且可以实时地在CPU上运行。
附图说明
图1是本发明公开的一种RGB-D相机在动态场景下的SLAM方法的流程图;
图2是本发明实施例中在某引用场景下的所有ORB特征点示意图;
图3是本发明实施例中在某引用场景下的投影动态点示意图;
图4是本发明实施例中在某引用场景下的动态特征点示意图;
图5是本发明实施例中动态特征点检测流程图;
图6是本发明实施例中动态特征点检测结果图;
图7是本发明实施例中运动轨迹对比图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如图1所示,本实施例具体公开了一种RGB-D相机在动态场景下的SLAM方法,该方法包括以下步骤:
S1、在RGB-D相机采集的当前帧的RGB图像上进行ORB特征点(如图2所示)提取和对所提取的ORB特征点进行描述子计算,将当前帧的RGB图像与上一帧的RGB图像进行描述子匹配,通过最小化重投影误差初步计算出当前帧的位姿;
S2、将当前帧的位姿与所有关键帧的位姿进行比较,尽可能找出找出位姿与当前帧相近并且时间上与当前帧相远的前m个关键帧,设为参考关键帧集,表示为:
其中,a,b,c,d为大于0的常数,id是关键帧的序号,idc是当前帧的序号,R关键帧的旋转矩阵,t是关键帧的平移矩阵,Rc是当前帧的旋转矩阵,tc是当前帧的平移矩阵;
引入c的目的是为了要从关键帧数据库中尽可能找出与当前帧的位姿相近,并且在时间上相远的参考关键帧。因为位姿和序号都与当前帧相近的参考关键帧往往在时间上与当前帧相近,可能会因为两帧中的同一动态物体的运动幅度过小而难以找出动态物体上的特征点。
S3、将参考关键帧集中的每一帧的所有深度值大于0的特征点投影到当前帧上,找出投影后的深度值zproj与当前帧投影点位置的实际深度值z之差的绝对值Δz大于阈值Tz的点,记为投影动态点,如图3所示,表示为:
Δz=|zproj-z|>Tz
S4、根据深度值对当前帧的特征点进行K-Means聚类,找出初始动态集;
由上述步骤得到的投影动态点并不是当前帧的特征点,这些投影动态点只是参考关键帧上的特征点投影到当前帧的二维点,由于测量误差或动态物体的存在,这些投影动态点并不会与当前帧的动态特征点一一重合,因此,此时的投影动态点集并不能作为最终的动态点集。
但是,投影动态点一般会出现在当前帧的动态特征点附近,因此可以通过对当前帧的所有特征点进行聚类,来求解出当前帧最终的动态特征点集。
本实施例中步骤S4过程如下:
S41、根据深度值对当前帧的特征点通过K-Means聚类算法将特征点聚成K类,并且计算出属于第i类的聚类中心ci,表示为:
其中,Ni为属于第i类的特征点数量,dik为第i类的第k个特征点的深度值;
S42、将每个投影动态点的深度值与每个聚类中心进行比较,找出与每个投影动态点的深度值之差的绝对值最小的聚类中心的类sj,表示为:
其中,sj为第j个投影动态点对应的类,depthj为第j个投影动态点的深度值,然后,统计每个类的投影动态点的数量,表示为:
S43、统计属于每个类的投影动态点的数量,将投影动态点的数量numi大于阈值Td的类记为初始动态集。
S5、在根据深度值对当前帧的特征点进行K-Means聚类的基础上,再根据二维图像坐标(u,v)对当前帧的每个初始动态集中的特征点进行第二次K-Means聚类,得到最终动态集,最终动态集中的特征点记为动态点,当前帧除动态点外的所有特征点记为静态特征点;
本实施例中,步骤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的类为最终动态集。最终动态集的特征点记为动态特征点,如图4所示,本发明的动态特征点检测流程如图5所示。
S6、在时间维度上,计算当前帧每个特征点的静态观测数,得到每个特征点的静态观测权重;
动态特征点意味着这个特征点仅仅是在当前时刻被检测为动态特征点,并不是多帧都被检测为动态特征点。因此,由于偶然误差的存在,在当前时刻下,动态特征点检测机制可能将某个静态特征点误判为动态点,或者将某个动态点误判为静态特征点。因此,如果一个特征点事实上为静态特征点,那这个特征点在多帧中被判断为静态特征点的次数会很多。
本实施例中,步骤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、计算当前帧内的每个特征点的静态观测权重Wvst(pi):
其中β为大于0的常数。
S7、在几何维度上,计算当前帧每个特征点的静态概率,通过特征点的静态观测权重和静态概率得到该特征点的静态权重;
当动态特征点数与总特征点数之比较大时,此时如果直接剔除当前帧所有属于动态点集的特征点的话,可能会导致跟踪的特征点数过小,从而导致跟踪失败。
同时,可能会有一些动态物体上的特征点因为偶然误差没有被判断为动态特征点。但是,在这些没有被检测出来的动态特征点周围,很大概率存在已经被检测出来的动态特征点。因此,本发明不直接对动态特征点进行剔除,而是对当前帧建立静态概率图。
本实施例中,步骤S7过程如下:
S71、对当前帧建立静态概率图,将当前帧划分为Nr×Nc个块,每个块为Lu×Lv的长方形,块(i,j)的静态概率Wgst(i,j)为:
其中:
其中(i,j)为位于第i行第j列的方块的序号,numst(x,y)和numdy(x,y)分别为序号为(x,y)的方块的静态特征点数量和动态特征点数量;
S72、对于二维坐标为(ui,vi)的特征点pi,其静态概率Wgst(pi)被计算如下:
其中,符号int(·)为对括号内的数进行取整操作,至此,所有方块对应的静态概率构成当前帧的静态概率图;
S73、将静态概率Wgst(pi)与静态观测权重Wvst(pi)结合起来,得到特征点pi的静态权重Wst(pi):
Wst(pi)=Wgst(pi)+αWvst(pi)
其中,Wvst(pi)是当前帧内的每个特征点pi的静态观测权重,α为大于0的常数。
S8、对传统的RANSAC算法的特征点进行改进,进一步剔除当前帧误匹配的特征点和处于动态对象上的特征点,再将剩下的特征点对应的地图点重投影到当前帧,对每个特征点进行静态权重加权,最小化加权重投影之和,求得相机当前帧的最终位姿。
传统的RANSAC算法可以有效地对误匹配的点对和动态对象进行过滤,对噪声和低动态场景具有很强的鲁棒性。但是,当环境中的动态点过多时,RANSAC可能无法正常工作。因此,为了让RANSAC算法能更鲁棒地在动态场景下工作,本实施例对传统的RANSAC算法进行改进,提出了一种基于静态权重的RANSAC算法,具体改进分为特征点选取方法和目标函数两个方面。
在选取最小子集时,对于传统的RANSAC算法,每个特征点被选中的概率都是相同的,但是在动态场景下,对于属于静态物体上的特征点,它们应该有更高的概率被选中;同时,对于属于动态物体上的特征点,它们被选中的概率应该更低。
S81、基于上述理由,对传统的RANSAC算法的特征点选取方法进行改进,在当前帧的所有特征点中,根据静态权重,每个特征点被选取到的概率为;
其中,Wst(pi)为特征点pi的静态权重,pro(pi)为特征点pi被选中的概率,N为当前帧的特征点的数量;
然后,在传统的RANSAC算法中,目标函数f可以被看作:在第k次迭代过程中,在当前变换参数θk作用下,数据集中满足变换参数θk的点的个数,也就是在当前变换条件下内点的数量。而传统的RANSAC的目标函数也就是用来找出内点的数量最多的变换参数。但是在动态点较多的情况下,如果直接将内点的数量作为目标函数的评价标准,可能会将较多的动态点包含在内点集中,从而导致定位精度的降低。
S82、对传统的RANSAC算法的目标函数进行改进,将传统的RANSAC算法的目标函数改进为:
其中:
其中,f(·)为目标函数,θk为当前变换参数,0<η<1,pi为当前帧第i个特征点;
S83、将改进的RANSAC算法选取出的每个特征点(内点)对应的地图点重投影到当前帧,建立静态权重加权的重投影误差,表示为:
其中,ew为静态权重加权的重投影误差,Tcw为RGB-D相机当前帧的最终位姿,K为RGB-D相机的内参数矩阵,zi为特征点pi的对应的地图点;
S84、最小化静态权重加权的重投影误差ew,即可求得RGB-D相机当前帧的最终位姿Tcw。
本实施例在已公开的TUM数据集上对算法的性能进行了评估。所有评估都在华硕ZX50JX笔记本电脑上进行,该笔记本电脑配备英特尔酷睿i5-4200H CPU和4GB RAM,不使用GPU加速,系统为Ubuntu16.04。本发明使用TUM数据集的高动态、低动态和静态三种图像序列与ORB-SLAM2进行比较。其中高动态序列包括fr3/walking/static,fr3/walking/xyz和fr3/walking/halfphere三个图像序列;低动态序列包括fr3/sitting/static,fr3/sitting/xyz,fr3/sitting/rpy和fr3/sitting/halfphere四个图像序列;静态序列包括fr2/desk和fr3/long/office两个图像序列。图6为本发明的动态特征点检测结果图,可以看出本发明的算法能够较好地检测出动态物体上的特征点。图7为本发明与ORB-SLAM2的运动轨迹对比图,ORB-SLAM2是一个经典的实时SLAM系统。由图7可以看出,在高动态场景下,本发明的运动轨迹能较好地贴合真实轨迹,而ORB-SLAM2存在较大的定位误差。
表1.本发明的定位精度对比表
由表1可看出,对于高动态序列,与ORB-SLAM2相比,本发明定位精度提高了94.0%;对于静态序列,本发明同样能取得较高的定位精度。因此,本发明在静态和动态环境下都是鲁棒的。
最后,本发明的平均运行时间为48毫秒每帧,ORB-SLAM2的平均运行时间为44毫秒每帧,但是ORB-SLAM2在动态环境下并不鲁棒。因此,本发明不仅在动态环境下具有较高的精度,而且可以实时地在CPU上运行。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
Claims (6)
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个投影动态点的深度值,然后,统计每个类的投影动态点的数量,表示为:
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、统计所有初始动态集的每个类的投影动态点的数量,表示如下:
其中,Nproj(i)为第i个初始动态集的投影动态点的数量,numij为第i个初始动态集的第j类的投影动态点的数量;
S54、统计属于每个类的投影动态点的数量,投影动态点的数量numij大于阈值Tuv的类为最终动态集。
4.根据权利要求1所述的一种RGB-D相机在动态场景下的SLAM方法,其特征在于,所述步骤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、计算当前帧内的每个特征点的静态观测权重Wvst(pi):
其中β为大于0的常数。
5.根据权利要求1所述的一种RGB-D相机在动态场景下的SLAM方法,其特征在于,所述步骤S7过程如下:
S71、对当前帧建立静态概率图,将当前帧划分为Nr×Nc个块,每个块为Lu×Lv的长方形,块(i,j)的静态概率Wgst(i,j)为:
其中:
其中(i,j)为位于第i行第j列的方块的序号,numst(x,y)和numdy(x,y)分别为序号为(x,y)的方块的静态特征点数量和动态特征点数量;
S72、对于二维坐标为(ui,vi)的特征点pi,其静态概率Wgst(pi)被计算如下:
其中,符号int(·)为对括号内的数进行取整操作,至此,所有方块对应的静态概率构成当前帧的静态概率图;
S73、将静态概率Wgst(pi)与静态观测权重Wvst(pi)结合起来,得到特征点pi的静态权重Wst(pi):
Wst(pi)=Wgst(pi)+αWvst(pi)
其中,Wvst(pi)是当前帧内的每个特征点pi的静态观测权重,α为大于0的常数。
6.根据权利要求1所述的一种RGB-D相机在动态场景下的SLAM方法,其特征在于,所述步骤S8过程如下:
S81、对传统的RANSAC算法的特征点选取方法进行改进,在当前帧的所有特征点中,根据静态权重,每个特征点被选取到的概率为;
其中,Wst(pi)为特征点pi的静态权重,pro(pi)为特征点pi被选中的概率,N为当前帧的特征点的数量;
S82、对传统的RANSAC算法的目标函数进行改进,将传统的RANSAC算法的目标函数改进为:
其中:
其中,f(·)为目标函数,θk为当前变换参数,η为取值范围为(0,1)的常数,pi为当前帧第i个特征点;
S83、将改进的RANSAC算法选取出的每个特征点对应的地图点重投影到当前帧,建立静态权重加权的重投影误差,表示为:
其中,ew为静态权重加权的重投影误差,Tcw为RGB-D相机当前帧的最终位姿,K为RGB-D相机的内参数矩阵,zi为特征点pi的对应的地图点;
S84、最小化静态权重加权的重投影误差ew,即可求得RGB-D相机当前帧的最终位姿Tcw。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492646.1A CN111914832B (zh) | 2020-06-03 | 2020-06-03 | 一种rgb-d相机在动态场景下的slam方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492646.1A CN111914832B (zh) | 2020-06-03 | 2020-06-03 | 一种rgb-d相机在动态场景下的slam方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111914832A true CN111914832A (zh) | 2020-11-10 |
CN111914832B CN111914832B (zh) | 2023-06-13 |
Family
ID=73237453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010492646.1A Active CN111914832B (zh) | 2020-06-03 | 2020-06-03 | 一种rgb-d相机在动态场景下的slam方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111914832B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112378409A (zh) * | 2020-12-01 | 2021-02-19 | 杭州宇芯机器人科技有限公司 | 动态环境下基于几何与运动约束的机器人rgb-d slam方法 |
CN113111973A (zh) * | 2021-05-10 | 2021-07-13 | 北京华捷艾米科技有限公司 | 一种基于深度相机的动态场景处理方法及装置 |
CN114119732A (zh) * | 2021-12-06 | 2022-03-01 | 福建工程学院 | 基于目标检测和K-means聚类的联合优化动态SLAM方法 |
CN114943741A (zh) * | 2022-06-02 | 2022-08-26 | 安徽大学 | 一种动态场景下基于目标检测和几何概率的视觉slam方法 |
CN116051915A (zh) * | 2023-02-22 | 2023-05-02 | 东南大学 | 基于聚类与几何残差的动态场景rgb-d slam方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105856230A (zh) * | 2016-05-06 | 2016-08-17 | 简燕梅 | 一种可提高机器人位姿一致性的orb关键帧闭环检测slam方法 |
CN106127739A (zh) * | 2016-06-16 | 2016-11-16 | 华东交通大学 | 一种结合单目视觉的rgb‑d slam方法 |
CN109387204A (zh) * | 2018-09-26 | 2019-02-26 | 东北大学 | 面向室内动态环境的移动机器人同步定位与构图方法 |
CN110349250A (zh) * | 2019-06-28 | 2019-10-18 | 浙江大学 | 一种基于rgbd相机的室内动态场景的三维重建方法 |
CN110378345A (zh) * | 2019-06-04 | 2019-10-25 | 广东工业大学 | 基于yolact实例分割模型的动态场景slam方法 |
CN110378997A (zh) * | 2019-06-04 | 2019-10-25 | 广东工业大学 | 一种基于orb-slam2的动态场景建图与定位方法 |
CN111046856A (zh) * | 2020-03-13 | 2020-04-21 | 南京晓庄学院 | 基于动静态特征提取并行位姿跟踪与地图创建的方法 |
-
2020
- 2020-06-03 CN CN202010492646.1A patent/CN111914832B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105856230A (zh) * | 2016-05-06 | 2016-08-17 | 简燕梅 | 一种可提高机器人位姿一致性的orb关键帧闭环检测slam方法 |
CN106127739A (zh) * | 2016-06-16 | 2016-11-16 | 华东交通大学 | 一种结合单目视觉的rgb‑d slam方法 |
CN109387204A (zh) * | 2018-09-26 | 2019-02-26 | 东北大学 | 面向室内动态环境的移动机器人同步定位与构图方法 |
CN110378345A (zh) * | 2019-06-04 | 2019-10-25 | 广东工业大学 | 基于yolact实例分割模型的动态场景slam方法 |
CN110378997A (zh) * | 2019-06-04 | 2019-10-25 | 广东工业大学 | 一种基于orb-slam2的动态场景建图与定位方法 |
CN110349250A (zh) * | 2019-06-28 | 2019-10-18 | 浙江大学 | 一种基于rgbd相机的室内动态场景的三维重建方法 |
CN111046856A (zh) * | 2020-03-13 | 2020-04-21 | 南京晓庄学院 | 基于动静态特征提取并行位姿跟踪与地图创建的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112378409A (zh) * | 2020-12-01 | 2021-02-19 | 杭州宇芯机器人科技有限公司 | 动态环境下基于几何与运动约束的机器人rgb-d slam方法 |
CN112378409B (zh) * | 2020-12-01 | 2022-08-12 | 杭州宇芯机器人科技有限公司 | 动态环境下基于几何与运动约束的机器人rgb-d slam方法 |
CN113111973A (zh) * | 2021-05-10 | 2021-07-13 | 北京华捷艾米科技有限公司 | 一种基于深度相机的动态场景处理方法及装置 |
CN114119732A (zh) * | 2021-12-06 | 2022-03-01 | 福建工程学院 | 基于目标检测和K-means聚类的联合优化动态SLAM方法 |
CN114943741A (zh) * | 2022-06-02 | 2022-08-26 | 安徽大学 | 一种动态场景下基于目标检测和几何概率的视觉slam方法 |
CN116051915A (zh) * | 2023-02-22 | 2023-05-02 | 东南大学 | 基于聚类与几何残差的动态场景rgb-d slam方法 |
CN116051915B (zh) * | 2023-02-22 | 2024-09-10 | 东南大学 | 基于聚类与几何残差的动态场景rgb-d slam方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111914832B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111914832B (zh) | 一种rgb-d相机在动态场景下的slam方法 | |
CN111563442B (zh) | 基于激光雷达的点云和相机图像数据融合的slam方法及系统 | |
CN112132897A (zh) | 一种基于深度学习之语义分割的视觉slam方法 | |
CN109146912B (zh) | 一种基于目标性分析的视觉目标跟踪方法 | |
CN111815687B (zh) | 点云匹配方法、定位方法、设备及存储介质 | |
CN113255611B (zh) | 基于动态标签分配的孪生网络目标跟踪方法及移动设备 | |
CN114782499A (zh) | 一种基于光流和视图几何约束的图像静态区域提取方法及装置 | |
JP4567660B2 (ja) | 電子画像内で物体のセグメントを求める方法 | |
Iraei et al. | Object tracking with occlusion handling using mean shift, Kalman filter and edge histogram | |
CN111161318A (zh) | 一种基于yolo算法及gms特征匹配的动态场景slam方法 | |
Min et al. | Coeb-slam: A robust vslam in dynamic environments combined object detection, epipolar geometry constraint, and blur filtering | |
CN109508674B (zh) | 基于区域划分的机载下视异构图像匹配方法 | |
Ji et al. | DRV-SLAM: An Adaptive Real-Time Semantic Visual SLAM Based on Instance Segmentation Toward Dynamic Environments | |
CN113362358A (zh) | 一种动态场景下基于实例分割的鲁棒性位姿估计方法 | |
CN108694348B (zh) | 一种基于自然特征的跟踪注册方法及装置 | |
Zhang et al. | Target tracking for mobile robot platforms via object matching and background anti-matching | |
CN110060280B (zh) | 基于外观自适应空间正则化相关滤波器的目标跟踪方法 | |
CN114283199B (zh) | 一种面向动态场景的点线融合语义slam方法 | |
CN108665470B (zh) | 一种交互式轮廓提取方法 | |
CN116299525A (zh) | 一种基于点云区域相关性的动态环境rgb-d视觉slam方法 | |
Munoz et al. | Improving Place Recognition Using Dynamic Object Detection | |
CN113837243B (zh) | 基于边缘信息的rgb-d相机动态视觉里程计方法 | |
CN115235505A (zh) | 一种基于非线性优化的视觉里程计方法 | |
CN114067240A (zh) | 一种融合行人特性的在线更新策略行人单目标跟踪方法 | |
Wang et al. | Object tracking with shallow convolution feature |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |