Mac 下运行DSO(Direct Sparse Odometry)

来源:互联网 发布:王者荣耀抽奖活动源码 编辑:程序博客网 时间:2024/06/09 23:05

转载请注明来源:http://blog.csdn.net/stormfucking/article/details/78709027
目前关于DSO(Direct Sparse Odometry)在Linux下的安装运行网上已经有了很多教程,我是在Mac 上跑的DSO,搭环境的时候在网上没找到Mac下的方法。
总得讲Mac下的搭建环境和Linux下基本相似,个别的地方有所出入。
下文中安装依赖包使用的都是brew命令,还没有安装Homebrew的自行安装
DSO的源代码在https://github.com/JakobEngel/dso,首先我们将dso工程git到电脑上,先cd到想要git的路径

git clone https://github.com/JakobEngel/dso.git 

然后安装依赖项
1.安装依赖项
(1)安装suite-sparse

brew install suite-sparse

suite-sparse库中包含了很多基础依赖的文件,如果之后cmake的时候提示了 can not find CHOLMOD_INCLUDE_DIR等一般是因为没有安装suite-sparse或者是在cmakelist中没有设置好CHOLMOD等的路径
**
(2)安装eigen

brew install eigen

(3)安装opencv(可选)
建议安装opencv,一般以后跑各种项目都会需要用到opencv

brew install opencv

(4)安装Pangolin(可选)
Pangolin是DSO的可视化库,如果不安装Pangolin就看不到重建的效果了,所以建议安装
首先安装glew

brew install brew

安装cmake
说起来cmake我是又爱又恨,很多时候cmake确实很好用,但是学习cmake又需要一定的学习成本,之后在使用cmake编译的时候出现的问题除了环境没有搭好外应该就是cmakelist中路径设置出现问题,关于cmake路径设置烦请大家自行搜索学习

brew install cmake

安装Pangolin
首先进入dso文件下thirdparty文件下

cd /Users/charlie/dso/thirdpartygit clone https://github.com/stevenlovegrove/Pangolin.git cd Pangolin mkdir build cd build cmake .. make

(5)安装libzip(可选)
这个包是用来自动解压zip文件的,建议安装不然之后需要自行解压zip文件,很麻烦

brew install libzipcd /Users/charlie/dso/thirdpartytar -zxvf libzip-1.1.1.tar.gz cd libzip-1.1.1/ ./configure make make install sudo cp lib/zipconf.h /usr/local/include/zipconf.h

到此环境就搭好啦
2.编译并运行DSO
首先cd进dso文件内

mkdir build cd build cmake .. make 

如果cmake通过并make成功的话在dso/build/lib中有libdso.a库文件,如果上述过程安装了Pangolin的话,在dso/build/bin中有dso_dataset文件,使用data_set可运行数据集。数据集从https://vision.in.tum.de/data/datasets/mono-dataset?redirect=1下载。
下载完后将数据集复制到build/bin下并解压,以下以01数据集为例,用其他数据集自行修改一下,在终端中运行

./dso_dataset files=./sequence_01/images.zip calib=./sequence_01/camera.txt gamma=./sequence_01/pcalib.txt vignette=./sequence_01/vignette.png preset=0 mode=0

若未安装ziplib需要手动解压images.zip并将代码修改为images即可。
此外,在Mac上我使用的Xcode 9 存在一个问题就是在make的时候出现static_assert failed “Allocator::value_type must be same type as value_type”,这个问题通过https://github.com/JakobEngel/dso/issues/111的方法可以解决。

原创粉丝点击