1.pointpillar介绍
pointnet++直接将点云作为输入进行训练。VoxelNet首先将点云进行体素化表示,再对体素化后的数据进行训练,本质上还是对三维数据的训练。为了减少计算损耗,pointpillar先将点云划分为各个 pillar再将处理后的数据映射到二维空间,大大减少了计算资源的消耗。
pointnet:知骤:细嚼慢咽读论文:PointNet论文及代码详细解析
点云体素化方法:点云体素化-优快云博客
voxelNet:周威:【3D物体检测】VoxelNet论文和代码解析
pointpillar:周威:【3D目标检测】PointPillars论文和代码解析
2.pointpillar安装
安装OpenPCDet
Linux操作系统(Ubuntu 14.04/16.04/18.04/20.04/21.04/22.04)
Python 3.6或更高版本
PyTorch 1.1或更高版本(测试了1.1, 1.3, 1.5到1.10)
安装链接:https://github.com/open-mmlab/OpenPCDet
创建虚拟环境
conda create -n pcdet python==3.7
激活环境
conda activate pcdet
pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt
-
运行以下的命令安装pcdet库
python setup.py develop
准备数据集
官方的KITTI数据集下载链接如下:KITT数据集官方下载链接
OpenPCDet
├── data
│ ├── kitti
│ │ │── ImageSets
│ │ │── training
│ │ │ ├──calib & velodyne & label_2 & image_2 & (optional: planes) & (optional: depth_2)
│ │ │── testing
│ │ │ ├──calib & velodyne & image_2
├── pcdet
├── tools
在完成数据集的准备之后我们再对数据集进行处理,从而生成kitti_gt_database中的的 .bin 格式的文件和.pkl 格式文件,处理的命令如下:
python -m pcdet.datasets.kitti.kitti_dataset create_kitti_infos tools/cfgs/dataset_configs/kitti_dataset.yaml
测试、训练与演示
//演示文件
python demo.py --cfg_file cfgs/kitti_models/pointpillar.yaml --ckpt ../output/kitti_models/pointpillar/default/ckpt/latest_model.pth --data_path ../data/kitti/testing/velodyne/000034.bin
//测试文件
cd tools
python test.py --cfg_file cfgs/kitti_models/pointpillar.yaml --batch_size 4 --ckpt ../output/kitti_models/pointpillar/default/ckpt/latest_model.pth
//训练文件
cd tools
python train.py --cfg_file ./cfgs/kitti_models/pointpillar.yaml --epochs 100
3.评价指标
训练密完成后输出评价指标如下:
Car coco AP@0.50:0.05:0.95:
bbox AP:72.62, 68.94, 67.36
bev AP:70.40, 66.24, 64.21
3d AP:61.57, 56.84, 54.95
aos AP:0.17, 0.93, 1.76
Cyclist coco AP@0.25:0.05:0.70:
bbox AP:79.73, 67.53, 65.18
bev AP:73.43, 58.34, 56.04
3d AP:70.07, 54.83, 52.43
aos AP:0.87, 1.93, 1.79
Pedestrian coco AP@0.25:0.05:0.70:
bbox AP:54.61, 53.78, 50.98
bev AP:59.19, 54.69, 50.82
3d AP:54.40, 50.16, 47.19
aos AP:5.73, 6.01, 5.94
Van coco AP@0.50:0.05:0.95:
bbox AP:33.89, 29.62, 27.60
bev AP:35.59, 30.77, 28.82
3d AP:28.08, 24.45, 22.28
aos AP:0.36, 0.16, 0.54
PointPillars 的评价指标基于 COCO-style AP(Average Precision) 计算方式,对不同类别的目标(如 Car、Cyclist、Pedestrian、Van)分别评估了 2D检测、Bird’s Eye View (BEV)检测、3D检测以及角度相似度 (AOS),具体解释如下:
类别含义
COCO-style AP 采用 多尺度 IoU(Intersection over Union)阈值,计算 AP 时,不同类别的 IoU 设定不同的范围:Car 类别:AP 计算基于 IoU ∈ [0.50:0.05:0.95](从 0.50 到 0.95,步长 0.05) Cyclist & Pedestrian 类别:AP 计算基于 IoU ∈ [0.25:0.05:0.70](从 0.25 到 0.70,步长 0.05) Van 类别:AP 计算基于 IoU ∈ [0.50:0.05:0.95](同 Car) COCO AP 计算方法:
指标含义
每个类别都计算以下四个主要指标: bbox AP:2D 边界框检测(基于图像的目标检测)。 bev AP:Bird’s Eye View(BEV,俯视视角的检测)。 3d AP:完整的 3D 检测,评估目标在三维空间的检测精度。 aos AP:角度相似度 (AOS, Average Orientation Similarity),评估目标的方向估计精度。