Ubuntu16.04下DynaSLAM配置过程(基于tensorflow-gpu)

本文详细介绍了在Ubuntu16.04系统上配置DynaSLAM的过程,包括硬件配置、环境版本、Anaconda虚拟环境的创建、TensorFlow-GPU和Keras的安装、COCOAPI、MaskRCNN的配置、pangolin、Eigen、Boost库以及OpenCV的安装。此外,还提供了针对DynaSLAM源码的修改和编译步骤,以及运行示例和预期效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电脑硬件配置及环境版本

Ubuntu:16.04 LTS
CPU:E5-2620 v3
GPU:GeForce GTX TITAN X
Nvidia-Driver Version:384.130
Cuda:9.0
Cudnn:7.4.1
tensorflow:1.12.3
keras:2.0.9
OpenCV:2.4.11

前言

1.为了不与系统中的环境相互干扰,建议安装Anaconda3并创建虚拟环境,可以方便管理。
2.Dynaslam源码选择其Github库branch中的:DynaSLAM-bbescos-feature-carla

正文

配置Mask RCNN

1.安装与显卡驱动对应版本的Cuda和Cudnn,可以参考链接:在Ubuntu 18.04中配置GPU环境:安装CUDA 9.0等

2.安装tensorflow与keras

// 安装tensorflow1.12.3
pip install tensorflow-gpu==1.12.3 -i https://pypi.tuna.tsinghua.edu.cn/simple/
// 对应keras2.0.9
pip install keras==2.0.9 -i https://pypi.tuna.tsinghua.edu.cn/simple/

3.COCOAPI安装过程
github链接:COCOAPI
下载之后进入PythonAPI目录中

cd cocoapi-master/PythonAPI

执行命令:

make

运行结果:

在这里插入图片描述
之后运行:

sudo make install

运行结果:

在这里插入图片描述
此时若出现ImportError: No module named Cython.Build 的错误,可以直接

pip install Cython

将缺少的包和依赖安装好之后,会出现pycocotools文件夹。前期有教程指出需要将其复制到Dynaslam库中src/python文件夹中,但在我的机器上不需要。若复制还会报“No module named pycocotools”错误,可能是因为两个pycocotools重名导致程序无法准确定位。

4.将mask_rcnn_coco.h5文件放在DynaSLAM-bbescos-feature-carla/src/python文件夹中

下载链接:mask_rcnn_coco.h5
提取码:dyna

5.运行Check.py文件
切换至DynaSLAM-bbescos-feature-carla/src/python目录中
修改其中的Check.py文件,将

ROOT_DIR = "src/python"

更换为:

ROOT_DIR = "./"

并执行:

python Check.py

此时依然可能会出现缺失某些包,如前所述,使用pip命令安装即可
最终运行结果为:

在这里插入图片描述
至此完成Mask RCNN配置。

安装pangolin

1.下载pangolin源码包
Github:https://github.com/stevenlovegrove/Pangolin.git

2.安装依赖项

sudo apt-get install libglew-dev
sudo apt-get install cmake
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev

3.编译安装pangolin

cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 ..
make -j4

安装Eigen

sudo apt-get install libeigen3-dev

安装boost库

sudo apt-get install libboost-all-dev

安装OpenCV

1.建议在OpenCV官网下载opencv2.4.11的source源码
在这里插入图片描述
2.安装OpenCV依赖的软件包,执行:

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

3.解压后,对OpenCV中的OpenCVDetectCXXCompiler.cmake文件进行替换
下载链接:OpenCVDetectCXXCompiler.cmake
提取码:dyna

4.运行

cd opencv-2.4.11/
mkdir build
cd build/

此时需要cmake编译源码。使用如下命令(为了不出现Cuda文件夹中的报错,忘记截图了):

cmake -D CMAKE_BUILD_TYPE=bulid -D CMAKE_INSTALL_PREFIX=/usr/local -D CUDA_GENERATION=Kepler ..

运行结果:

在这里插入图片描述
之后在build目录下运行:

//选择与自己CPU核心数相匹配的数字
make -j4

在这里插入图片描述
5.最后运行

sudo make install

在这里插入图片描述
在这里插入图片描述
至此OpenCV库安装完毕。

接下来,将Dynaslam库及其Thirdparty中的g2o和DBoW2的CMakeLists.txt中出现的-match native去掉。注意是3个文件,不要漏掉。

使用gedit将Dynaslam库src文件夹中viewer.cc打开,修改其出现imshow部分的代码:
修改前:

cv::imshow("DynaSLAM: Current Frame",im);
cv::imshow("DynaSLAM: Dynamic Frame", im_dyn);

修改后:

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

最后进行Dynaslam的编译工作,运行:

cd DynaSLAM-bbescos-feature-carla
bash build.sh

在这里插入图片描述

在DynaSLAM-bbescos-feature-carla中创建文件夹并命名为data,并在data文件夹中再创建两个文件夹分别命名为:mask和output

在这里插入图片描述

将associate过的数据集放在data文件夹中

在这里插入图片描述

最后可以进行代码测试,执行:

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt ./Examples/RGB-D/TUM3.yaml ./data/rgbd_dataset_freiburg3_walking_rpy/ ./data/rgbd_dataset_freiburg3_walking_rpy/associations.txt ./data/mask ./data/output

运行效果

在这里插入图片描述

可以看到,数据集中的动态物体(人)已经被Mask了,在进行特征点提取时会从Mask之外的地方提取。

如有问题,欢迎与我交流。

本文参考链接:
[开源项目配置排坑]DynaSLAM
ubunto18.04编译Dynaslam的痛苦历程-----cpu的版本
ubunto18.04编译安装Dynaslam基于tensorflow-gpu版本
Ubuntu18.04配置开源项目DynaSLAM

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值