PETRV2-BEV训练教程:export.py模型导出与PaddleInfer推理部署
本文将手把手带你完成PETRV2-BEV模型的训练、导出和部署全流程,从环境准备到最终推理演示,每个步骤都配有详细说明和可执行代码。
1. 环境准备与数据下载
1.1 进入Paddle3D环境
首先需要激活预先配置好的Paddle3D环境:
conda activate paddle3d_env这个环境包含了运行PETRV2-BEV所需的所有依赖库,确保后续命令能够正常执行。
1.2 下载预训练权重
为了加速训练过程,我们使用官方提供的预训练权重作为起点:
wget -O /root/workspace/model.pdparams https://paddle3d.bj.bcebos.com/models/petr/petrv2_vovnet_gridmask_p4_800x320/model.pdparams这个权重文件是基于大规模数据集预训练的,能够为我们的微调提供良好的初始化。
1.3 下载NuScenes迷你数据集
NuScenes是自动驾驶领域常用的数据集,我们使用其迷你版本进行演示:
wget -O /root/workspace/v1.0-mini.tgz https://www.nuscenes.org/data/v1.0-mini.tgz mkdir -p /root/workspace/nuscenes tar -xf /root/workspace/v1.0-mini.tgz -C /root/workspace/nuscenes数据集解压后包含各种传感器数据、标注信息和场景描述,是训练BEV模型的基础。
2. NuScenes数据集训练实战
2.1 数据集预处理
在开始训练前,需要将原始数据转换为模型可读的格式:
cd /usr/local/Paddle3D rm /root/workspace/nuscenes/petr_nuscenes_annotation_* -f python3 tools/create_petr_nus_infos.py --dataset_root /root/workspace/nuscenes/ --save_dir /root/workspace/nuscenes/ --mode mini_val这个脚本会生成模型训练所需的标注文件,将原始标注转换为PETRV2特定的格式。
2.2 模型精度测试
在正式训练前,我们先测试预训练权重在NuScenes数据集上的表现:
python tools/evaluate.py \ --config configs/petr/petrv2_vovnet_gridmask_p4_800x320_nuscene.yml \ --model /root/workspace/model.pdparams \ --dataset_root /root/workspace/nuscenes/评估结果分析:
- mAP: 0.2669 - 平均精度,反映检测准确度
- mATE: 0.7448 - 平移误差,衡量位置准确性
- mASE: 0.4621 - 尺度误差,反映尺寸估计精度
- NDS: 0.2878 - NuScenes检测分数,综合评估指标
从结果可以看出,预训练模型在迷你数据集上已有一定基础,但还有很大提升空间。
2.3 开始模型训练
现在开始正式训练,使用预训练权重进行微调:
python tools/train.py \ --config configs/petr/petrv2_vovnet_gridmask_p4_800x320_nuscene.yml \ --model /root/workspace/model.pdparams \ --dataset_root /root/workspace/nuscenes/ \ --epochs 100 \ --batch_size 2 \ --log_interval 10 \ --learning_rate 1e-4 \ --save_interval 5 \ --do_eval关键参数说明:
epochs 100: 训练100个轮次batch_size 2: 批大小设为2,根据GPU内存调整learning_rate 1e-4: 学习率设置为0.0001save_interval 5: 每5轮保存一次模型do_eval: 训练过程中进行评估
2.4 训练过程可视化
使用VisualDL工具实时监控训练过程:
visualdl --logdir ./output/ --host 0.0.0.0为了在本地查看可视化结果,需要设置端口转发:
ssh -p 31264 -L 0.0.0.0:8888:localhost:8040 root@gpu-09rxs0pcu2.ssh.gpu.csdn.net通过VisualDL可以查看损失曲线、精度变化等训练指标,帮助判断模型是否收敛。
2.5 导出PaddleInfer模型
训练完成后,将模型导出为部署格式:
rm -rf /root/workspace/nuscenes_release_model mkdir -p /root/workspace/nuscenes_release_model python tools/export.py \ --config configs/petr/petrv2_vovnet_gridmask_p4_800x320_nuscene.yml \ --model output/best_model/model.pdparams \ --save_dir /root/workspace/nuscenes_release_model导出过程会将训练模型转换为PaddleInference格式,包含模型结构(.pdmodel)和参数(.pdiparams)。
2.6 运行推理演示
最后测试导出的模型是否能正常工作:
python tools/demo.py /root/workspace/nuscenes/ /root/workspace/nuscenes_release_model nuscenes这个演示脚本会加载导出的模型,对测试数据进行推理,并可视化检测结果。
3. Xtreme1数据集训练(可选)
如果你有Xtreme1数据集,也可以按照类似流程进行训练。
3.1 数据集准备
cd /usr/local/Paddle3D rm /root/workspace/xtreme1_nuscenes_data/petr_nuscenes_annotation_* -f python3 tools/create_petr_nus_infos_from_xtreme1.py /root/workspace/xtreme1_nuscenes_data/3.2 精度测试
python tools/evaluate.py \ --config configs/petr/petrv2_vovnet_gridmask_p4_800x320.yml \ --model /root/workspace/model.pdparams \ --dataset_root /root/workspace/xtreme1_nuscenes_data/3.3 模型训练
python tools/train.py \ --config configs/petr/petrv2_vovnet_gridmask_p4_800x320.yml \ --model /root/workspace/model.pdparams \ --dataset_root /root/workspace/xtreme1_nuscenes_data/ \ --epochs 100 \ --batch_size 2 \ --log_interval 10 \ --learning_rate 1e-4 \ --save_interval 5 \ --do_eval3.4 导出部署模型
rm -rf /root/workspace/xtreme1_release_model mkdir /root/workspace/xtreme1_release_model python tools/export.py \ --config configs/petr/petrv2_vovnet_gridmask_p4_800x320.yml \ --model output/best_model/model.pdparams \ --save_dir /root/workspace/xtreme1_release_model3.5 演示验证
python tools/demo.py /root/workspace/xtreme1_nuscenes_data/ /root/workspace/xtreme1_release_model xtreme14. 总结
通过本教程,你学会了PETRV2-BEV模型的完整训练和部署流程。从环境准备、数据下载、模型训练到最终的导出和推理,每个步骤都有详细的代码示例和说明。
关键要点回顾:
- 环境配置:使用预配置的conda环境简化依赖管理
- 数据准备:正确格式化数据集是训练成功的前提
- 训练技巧:使用预训练权重微调可以加速收敛
- 模型导出:export.py工具将训练模型转换为部署格式
- 推理验证:最终通过demo脚本验证模型效果
在实际应用中,你可以根据自己的数据集调整训练参数,获得更好的检测效果。导出的PaddleInfer模型可以方便地集成到各种自动驾驶系统中进行实时推理。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。