
---license: Apache License 2.0 hardware_support:- Intel- NVIDIA tasks:- Domain-Specific Large Models- Object Detection---# PETRv1## 1. 模型简介PETR是一个基于位置嵌入信息感知的多视角3D目标检测算法。PETR将3D坐标信息与图像特征相融合,借助transfomer结构实现端到端的3D目标检测。PETR的架构简洁,在nuScenes数据集上取得了NDS=50.4、mAP=44.1的精度指标,一度登顶nuScenes数据集benchmark。下图展示了PETR模型的检测效果:<div align="center"><img src="https://user-images.githubusercontent.com/21275753/252645178-dbd52a40-5d5b-4b5b-b337-a8de8ab6962d.png" style="height: 400px" /></div>## 2. 技术方案PETR的主要技术方案如下:(1)通过编码3D坐标,将多视角特征转换到3D空间,从而使得object queries可借由与3D位置感知信息交互获得更新,并进一步生成更加准确的3D目标检测结果。(2)PETR将3D位置感知的特征表示引入多视角3D目标检测领域,通过一种简单的隐式函数(由多层感知器实现)将3D位置信息编码为多视角2D特征。<div align="center"><img src="https://user-images.githubusercontent.com/21275753/252609464-3c4c549d-78c5-4a21-b831-8d49c911baa2.png" style="height: 400px" /></div>相关论文及引用信息:```bibtex@misc{liu2022petr, title={PETR: Position Embedding Transformation for Multi-View 3D Object Detection}, author={Yingfei Liu and Tiancai Wang and Xiangyu Zhang and Jian Sun}, year={2022}, eprint={2203.05625}, archivePrefix={arXiv}, primaryClass={cs.CV}}```## 3. 如何使用### 3.1 数据准备在完成数据标注工作后,请按照[数据集规范说明](https://ai.baidu.com/ai-doc/AISTUDIO/Clkg7m4y9#%E5%9B%BE%E5%83%8F%E5%88%86%E5%89%B2%E4%BB%BB%E5%8A%A1)检查数据组织格式是否满足要求。如果不满足,请参照规范说明进行调整,否则将导致后面的数据校验环节无法通过。完成数据准备后,点击右上角【创建模型产线】。在 AI Studio 云端,可以通过挂载数据集的方式来使用自己的数据。模型产线创建和修改窗口可以挂载和管理数据集,如下图所示。数据集挂载成功后,需在开发者模式中查看并解压挂载的数据集,数据集路径查看方式为【开发者模式】-左侧【资源管理器】,在目录 `AISTUDIO/data` 下,数据集解压方式为【开发者模式】-左侧【菜单】-【终端】-【新建终端】,在【终端】中通过命令行方式解压,并将解压后的数据集路径拷贝到【工具箱模式】-【数据校验】-【数据集路径】。**注意:在 AI Studio 云端,`data` 目录不持久化存储,如需持久化存储,需要将数据解压至其它目录。**<div align=center><img src="https://github.com/PaddlePaddle/PaddleClas/assets/12560511/144c59db-0354-403e-9b7d-83c3f84d6de1" style="height: 400px"><img src="https://github.com/PaddlePaddle/PaddleClas/assets/12560511/9078fb3e-3c37-40f5-aeed-4139d23daa14" style="height: 400px"></div>在本地端-工具箱模式中,您可以直接在【工具箱模式】-【数据校验】-【数据集路径】中填写本地数据路径来使用自己的数据集。在配置完成【数据集路径】后,即可点击【开始校验】按钮进行数据集校验。更多详细说明,请参考[在线文档](https://ai.baidu.com/ai-doc/AISTUDIO/Zlist35hy#%E6%95%B0%E6%8D%AE%E6%A0%A1%E9%AA%8C)。### 3.2 模型训练PaddleX提供 `工具箱模式` 和 `开发者模式` 两种开发模式:-`工具箱模式` 推荐 AI 开发经验较少的开发者使用,高阶开发者也可以使用这个模式来提高开发效率。工具箱模式利用 gradio 搭建 webui 工具链,可以实现无代码 AI 模型开发。主要包含数据校验、模型训练、评估测试和模型部署四个环节。可以根据实际需求选择模型结构、骨干网络及对应的训练参数、优化策略,使得任务效果最佳。关于工具箱模式的完整使用请参考[在线文档](https://ai.baidu.com/ai-doc/AISTUDIO/Zlist35hy)。**注意:工具箱模式中的训练轮次、批大小、学习率等参数的默认值仅适用于官方提供的示例数据集,对于自己的数据集,需要进行针对性的调整。可以参考参数设置经验,例如学习率对训练效果影响较大,建议放缩进行多次尝试,对于难度较大的任务,可以适当增加训练轮次数以获得更佳效果。**<img src="https://github.com/PaddlePaddle/Paddle3D/assets/108920665/dcb01ec3-06a3-4bd4-9561-1e8215aa41dc" style="height: 400px">-`开发者模式` 推荐 AI 开发经验较丰富度的开发者使用,集成了 VSCode IDE 环境,并内置飞桨统一模型开发 API——UAPI,可以使用统一的 API 接口进行开发,仅需 5 行命令即可完成基础模型训练、推理、评估导出以及多模型组合预测。同时,在开发者模式中可以编辑工具箱模式的源码,以实现工具箱模式 DIY。关于开发者模式的完整使用请参考[在线文档](https://ai.baidu.com/ai-doc/AISTUDIO/Mlist5jov)。<img src="https://github.com/PaddlePaddle/PaddleClas/assets/12560511/cc20cba4-319d-4a96-bc43-add3a4af355b" style="height: 800px">### 3.3 模型部署使用工具箱或开发者模式完成模型训练后,就可以在工具箱模式进行模型部署了。需注意,目前必须经过导出预测模型后才会产生用于部署的静态图模型。目前提供了模型在不同操作系统、不同部署硬件、不同接口语言条件下的部署包 SDK 获取方式。<img src="https://github.com/PaddlePaddle/PaddleSeg/assets/108920665/8b2a21b6-195f-4ce9-aad0-f2adcf3457f8" style="height: 400px">本模型目前的部署支持情况如下:| 操作系统 | Windows | Windows | Windows | Windows | Linux | Linux | Linux | Linux || -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- || 部署硬件 | NV GPU | NV GPU | X86 CPU | X86 CPU | NV GPU | NV GPU | X86 CPU | X86 CPU || 接口语言 | C++ | Python | C++ | Python | C++ | Python | C++ | Python || 支持情况 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |根据实际业务需求选择所需要的操作系统、部署硬件、接口语言等条件后,获取 FastDeploy 部署包,**完成之后到开发者模式下进行下载(文件右击选择下载即可)**,其中包括部署代码和预测模型。最后就可以参考部署包里面的 README 使用说明,在目标硬件上进行部署啦。**注意:如果需要更新预测模型,可以直接修改部署包中的预测模型。**