
# PP-YOLOE+ ## 1. 模型简介 PP-YOLOE+ 是卓越的单阶段 Anchor-free 目标检测模型,超越了多种流行的 YOLO 模型。PP-YOLOE+ 避免了使用诸如 Deformable Convolution 或者 Matrix NMS 之类的特殊算子,以使其能轻松地部署在多种多样的硬件上。 <img src="https://github.com/PaddlePaddle/PaddleDetection/assets/12560511/e1fbfc70-2cd2-4e90-9aa0-82bbd8eb1af1" style="height: 400px"> 更多关于 PaddleDetection 的内容,可以点击 [PaddleDetection 仓库](https://github.com/PaddlePaddle/PaddleDetection) 进行了解。 ## 2. 技术方案 PP-YOLOE+ 系列模型的主要改进点有: 1. 可扩展的 backbone 和 neck。 2. Task Alignment Learning。 3. Efficient Task-aligned head with DFL 和 VFL。 4. SiLU(Swish) 激活函数。 详细的技术实现可参考阅读:[PP-YOLOE](https://arxiv.org/abs/2203.16250)。 ## 3. 如何使用 ### 3.1 数据准备 在完成数据标注工作后,请按照[数据集规范说明](https://ai.baidu.com/ai-doc/AISTUDIO/Clkg7m4y9#%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B%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://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/introduction/PP-YOLOE%2B_crn_l_80e.png" 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/ca7bc234-037e-4b2d-99d3-52526b008ae5" 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 使用说明,在目标硬件上进行部署啦。 **注意:如果需要更新预测模型,可以直接修改部署包中的预测模型。**