SLAM及深度学习环境配置总教程

环境配置总教程

一. 装机后下载

  1. 修改软件源,选择下载自阿里云镜像;然后更新软件系统

    sudo apt-get update
    sudo apt-get upgrade
    
    • 依次下载常用的软件:git、cmake、截图软件、解压软件、vim编译器;
    sudo apt-get install git cmake shutter unrar vim
    
    • 下载:系统指示器SysPeek、经典菜单指示器、Markdown编辑器;
    sudo add-apt-repository ppa:nilarimogard/webupd8
    sudo add-apt-repository ppa:diesch/testing
    sudo add-apt-repository 'deb http://typora.io linux/'
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
    sudo apt-get update
    sudo apt-get install syspeek
    sudo apt-get install classicmenu-indicator
    sudo apt-get install typora
    
    • 下载搜狗拼音输入法:
     sudo gedit /etc/apt/sources.list.d/ubuntukylin.list
    

    ​ 在文件内写入 :

    deb http://archive.ubuntukylin.com:10006/ubuntukylin trusty main
    

    ​ 然后:

    sudo apt-get update
    sudo apt-get install sogoupinyin
    

    ​ 最后在系统设置界面更新语言包;

    • 下载sublime_text_3:参考https://blog.csdn.net/alxe_made/article/details/80756040

    • 设置管理员权限:

      sudo passwd(首次进入设置密码)
      su root(以后要求进入管理员权限都这样输入命令)
      
  2. 配置驱动(drivers)、显卡工具箱(cuda)及深度学习加速库(cudnn)

    • 下载地址:

      drivers:https://www.geforce.cn/drivers;
      cuda:https://developer.nvidia.com/cuda-toolkit-archive;
      cudnn:https://developer.nvidia.com/rdp/form/cudnn-download-survey;

    • 教程:

      (以10.2为例)
      drivers:https://blog.csdn.net/lemonxiaoxiao/article/details/105688497;
      cuda/cudnn:https://blog.csdn.net/lemonxiaoxiao/article/details/105693389;

    • 备注1:已预先下载好1060及1080Ti系列驱动,cuda8.0、cuda9.0、cuda10.2及对应的cudnn;

    • 备注2:显卡驱动在“软件和更新”中“附加驱动选项卡”中默认安装并使用nvidia384.130,手动更新驱动后被标记为手动安装。

    • 备注3:当重启后有比例显示不正确现象时,显卡驱动被自动调整到了xserver,此时重装驱动即可。

    • 备注4:keras、tensorflow-gpu、cuda、cudnn有版本匹配要求:推荐设置cuda9.0+cudnn7.6.0+TensorFlow-gpu1.5.0+keras2.1.4

  3. 配置opencv3与opencv2

    • 安装依赖项:

      sudo apt-get install build-essential pkg-config unzip libjpeg-dev
      sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev
      sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
      sudo apt-get install libxvidcore-dev libx264-dev
      sudo apt-get install libatlas-base-dev gfortran libgtk-3-dev
      sudo apt-get install python2.7-dev python3.5-dev python-imaging-tk
      sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
      sudo apt-get install libhdf5-serial-dev graphviz
      sudo apt-get install libopenblas-dev libatlas-base-dev gfortran
      sudo apt-get install linux-image-generic linux-image-extra-virtual
      sudo apt-get install linux-source linux-headers-generic
      sudo apt-get install libcurl4-gnutls-dev
      sudo apt-get install zlib1g-dev
      sudo apt-get install libgtk2.0-devlibavcodec-dev libavformat-dev libswscale-dev
      sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev 
      sudo apt-get install libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
      sudo apt-get install -y python-dev python-tk python-numpy python3-dev python3-tk python3-numpy
      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 
      sudo apt-get install libjasper-dev libopenexr-dev libdc1394-22-dev
      

      上述依赖项有可能有重复和不必要的,不过没有关系。如果发现缺少依赖项,百度对应版本的安装说明,并重新安装一下。

    • opencv3.4.4为例,如果源码下载需要手动修改源文件,详见教程;但是文件夹下已经提供了修整好的版本:

      教程:https://blog.csdn.net/weixin_43327725/article/details/105852173

      辅助参考:https://zhuanlan.zhihu.com/p/38738976

      修正后下载后在build文件夹下(如果有东西请删清重来,下同):

      cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.4/modules/ .. 
      (注意这里的opencv_contrib位置需要手动修改)
      make -j5
      (根据电脑的几核,量力而为)
      sudo make install
      

      带有opencv的CMakeList.txt的简单写法详见附录。

    • opencv2.4.11为例,如果源码下载需要手动修改源文件,详见教程;但是文件夹下已经提供了修整好的版本:

      教程:https://blog.csdn.net/ljl1015ljl/article/details/100749835

      修正后下载后在build文件夹下:

      cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2.4.11  -D WITH_CUDA=ON -D BUILD_PYTHON_SUPPORT=ON -D WITH_FFMPEG=OFF -D BUILD_EXAMPLES=ON   -D BUILD_TIFF=ON ..
      make -j5
      sudo make install
      
    • 默认安装配置为opencv3,当使用opencv2时,在CMakeList.txt中加入:

      set(OpenCV_DIR /home/demo/opencv-2.4.11/build)
      

      其中,/home/demo/opencv-2.4.11是本人安装opencv2的位置,修改对应位置即可。

    • opencv使用参考:http://www.opencv.org.cn/forum/

  4. 虚拟容器环境配置:该部分主要用于配置深度学习

    • 更新依赖和配置
    wget https://bootstrap.pypa.io/get-pip.py
    sudo python get-pip.py
    sudo python3 get-pip.py
    sudo pip install virtualenv virtualenvwrapper
    sudo rm -rf ~/.cache/pip get-pip.py
    
    • 配置文件:

      sudo gedit ~/.bashrc
      

      在文件结尾出写入:

      export WORKON_HOME=$HOME/.virtualenvs
      export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
      source /usr/local/bin/virtualenvwrapper.sh
      

      更新配置:

    source ~/.bashrc

    
    + 创建虚拟环境
    
    ```shell
    mkvirtualenv dl4cv -p python3
    

    当以后启用虚拟环境时,调用命令:

    workon dl4cv
    

    在虚拟容器中,可以随意更换不同版本的python、tensorflow、keras等

    • 虚拟环境切换python版本问题:https://blog.csdn.net/be_clever/article/details/100917687

      sudo add-apt-repository ppa:deadsnakes/ppa
      sudo apt update
      sudo apt install python3.6
      sudo apt-get install python3.6-dev
      python3.6 -V
      mkvirtualenv py36 -p python3.6  # (之后就可以用workon py36登录)
      
    • 删除虚拟环境:没有使用virtualenvwrapper前,可以直接删除venv文件夹来删除环境

    • 其他虚拟环境参考:https://zhuanlan.zhihu.com/p/60647332

    • 更换pip国内源:

      参考:https://blog.csdn.net/yuzaipiaofei/article/details/80891108,推荐清华源。

    • 下载相关python库:

      pip install numpy
      pip install scipy matplotlib pillow
      pip install imutils h5py requests progressbar2
      pip install scikit-learn scikit-image
      pip install tensorflow==1.3.0(当安装maskrcnn时不要安装太高,其他随意)
      pip install tensorflow-gpu
      ip install keras==2.0.8(注意和tf版本保持一致)
      
    • 链接opencv到虚拟环境中:

      cd ~/.virtualenvs/dl4cv/lib/python3.5/site-packages/
      ln -s /usr/local/lib/python3.5/site-packages/cv2.cpython-35m-x86_64-linux-gnu.so cv2.so
      cd ~
      
  5. 安装QQ,微信,迅雷等windows应用:

    • 利用wine: https://blog.csdn.net/weixin_39583302/article/details/105617534
    • 配置微信出现问题: https://blog.csdn.net/fuetong/article/details/105019052
  6. github快速下载方案:

    利用码云:https://gitee.com/,链接自己的github账号,将目标fork进自己的仓库,然后迁移至码云上下载。

二、ORB-SLAM2系统安装配置

  1. 详见之前写的博客:https://blog.csdn.net/ns2942826077/article/details/89716538

     2. 附上ORB-SLAM2注释:https://gitee.com/atery/ORB-SLAM2
    
    1. 代码运行调试环境:CLion, 已申请教育版账户, 用户名, 邮箱, 密码;
      1. Clion汉化方案: https://blog.csdn.net/pingfangx/article/details/78826155

三、ROS安装配置

  1. 下载安装:https://www.ncnynl.com/archives/201801/2273.html

  2. 上述安装时,使用 sudo rosdep init 后出现:

    ERROR: cannot download default sources list from:
    https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
    Website may be down.
    

    解决:https://blog.csdn.net/nanianwochengshui/article/details/105702188

  3. 安装编译环境: https://github.com/TonyRobotics/RoboWare/tree/master/Studio

四、Dynaslam安装配置

    • 环境配置版本:参考博客https://blog.csdn.net/Mac0327/article/details/105861895 和 https://blog.csdn.net/l243225530/article/details/105900272

    • [libprotobuf FATAL google/protobuf/stubs/common.cc:61] This program requires version 3.7.0 of the Protocol Buffer runtime library, but the installed version is 2.6.1. Please update your library. If you compiled the program yourself, make sure that your headers are from the same version of Protocol Buffers as your link-time library. (Version verification failed in "bazel-out/k8-opt/genfiles/tensorflow/core/framework/tensor_shape.pb.cc".)
      

      注意,一定要用opencv2,并在cmake时候确认一下,否则编译时候没有问题,但是在运行时候会报上述protobuf版本不一致的问题(我并不清楚是不是这个原因,也有可能是opencv2编译时候开启了cuda模块的原因,但是这样做的确解决了上述问题),记住,如果报错千万不要更改protobuf版本。python最好接入python2版本的。

    • 初始化失败时在TUMX.yaml文件下的特征点提取数目修正为3000

  1. docker镜像安装:https://github.com/yubaoliu/DynaSLAM,这位大佬在B站放了个视频,也可以参考下他的博客:https://blogger.yubaoliu.cn/2020/05/how-to-use-dynaslam-using-docker.html。

五、DS-SLAM安装配置

  1. 总体流程参考:

    • https://blog.csdn.net/yinghuaxuan/article/details/89969197
    • https://blog.csdn.net/weixin_42795611/article/details/93878061
  2. 问题索引:

    • error while loading shared libraries: libcudart.so.8.0: cannot open shared object file: can not open:https://blog.csdn.net/qq_38451119/article/details/81126692
    • 编译caffe 遇到 与c++11或gnu++11相关的问题:https://blog.csdn.net/u012505617/article/details/88532982
    • makefile编译中 : Unsupported gpu architecture ‘compute_20’:https://blog.csdn.net/m0_37659647/article/details/103940041
    • caffe/blob.hpp:9:34: fatal error: caffe/proto/caffe.pb.h: 没有那个文件或目录:https://www.cnblogs.com/hellowooorld/p/10675787.html
    • *** No rule to make target ‘…/…/…/…/lib/libORB_SLAM2_PointMap_SegNetM.so’, needed by ‘…/TUM’。 停止:https://blog.csdn.net/qq_35590091/article/details/103762581
    • warning: #warning “math_functions.h is an internal header file and must not be used directly. This file will be removed in a future CUDA release. Please use cuda_runtime_api.h or cuda_runtime.h instead.” [-Wcpp]:https://github.com/BVLC/caffe/pull/6681
  3. 编译该部分之前需要调整ROS中的rviz配置.

  4. 实测:440.82驱动+CUDA9.0+cudnn7.0.5版本能够使用,当CUDA或者cudnn版本过高容易出现错误.

六、Mask R-CNN安装配置

  1. 教程:https://blog.csdn.net/qq_15192373/article/details/81697753,此时tensorflow cpu版本可以为1.12.3
  2. 安装coco的PythonAPI后将生成的pycocotools文件夹放置于coco文件夹下
  3. 安装前在 ~/.bashrc文件尾部注释掉关于ROS的内容
  4. 使用python3来编译安装,推荐使用虚拟容器(启动workon dl4cv),但是在dynaslam中使用python2运行安装
  5. 已对visualize.py文件和demo.py进行了修改以适应SLAM要求,原版本文件在visualize.old.py和demo.ipynb中

七、DAT-SLAM配置(毕业设计)

  1. 该部分利用git上传至码云(仓库私有),已开启SSH链接

  2. git学习:https://www.shiyanlou.com/courses/,推荐国内用户选择码云。

  3. 每当修改文件后,使用

    git add . //提交暂存区
    git commit -m "修改内容注释:修改人/版本" //提交版本区
    git push //上传同步
    

八、DynSLAM安装配置(仅限于Demo)

  1. 在README.md文件中选择作者修改过的InfiniTAM系统下载:https://github.com/AndreiBarsan/InfiniTAM,位置在src文件下。

  2. 由于作者推荐的git命令 “git clone –recursive https://github.com/AndreiBarsan/DynSLAM” 采用 –recursive指令递归下载对应的配置库文件,在国内不是很方便,因此需要手动安装。这里推荐码云中搜索别人的镜像库文件快速下载。

  3. 检查依赖环境:

    sudo apt-get install libxmu-dev libxi-dev freeglut3 freeglut3-dev libglew-dev glew-utils libpthread-stubs0-dev binutils-dev libgflags-dev libpng++-dev libeigen3-dev
    
  4. 编译依赖库文件:

    cd src/Pangolin && mkdir build/ && cd $_ && cmake ../ && make -j$(nproc)
    
  5. 编译本身文件:

    mkdir build && cd build && cmake .. && make -j$(nproc)
    
  6. 解决错误:Actually build ElasticFusion error: ‘glDrawFrustrum’ is not a member of ‘pangolin’

    将报错文件夹下的glDrawFrustrum修改为glDrawFrustum

  7. 下载demo序列(400+M,Google driver):可以在淘宝转存百度网盘下载

  8. 运行demo

    cd .. && ./build/DynSLAMGUI --use_dispnet --dataset_root=./data/kitti/mini-seq-06/ --dataset_type=kitti-odometry
    

九、Stereo DSO安装配置

  • 安装依赖:

    sudo apt-get install libsuitesparse-dev libeigen3-dev libboost-all-dev
    sudo apt-get install libopencv-dev
    安装Pangolin(详见ORB-SLAM2安装)
    sudo apt-get install zlib1g-dev
    cd ./thirdparty
    tar -zxvf libzip-1.1.1.tar.gz
    cd libzip-1.1.1/
    ./configure
    make
    sudo make install
    sudo cp lib/zipconf.h /usr/local/include/zipconf.h   # (no idea why that is needed).
    git submodule update --init
    
  • 编译系统

    在dso目录下:
    	mkdir build
    	cd build
    	cmake ..
    	make -j
    
  • 添加calib文件:以KITTI数据级为例

    新建para文件夹及00.txt,在00.txt中添加:

    Pinhole 7.188560000000e+02 7.188560000000e+02 6.071928000000e+02 1.852157000000e+02 0
    1241 376
    crop
    1240 376
    0.53717
    
  • 运行测试

  • 无光度标定(最小模式):

    ./bin/dso_dataset \
        files=/home/amax/Demo/chj/TOOLKIT/KITTI/00 \
        calib=/home/amax/Demo/chj/TOOLKIT/KITTI/00/para/00.txt \
        preset=0 \
        mode=1
    
  • 标准流程:

    bin/dso_dataset \
    		files=XXXXX/sequence_XX \
    		calib=XXXXX/sequence_XX/para/camera.txt \
    		gamma=XXXXX/sequence_XX/para/pcalib.txt \
    		vignette=XXXXX/sequence_XX/para/vignette.png \
    		preset=0 \
    		mode=1
    		
    + files:数据集图片压缩包
      calib:相机内参数文件
      gamma和vignette:相机的一些特性参数,光度标定文件。
      preset:设定DSO运行时的参数,如选取的像素点个数等等。preset=3是preset=0的5倍速运行DSO。
      mode:DSO模式切换,如0为包含光度标定文件,1为只包含内参数,2为没有畸变参数
    
  • List item

你可能感兴趣的:(ubuntu)