news 2026/2/22 16:54:17

从0开始学BEV感知:PETRV2镜像保姆级教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从0开始学BEV感知:PETRV2镜像保姆级教程

从0开始学BEV感知:PETRV2镜像保姆级教程

1. 准备环境

1.1 激活Paddle3D Conda环境

在使用星图AI算力平台进行PETRv2-BEV模型训练前,首先需要进入预配置的paddle3d_env环境。该环境已集成PaddlePaddle深度学习框架及Paddle3D库,支持端到端的BEV感知任务开发。

执行以下命令激活环境:

conda activate paddle3d_env

提示:若未找到该环境,请确认是否已完成平台镜像的初始化流程。通常情况下,选择“训练PETRV2-BEV模型”镜像后会自动配置好此环境。


2. 下载依赖

2.1 下载预训练权重

PETRv2模型基于VoVNet主干网络,并采用GridMask数据增强策略,在nuScenes数据集上进行了大规模预训练。为加速收敛并提升微调效果,建议加载官方提供的预训练参数。

运行以下命令下载模型权重文件至工作目录:

wget -O /root/workspace/model.pdparams https://paddle3d.bj.bcebos.com/models/petr/petrv2_vovnet_gridmask_p4_800x320/model.pdparams

该权重文件大小约为350MB,适用于输入分辨率为800×320的多视角图像输入场景。

2.2 下载nuScenes v1.0-mini数据集

nuScenes是自动驾驶领域广泛使用的多模态三维感知公开数据集,包含高清摄像头、激光雷达和雷达数据。本教程使用其轻量版本v1.0-mini进行快速验证与调试。

执行以下命令下载并解压数据集:

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

解压完成后,数据将位于/root/workspace/nuscenes/目录下,结构如下:

nuscenes/ ├── maps/ ├── samples/ ├── sweeps/ └── v1.0-mini/ ├── attribute.json ├── calibrated_sensor.json └── ...

3. 训练nuScenes v1.0-mini数据集

3.1 准备数据集标注信息

PETRv2使用自定义格式的标注文件(.pkl),需先通过脚本生成适用于模型训练的info文件。

切换至Paddle3D主目录并清理旧缓存:

cd /usr/local/Paddle3D rm /root/workspace/nuscenes/petr_nuscenes_annotation_* -f

生成mini_val模式下的标注文件:

python3 tools/create_petr_nus_infos.py --dataset_root /root/workspace/nuscenes/ --save_dir /root/workspace/nuscenes/ --mode mini_val

该命令将生成两个关键文件:

  • petr_nuscenes_annotation_train.pkl:训练集标注
  • petr_nuscenes_annotation_val.pkl:验证集标注

这些文件包含了图像路径、相机参数、3D边界框、时间戳等必要信息。

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 mATE: 0.7448 mASE: 0.4621 mAOE: 1.4553 mAVE: 0.2500 mAAE: 1.0000 NDS: 0.2878 Eval time: 5.8s Per-class results: Object Class AP ATE ASE AOE AVE AAE car 0.446 0.626 0.168 1.735 0.000 1.000 truck 0.381 0.500 0.199 1.113 0.000 1.000 bus 0.407 0.659 0.064 2.719 0.000 1.000 trailer 0.000 1.000 1.000 1.000 1.000 1.000 construction_vehicle 0.000 1.000 1.000 1.000 1.000 1.000 pedestrian 0.378 0.737 0.263 1.259 0.000 1.000 motorcycle 0.356 0.748 0.314 1.410 0.000 1.000 bicycle 0.063 0.760 0.236 1.862 0.000 1.000 traffic_cone 0.637 0.418 0.377 nan nan nan barrier 0.000 1.000 1.000 1.000 nan nan

说明:由于mini数据集样本较少(仅20个场景),整体指标偏低属正常现象。重点关注carpedestrian等常见类别表现即可。

3.3 开始模型训练

使用以下命令启动PETRv2模型的完整训练流程:

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总训练轮数
--batch_size 2每卡批量大小(受限于显存)
--log_interval 10每10个step打印一次loss
--learning_rate 1e-4初始学习率
--save_interval 5每5个epoch保存一次checkpoint
--do_eval每次保存时同步在验证集上评估

训练过程中,日志和检查点将保存在./output/目录中。

3.4 可视化训练曲线

为了实时监控Loss、mAP等关键指标变化趋势,推荐使用VisualDL工具进行可视化。

启动VisualDL服务:

visualdl --logdir ./output/ --host 0.0.0.0

随后通过SSH端口转发访问Web界面:

ssh -p 31264 -L 0.0.0.0:8888:localhost:8040 root@gpu-09rxs0pcu2.ssh.gpu.csdn.net

打开本地浏览器访问http://localhost:8888即可查看训练过程中的损失曲线、学习率变化及评估指标走势。

3.5 导出推理模型

训练结束后,可将最优模型导出为静态图格式,便于后续部署或推理。

执行导出命令:

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

