news 2026/6/10 17:16:52

从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/6/10 15:35:30

Qwen-Image-Layered真实体验:图层拆分太丝滑了

Qwen-Image-Layered真实体验:图层拆分太丝滑了 2025年12月,香港科技大学与阿里巴巴联合推出图像图层分解模型 Qwen-Image-Layered。该模型能够将单张 RGB 图像端到端地分解为多个语义解耦的 RGBA 图层,从而实现“固有可编辑性”——即每个图…

作者头像 李华
网站建设 2026/6/10 14:10:33

图解说明USB协议通信流程:小白也能看懂

图解说明USB协议通信流程:小白也能看懂你有没有想过,为什么插上U盘就能立刻被电脑识别?键盘一按,字符就出现在屏幕上?这些看似“理所当然”的操作背后,其实是一套精密的通信规则在默默运行——它就是USB协议…

作者头像 李华
网站建设 2026/6/10 12:52:55

小白也能玩转Open-AutoGLM,安卓手机秒变AI助手教程

小白也能玩转Open-AutoGLM,安卓手机秒变AI助手教程 1. 引言:让普通安卓手机拥有“系统级AI助手” 1.1 技术背景与趋势 随着大模型技术的快速发展,AI Agent 正从“对话机器人”向“自主执行者”演进。2025年,字节跳动推出的豆包…

作者头像 李华
网站建设 2026/6/10 14:10:56

百度网盘秒传神器:零等待转存的终极解决方案

百度网盘秒传神器:零等待转存的终极解决方案 【免费下载链接】baidupan-rapidupload 百度网盘秒传链接转存/生成/转换 网页工具 (全平台可用) 项目地址: https://gitcode.com/gh_mirrors/bai/baidupan-rapidupload 还在为百度网盘文件转存缓慢而烦恼吗&#…

作者头像 李华
网站建设 2026/6/10 13:07:10

Open Interpreter多语言支持实战:Python/JS/Shell混合编码案例

Open Interpreter多语言支持实战:Python/JS/Shell混合编码案例 1. 引言:本地AI编程的新范式 随着大模型在代码生成领域的持续突破,开发者对“自然语言驱动编程”的需求日益增长。然而,多数AI编程工具依赖云端API,存在…

作者头像 李华
网站建设 2026/6/10 13:35:54

亲测DeepSeek-R1:CPU推理效果超预期

亲测DeepSeek-R1:CPU推理效果超预期 1. 引言:轻量级推理模型的现实需求 随着大语言模型在企业与个人场景中的广泛应用,对低门槛、高隐私、可本地化部署的AI推理能力需求日益增长。尽管70B以上参数的大模型在数学、代码和逻辑任务中表现出色…

作者头像 李华