littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于C++的直接稀疏里程计系统

项目简介

直接稀疏里程计(Direct Sparse Odometry, DSO)是用于单目视觉里程计的算法,通过直接优化图像的亮度来估计相机的运动和场景的几何结构。此项目由慕尼黑工业大学和英特尔共同开发,基于直接法而非特征点法,可在没有特征点的情况下进行鲁棒的相机运动估计。

项目的主要特性和功能

  • 直接法优化:直接优化图像亮度估计相机运动,避免特征点提取和匹配的复杂性。
  • 稀疏优化:使用稀疏图像点优化,减少计算量,提高实时性。
  • 多视图几何:支持多视图几何优化,处理复杂相机运动和场景结构。
  • 可视化与GUI:用Pangolin进行3D可视化和GUI操作,便于调试和查看结果。
  • 多种相机模型:支持针孔、FOV、径向切向和等距等多种相机模型。
  • 数据集支持:支持TUM monoVO等多种数据集格式。

安装使用步骤

1. 安装依赖

确保安装必需依赖库: bash sudo apt-get install libsuitesparse-dev libeigen3-dev libboost-all-dev 可选依赖库(推荐安装): - OpenCV:用于图像的读取、写入和显示。 bash sudo apt-get install libopencv-dev - Pangolin:用于3D可视化和GUI。 bash cd Pangolin mkdir build cd build cmake .. make sudo make install - ziplib:用于读取压缩的图像数据集。 bash sudo apt-get install zlib1g-dev cd dso/thirdparty tar -zxvf libzip-1.1.1.tar.gz cd libzip-1.1.1/ ./configure make sudo make install sudo cp lib/zipconf.h /usr/local/include/zipconf.h

2. 编译项目

复制项目并进行编译: bash cd dso mkdir build cd build cmake .. make -j

3. 运行示例

使用以下命令在数据集上运行DSO: bash bin/dso_dataset \ files=XXXXX/sequence_XX/images.zip \ calib=XXXXX/sequence_XX/camera.txt \ gamma=XXXXX/sequence_XX/pcalib.txt \ vignette=XXXXX/sequence_XX/vignette.png \ preset=0 \ mode=0

4. 命令行选项

DSO提供多种命令行选项控制运行模式、数据预处理、日志记录等,例如: - mode=X:选择不同运行模式,取决于是否存在光度校准。 - preset=X:选择不同预设配置,控制点云数量和实时性。 - nolog=1:禁用日志记录,提高性能。 - reverse=1:反向播放序列。 - nogui=1:禁用GUI,提高性能。 更多选项和详细说明请参考main_dso_pangolin.cpp文件。

5. 数据访问

DSO提供多种方式访问计算结果,包括实时数据访问和序列结束后的结果保存。可通过实现自定义的Output3DWrapper访问实时数据,或在序列结束后查看保存的result.txt文件。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】