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
官网: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-
/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.74.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/
完成啦~~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)