导出成功后,nuscenes_release_model目录将包含:

  • model.pdmodel:模型结构
  • model.pdiparams:模型权重
  • deploy.yaml:部署配置文件

3.6 运行DEMO演示

最后可通过内置demo脚本查看模型预测效果。

运行命令:

python tools/demo.py /root/workspace/nuscenes/ /root/workspace/nuscenes_release_model nuscenes

程序将在控制台输出检测结果,并自动生成可视化图像,展示BEV视角下的3D物体检测框叠加在原始图像上的效果。


4. 训练xtreme1数据集 [可选]

4.1 准备xtreme1数据集标注

xtreme1是一个面向极端天气条件下的自动驾驶数据集,可用于测试模型鲁棒性。若已上传对应数据至/root/workspace/xtreme1_nuscenes_data/,可按如下方式准备标注:

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/

4.2 测试预训练模型在xtreme1上的性能

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/

输出示例:

mAP: 0.0000 mATE: 1.0703 mASE: 0.8296 mAOE: 1.0807 mAVE: 0.6250 NDS: 0.0545

注意:因预训练权重未在xtreme1上训练,初始性能极低,需继续微调。

4.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_eval

4.4 导出xtreme1专用模型

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_model

4.5 运行xtreme1 DEMO

python tools/demo.py /root/workspace/xtreme1_nuscenes_data/ /root/workspace/xtreme1_release_model xtreme1

5. 总结

本文详细介绍了如何在星图AI算力平台上,利用“训练PETRV2-BEV模型”镜像完成从环境搭建、数据准备、模型训练到推理部署的全流程操作。

核心要点回顾:

  1. 环境即用paddle3d_env已预装Paddle3D框架,无需手动安装依赖。
  2. 数据兼容:支持nuScenes标准格式及xtreme1扩展数据集。
  3. 端到端流程:涵盖训练、评估、可视化、导出、推理五大环节。
  4. 灵活扩展:可通过修改YAML配置文件适配不同主干网络、分辨率或任务类型。
  5. 高效调试:结合VisualDL实现训练过程透明化监控。

建议实践路径

  1. 先在nuScenes v1.0-mini上跑通全流程;
  2. 调整超参(如学习率、batch size)观察影响;
  3. 尝试更换主干网络(如ResNet、EfficientNet);
  4. 最终迁移到完整数据集或私有数据进行实际应用。

掌握PETRv2不仅有助于理解当前主流的BEV感知范式,也为后续研究时序建模、多任务统一架构打下坚实基础。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/21 11:31:14

BERT模型版本管理:多实例并行部署操作指南

BERT模型版本管理:多实例并行部署操作指南 1. 引言 随着自然语言处理技术的广泛应用,BERT(Bidirectional Encoder Representations from Transformers)模型已成为中文语义理解任务的核心工具之一。在实际生产环境中,…

作者头像 李华
网站建设 2026/2/20 17:26:54

新手教程:Screen to GIF第一步录制设置详解

从零开始玩转 Screen to GIF:新手第一步,别再瞎点“REC”了!你是不是也这样?打开 Screen to GIF,兴冲冲地点下“Recorder”,框一拉,直接“REC”——结果录完一看:鼠标看不见、动作卡…

作者头像 李华
网站建设 2026/2/20 15:29:08

Wan2.2模型评测:静态图像驱动下的动作自然度评估

Wan2.2模型评测:静态图像驱动下的动作自然度评估 1. 技术背景与评测目标 随着AIGC技术的快速发展,文本到视频(Text-to-Video)生成已成为内容创作领域的重要方向。在众多应用场景中,基于静态图像驱动的动作生成&#…

作者头像 李华
网站建设 2026/2/22 15:44:27

GPEN行业标准对接:符合ISO图像质量评估体系的路径

GPEN行业标准对接:符合ISO图像质量评估体系的路径 1. 镜像环境说明 本镜像基于 GPEN人像修复增强模型 构建,预装了完整的深度学习开发环境,集成了推理及评估所需的所有依赖,开箱即用。该环境专为满足工业级图像质量评估与修复任…

作者头像 李华
网站建设 2026/2/20 13:20:29

TurboDiffusion部署检查清单:确保成功运行的10个关键点

TurboDiffusion部署检查清单:确保成功运行的10个关键点 1. 确认硬件与环境配置 1.1 GPU 显存要求 TurboDiffusion 对显存有较高要求,不同模型和任务类型对资源的需求差异显著。在部署前必须确认所用GPU满足最低显存需求: T2V(文…

作者头像 李华
网站建设 2026/2/16 14:20:18

Supertonic极速TTS实践:为音乐术语表添加自然语音朗读功能

Supertonic极速TTS实践:为音乐术语表添加自然语音朗读功能 1. 引言 1.1 业务场景描述 在音乐教育、语言学习和跨文化演奏交流中,准确掌握乐理术语的发音是提升专业素养的重要一环。然而,许多学习者面临“会看不会读”的困境——能够理解术…

作者头像 李华