news 2026/3/2 14:58: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/3/1 0:55:54

万物识别-中文-通用领域应用场景:医疗影像初筛系统搭建教程

万物识别-中文-通用领域:医疗影像初筛系统搭建教程 1. 引言 随着人工智能在医疗领域的深入应用,基于深度学习的图像识别技术正逐步成为辅助诊断的重要工具。特别是在医疗影像初筛场景中,自动化识别系统能够帮助医生快速定位病灶区域&#x…

作者头像 李华
网站建设 2026/2/16 15:58:15

Qwen2.5-0.5B-Instruct完整指南:从部署到优化的全流程

Qwen2.5-0.5B-Instruct完整指南:从部署到优化的全流程 1. 引言 随着大模型技术的不断演进,轻量化、高响应速度的AI对话系统正逐步成为边缘计算和本地化服务的重要组成部分。在这一背景下,Qwen2.5-0.5B-Instruct 作为通义千问Qwen2.5系列中最…

作者头像 李华
网站建设 2026/3/2 2:41:35

2026全自动量化框架-第一版本出炉!

大家好,我是菜哥!玩量化已经好几年了,去年是折腾了一套量化框架,也陆续发布了很多版本,里面内置很多非常经典的策略!比如双均线策略,dc策略,dcadx策略,supertrend策略&am…

作者头像 李华
网站建设 2026/3/2 4:55:04

AI抠图技术落地新选择|基于科哥CV-UNet镜像的完整实践

AI抠图技术落地新选择|基于科哥CV-UNet镜像的完整实践 1. 引言:AI抠图的技术演进与现实挑战 随着内容创作、电商展示和数字营销的快速发展,图像背景移除(即“抠图”)已成为高频刚需。传统手动抠图依赖专业设计工具如…

作者头像 李华
网站建设 2026/2/25 2:29:16

Hunyuan-MT推理慢?max_new_tokens参数调优实战案例

Hunyuan-MT推理慢?max_new_tokens参数调优实战案例 1. 问题背景与优化目标 在实际部署 Tencent-Hunyuan/HY-MT1.5-1.8B 翻译模型时,许多开发者反馈:尽管该模型具备出色的翻译质量(BLEU Score 接近 GPT-4 水平)&#…

作者头像 李华
网站建设 2026/3/2 0:53:39

TFT-LCD显示刷新机制全面讲解

一块TFT-LCD是如何“动”起来的?——从撕裂到流畅,深度拆解显示刷新机制你有没有遇到过这样的情况:在嵌入式设备上滑动一个界面,画面突然“错位”,像是上下两半对不齐?或者动画播放时出现轻微抖动、闪烁&am…

作者头像 李华