PP-YOLOE 性能基准详解:COCO 精度、推理速度、训练配置与复现指南

📅 发布时间:2026/10/8 23:41:09
PP-YOLOE 性能基准详解:COCO 精度、推理速度、训练配置与复现指南
人工智能深度学习计算机视觉NLP语音【免费下载链接】modelsOfficially maintained, supported by PaddlePaddle, including CV, NLP, Speech, Rec, TS, big models and so on.项目地址https://gitcode.com/gh_mirrors/mo/models点击查看免费下载PP-YOLOE 是 PaddlePaddle 官方PaddleDetection 仓库推出的单阶段 Anchor-free 目标检测模型系列本文以modelcenter/PP-YOLOE/benchmark_cn.md中的性能基准表为核心逐项解读 s/m/l/x 四个规格的 COCO 精度、参数量、计算量与 V100 推理速度并结合仓库内的训练、导出、推理与部署代码给出完整的 Benchmark 复现与部署方案。读完本文你将能看懂 PP-YOLOE 全系模型的精度-速度权衡掌握学习率线性缩放规则、速度测试环境约定并能在自己的硬件上复现或部署这一模型。一、Benchmark 总览一张表读懂 PP-YOLOE 全系性能modelcenter/PP-YOLOE/benchmark_cn.md给出的 Benchmark 表格是本文的核心依据它同时覆盖了模型规格、训练配置、评测精度、模型复杂度与推理速度五个维度模型EpochGPU个数每GPU图片个数骨干网络输入尺寸Box APval0.5:0.95Box APtest0.5:0.95Params(M)FLOPs(G)V100 FP32(FPS)V100 TensorRT FP16(FPS)PP-YOLOE-s300832cspresnet-s64043.043.27.9317.36208.3333.3PP-YOLOE-m300828cspresnet-m64049.049.123.4349.91123.4208.3PP-YOLOE-l300820cspresnet-l64051.451.652.20110.0778.1149.2PP-YOLOE-x300816cspresnet-x64052.352.498.42206.5945.095.2这张表传递了几个关键信息四个规格通过骨干网络缩放获得s/m/l/x 分别对应 cspresnet-s/m/l/x。根据modelcenter/PP-YOLOE/introduction_cn.ipynb的说明PP-YOLOE 通过 width multiplier宽度缩放和 depth multiplier深度缩放配置出一系列模型s/m/l/x 即缩放系数递增的四个档位。参数量与计算量从 7.93M/17.36G 到 98.42M/206.59G 跨度约 12 倍对应的 Box APval0.5:0.95从 43.0 提升到 52.3精度增益约 9.3 个点。TensorRT FP16 相比 FP32 在 V100 上普遍有 1.6~2.1 倍的速度提升例如 PP-YOLOE-s 从 208.3 FPS 提升到 333.3 FPSPP-YOLOE-x 从 45.0 FPS 提升到 95.2 FPS体现了 TensorRT 引擎优化对检测模型推理的显著加速效果。二、数据集与评测协议COCO train2017 / val2017 / test-dev2017原文档对评测数据集的约定如下复现 Benchmark 时必须严格遵循训练集COCO 数据集中的train2017约 11.8 万张图片。测试集val2017约 5000 张与test-dev2017约 2 万张无公开标注需提交至评测服务器分别对应表格中的 Box AP val 与 Box AP test 两列。评测指标COCO 标准目标检测指标Box AP即 IoU 阈值从 0.5 到 0.95、步长 0.05 共 10 个阈值下 AP 的平均值0.5:0.95。这一协议与modelcenter/PP-YOLOE/info.yaml中登记的 Datasets 字段COCO test-dev2017, COCO train2017, COCO val2017, Pascal VOC保持一致。值得注意的是PP-YOLOE 也支持在 Pascal VOC 数据集上训练但上述 Benchmark 表格中的精度数据均为 COCO 评测结果。三、训练配置与学习率线性缩放规则3.1 标准训练配置Benchmark 表格中的训练配置为300 Epoch、8 张 GPU、混合精度训练四个规格的每 GPU 图片数batch size per GPU分别为 32/28/20/16对应 s/m/l/x输入尺寸统一为 640×640。对应的训练命令在modelcenter/PP-YOLOE/introduction_cn.ipynb中给出单卡训练python tools/train.py -c configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml --eval --amp多卡8 卡训练python -m paddle.distributed.launch --gpus 0,1,2,3,4,5,6,7 tools/train.py -c configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml --eval --amp两个关键可选参数--eval边训练边在 val 集上评估便于实时监控收敛曲线与验证集精度。--amp开启自动混合精度AMP训练这正是 Benchmark 表格中使用 8 GPUs 进行混合精度训练的实际落地方式。3.2 学习率缩放公式复现训练的关键原文档明确指出如果 GPU 卡数或 batch size 发生改变必须按下式调整学习率lr_new lr_default * (batch_size_new * GPU_number_new) / (batch_size_default * GPU_number_default)其中lr_default是表格中标准配置8 卡、对应 batch size对应的学习率batch_size为每 GPU 的图片数。这一公式的本质是保持全局 batch size 与学习率成正比的经验缩放关系学习率随总样本吞吐量的变化线性缩放从而在改变硬件规模时维持相近的收敛行为。举例若标准配置为 PP-YOLOE-l每卡 20 张、8 卡总 batch size 160改用 4 卡且每卡 20 张总 batch size 80则新学习率应为默认值乘以 80/160 0.5若保持 8 卡但每卡减半为 10 张同样需要乘以 0.5。忘记缩放学习率是分布式训练中精度退化的最常见原因之一。四、推理速度测试环境与方法Benchmark 表格中的 FPS 数据并非随意测得原文档明确了严格的软硬件环境复现时需保持一致硬件单张 Tesla V100 GPU。batch size1单张图片逐张推理。软件栈CUDA 10.2、CUDNN 7.6.5TensorRT 推理速度测试使用TensorRT 6.0.1.8。也就是说FP32 列是 Paddle Inference 在 V100 上的单卡 FP32 推理吞吐TensorRT FP16 列则是在上述 TensorRT 版本下以 FP16 精度推理的吞吐。两条速度列的差异即 TensorRT 引擎图优化 FP16 半精度计算带来的加速收益。4.1 使用--run_benchmarkTrue跑速度测试原文档特别提醒如果你设置了--run_benchmarkTrue运行速度测试首先需要安装以下依赖pip install pynvml psutil GPUtilpynvmlNVIDIA 管理库的 Python 绑定用于查询 GPU 利用率、显存占用等psutil系统进程与资源监控库GPUtil基于 pynvml 封装的 GPU 状态工具。这三个依赖用于在 Benchmark 过程中采集 GPU/CPU 资源占用指标缺少它们会导致--run_benchmark模式启动失败。五、Benchmark 复现全流程训练 → 导出 → 推理在 PaddleDetection 框架内复现 Benchmark 的完整链路分为三步命令均来自modelcenter/PP-YOLOE/introduction_cn.ipynb。5.1 导出模型含 TensorRT 导出训练完成后或直接加载官方预训练权重先导出推理模型。带 TensorRT 支持的导出用于复现 TensorRT FP16 速度python tools/export_model.py -c configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml -o weightshttps://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams trtTrue其中-c指定训练配置文件-o weights...覆盖配置中的权重路径为官方预训练参数trtTrue使导出的模型支持 TensorRT 引擎构建。模型将导出到output_inference/ppyoloe_crn_l_300e_coco/目录。各规格官方权重与配置文件可从modelcenter/PP-YOLOE/download_cn.md的模型库表格中获取s/m/l/x 分别对应ppyoloe_crn_s/m/l/x_300e_coco.pdparams与同名.yml配置文件。5.2 推理复现速度与精度TensorRT FP16 推理对应表中 V100 TensorRT FP16 列CUDA_VISIBLE_DEVICES0 python deploy/python/infer.py --model_diroutput_inference/ppyoloe_crn_l_300e_coco --image_filedemo_input/000000014439.jpg --devicegpu --run_modetrt_fp16 --output_dirdemo_output纯 Paddle Inference 推理对应表中 V100 FP32 列也适用于不支持 TensorRT 的硬件CUDA_VISIBLE_DEVICES0 python deploy/python/infer.py --model_diroutput_inference/ppyoloe_crn_l_300e_coco --image_filedemo_input/000000014439.jpg --devicegpu --run_modepaddle --output_dirdemo_output5.3 TensorRT 使用要点TensorRT 会根据网络定义针对当前硬件平台执行优化并生成推理引擎序列化为文件该引擎只适用于当前软硬件平台。如果软硬件平台没有变化可将enable_tensorrt_engine的参数use_staticTrue序列化文件将保存在output_inference文件夹下下次执行 TensorRT 时直接加载避免重复构建引擎的耗时。PaddleDetection release/2.4 及之后版本支持 NMS 调用 TensorRT需要依赖 PaddlePaddle release/2.3 及之后的版本。六、从 Benchmark 到部署APP 推理配置与 FastDeployBenchmark 的精度与速度数据最终要在真实业务中落地为推理服务。本仓库modelcenter/PP-YOLOE/APP/目录提供了开箱即用的部署示例其推理配置modelcenter/PP-YOLOE/APP/configs/PP-YOLOE.yml恰好与 Benchmark 的输入设置一致可以直接对照理解mode: paddle draw_threshold: 0.5 metric: COCO use_dynamic_shape: false arch: YOLO min_subgraph_size: 3 param_path: paddlecv://models/ppyoloe_crn_s_300e_coco/model.pdiparams model_path: paddlecv://models/ppyoloe_crn_s_300e_coco/model.pdmodel Preprocess: - interp: 2 keep_ratio: false target_size: - 640 - 640 type: Resize - is_scale: true mean: - 0.485 - 0.456 - 0.406 std: - 0.229 - 0.224 - 0.225 type: NormalizeImage - type: Permute label_list: - person - bicycle - ... - toothbrush与 Benchmark 的对应关系非常直观输入尺寸 640×640Resize预处理将图片直接缩放到 640×640keep_ratio: false与表格输入尺寸 640一致归一化参数NormalizeImage使用 ImageNet 统计的 mean0.485, 0.456, 0.406与 std0.229, 0.224, 0.225is_scale: true表示先除以 25580 类 COCO 类别label_list完整列出 COCO 80 类目标person、bicycle、car、traffic light、banana、cell phone 等与 COCO 评测协议对应可视化阈值draw_threshold: 0.5仅绘制置信度大于 0.5 的检测框。在源码层面modelcenter/PP-YOLOE/APP/src/detection.py的Detector类展示了完整的推理调用链读取 YAML 配置 → 通过get_model_path获取模型/参数文件 → 构建 Paddle InferenceConfig→ 按mode选择精度precision_map中定义了trt_int8/trt_fp32/trt_fp16三种 TensorRT 精度映射→ 依次执行Resize → NormalizeImage → Permute预处理 →create_predictor创建预测器 → 零拷贝推理switch_use_feed_fetch_ops(False)enable_memory_optim→ 按draw_threshold过滤低置信度框并在visualize.py中绘制。APP 的入口modelcenter/PP-YOLOE/APP/app.py则基于 Gradio 提供可视化交互界面app.yml中sdk: gradio、device: cpu提交图片即可返回标注结果与 JSON 格式的检测框数据。对于更广泛的云边端硬件X86 CPU、NVIDIA GPU、ARM CPU、XPU、NPU、IPU 等modelcenter/PP-YOLOE/fastdeploy_cn.md给出了基于 FastDeploy 的高性能部署方案三步即可完成# 1. 安装 FastDeploy 预编译包 pip install fastdeploy-gpu-python0.0.0 -f https://www.paddlepaddle.org.cn/whl/fastdeploy_nightly_build.html # 2. 下载部署示例与模型 # 进入 FastDeploy/examples/vision/detection/paddledetection/python/ 目录 # 下载 ppyoloe_crn_l_300e_coco 模型文件与测试图片并解压 # 3. 一行命令切换推理后端 python infer_ppyoloe.py --model_dir ppyoloe_crn_l_300e_coco --image 000000014439.jpg --device cpu # CPU 推理 python infer_ppyoloe.py --model_dir ppyoloe_crn_l_300e_coco --image 000000014439.jpg --device gpu # GPU 推理 python infer_ppyoloe.py --model_dir ppyoloe_crn_l_300e_coco --image 000000014439.jpg --device gpu --use_trt True # TensorRT 推理注意TensorRT 推理第一次运行时有序列化模型的操作会额外耗时属于正常现象。这一部署路径与 Benchmark 中 TensorRT FP16 的加速逻辑一脉相承——FP16 精度 TensorRT 引擎优化是 PP-YOLOE 在 NVIDIA GPU 上发挥极致吞吐的关键手段。七、精度-速度权衡分析如何选型结合 Benchmark 表格数据可以对四个规格做如下工程化选型分析以下均为基于表中数据的客观对比PP-YOLOE-s7.93M / 17.36Gval AP 43.0FP32 208.3 FPS、TensorRT FP16 333.3 FPS。体积小、速度最快适合边缘设备、实时视频流等高吞吐低延迟场景模型文件小便于在移动端和嵌入式平台部署。PP-YOLOE-m23.43M / 49.91Gval AP 49.0相比 s 提升 6.0 个点速度降至 123.4 FPSFP32。参数量约为 s 的 3 倍是性价比适中的中间档位。PP-YOLOE-l52.20M / 110.07Gval AP 51.4、test AP 51.6FP32 78.1 FPS。从 s 到 l 的精度提升幅度逐渐收窄s→m 提升 6.0 点m→l 提升 2.4 点体现了精度随模型规模的边际递减效应。PP-YOLOE-x98.42M / 206.59Gval AP 52.3为全系最高精度但计算量接近 l 的两倍FP32 仅 45.0 FPS。适合对精度要求苛刻、算力充裕的离线或服务端场景。一个值得注意的规律TensorRT FP16 能显著缓解大模型的吞吐压力——PP-YOLOE-x 在 FP16 下达到 95.2 FPS与 PP-YOLOE-l 在 FP32 下的 78.1 FPS 相当而精度几乎无损。这意味着在生产环境中优先启用 TensorRT FP16 部署往往可以在不损失精度的前提下获得接近翻倍的吞吐。八、注意事项与常见问题汇总精度数据对应的训练协议表格中的 Box AP 基于 300 Epoch、8 卡混合精度训练得到改变训练配置Epoch、batch size、GPU 数后精度可能会有波动若需逼近表内精度应保持相同的训练配置或按第三节的公式调整学习率。速度数据的硬件前提FPS 数据仅适用于 V100batch size 1、CUDA 10.2、CUDNN 7.6.5、TensorRT 6.0.1.8环境在 A100、T4 等其他 GPU 或 CPU 上测得的速度会不同不能直接套用。--run_benchmarkTrue前置依赖务必先执行pip install pynvml psutil GPUtil否则 Benchmark 运行会因缺少资源监控依赖而失败。TensorRT 引擎的平台绑定性生成的序列化引擎只适用于当前软硬件平台平台不变时设置use_staticTrue可复用序列化文件。命令前缀约定modelcenter/PP-YOLOE/introduction_cn.ipynb中的命令默认运行在 AI Studio 的 Jupyter 环境以%或!开头在终端运行时需去掉这些前缀符号。技术背景补充根据modelcenter/PP-YOLOE/introduction_cn.ipynbPP-YOLOE 基于 PP-YOLOv2 演进而来采用可扩展的 backbone 与 neck、Task Alignment Learning、带 DFLDistribution Focal Loss与 VFLVarifocal Loss的高效任务对齐检测头、以及 SiLUSwish激活函数同时刻意避免使用 Deformable Convolution、Matrix NMS 等特殊算子以保证模型能轻松部署到多种多样的硬件上——这正是 Benchmark 表格中全系模型在 V100 上均能高效运行的架构前提。更多技术细节可参考其技术报告arXiv:2203.16250info.yaml中已登记引用信息如下article{xu2022pp, title{PP-YOLOE: An evolved version of YOLO}, author{Xu, Shangliang and Wang, Xinxin and Lv, Wenyu and Chang, Qinyao and Cui, Cheng and Deng, Kaipeng and Wang, Guanzhong and Dang, Qingqing and Wei, Shengyu and Du, Yuning and others}, journal{arXiv preprint arXiv:2203.16250}, year{2022} }通过本文对 Benchmark 表格的逐项拆解配合仓库内的训练、导出、推理与部署代码你可以将 PP-YOLOE 的精度-速度数据作为选型依据并在自己的环境下复现这些基准结果最终落地为可靠的检测服务。相关配套材料可继续查阅模型库下载、使用教程、FastDeploy 部署、APP 推理配置 与 APP 源码。赞分享人工智能深度学习计算机视觉NLP语音【免费下载链接】modelsOfficially maintained, supported by PaddlePaddle, including CV, NLP, Speech, Rec, TS, big models and so on.项目地址https://gitcode.com/gh_mirrors/mo/models点击查看免费下载相关推荐PP-YOLOE 模型 Benchmark 全解读精度、速度、训练配置与复现指南PP YOLOE 模型 Benchmark 全解读精度、速度、训练配置与复现指南 PP YOLOE 是 PP YOLOE 的升级版本在本文所依据的 Be人工智能深度学习计算机视觉NLP语音PP-YOLOE 模型 Benchmark 深度解读精度-速度指标、训练复现与 Paddle Inference 部署实践PP YOLOE 模型 Benchmark 深度解读精度 速度指标、训练复现与 Paddle Inference 部署实践 PP YOLOE 是 Paddle人工智能深度学习计算机视觉NLP语音PaddleX 行人检测模块实战指南基于 PP-YOLOE 的推理、训练与部署PaddleX 行人检测模块实战指南基于 PP YOLOE 的推理、训练与部署 行人检测是目标检测领域的重要分支用于判断图像或视频中是否存在行人并输出每个人人工智能大模型低代码计算机视觉深度学习NLP模型推理服务RAG微调语音上一篇带隐私保证的文本到文本 Transformer 训练实战基于 T5X 的 private_text_transformers 差分隐私预训练、GLUE 微调与记忆化评估下一篇komorebi 边框偏移量border-offset完全指南从 CLI 调参到源码级布局原理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考