ubuntu18.04配置Dynaslam详细过程,cpu版本

本方法在多次重装系统后多次配置仍成功。为保证下列步骤顺利运行,前提为:在电脑上已成功配置orbslam2,电脑已确保外网下载顺利。本方法仅在ubuntu18.04上配置。

1.项目源码下载:

git clone https://github.com/BertaBescos/DynaSLAM.git

2.对应环境配置    tensorflow:1.12.3   keras:2.0.9     python2.7(ubuntu18.04自带)

2.1 pip安装keras2.0.9

pip install keras==2.0.9 -i https://pypi.tuna.tsinghua.edu.cn/simple/

若缺少pip命令,安装即可。

sudo apt install python-pip

2.2  pip安装tensorflow:1.12.3

https://pypi.tuna.tsinghua.edu.cn/simple/

下载tensorflow-1.12.3-cp27-cp27mu-manylinux1_x86_64.whl

到下载tensorflow-1.12.3-cp27-cp27mu-manylinux1_x86_64.whl的位置如/home 执行以下命令:
sudo pip install tensorflow-1.12.3-cp27-cp27mu-manylinux1_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.3安装scikit-image(使用pip安装)

sudo apt-get install libblas-dev liblapack-dev
sudo pip install scikit-image

2.4 安装所有需要的依赖,依次执行即可(很多问题出在这,提前安装好)

sudo apt-get install libboost-all-dev

sudo apt install libcanberra-gtk-module -y

pip install protobuf==3.17.3

3.Mask RCNN配置:

3.1下载coco   git clone https://github.com/waleedka/coco.git  (下载在英文路径上)

cd coco/PythonAPI

make

sudo make install

运行完成后将coco/PythonAPI/中的pycocotools文件夹复制到Dynaslam/src/python

3.2修改Dynaslam/src/python中的Check.py文件

第17行改为:ROOT_DIR = "./"

3.3下载网站中的Mask R-CNN 1.0中的mask_rcnn_coco.h5放在Dynaslam/src/python

Releases · matterport/Mask_RCNN · GitHub

ubuntu18.04配置Dynaslam详细过程,cpu版本_第1张图片

 

3.4在 Dynaslam/src/python下运行

 python Check.py

ubuntu18.04配置Dynaslam详细过程,cpu版本_第2张图片

 

4.源码安装opencv2.4.11

ubuntu18.04安装opencv2.4.11出现很多问题。这里依次执行命令即可。
4.1官网下载opencv源码 sources

Releases - OpenCV

解压提取文件。

4.2ubuntu18.04自带安装gcc-7/g++-7,cmake时选择切换为gcc-5/g++-5

打开终端,安装gcc-5/g++-5

sudo apt-get install gcc-5 

sudo apt-get install g++-5

cd ..
cd ..
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-5 gcc
sudo rm g++
sudo ln -s g++-5 g++

进入opencv-2.4.11文件夹

4.3将/opencv-2.4.11/cmake中的OpenCVDetectCXXCompiler.cmake替换为网盘中的内容:

https://pan.baidu.com/share/init?surl=FB3R7dQx1UO6TU3tSuuKdw

提取码:dyna

cd opencv-2.4.11

mkdir build

cd build

cmake -D CMAKE_BUILD_TYPE=bulid -D ENABLE_PRECOMPILED_HEADERS=OFF -D WITH_FFMPEG=OFF -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2.4.11 -D CUDA_GENERATION=Kepler ..

注意:安装路径在usr/local/opencv2.4.11

4.4cmake后,切换为gcc-7/g++-7make

打开终端

cd ..
cd ..
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-7 gcc
sudo rm g++
sudo ln -s g++-7 g++

找到opencv-2.4.11/build/modules/contrib/CMakeFiles/opencv_contrib.dir/flags.make文件,删掉-Werror=address,然后make,建议多线程编译,我电脑是8核。

sudo make -j8
sudo make install 

5.dynaslam编译

5.1CMakeLists.txt注释末尾的以下代码

#add_executable(mono_carla)
#Examples/Monocular/mono_carla.cc)
#target_link_libraries(mono_carla ${PROJECT_NAME})

5.2进入src中viewer.cc,按Ctrl+F查找imshow,我们可以看到2个imshow,而且调用之前没有判断,会在某些情况导致程序终止。我们将下面两句话依次对应替换即可(其实就是先if(!image.empty())判断一下)。

if(!im.empty()){cv::imshow("DynaSLAM: Current Frame",im);}

if(!im_dyn.empty()){cv::imshow("DynaSLAM: Dynamic Frame", im_dyn);}

5.3 cd Dynaslam编译

chmod +x build.sh

./build.sh

ubuntu18.04配置Dynaslam详细过程,cpu版本_第3张图片

 6.一些不一定需要的操作

如果完全按照我的操作来,应该不会报错,最近一次没执行也成功。

6.1 CMakeLists.txt    " -march=native " 删除

6.2 对于5.2的操作,其实不影响编译。

7.Dynaslam运行

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml /home/ljq/TUM/rgbd_dataset_freiburg3_walking_xyz Examples/RGB-D/associations/fr3_walking_xyz.txt maskpath inpaintedFrame

./Examples/RGB-D/rgbd_tum是运行命令,Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml是配置文件yaml路径,/home/ljq/TUM/rgbd_dataset_freiburg3_walking_xyz是我的fr3_walking_xyz路径,Examples/RGB-D/associations/fr3_walking_xyz.txt的fr3_walking_xyz.txt其实是TUM数据集执行python associate.py rgb.txt depth.txt > associations.txt后生成的associations.txt,在源码的associations中一共有8个。

其中maskpath和inpaintedFrame是自己创建的目录,maskpask如果不指定的话就不调用深度学习框架进行动态目标检测,inpaintedFrame如何不指定的话就不进行背景修复,运行中如果出现错误初始化不成功,可以在tum文件中修改(提高)特征点数目(gedit Examples/RGB-D/TUM3.yaml)(默认1000,改为3000

ubuntu18.04配置Dynaslam详细过程,cpu版本_第4张图片

 

参考自:[开源项目配置排坑]DynaSLAM - 知乎

你可能感兴趣的:(slam,目标检测,linux,ubuntu)