Anaconda创建OpenPCDet环境(based on Ubuntu18.04)

note:以下所有步骤都适用于astyx-pcdet

OpenPCDet的安装依赖

  • cmake3.18.2
  • Python3.8
  • Spconv1.2.1
  • PyTorch1.7
  • requirements.txt所需要的一些python库
  1. Python3.8

建议使用Anaconda创建Python3.8的环境,这样可以利用虚拟容器隔离环境。

  1. Spconv1.2.1

spconv库在安装的时候经常遇到的问题是第三库没有下载下来导致的编译失败,spconv中的第三方库也是一个github链接,由于网速或者github网站的本身原因,第三方库的文件夹往往是空的,所以代码下载的命令最好如下:

git clone https://github.com/traveller59/spconv.git --recursive

如果由于网速问题导致第三方库一直是空的,那么就直接在实验室的机器上copy别人的spconv代码。

  1. PyTorch1.7

如果服务器的PyTorch的版本是1.8,直接使用如下命令安装的话:

conda install pytorch torchvision cudatoolkit

安装就是1.8的版本,目前pcdet还不支持1.8,所以只能安装1.7,命令如下:

conda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit
  1. requirements.txt

这个在pcdet的代码文件里面,直接

pip install -r requirements.txt

安装Anaconda

如果自己的机器没有安装Anaconda,按照如下步骤安装Anaconda

sudo apt-get install wget
# 下载anaconda
wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh
# 安装
bash Anaconda3-2020.07-Linux-x86_64.sh
# 添加环境变量
vim ~/.bashrc
#Anaconda
export PATH=$PATH:/home/用户名/anaconda3/bin

Anaconda创建OpenPCDet环境的步骤

  1. 创建conda和Python虚拟环境
conda create -n yourname python=3.8.5 # 名字自己起,最好是和项目相关的名字
  1. 激活环境
source ~/.bashrc
conda activate yourname
  1. 安装Pytorch、Torchvision和cudatoolkit

note:PyTorch需要显卡驱动、cuda和cudnn的,但是这些都已经装好了,如果不能使用,应该是需要你将它们的环境变量添加到你的环境里面。

比如我的环境变量
Anaconda创建OpenPCDet环境(based on Ubuntu18.04)_第1张图片
添加环境变量的方法:

 vim ~/.bashrc
  • 上面的命令会打开vim编辑器,点击键盘i键,进入编辑模式,将如下两行输入或者复制到文件的最后
# cuda
export PATH="/usr/local/cuda/bin:$PATH"                    
export LD_LIBRARY_PATH="/usr/local/cuda/lib64/:$LD_LIBRARY_PATH"
  • 键盘输入:wq退出vim即可,然后就可以安装PyTorch了
conda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit
(y/n)输入y,代表yes

至此conda环境已经配好

  1. 安装Spconv库
  • 首先命令行cd到你想要放置spconv库的文件夹,输入
git clone https://github.com/traveller59/spconv.git --recursive
# 这里要检查spconv/third_party这个文件夹是不是空的,如果是空的,或者这个github网速太慢,那么就找别人copy一下代码
  • 安装依赖
sudo apt-get install libboost-all-dev -o APT::Get::Fix-Missing=true
  • 安装
cd spconv
python setup.py bdist_wheel
cd ./dist
ls 
#ls之后会显示你的whl文件的名称,复制下来用pip install安装
#换成自己的whl文件名字
pip install spconv-1.2.1-cp36-cp36m-linux_x86_64.whl
#之后会有英文提示,安装成功
# 检测安装是否成功
# 命令行输入
python
import spconv
# 如果可以import说明安装成功

至此spconv库安装完毕

  1. 安装PCDet
  • 下载OpenPCDet代码(或者astyx-pcdet代码)
git clone https://github.com/open-mmlab/OpenPCDet.git
git clone https://github.com/kathy-lee/astyx-pcdet.git #这是astyx-pcdet
  • 安装依赖
# 进入文件夹
cd OpenPCDet # cd astyx-pcdet
# 安装依赖
pip install -r requirements.txt 
  • 安装pcdet
python setup.py develop
  • 检验是否安装成功
# 命令行输入
python
import pcdet
# 如果可以import说明安装成功
  • 生成数据集文件
    数据集文件格式如下
    OpenPCDet
    Anaconda创建OpenPCDet环境(based on Ubuntu18.04)_第2张图片
cd OpenPCDet # cd到OpenPCDet文件夹
python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml

Astyx-pcdet
Anaconda创建OpenPCDet环境(based on Ubuntu18.04)_第3张图片

cd astyx-pcdet # cd搭配astyx-pcdet文件夹
python -m pcdet.datasets.astyx.astyx_dataset create_astyx_infos tools/cfgs/dataset_configs/astyx_dataset.yaml

需要等待一段时间

开始训练

  1. 指定单张卡训练
CUDA_VISIBLE_DEVICES=1 python train.py --cfg_file cfgs/astyx_models/pointpillar.yaml --tcp_port 25851 --extra_tag yourmodelname

这里CUDA_VISIBLE_DEVICES=1就是指定1号卡;
cfgs/astyx_models/pointpillar.yaml是训练的配置文件,如果你是kitti的模型那么就是cfgs/kitti_models/pointpillar.yaml,25851是端口号,自己设置,不和别的卡重复就行;
extra_tag后面跟着你这次训练的模型名称,也是自己起,建议每次训练起一个不一样的名字,方便找到自己的训练结果

  1. 指定多张卡训练
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9 python -m torch.distributed.launch --nproc_per_node=10 train.py --cfg_file cfgs/kitti_models/pointpillar.yaml --launcher pytorch --tcp_port 25863 --extra_tag yourmodelname

这里UDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7,8,9指定要使用的卡,–nproc_per_node=10和卡的数量一致,其他参数和单卡训练一样

测试

训练出来的结果会自动计算精度,如果想自己测试某个模型的精度,使用如下命令

python test.py --cfg_file cfgs/astyx_models/pointpillar.yaml --batch_size 4 --ckpt astyx_models/pointpillar/debug/ckpt/checkpoint_epoch_80.pth

这里的cfgs/astyx_models/pointpillar.yaml也是参数文档;
batch_size 4是测试批次;
astyx_models/pointpillar/debug/ckpt/checkpoint_epoch_80.pth是测试模型的路径

参考文章如下 感谢各位大佬的精彩分享 今天又博学了一丢丢!
文章1
文章2
文章3
文章4

你可能感兴趣的:(Ubuntu,3D,Object,Detection,ubuntu,pytorch,anaconda,cv)