一、配置环境
1.安装cuda(因为后续需要安装sponcv,所以建议安装有sopncv版本对应的cuda,这里安装的是cuda11.3)。
关于cuda driver version和cuda runtime version的问题
在终端运行
nvidia-smi
看到的右上角的cuda version是显卡支持的最高cuda toolkit的版本,在cuda toolkit官网中选择可以安装的cuda toolkit:
CUDA Toolkit Archive | NVIDIA Developer
cuda可以安装多个版本进行切换,可以查询其他文章学习。
2.conda创建环境:
conda create -n openpcdet python=3.10
conda activate openpcdet
3.安装pytorch
在pytorch官网找到与cuda版本对应的 pytorch安装
Previous PyTorch Versions | PyTorch
pip install torch==1.12.0+cu113 torchvision==0.13.0+cu113 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu113
4.安装sponcv
选择对应cuda版本的sponcv安装
GitHub - traveller59/spconv: Spatial Sparse Convolution Library
pip install spconv-cu113
二、安装OpenPcdet
1.下载代码
git clone https://github.com/open-mmlab/OpenPCDet.git
2.安装依赖项及编译
在OpenPcdet路径下
pip install -r requirements.txt
python setup.py develop
3.安装一些库(在后面的运行中提示缺少了几个库)
pip install av2 -i https://mirrors.aliyun.com/pypi/simple
pip install kornia==0.6.5
pip install open3d
三、实现demo(使用kitti数据作为演示)
进入OpenPCDet/tools路径下运行:
python demo.py --cfg_file cfgs/kitti_models/pv_rcnn.yaml \
--ckpt pv_rcnn_8369.pth \
--data_path ./data/kitti/training/velodyne/000008.bin
--cfg_file后的是模型配置文件
--ckpt后的是预训练模型可以在OpenPcdet中的Model Zoo中下载
--data_path 后的是点云文件
运行成功后就得到下面的目标识别图了
四、(训练)准备数据集
1.下载数据集
本文使用的是kitti数据集,在kitti官网object中的3D object中下载3D目标识别的数据集。
这里需要单独下载其中的几个压缩文件,并将他们组织成下面的文件树:
OpenPCDet
├── data
│ ├── kitti
│ │ │── ImageSets
│ │ │── training
│ │ │ ├──calib & velodyne & label_2 & image_2 & (optional: planes) & (optional: depth_2)
│ │ │── testing
│ │ │ ├──calib & velodyne & image_2
├── pcdet
├── tools
凭着记忆应该是16MB的是calib,5MB的是label_2,29GB的是Velodyne的点云文件,12GB的是image_2。
2.生成数据信息
python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml
运行成功后会在kitti路径下多出gt_database和5个.pkl文件
五、(训练)使用单个GPU训练
在OpenPcdet/tools路径下运行:
python train.py --cfg_file cfgs/kitti_models/pointrcnn.yaml --batch_size 3 --epochs 60
--cfg_file后的是模型配置文件
还可以指定其他参数如batch_size和epochs。