Ubuntu 22.04 下 ORBSLAM3 的完整部署与 RGB-D TUM 数据集实战评测
1. ORBSLAM3与RGB-D技术入门指南第一次接触ORBSLAM3时我和很多初学者一样被它复杂的依赖关系搞得晕头转向。这个由Raúl Mur-Artal团队开发的开源视觉SLAM系统目前已经迭代到第三代支持单目、双目和RGB-D相机的实时定位与建图。特别是在室内场景中配合深度相机如Kinect或RealSense使用时其建图精度和稳定性令人印象深刻。说到RGB-D数据集TUM提供的基准数据集绝对是SLAM研究者的必修课。这个数据集包含了大量室内场景的彩色图像和深度图像时间戳精确对齐非常适合算法验证。我最早在研究生阶段就用这个数据集做过视觉里程计的实验当时就被它丰富的场景变化所吸引——从办公室桌面到整个房间的扫描数据质量非常高。在开始部署前我们需要明确硬件要求。虽然ORBSLAM3对算力要求不算苛刻但建议至少配备四核以上CPUi5/i7系列8GB以上内存独立显卡NVIDIA GTX系列更佳至少20GB的可用磁盘空间2. Ubuntu 22.04环境准备2.1 系统基础配置新装的Ubuntu 22.04虽然开箱即用但有些隐藏的坑需要注意。我建议先执行以下命令更新系统sudo apt update sudo apt upgrade -y sudo apt install build-essential cmake git -y这里有个小技巧如果你在校园网或特殊网络环境下可能会遇到包下载慢的问题。这时可以尝试修改软件源sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo apt update2.2 关键依赖安装ORBSLAM3的依赖就像搭积木缺一不可。根据我的踩坑经验建议按以下顺序安装Pangolin安装sudo apt install libglew-dev libpython3-dev libwayland-dev libxkbcommon-dev -y git clone https://github.com/stevenlovegrove/Pangolin.git cd Pangolin mkdir build cd build cmake -DCMAKE_BUILD_TYPERelease .. make -j4 sudo make installOpenCV编译这里有个版本选择的技巧——ORBSLAM3官方推荐OpenCV 3.4但实测4.x系列也能用。我建议用OpenCV 4.5sudo apt install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip unzip opencv.zip cd opencv-4.5.5 mkdir build cd build cmake -D CMAKE_BUILD_TYPERELEASE -D WITH_CUDAOFF .. make -j$(nproc) sudo make installEigen3安装这个线性代数库安装最简单但要注意头文件位置sudo apt install libeigen3-dev sudo cp -r /usr/include/eigen3/Eigen /usr/local/include3. ORBSLAM3源码编译实战3.1 获取源代码官方仓库有几个分支新手建议用master分支git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git cd ORB_SLAM3 chmod x build.sh3.2 编译中的常见问题运行./build.sh时可能会遇到这两个典型错误找不到Pangolin 检查CMakeLists.txt中的find_package(Pangolin REQUIRED)可以手动指定路径cmake -DPangolin_DIR/usr/local/lib/cmake/Pangolin ..C14标准问题 修改CMakeLists.txt在project(ORB_SLAM3)后添加set(CMAKE_CXX_STANDARD 14)编译成功后建议运行测试程序验证./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml ../Datasets/rgbd_dataset_freiburg1_desk4. TUM数据集处理技巧4.1 数据集下载与整理TUM数据集官网提供了多个场景数据我推荐先用简单的freiburg1_desk练手wget https://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_desk.tgz tar -xzvf rgbd_dataset_freiburg1_desk.tgz数据集目录结构应该是这样的rgbd_dataset_freiburg1_desk/ ├── depth.txt ├── depth/ ├── rgb.txt └── rgb/4.2 时间戳对齐的奥秘associate.py脚本的作用很多人都不太理解。其实它做了件很重要的事由于RGB图像和深度图像不是完全同步采集的这个脚本通过时间戳找到最匹配的图像对。我改进过的关联命令如下python3 associate.py rgb.txt depth.txt --max_difference 0.05 associations.txt参数说明--max_difference允许的最大时间差秒--offset可手动设置时间偏移量5. 完整运行与结果分析5.1 启动参数详解运行RGB-D模式的命令包含多个关键参数./Examples/RGB-D/rgbd_tum \ Vocabulary/ORBvoc.txt \ Examples/RGB-D/TUM1.yaml \ /path/to/rgbd_dataset_freiburg1_desk \ /path/to/associations.txt其中TUM1.yaml需要特别注意相机参数%YAML:1.0 Camera.fx: 517.306408 Camera.fy: 516.469215 Camera.cx: 318.643040 Camera.cy: 255.3139895.2 性能优化建议通过多次测试我总结了几个提升运行效率的技巧词汇表加载加速./rgbd_tum Vocabulary/ORBvoc.txt.bin ... # 使用二进制格式实时显示优化 修改System.cc中的设置mpFrameDrawer-Update(pTracker); if(mbOnlyTracking) { mpMapDrawer-SetCurrentCameraPose(pTracker-mCurrentFrame.GetPose()); }内存管理 在运行前执行ulimit -s unlimited6. 深度评测与问题排查6.1 典型运行结果分析成功运行时终端会输出类似信息ORB Extractor: 1000 features per image Start processing sequence ... Mean tracking time: 0.023s Keyframes: 12, Map Points: 342关键指标说明跟踪时间小于0.03s为优秀特征点数保持在800-1000之间最佳重定位次数过多说明跟踪不稳定6.2 常见错误解决方案问题1段错误(Segmentation fault)解决方法export OMP_NUM_THREADS1 ./rgbd_tum ...问题2找不到GLFW解决方法sudo apt install libglfw3-dev问题3地图点突然丢失建议修改参数# 在yaml配置文件中 Mapping.MinNumFrames: 10 Mapping.MaxNumFrames: 207. 进阶应用与扩展掌握了基础用法后可以尝试这些进阶操作保存与加载地图# 运行时按CtrlC退出会自动保存 ./rgbd_tum ... --map SaveMap.map # 加载已有地图 ./rgbd_tum ... --loadMap SaveMap.mapROS集成 虽然ORBSLAM3原生支持ROS但在Ubuntu 22.04上需要额外步骤sudo apt install ros-humble-desktop cd ORB_SLAM3 chmod x build_ros.sh ./build_ros.sh自定义数据集 制作自己的RGB-D数据集时需要准备时间戳文件格式timestamp filename对应的相机参数yaml图像命名规范如%06d.png在实际项目中我发现ORBSLAM3对光照变化比较敏感。有一次在阳光直射的会议室测试跟踪效果明显下降。后来通过调整特征点提取参数解决了这个问题# 在yaml文件中修改 ORBextractor.nFeatures: 2000 ORBextractor.scaleFactor: 1.2
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425011.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!