实例级语义SLAM: MaskFusion:对多个运动目标进行实时识别、跟踪和重构(环境搭建与编译)(二)

一、本人的实验平台:

笔记本i7-7700hq ,8G缓存,GTX1050TI 4G独显,双系统:ubuntu16.04, CUDA 9.0 , CUDNN 7.1 。曾装有ROS(注:会影响后续的编译时候的opencv路径查找) 。后续在GTX1080TI 的服务器上也搭建过。

二、环境搭建:

方法一:根据自己的环境以及习惯,选择依赖路径和安装

参考作者的build.sh文件的安装要求,结合自己的电脑环境,有选择的输入相应指令搭建环境。比如你之前安装过opencv或者OpenNI2,pangolin等依赖库,不想按照作者的文件夹路径设置,也是可行的,一来可以减少电脑硬盘空间的重复浪费使用,二来减少重复安装相同库的烦恼,未尝不是一种明智的选择。但是不严格按照作者文件路径以及结构来搭建的话,后续在编译的过程中需要自己尝试修改CMakelist.txt以及某些代码里面的路径信息,对于初次搭建,对修改编译不熟悉的小白来说此法不建议。不然到时候辛辛苦苦下载安装好相应依赖后,编译死活不通过,一堆路径问题,徒增麻烦 。

方法二:严格按照作者的环境路径结构,方便编译不易出错

1)、默认linux系统,GPU驱动,CUDA已正常安装。不确定是否已安装的自行百度搜索相关指令查询驱动等是否正常安装。

2)、下载MaskFusion源码,解压后放在家目录下。 https://github.com/martinruenz/maskfusion

3)、cd 进入maskfusion,参照build.sh 里的命令结构,执行build.sh 可以选择先下载 install-packages 的内容,virtualenv 会自行帮你创建一个虚拟空间,注意,若此时系统中有已安装Anaconda的,并且安装了tensorflow 以及 python3环境的,会对安装virtualenv后创建python3环境以及安装tensorflow激活环境产生影响(建议virtualenv和Anaconda的虚拟环境只存在一个,减少路径影响)。

4)执行build.sh的build-dependencies 会新建一个deps文件夹,deps下会安装opencv3.1(作者在编译opencv时并没有选择cuda模式,也关闭了大多数的build构建内容,加快了编译速度,减少了编译后的文件大小。但是,如果你的其他应用程序想使用这个编译好的opencv的话,可能会存在有很多文件或者库找不到的情况,但这种编译选择对已本源码完全适用。opencv如何编译可以自行选择),另外此opencv编译后也没有设置进行install ,若需要make install 的自行修改Cmake选项。

5)然后会顺序的在deps下安装boost、pangolin、OpenNI2、freetype-gl-cpp、DenseCRF、gSLICr、MaskRCNN等依赖库。注意此时我的路径结构是:/home/sheng/maskfusion/deps/(这些依赖库)。

实例级语义SLAM: MaskFusion:对多个运动目标进行实时识别、跟踪和重构(环境搭建与编译)(二)_第1张图片

6) 最后一步骤进行编译:

mkdir -p build
cd build
ln -s ../deps/Mask_RCNN ./ || true # Also, make sure that the file 'mask_rcnn_model.h5' is linked or present
cmake \
  -DBOOST_ROOT="${BOOST_ROOT}" \
  -DOpenCV_DIR="$(pwd)/../deps/opencv/build" \
  -DPangolin_DIR="$(pwd)/../deps/Pangolin/build/src" \
  -DMASKFUSION_PYTHON_VE_PATH="$(pwd)/../python-environment" \
  -DWITH_FREENECT2=OFF \
  ..
make -j8
cd ..

实例级语义SLAM: MaskFusion:对多个运动目标进行实时识别、跟踪和重构(环境搭建与编译)(二)_第2张图片

编译成功后就可以进行探索如何调试运行了。

在下一篇博文中将具体分享如何跑代码,以及遇到的问题。

 

你可能感兴趣的:(opencv,SLAM,ubuntu16,视觉SLAM,深度学习,语义SLAM)