CVPR2020 SMOKE 单目相机 3D目标检测环境搭建篇

Posted 一颗小树x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CVPR2020 SMOKE 单目相机 3D目标检测环境搭建篇相关的知识,希望对你有一定的参考价值。

前言

SMOKE是一种用于自动驾驶的实时单目 3D 物体检测器。为什么会注意这边文章呢?是因为这两天发布的百度Apollo 7.0 的摄像头障碍物感知,也是基于这个模型改进的;于是令我产生了一些兴趣。

论文名称:SMOKE: Single-Stage Monocular 3D Object Detection via Keypoint Estimation

论文地址:https://arxiv.org/pdf/2002.10111.pdf

开源地址:https://github.com/lzccccc/SMOKE

本文创建一个基于docker的SMOKE开发环境;SMOKE模型效果如下。

目录

前言

一、环境要求

二、 下载、并进入Ubuntu18镜像

三、安装CUDA 10.0

四、安装Python 3.7

五、安装Pytorch 1.3.1

六、建立 SMOKE 代码环境


一、环境要求

  • Ubuntu 16.04 / Ubuntu 18.04
  • Python 3.7
  • Pytorch 1.3.1
  • CUDA 10.0

二、 下载、并进入Ubuntu18镜像

官网:https://hub.docker.com/_/ubuntu?tab=tags

需要电脑中已经安装好docker,其版本大于19.0;拉取Ubuntu18镜像:

docker pull ubuntu:18.04

进入Ubuntu18 镜像(支持GPU加速)

docker run -i -t  --gpus all -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubuntu:18.04  bash

如果想正常训练模型,内存自然少不了,还需要映射目录;

docker run -i -t -v /home/disk1/guopu/:/home/guopu:rw --gpus all --shm-size 18G -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ubuntu:18.04  bash

解释一下:--shm-size 18G 是指在docker内部,最大能使用18G内存;如果需要更大的,可以自由设置;

-v /home/disk1/guopu/:/home/guopu:rw 是指映射目录,把真实本机目录/home/disk1/guopu/ 映射到docker中的/home/guopu 。这样在docker修改这个映射目录内容,会真实影响本机目录文件。

PS:进入Ubuntu18 镜像(常用方法,但这种方式不能正常使用GPU)

docker run -i -t ubuntu:18.04 /bin/bash

三、安装CUDA 10.0

首先在CUDA Toolkit Archive网页找到 CUDA Toolkit 10.0  地址:https://developer.nvidia.com/CUDA-TOOLKIT-ARCHIVE

选择对应的系统参数,下载CUDA Toolkit 10.0文件:

首先将.deb安装包下载到本地。然后使用ctrl+alt+F1进入终端,使用如下命令关掉图形用户界面:

service lightdm stop

执行上图蓝色框框中的第一条dpkg命令

dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb

执行完之后,在路径 /etc/apt/sources.list.d 下会生成一个cuda-10-0-local-10.0.130-410.48.list 文件,使用cat命令查看该文件:

 $ cat cuda-10-0-local-10.0.130-410.48.list
deb file:///var/cuda-repo-10-0-local-10.0.130-410.48 /

sources.list.d/文件夹下据说是用来存放第三方安装源。比如刚才我们执行dpkg命令,实际上就是新建了一个本地安装源,安装源就存放在生成的。

可以看到,本地cuda仓库被放到了 /var/cuda-repo-10-0-local-10.0.130-410.48 /

现在,执行第二条dpkg命令

官方:apt-key add /var/cuda-repo-<version>/7fa2af80.pub

实际执行:

apt-key add  /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub

再执行第三条和第四条dpkg命令

apt-get update
apt-get install cuda

安装成功后,执行 nvidia-smi  看到有NVIDIA的驱动了;

安装完成后,添加环境变量,打开 bashrc 文件,

命令行输入: vim ~/.bashrc ,然后在文件最后添加下面3行,保存退出

export CUDA_HOME=/usr/local/cuda

export PATH=$PATH:$CUDA_HOME/bin

export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64$LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH

然后刷新下环境变量,输入:source ~/.bashrc

测试下CUDA是否安装成功,输入 nvcc -V ,显示如下,说明基本没问题。

为了确保安全,还需要测试一下:

cd /usr/local/cuda/samples/1_Utilities/deviceQuery
make
./deviceQuery

 成功啦~~

四、安装Python 3.7

4.1 升级包索引和软件

apt update

4.2 安装编译所需包

apt install build-essential zlib1g-dev libbz2-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

4.3 下载Python3.7

官网下载Python-3.7.4.tgz文件

wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz

4.4.解压Python安装包

tar -xzvf Python-3.7.4.tgz

4.5.编译和安装

cd Python-3.7.4
./configure --prefix=/usr/local/src/python37
make
make install

4.6.建立软连接

ln -s /usr/local/src/python37/bin/python3.7 /usr/bin/python3.7
ln -s /usr/local/src/python37/bin/pip3.7 /usr/bin/pip3.7

设置默认使用Python3.7和匹pip3.7

ln -s /usr/local/src/python37/bin/python3.7 /usr/bin/python
ln -s /usr/local/src/python37/bin/pip3.7 /usr/bin/pip

然后更新一下pip的版本,默认是19.x的,目前最新是21.x了

pip install --upgrade pip

安装完成,检测一下python版本:python -V   pip版本:pip -V

五、安装Pytorch 1.3.1

执行如下命令:

pip install torch==1.3.1 torchvision==0.4.2

但我发现太慢了,于是用清华软加速安装

pip install torch==1.3.1 torchvision==0.4.2 -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装好了,检测一下

六、建立 SMOKE 代码环境

首先下载代码,然后建立;

git clone https://github.com/lzccccc/SMOKE
python setup.py build develop

建立完成后,能看到:

还需要安装一些依赖库

pip install yacs scikit-image tqdm  -i https://mirrors.aliyun.com/pypi/simple/

 

完成啦~~

 

以上是关于CVPR2020 SMOKE 单目相机 3D目标检测环境搭建篇的主要内容,如果未能解决你的问题,请参考以下文章

论文解读SMOKE 单目相机 3D目标检测(CVPR2020)

CVPR2020 SMOKE 单目相机 3D目标检测环境搭建篇

CVPR2020 SMOKE 单目相机 3D目标检测环境搭建篇

SMOKE 单目相机 3D目标检测训练模型

SMOKE 单目相机 3D目标检测训练模型

万字长文概述单目3D目标检测算法