RGB-D SLAM——回环检测篇(四)

本文详细介绍了RGB-D SLAM中的回环检测流程,包括关键帧提取和回环检测策略。通过设定阈值避免频繁的地图更新,采用近距离回环与随机回环策略进行匹配,优化地图构建。
摘要由CSDN通过智能技术生成

一.回环检测的流程

1.关键帧提取:把每一帧都拼到地图中是不明智的选择。因为帧与帧之间距离很近,导致地图需要频繁更新,浪费时间,所以当机器人的运动超过一个”关键帧”,将关键帧拼到地图里就行了。

2.回环的检测。回环的本质是识别曾经到过的地方。最简单的回环策略,是将新来的关键帧与之前所有的关键帧进行比较,不过这样会导致越往后,需要比较的帧就越多。所以,稍微快点的方法就是在过去的帧里面随机挑选一些,与之进行比较。

伪代码如下:
1.初始化关键帧序列:F,并将第一帧 f0 f 0 放入F中。
2.对于新来的一帧I,计算F中最后一帧与I的运动,并估计该运动的大小e。有以下集中可能性:
a.若e>error,说明运动太大,可能计算错误,丢弃该帧。
b.若没有匹配上(match)太少,说明该帧图像质量不高,丢弃。
c. 若e < Ekey,说明离前一帧很近,舍弃。
3.近距离回环:匹配I与F末尾m个关键帧。匹配成功时,在图里增加一条边。
4.随机回环:随机在F里取n个帧,与I进行匹配。若匹配上,在图里增加一条边。
5.若有新的数据,则回2,没有则进行优化与地图拼接。

主要代码如下:

int main(int argc, char** argv)
{
    vector<FRAME> keyframe;
    vector<FRAME> frame;
    vector<int> keyframe_count;
    keyframe_count.push_back(0);
    int frameid=0;
    for(int i=1;i<600;i++) //将所有的帧导入进来,存储在一个容器中
    {
        FRAME frame_single;
        string path_rgb("/home/hansry/Pose_part/data/rgb_png/");
        string path_depth("/home/hansry/Pose_part/data/depth_png/");
        string suffix(".png");
        stringstream str_rgb,str_depth;
        str_rgb<<path_rgb<<i<<suffix;
        str_depth<<path_depth<<i<<suffix;
        frame_single.rgb=imread(str_rgb.str());
        frame_single.depth=imread(str_depth.str(),-1);
        frame_single.frameid=framei
RGB-D SLAM是一种同时定位与地图构建(Simultaneous Localization and Mapping)的技术,它利用RGB-D图像来实现对环境的感知和建模。RGB-D图像由RGB图像和深度图像组成,其中RGB图像提供了颜色信息,深度图像则提供了物体距离传感器的实际距离信息。通过将RGB图像和深度图像进行配准,可以实现像素级别的对应关系。RGB-D SLAM可以通过对连续的RGB-D图像进行处理,实时地估计相机的运动轨迹,并同时构建环境的三维地图。 在RGB-D SLAM中,有多种算法和系统可供选择。例如,RGBDSLAM2是一个非常全面优秀的系统,它将SLAM领域的图像特征、优化、闭环检测、点云等技术融为一体,适合初学者使用并可以进行二次开发。然而,RGBDSLAM2的实时性较差,相机必须以较慢的速度运动,并且使用点云来表示三维地图会消耗较多的内存。此外,还有其他的RGB-D SLAM算法和系统可供选择,具体选择哪种算法和系统取决于具体的应用需求和硬件条件。 引用\[1\]中提到了RGB-D图像的组成和配准过程,引用\[2\]中提到了RGB双目相机的特点和限制,引用\[3\]中提到了RGBDSLAM2系统的特点和缺点。这些引用内容提供了关于RGB-D SLAM的基本概念和相关技术的信息。 #### 引用[.reference_title] - *1* [SLAM(二)——RGB-D的含义](https://blog.csdn.net/u013401766/article/details/78671939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [RGBD-SLAM总结](https://blog.csdn.net/YOULANSHENGMENG/article/details/124141028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [RGB-D SLAM 相关总结](https://blog.csdn.net/qq_38167930/article/details/118879187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值