项目简介
直接稀疏里程计(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】