ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

YOLOv9 选型:T/S/M/C/E 五个版本差在哪,640 输入下真实差距比你想的小

YOLOv9 选型:T/S/M/C/E 五个版本差在哪,640 输入下真实差距比你想的小 YOLOv9 选型T/S/M/C/E 五个版本差在哪640 输入下真实差距比你想的小【免费下载链接】yolov9Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information项目地址: https://gitcode.com/GitHub_Trending/yo/yolov9周五下午你的边缘盒子又卡了640×640 的模型在 Jetson Nano 上单帧跑了将近一秒业务方要 30fps你手上只有 yolov9 这一套五个版本可选。这篇文章只做一件事——帮你用 10 分钟想清楚你的硬件和精度预算到底落在 T/S/M/C/E 的哪一格以及哪些坑能提前绕开。上图来自官方论文图YOLOv9 系列红系在参数量 2M~60M 区间内精度压过了 YOLOv5/v6/v7/v8 和 PPYOLOE 等同量级对手。曲线位置解释了为什么大家纠结的不是要不要用 YOLOv9而是用哪个尺寸。一张表看完五个版本的官方账本先摆数据来源官方 repo READMECOCO val640 输入版本APAP50参数量FLOPs结构特征T38.3%53.1%2.0M7.7G基础 ELAN无 PGIS46.8%63.4%7.1M26.4G加宽加深的 ELAN无 PGIM51.4%68.1%20.0M76.3G引入 PGI程序化梯度信息分支C53.0%70.2%25.3M102.1GPGI 分支更多E55.6%72.8%57.3M189.0G最深最宽 全量 PGI关键发现从 T 到 E参数量翻了 28 倍AP 只多了 17.3 个点而 C 相比 MFLOPs 多付 34%AP 只多 1.6。真正跳档的是 S 和 E 两端中段 M→C 是典型的加钱不加价区间。参数量从 M 到 C 只多了 5.3M看着不多但 FLOPs 是 76.3G → 102.1G部署时你买的是后者不是前者。这张图提醒一句选型时盯 FLOPs 曲线别只盯参数量。按硬件预算对号入座三条路不猜拿到硬件清单后按下面这棵树走就行AP 目标来自上表帧率是工程上的典型经验值具体以你的设备实测为准⚠️命名坑不少社区文章把这套叫 S/M/L/X对应的是仓库里的S/M/C/E——L 是 CX 是 E。搜资料、对权重文件时先确认映射否则你会对着yolov9-c-converted.pt找半天l 版本在哪。T 是社区讨论里最容易被漏掉的版本2M 参数、7.7G FLOPs在算力极紧的 MCU/老设备上反而是唯一能跑起来的那一档。架构差在哪PGI 分支只在推理时显形翻一下各版本的 yamlmodels/detect/下规律很清楚T/S骨干里只有ConvELAN1/RepNCSPELAN4AConv通道从 32 一路涨到 256S 版head 是标准 ELAN 结构M/C/E多了一组SilenceCBLinearCBFuse——这就是 PGIProgramable Gradient Information分支。E 版有 3 组、C/M 版各有更少的分组CBFuse把多路卷积权重在结构上融合回主干。所以呢训练时 PGI 分支是独立的前向/梯度通路推理时它应该被摊平进主干。换句话说你拿到的yolov9-m.yaml和真正跑起来的 M 模型算子数量对不上是正常的——差的就是那组待融合的分支。⚠️反直觉发现因为 PGI 分支的存在导出 ONNX/TensorRT 前必须先做重参数化repo 里tools/reparameterization.ipynb演示了这一步。跳过它直接导出要么碰到算子不支持要么推理精度和 PyTorch 对不上。M/C/E 三个版本都有这个前科T/S 没有——这也是小版本反而省事的一个具体例子。边缘设备跑满帧率先省三个地方如果你的目标是 Jetson Nano 这类设备按性价比排序做三件事输入尺寸640→512 是最大杠杆。计算量按平方走512²/640² ≈ 0.64FLOPs 直接省掉约 36%。代价是小目标 AP 会掉先在你的验证集上跑 val.py 确认能接受再改默认值。FP16推理端开 half 精度见下节命令显存和算力占用大致减半精度损失通常可忽略是免费的那一档。版本降档M 跑不动就降 S别一上来在 M 上死磕 TensorRT。26.4G 和 76.3G FLOPs 之间隔了将近 3 倍任何推理引擎优化都填不平这个量级差。五分钟跑通加载、推理与导出最短路径就一条命令默认 conf 0.25、iou 0.45# 用仓库自带图片冒烟测试--half 开启 FP16 python detect.py --weights yolov9-s-converted.pt \ --source data/images/horses.jpg --device 0 --half下面是仓库里 horses 样例的标准检测效果马类置信度 0.85~0.95正式部署走 export.py 出 ONNX 再转 TensorRT。官方 README 的 Useful Links 里集中了 ONNX 导出、TensorRT 推理、QAT 量化、OpenVINO、TFLite 各条链路的实测 issue卡住了先去那儿翻——社区已经踩过一遍的路比你自己 debug 快得多。行动清单今天就能做完的三步对号用上面那棵决策树把你的硬件 AP 目标落到 T/S/M/C/E 的具体一个版本写下理由帧率要求 or 精度要求。实测拉对应 converted 权重640 输入跑detect.py冒烟再在你的验证集上跑val.py记录 AP 和单帧耗时——这两个数才是选型依据不是表里的数。压帧率帧率不达标时按顺序动刀FP16 → 输入 512 → 版本降一档每动一刀重测一次 AP别一次改三个变量。你的设备上跑出来的数字是多少T 版在你的盒子上的真实耗时可能比任何人猜的都准——欢迎把你的实测数据贴出来给后面选型的人当参照。【免费下载链接】yolov9Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information项目地址: https://gitcode.com/GitHub_Trending/yo/yolov9创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表