ORB-SLAM中并没有使用OpenCV的实现,因为OpenCV的版本提取的ORB特征过于集中,会出现扎堆的现象。这会降低SLAM的精度,对于闭环来说,也会降低一幅图像上的信息量。具体的对ORB-SLAM的影响可以参考我的另一篇文章 杨小东:[ORB-SLAM2] ORB特征提取策略对ORB-SLAM2性能的影响 ORB-SLAM中的实现提高了特征分布的均匀性。
ORB-SLAM2是一个基于特征的方法,它对输入的图像提取出角点的特征,如下图所示: 在提取出特征后,所有输入的图片都会删除,系统剩下的处理流程都是基于这些特征进行的,和相机类型无关。 单目的预处理流程实现过程在cv::Mat GrabImageMonocular(const cv::Mat &im, const double ×tamp)函数中体现为:首先将im转...
ORB-SLAM的特征提取方式主要包括以下步骤: 1.检测关键点:使用ORB(Oriented FAST and Rotated BRIEF)算法在图像中检测关键点。 2.描述关键点:对每个关键点分配方向和旋转角度,并使用BRIEF描述子对关键点进行描述。 3.提取特征:从关键点中提取特征,包括位置、方向、旋转角度和BRIEF描述子等信息。 回环检测方式主要包括...
ORB-SLAM中的实现提高了特征分布的均匀性。 最简单的一种方法是把图像划分成若干小格子,每个小格子里面保留质量最好的n个特征点。这种方法看似不错,实际上会有一些问题。当有些格子里面能够提取的数量不足n个的时候(无纹理区域),整幅图上提取的特征总量就达不到我们想要的数量。严重的情况下,SLAM就会跟丢喽 参...
ORB在计算描述子时使用周围5×5的patch灰度信息,进行滤波处理,提高了描述子的抗噪性。ORB-SLAM的改进主要集中在FAST角点提取步骤。该系统通过动态调整阈值、利用四叉树划分图像等方法,提高了特征分布的均匀性,有效避免了特征扎堆现象。此策略有助于提升SLAM精度、闭环识别性能,并确保全图特征量满足需求,...
GCNv2-tiny是较小版本的GCNv2,从第二层开始,feature map的数量被减小了一半。采用GCNv2-tiny的GCN-SLAM可以在TX2上以40Hz运行。(ORB-SLAM中台式机上特征提取大概30多ms,可以达到30fps,构图部分大概380ms—460ms,但是前段和后端独立运行) 实验结果 目的不是测试其优于ORB-SLAM2,而是:...
ORBSLAM2的主要特点在于他的所有工程实现都用到了ORB这个特征点提取方法,包括他实现的在线单目,双目以RGBD的SLAM,下面我们就看看他是怎么一步一步一步一步一步一步一步一步一步一步实现ORB特征的提取的。 理论部分: 关于ORB特征点的实现方法以及其工作原理,网上资料很多,大家可以广泛阅读,当然也要筛选正确的信息,...
一、通俗易懂理解图像金字塔特征点数目、灰度质心圆索引 1.参考资料: [1] ORBSLAM2 source code 2.主要函数: //特征点提取器的构造函数ORBextractor::ORBextractor(int_nfeatures,//指定要提取的特征点数目float_scaleFactor,//指定图像金字塔的缩放系数int_nlevels,//指定图像金字塔的层数int_iniThFAST,//指定初...
GCNv2被设计用于生成类似于ORB的特征描述子和特征点的算法,其可以很容易的替代ORB特征在ORB-SLAMv2中。GCNv2可以显著的提升GCN的计算速度,并且不像GCN只能应用于桌面系统。经过本算法改善的ORB-SLAMv2,可以实时运行在嵌入式设备Jetson TX2。实验结果表明,经过重新训练后的GCNv2网络精度和GCN基本相当, 并且提取的特征...
ORB-SLAM中对于图像的特征提取,除了应用ORB特征提取器之外,还额外增加了让特征点尽量在图像中分布均匀的举措。 在ORB-SLAM1中的实现:将原始图像平均分成n/5个区块,n是特征点的数量。每个区块进行FAST特征点和rBRIEF描述子计算;特征点数量不足5的区块剩下的特征点平均分到其他区块。其他区块不足以补充的继续将不足...