在Ubuntu18.04中配置有YOLO和ORB-SLAM2的Docker环境

2 篇文章 0 订阅
1 篇文章 0 订阅

安装Docker

前提–学会科学上网

  1. 卸载老版本的Docker
    sudo apt-get remove docker docker-engine docker.io containerd runc
    
  2. 安装依赖库
    sudo apt-get update
    sudo apt-get install \
    	ca-certificates \
    	curl \
    	gnupg \
    	lsb-release
    
    添加Docker GPG key
    sudo mkdir -m 0755 -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o 		/etc/apt/keyrings/docker.gpg
    
    set up repository
    echo \
     "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] 		https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
  3. 安装Docker
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  4. 测试Docker是否安装成功
    sudo docker run hello-world
    
    如果安装成功会出现以下内容
    在这里插入图片描述

安装Nvidia-Docker

前提–当前主机已经安装好了显卡驱动、CUDA、CUDNN等显卡相关的东西
我的电脑配置
CPU–i7-1165G7
GPU–RTX2060
我安装的版本

  1. 显卡驱动–NVIDIA-Linux-x86_64-465.31.run
  2. CUDA–cuda_11.1.0_455.23.05_linux.run
  3. CUDNN–cudnn-11.1-linux-x64-v8.0.5.39

在安装完成显卡驱动之后,就能开始安装Nvidia-docker了

curl https://get.docker.com | sh

sudo systemctl start docker && sudo systemctl enable docker

# 设置stable存储库和GPG密钥:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

# 要访问experimental诸如WSL上的CUDA或A100上的新MIG功能之类的功能,您可能需要将experimental分支添加到存储库列表中.
# 可加可不加
curl -s -L https://nvidia.github.io/nvidia-container-runtime/experimental/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list

# nvidia-docker2更新软件包清单后,安装软件包(和依赖项):
sudo apt-get update

sudo apt-get install -y nvidia-docker2

# 设置默认运行时后,重新启动Docker守护程序以完成安装:
sudo systemctl restart docker

这样Nvidia-docker就安装完成了!

配置Yolo的环境

在这部分主要配置的都是Yolov7的代码环境。
代码地址:https://github.com/WongKinYiu/yolov7
步骤

  1. 先pull一个pytorch的官方镜像
    docker pull pytorch/pytorch:1.9.0-cuda10.2-cudnn7-devel
    
    注意在这里最好用devel版本,便于在这个基础上继续开发
  2. 为这个镜像创建Docker –非常重要!!!需要为后面ORB-SLAM2部分考虑,后面会讲到
    docker run --gpus all -it --ipc=host --net=host --privileged -e DISPLAY=unix$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw -e NVIDIA_DRIVER_CAPABILITIES=all --name="yolo_orb_base" 镜像名称 /bin/bash
    
    这样创建的容器又能调用GPU又能显示SLAM的图像!
  3. 进入容器,先换源
    sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
    sed -i s@/security.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
    apt clean
    apt-get update -y
    
  4. 更新nvidia的key
    在上一步中的apt-get update会报错有关nvidia keyserver
    这里只需要更新一下key就好了
    apt-key adv --recv-keys --keyserver.ubuntu.com 报错中出现的序列号
    #example
    apt-key adv --recv-keys --keyserver.ubuntu.com A4B469963BF863CC
    
    再次apt-get update
  5. 安装一些必要的依赖
    apt-get install git sudo 
    
  6. 下载yolov7–科学上网很有必要
    git clone https://github.com/WongKinYiu/yolov7.git
    
  7. 安装yolov7的python依赖库
    cd yolov7
    pip install -r requirements.txt
    

这样YOLOv7的环境就配置完成了!

ORB-SLAM2的环境配置

这里就比较麻烦,因为docker没有可视化图形界面,要使用x11在本机上显示。
首先在主机上安装x11,并打开

sudo apt-get install x11-xserver-utils
xhost +  //这个命令每次电脑重启都要运行一次

这样就能把图形显示出来!!

  1. 下载ORB-SLAM2代码

    git clone https://github.com/raulmur/ORB_SLAM2.git
    
  2. 安装Pangolin
    先安装依赖库

    sudo apt-get install libgl1-mesa-dev
    sudo apt-get install libglew-dev
    sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
    sudo apt-get install libpython2.7-dev
    

    下载Pangolin,一定要切换到v0.5版本

    git clone https://github.com/stevenlovegrove/Pangolin.git
    cd Pangolin
    git checkout v0.5
    mkdir build
    cd build
    cmake ..
    make
    sudo make install
    

    测试Pangolin是否安装成功

    # 验证
    cd ../examples/HelloPangolin
    mkdir build && cd build
    cmake ..
    make
    ./HelloPangolin
    

    如果安装成功会出现以下图片
    在这里插入图片描述

  3. 安装Opencv 3.4.5
    在这里因为懒得下载,我直接从主系统的目录下拷贝了OpenCV的安装包

    #在主系统中直接从电脑中拷贝opencv的压缩包到docker
    docker cp opecv文件 dockerID:文件目录
    

    解压opencv

    unzip opencv文件
    cd opencv 
    mkdir build
    cd build
    cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
    # 4线程数量,根据电脑性能选择合适的数字
    make -j4
    sudo make install
    

    验证是否安装成功

    # 验证
    cd opencv/samples/cpp/example_cmake
    cmake .
    make
    ./opencv_example
    

    在这里插入图片描述

  4. 安装eigen
    同样的我也是从电脑里直接拷贝的安装包

    # 解压并重命名为opencv
    tar -xvf eigen-3.3.7.tar.gz && mv eigen-3.3.7 eigen
    # 开始编译和安装
    cd eigen
    mkdir build && cd build
    cmake ..
    make
    sudo make install
    #在很多程序中include的一般是#include<Eigen/Dense>而不是 #include<eigen3/Eigen/Dense>
    sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
    
  5. 编译ORB-SLAM2

    cd ORB_SLAM2
    chomd +x build.sh
    ./build.sh
    

    编译中出现 usleepwas not declared错误
    直接在ORB-SLAM2/include/System中加上#include<unistd.h>即可

  6. 照常运行ORB-SLAM2

    ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM3.yaml ../rgbd_dataset_freiburg3_walking_static/../rgbd_dataset_freiburg3_walking_static/associate.txt
    

在这里插入图片描述

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值