OpenPCDet是一个用于3D目标检测的开源工具箱,它提供了多种数据集的加载器,支持多种模型,并且易于扩展。在本博客中,我将引导你完成OpenPCDet的安装过程,并展示如何测试和训练预训练模型。
在开始之前,请确保你的系统满足以下要求:
克隆仓库:
- git clone https://github.com/open-mmlab/OpenPCDet.git
- #官网测试的是pcdet v0.5
- #可以直接使用master进行编译,等其出错再说。
- #使用如下命令进行切换
- git tag
- #v0.1.0
- #v0.1.1
- #v0.2.0
- #v0.3.0
- #v0.5.0
- #v0.5.2
- git checkout v0.5.2
安装依赖库:
- 安装SparseConv库。根据你的PyTorch版本选择合适的spconv版本。
- 对于PyTorch 1.1,安装spconv v1.0(commit 8da6f96)。
- 对于PyTorch 1.3+,安装spconv v1.2或使用作者推荐的Docker。
- 或者,你可以使用pip安装最新的spconv v2.x。
注意:1、30系列的需要使用Cuda11. 否则会报如下错误。
For Ampere-based NVIDIA GPUs, such as GeForce 30 series and NVIDIA A100, CUDA 11 is a must. For older NVIDIA GPUs, CUDA 11 is backward compatible, but CUDA 10.2 offers better compatibility and is more lightweight.2、安装spconv,直接使用命令安装
pip install spconv-cu113
安装OpenPCDet及其依赖:
- python setup.py develop
- #pytorch安装
- #测试pytroch1.6、 1.7的可以。
- #30系列显卡
- conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorch
- #20系列显卡
- conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch
OpenPCDet支持多种数据集,包括KITTI、NuScenes、Waymo、Lyft和Pandaset。以下是准备KITTI数据集的示例:
下载官方KITTI 3D目标检测数据集,并按以下结构组织文件:
- OpenPCDet
- ├── data
- │ ├── kitti
- │ │ ├── ImageSets
- │ │ ├── training
- │ │ │ ├── calib & velodyne & label_2 & image_2 & (optional: planes) & (optional: depth_2)
- │ │ ├── testing
- │ │ │ ├── calib & velodyne & image_2
生成数据信息:
python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml
测试预训练模型是一个了解OpenPCDet性能的好方法。以下是测试步骤:
下载预训练模型:下载所需的预训练模型并将其放置在适当的位置。
测试模型:
- python test.py --cfg_file ${CONFIG_FILE} --batch_size ${BATCH_SIZE} --ckpt ${CKPT}
- #ex
- python test.py --cfg_file ./cfgs/kitti_models/pointpillarback.yaml --ckpt ../checkpoints_office/pointpillar_7728.pth
其中${CONFIG_FILE}
是配置文件的路径,${BATCH_SIZE}
是批处理大小,${CKPT}
是检查点文件的路径。
使用Tensorboard绘制性能曲线:
python test.py --cfg_file ${CONFIG_FILE} --batch_size ${BATCH_SIZE} --eval_all
训练自己的模型是机器学习中最激动人心的部分之一。以下是训练模型的基本步骤:
准备数据集:按照上文所述准备你的数据集。
配置训练参数:在train.py
脚本中设置所需的参数,如批处理大小和训练周期。
开始训练:
使用单个GPU:
- python train.py --cfg_file ${CONFIG_FILE}
- #ex
- python train.py --cfg_file ./cfgs/kitti_models/pointpillar.yaml
使用多个GPU或多台机器:
sh scripts/dist_train.sh ${NUM_GPUS} --cfg_file ${CONFIG_FILE}
监控训练过程:使用Tensorboard或其他可视化工具监控训练过程。
OpenPCDet是一个功能强大的3D目标检测工具箱,它为研究人员和开发人员提供了一个易于使用的平台。通过本指南,你应该能够安装OpenPCDet,测试预训练模型,并开始训练你自己的模型。祝你在3D目标检测领域的探索中取得成功!
关注我的公众号auto_drive_ai(Ai fighting), 第一时间获取更新内容。