PointPillars3D点云目标检测Skill tao-train-pointpillars

这是一个基于 NVIDIA TAO 工具包的技能,用于 PointPillars 模型的训练、评估、导出、剪枝和推理。它支持将 LiDAR 点云转换为支柱(pillar)伪图像,并应用2D检测,从而实现3D目标检测。主要关键词:PointPillars、LiDAR、点云、3D目标检测、TAO、自主驾驶、机器人、TensorRT、模型训练。

自动驾驶感知模型 0 次安装 0 次浏览 更新于 9/6/2026

技能名称:PointPillars 点云3D目标检测(tao-train-pointpillars)

描述:PointPillars 用于从 LiDAR 点云进行3D目标检测。通过基于柱状体的表示将点云编码为伪图像,然后应用2D检测。用于自动驾驶/机器人领域。

许可证:Apache-2.0 兼容性:需要 docker + nvidia-container-toolkit 作者:NVIDIA Corporation 允许工具:Read Bash 标签:point、cloud、3d、detection

PointPillars

PointPillars 用于从 LiDAR 点云进行3D目标检测。通过基于柱状体(pillar)的表示将点云编码为伪图像,然后应用2D检测。适用于自动驾驶和机器人领域。

通常需从头训练。若要恢复训练,请提供 train.resume_training_checkpoint_path 路径。

对于 TAO Deploy TensorRT 操作(gen_trt_engine、TensorRT 的 evaluate 和 inference),请先阅读 references/tao-deploy-pointpillars.md。部署规范模板位于 references/ 目录,文件名前缀为 spec_template_deploy_*.yaml。

打包的 PyTorch PointPillars CLI 支持 dataset_convert、train、evaluate、inference、export、prune。没有单独的 retrain 子命令;重训剪枝模型时,使用 pointpillars train -e …,并在 train.pruned_model_path 中指定剪枝模型路径。

数据类架构

生成的 TAO Core schema 文件位于 schemas/<action>.schema.json,schemas/manifest.json 列出可用操作。每个 schema 还从其顶层 default 生成 references/spec_template_<action>.yaml 模板。AutoML 启用状态在 references/skill_info.yaml 中的 automl_enabled 字段声明。若要运行 AutoML,需要具备对应操作的 schema 和 spec 模板。

训练操作策略

该模型在模型层启用 AutoML。默认 automl_policy 为 on。当用户要求关闭 AutoML、禁用 HPO 或普通训练时,将本次运行的 automl_policy 置为 off。若 automl_policy=on 且具备 train.schema.json 和 spec_template_train.yaml,则通过 tao-skill-bank:tao-run-automl 技能来执行训练。非训练动作(evaluate、inference、export 等)仍在本技能中处理。

训练要求

  • 数据集类型:pointpillars
  • 数据格式:default
  • 监控指标:loss

逐操作数据集要求

动作 Spec 键 数据来源 文件/路径
dataset_convert dataset.data_path id
evaluate dataset.data_path train_datasets
evaluate dataset.data_info_path train_datasets /results/{dataset_convert_job_id}/results_dir/data_info/
export dataset.data_info_path train_datasets /results/{dataset_convert_job_id}/results_dir/data_info/
inference dataset.data_info_path train_datasets /results/{dataset_convert_job_id}/results_dir/data_info/
prune dataset.data_info_path train_datasets /results/{dataset_convert_job_id}/results_dir/data_info/
retrain dataset.data_info_path train_datasets /results/{dataset_convert_job_id}/results_dir/data_info/
train dataset.data_info_path train_datasets /results/{dataset_convert_job_id}/results_dir/data_info/

说明:所有动作都必须提供 dataset.data_path 和 dataset.data_info_path,后者的路径通常来自 dataset_convert 作业输出。

常用规范覆盖

数据源覆盖是强制性的。例如设置:

  • DATA_ROOT = s3://bucket/data/pointpillars
  • DATA_INFO = /results/{dataset_convert_job_id}/results_dir/data_info
  • CHECKPOINT = /results/{train_job_id}/results_dir/checkpoint_epoch_1.pth
  • PRUNED_MODEL = /results/{prune_job_id}/results_dir/pruned_0.1.tlt

原始 PointPillars 目录必须是已解压的文件夹,含有 train/lidar、train/label、val/lidar、val/label 子目录。若数据为分开的 train/val 压缩包,需都解压到同一个根目录,并将 dataset.data_path 指向该根。

对于本地 Docker,DATA_INFO 必须能在容器内访问。若主机结果目录挂载到 /results,则容器内路径可能是 /results/results/<job_id>/results_dir/data_info。不要跨运行根使用错误路径。

在 AutoML 训练前,需在当前 RESULTS_ROOT 下生成 dataset_convert 产物,并确认训练容器可看到 dbinfos_train.pkl、infos_train.pkl、infos_val.pkl。

评估数据集

可选。验证数据(val.tar.gz)独立于训练数据。用于 mAP 评估。

重要参数

  • train.num_epochs:默认 80,PointPillars 需要较多 epoch 收敛。
  • train.lr:学习率,默认 0.003,配合 adam_onecycle 调度器。
  • dataset.class_names:3D 目标类别列表,默认 7 类(KITTI 风格)。
  • dataset.data_path:点云数据目录路径。
  • dataset.data_info_path:dataset_convert 生成的数据信息目录。
  • dataset.point_cloud_range:点云空间范围。
  • model.dense_head.anchor_generator_config:每类锚点配置。

多 GPU/多节点

启动方式为 torchrun(非 Lightning)。使用 PyTorch DistributedDataParallel。

Spec 键 说明 默认
train.num_gpus 每节点 GPU 数 1
train.gpu_ids GPU 索引 [0]
train.num_nodes 节点数 1

环境变量:WORLD_SIZE、NODE_RANK、MASTER_ADDR、MASTER_PORT、NUM_GPU_PER_NODE 等由编排器设置。

硬件要求

最少 1 个 GPU,推荐 4 个。建议每 GPU 16GB 以上显存(V100/A100)。主要瓶颈是点云数据 I/O。

错误模式

  • 如果没有先运行 dataset_convert,训练会失败。
  • point_cloud_range 与传感器范围不一致时检测结果差。
  • 检查点 epoch 编号可能与 status.json 相差 1。
  • 检查点文件通常为 checkpoint_epoch_N.pth,不要误用 model.pth。
  • 剪枝和重训需要非空 key,否则会生成空 pruned 模型文件。
  • 即使有“Execution status: PASS”和退出码 0,某些不完整结果也可能失败,要检查 status.json 和产物。
  • 本地 Docker 时必须同时设置顶层 results_dir 及行为特定 results_dir。

规范参数与父模型推断

动作 Spec 字段 推断函数 含义
evaluate evaluate.checkpoint parent_model 从父作业结果选择模型
export export.checkpoint parent_model 同上
inference inference.checkpoint parent_model 同上
prune prune.model parent_model 同上
retrain train.pruned_model_path parent_model 同上
train train.resume_training_checkpoint_path resume_model 从当前作业结果选择模型

部署

参考 references/tao-deploy-pointpillars.md