ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

SuperPoint_SLAM 三大单目示例详解:mono_kitti、mono_tum、mono_euroc数据准备与运行

SuperPoint_SLAM 三大单目示例详解:mono_kitti、mono_tum、mono_euroc数据准备与运行 SuperPoint_SLAM 三大单目示例详解mono_kitti、mono_tum、mono_euroc数据准备与运行【免费下载链接】SuperPoint_SLAMSuperPoint ORB_SLAM2项目地址: https://gitcode.com/gh_mirrors/su/SuperPoint_SLAMSuperPoint_SLAM 是一个用深度学习特征点SuperPoint替代传统 ORB 特征的单目 SLAM 开源项目它基于 ORB-SLAM2 改造而来。很多新手拿到项目后最头疼的就是不知道如何准备 KITTI、TUM、EuRoC 三大经典数据集导致 mono_kitti、mono_tum、mono_euroc 三个单目示例跑不起来。本文用最直白的方式一步步带你完成三类数据集的下载、目录整理与运行命令配置让你快速跑通自己的第一个单目 SLAM 程序。一、认识三个单目示例程序的区别在动手之前先花 1 分钟搞清楚三个可执行文件各自读取什么格式的数据这能避免后面 90% 的报错。示例程序数据集数据格式特点源码位置mono_kittiKITTI 视觉里程计纯灰度图序列 times.txt 时间戳Examples/Monocular/mono_kitti.ccmono_tumTUM RGB-Drgb.txt 声明图片路径与时间戳Examples/Monocular/mono_tum.ccmono_eurocEuRoC MAV图片目录 独立时间戳文件Examples/Monocular/mono_euroc.cc三个程序的共同点都要求你提供词袋文件Vocabulary和相机参数文件YAML区别只在于第三个参数指向的数据结构完全不同。下面分别说明每种数据集的标准准备流程。二、mono_kitti 数据准备KITTI 数据集三步搞定mono_kitti 的命令格式是./Examples/Monocular/mono_kitti Vocabulary/superpoint_voc.yml.gz Examples/Monocular/KITTIX.yaml PATH_TO_DATASET_FOLDER/dataset/sequences/SEQUENCE_NUMBER第一步下载并解压 KITTI 灰度序列KITTI 视觉里程计数据集需要下载grayscale灰度版本解压后你会看到dataset/sequences/目录里面是 00、01、02…11 共 12 个序列文件夹。第二步核对目录结构是否完整每个序列文件夹以 05 为例必须包含以下内容缺一不可sequences/05/ ├── times.txt # 每帧的时间戳秒一行一个 ├── image_0/ # 左目灰度图按 000000.png 六位数字递增命名 └── image_1/ # 右目灰度图单目示例只用 image_0第三步选择匹配的相机参数文件Examples/Monocular/下提供了三个 KITTI 配置文件按序列号对应选择序列 00~02使用KITTI00-02.yaml序列 03使用KITTI03.yaml序列 04~12使用KITTI04-12.yaml项目自带的run.sh就是一个现成的运行示例它用 KITTI 05 序列作为演示。你也可以直接参考该脚本把路径替换成自己的数据目录即可./Examples/Monocular/mono_kitti Vocabulary/superpoint_voc.yml.gz Examples/Monocular/KITTI04-12.yaml data_odometry_gray/dataset/sequences/05三、mono_tum 数据准备TUM 数据集运行要点mono_tum 的命令格式与 mono_kitti 相同同样是 4 个参数但数据组织方式完全不同./Examples/Monocular/mono_tum Vocabulary/superpoint_voc.yml.gz Examples/Monocular/TUM1.yaml PATH_TO_TUM_SEQUENCETUM 数据集的核心文件rgb.txtTUM 数据集每个序列目录下都有一个rgb.txt它每行记录「时间戳 相对图片路径」形如1305031102.251302 rgb/1305031102.251302.png 1305031102.260698 rgb/1305031102.260698.png阅读Examples/Monocular/mono_tum.cc的LoadImages函数可以发现程序会自动跳过rgb.txt的前三行注释因此千万不要删掉文件头部的注释行否则时间戳解析会错位。选择正确的相机内参TUM 官方数据集分为 fr1、fr2、fr3 三个系列相机内参各不相同配置对应关系为fr1 系列如 fr1_desk、fr1_xyz使用TUM1.yamlfr2 系列使用TUM2.yamlfr3 系列使用TUM3.yaml如果你用了错误的内参文件最典型的表现是初始化失败、地图点漂移严重此时优先检查 YAML 是否匹配。四、mono_euroc 数据准备EuRoC 数据格式全解析mono_euroc 是三个示例中参数最多的共 5 个也是最容易踩坑的./Examples/Monocular/mono_euroc Vocabulary/superpoint_voc.yml.gz Examples/Monocular/EuRoC.yaml PATH_TO_IMAGE_FOLDER PATH_TO_TIMES_FILEEuRoC 数据目录长什么样EuRoC MAV 数据集解压后单目图像位于mav0/cam0/data/里面是1403715282262142976.png这种以纳秒时间戳命名的图片。注意程序读取图片时就是按这个文件名拼接.png所以图片目录里只能放图片不能混入其他文件。时间戳文件用哪个Examples/Monocular/EuRoC_TimeStamps/目录下已经预置了全部 10 个序列的时间戳文件例如MH01.txt ~ MH05.txt机械室场景V101.txt ~ V203.txt无人机厂房场景运行 MH01 序列时命令形如./Examples/Monocular/mono_euroc Vocabulary/superpoint_voc.yml.gz Examples/Monocular/EuRoC.yaml /path/to/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/MH01.txt阅读Examples/Monocular/mono_euroc.cc的LoadImages可以发现一个细节时间戳文件中每行是「图片文件名不含 .png 纳秒时间戳」程序会把纳秒除以 1e9 换算成秒这正是它和 KITTI、TUM 时间戳格式最大的不同。EuRoC 相机参数统一使用EuRoC.yaml20fps、内置畸变系数。五、三个示例运行后的输出与排错运行成功的标志三个示例运行结束后都会在项目根目录生成KeyFrameTrajectory.txtTUM 格式轨迹并在终端打印中值跟踪耗时median tracking time与平均耗时mean tracking time。同时 Pangolin 窗口会实时显示 SLAM 过程运行完整后你能看到类似下图的轨迹与地图常见报错速查表报错现象原因与解决办法Failed to load image at: ...图片路径拼接错误检查序列目录结构是否与上文一致程序秒退、无任何输出词袋文件路径错误或Vocabulary/superpoint_voc.yml.gz未下载放置初始化长时间失败YAML 内参与数据集不匹配重新核对 TUM/KITTI 序列对应关系帧率远低于预期SuperPoint 需要 LibTorch 推理确认是否按 CMakeLists.txt 中Torch_DIR的要求正确编译六、总结一张表记住三种数据准备方式最后用一张对照表收尾方便你日后快速回忆示例数据集需要的核心文件相机配置参数个数mono_kittiKITTI 序列times.txt image_0/KITTI00-02 / 03 / 04-12.yaml4mono_tumTUM 序列rgb.txt rgb/TUM1 / TUM2 / TUM3.yaml4mono_eurocEuRoC 序列cam0/data MH/V 时间戳文件EuRoC.yaml5搞懂了 mono_kitti、mono_tum、mono_euroc 三种单目示例的数据准备流程你就能在 SuperPoint_SLAM 上自由切换数据集做实验。建议先用项目自带的run.sh验证 KITTI 05 序列跑通后再扩展到 TUM 和 EuRoC。如果编译环境还没准备好记得先完成 Pangolin、OpenCV、Eigen3、LibTorch 与 DBoW3/g2o 的安装详见项目根目录Dependencies.md祝你的第一个单目 SLAM 早日跑通【免费下载链接】SuperPoint_SLAMSuperPoint ORB_SLAM2项目地址: https://gitcode.com/gh_mirrors/su/SuperPoint_SLAM创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表