ubuntu16.04下安装Dynaslam的cpu版本(后续补上gpu版本)

我是从18.04开始装的后来发现由于要安装opencv2.4.11,但是在编译opencv2.4.11的过程中有太多编译错误无法解决,而且在结合很多人的博客后依然无法解决我选择了重装系统选择了16.04来进行编译。本人是小白,刚刚接触视觉SLAM,并且看了很多人的博客,因此想记录一下自己的安装过程。

我重装过后是纯净的系统,第一件事请就是装ROS,ROS中有很多依赖项,以方便我们后面在编译过程中不至于一项一项再去下载。

第一步安装并且升级python2.7下的pip版本,因为python2.7下的pip版本过低,无法进行升级和后续的安装tensorflow和keras。

首先卸载低版本的pip两种方法

sudo apt-get remove python-pip
sudo pip uninstall pip

然后去官网官网https://pypi.python.org/pypi/pip下载20.*版本的就行了pip在python2.7下好像最多支持20版本的,以pip-20.3.3.tar.gz为例解压后进入目录

sudo python setup.py install

安装成功后使用pip -V来查看版本,如果版本能够对上那就安装成功了

下一步是安装tensorflow和keras,我没有安装大多数博客写的tensorflow==1.12因为我怎么也装不上

sudo pip install tensorflow==1.3.0
sudo pip install keras==2.0.8

安装完成后用pip list来查看是否安装成功

下一步来安装coco数据包

git clone https://github.com/waleedka/coco.git
cd coco/PythonAPI
make
sudo make install

把将coco/PythonAPI下的pycocotools文件夹和mask_rcnn_coco.h5拖放到Dynaslam的src/python目录下,不是复制过来。

打开Check.py,将第17行的ROOT_DIR = “src/python”,改为ROOT_DIR = “./”,保存退出。

python Check.py

出现如下证明python环境已经配置完成,如果过程中出现问题安装对应的安装包即可

Initialated Mask RCNN network...
Mask R-CNN is correctly working

下面进行opencv2.4.11的编译运行,去官网下载2.4.11版本的opencv,下载后进行解压

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make install

opencv安装完成后开始对dynaslam中的问题进行修改

首先进入dynaslam的文件夹,首先修改主目录下的CMakeLists.txt

对最后三行进行注释,因为examples里面并没有这个C++文件

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

然后对链接opencv2.4.11的路径进行修改,注释掉下面的那一部分然后改成自己opencv的安装路径

#find_package(OpenCV 2.4.11 QUIET)
#if(NOT OpenCV_FOUND)
#    message("OpenCV > 2.4.11 not found.")
#    find_package(OpenCV 3.0 QUIET)
#    if(NOT OpenCV_FOUND)
#        message(FATAL_ERROR "OpenCV > 3.0 not found.")
#    endif()
#endif()
set(OpenCV_DIR ~/opencv-2.4.11/build)
message("PROJECT_SOURCE_DIR: " ${OpenCV_DIR})
find_package(OpenCV 2.4.11 QUIET)

然后删除这两句后面的-match==native

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}  -Wall  -O3 ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall   -O3 ")

然后进入Thirdparty/DBoW2和g2o的CMakeLists.txt同样删除-match==native

接下来就可以对dynaslam进行编译,在主目录下

bash build.sh

编译完成就可以运行了,因为cpu速度比较慢可能几秒钟才一帧

本次编译过程参考了很多博主的博客存在的许多借鉴的地方,如有不便请联系我

由于cpu版本的dyanslam实时性确实比较差,因此来下面补上gpu版本的

首先安装tensorflow-gpu版本

sudo pip install tensorflow-gpu==1.3.0

简单命令安装英伟达的显卡驱动 (根据你的显卡来自动进行推荐我的是GTX1060)

$ sudo ubuntu-drivers autoinstall

 接着安装cuda8.0和对应的cudnn版本

cuda8.0需要去英伟达官网进行下载

sudo chmod a+x cuda_8.0.61_375.26_linux.run
sudo sh cuda_8.0.61_375.26_linux.run

安装过程就是accept no  yes  yes  yes enter...  no的原因是不安装显卡驱动 

 安装cudnn6.0(英伟达官网下载后解压会是一个cuda的文件夹)

cd cuda
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

//查看当前cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

 本次编译过程参考了很多博主的博客存在的许多借鉴的地方,如有不便请联系我

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇

)">
下一篇>>