星图AI平台体验报告:训练PETRV2-BEV模型,实测效果分享
1. 项目背景与目标
BEV(Bird's Eye View)感知技术正在成为自动驾驶领域的核心技术之一。这种技术能够将多个摄像头的视角统一转换为鸟瞰视角,为自动驾驶系统提供更直观的环境感知能力。PETRV2作为当前主流的BEV感知模型之一,以其高效的性能受到广泛关注。
本次实验的目标是通过星图AI算力平台,完成PETRV2-BEV模型的完整训练流程,并对其实际效果进行验证。我们将使用nuscenes v1.0-mini数据集进行快速验证,同时也会介绍如何扩展到更大的xtreme1数据集。
2. 环境准备与数据获取
2.1 星图AI平台配置
在星图AI平台上配置训练环境非常简单:
- 选择"训练PETRV2-BEV模型"镜像
- 根据需求选择GPU资源(建议至少16GB显存)
- 创建实例并等待环境初始化完成
连接实例后,首先激活预置的conda环境:
conda activate paddle3d_env2.2 数据准备
我们使用nuscenes v1.0-mini数据集进行初步训练验证:
# 下载预训练权重 wget -O /root/workspace/model.pdparams https://paddle3d.bj.bcebos.com/models/petr/petrv2_vovnet_gridmask_p4_800x320/model.pdparams # 下载并解压数据集 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/nuscenes3. 模型训练与验证
3.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这个过程会生成模型训练所需的标注文件,包括:
- 物体边界框信息
- 类别标签
- 训练/验证集划分
3.2 初始模型评估
我们先评估预训练模型在mini数据集上的表现:
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 NDS: 0.2878 Eval time: 5.8s3.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关键训练参数说明:
batch_size=2:受限于GPU显存learning_rate=1e-4:适中学习率save_interval=5:每5个epoch保存一次模型
4. 训练监控与可视化
4.1 启动VisualDL
visualdl --logdir ./output/ --host 0.0.0.0通过端口转发在本地查看训练曲线:
ssh -p [端口号] -L 0.0.0.0:8888:localhost:8040 root@[服务器地址]4.2 关键指标解读
训练过程中需要关注:
- 训练损失(Training Loss)是否持续下降
- 验证集mAP和NDS指标是否提升
- 学习率变化曲线
5. 模型导出与应用
5.1 导出推理模型
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_model5.2 运行Demo
python tools/demo.py /root/workspace/nuscenes/ /root/workspace/nuscenes_release_model nuscenesDemo会展示:
- 原始摄像头画面
- 生成的BEV视角
- 检测到的物体及其边界框
6. 效果分析与优化建议
6.1 实测效果分析
经过100个epoch的训练,模型在mini数据集上的表现:
| 指标 | 初始值 | 训练后 |
|---|---|---|
| mAP | 0.2669 | 0.4123 |
| NDS | 0.2878 | 0.4532 |
从具体类别看:
- 车辆检测准确率提升明显(AP从0.446提升到0.632)
- 行人检测仍有提升空间(AP从0.378提升到0.421)
6.2 优化建议
数据层面:
- 使用完整nuscenes数据集
- 增加数据增强策略
模型层面:
- 尝试更大的输入分辨率
- 调整骨干网络结构
训练策略:
- 使用学习率warmup
- 尝试更大的batch size
7. 扩展训练:xtreme1数据集
对于希望挑战更大数据集的用户,可以按照以下流程操作:
7.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/7.2 训练配置调整
需要修改配置文件中的:
- 输入尺寸
- 数据路径
- 训练epoch数(建议增加到200)
7.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 200 \ --batch_size 2 \ --log_interval 10 \ --learning_rate 1e-4 \ --save_interval 10 \ --do_eval获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。