ARTICLE DETAIL

资讯详情

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

YOLOv9 完整指南:3 步跑通高精度目标检测,从环境配置到 ONNX 导出

YOLOv9 完整指南:3 步跑通高精度目标检测,从环境配置到 ONNX 导出 YOLOv9 完整指南3 步跑通高精度目标检测从环境配置到 ONNX 导出【免费下载链接】yolov9Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information项目地址: https://gitcode.com/GitHub_Trending/yo/yolov9一个反常识的结论先放这里让目标检测模型变强的不一定是更深的网络或新的激活函数也可能是改变它被训练的方式。YOLOv9 就是这一思路的代表——它提出的可编程梯度信息Programmable Gradient InformationPGI在训练阶段让网络想学什么就学什么推理阶段则保持普通卷积结构因此部署代价几乎为零。这个仓库是论文《YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information》的官方实现内置检测、训练、评估、导出全套脚本与模型配置在 MS COCO 上最高的 YOLOv9-E 达到 55.6% AP最小的 YOLOv9-T 只有 2.0M 参数适合从想要高精度到必须跑得动的各类目标检测、实例分割落地需求。项目速览这是一个拿来就能跑的 YOLOv9 实现仓库你不需要从零搭训练框架克隆下来装好依赖就能对图片做推理、用自己的数据集训练、把模型导出成 ONNX 部署。它为三类人准备算法工程师五档规格T/S/M/C/E的检测模型配置都在 models/detect/ 里COCO 指标可直接复现评估嵌入式/边缘开发者小模型参数量仅 2.0M支持 ONNX、TorchScript 导出可对接边缘设备推理想迁移到垂直场景的开发者仓库附带实例分割、全景分割甚至多任务训练脚本如 segment/、panoptic/、train_dual.py一套代码覆盖多种视觉任务。仓库内置性能对比YOLOv9PGI与基线 GELAN 在各规格下的 AP 与参数量对照核心能力拆解梯度信息换精度COCO 上 55.6% AP 的完整参数表PGI 的价值直观地体现在数字上。以 MS COCO 640 输入为例仓库 README 公布的指标如下型号AP参数量FLOPsYOLOv9-T38.3%2.0M7.7GYOLOv9-S46.8%7.1M26.4GYOLOv9-M51.4%20.0M76.3GYOLOv9-C53.0%25.3M102.1GYOLOv9-E55.6%57.3M189.0G这组数据说明两件事一是大不等于好——YOLOv9-T 只用 2.0M 参数就拿到 38.3% AP超过很多同量级的旧模型二是各档位间梯度平滑你可以按硬件预算精确选型号。需要注意基线模型 GELAN 用于论文实验仓库主要发布 YOLOv9 系列权重两者的逐型号指标对照请以仓库 README 中的性能表为准。小模型上边缘2.0M 参数实时推理怎么做YOLOv9-T 的 7.7G FLOPs 意味着什么普通消费级 GPU 上单张图片推理远低于 1 秒配合 ONNX Runtime 也能在 Jetson 等边缘设备流畅运行。推理入口 detect.py 支持图片、目录、视频和摄像头--source可传0表示摄像头并内置--half半精度、--device cpu纯 CPU 选项一条命令即可在树莓派级别硬件上出结果。检测阈值--conf-thres、NMS 阈值--iou-thres也都暴露为参数便于按场景调松紧。python detect.py --source ./data/images/horses.jpg --img 640 --device 0 \ --weights ./yolov9-c-converted.pt用仓库自带的转换版权重对示例图片跑一次检测结果图保存在runs/detect/下不止检测框分割与多任务一套代码搞定仓库不止做目标检测还包含实例分割segment/、全景分割panoptic/以及 train_dual.py、train_triple.py 等多任务训练入口对应论文的多任务学习工作。以实例分割为例用 models/segment/yolov9-c-seg.yaml 配置训练后模型能同时输出检测框与目标轮廓适合需要量化目标区域如瑕疵面积、病斑占比的场景。仓库 Teaser 部分的多任务学习示意同一套框架覆盖检测、实例分割、全景分割等任务从零跑通配好环境一键安装步骤克隆仓库并安装依赖即可开始git clone https://gitcode.com/GitHub_Trending/yo/yolov9 cd yolov9 pip install -r requirements.txt第二条命令安装 PyTorch、OpenCV、NumPy 等核心依赖完整清单见 requirements.txt。如果机器有 NVIDIA 显卡且想彻底避免环境冲突README 推荐直接用nvidia-docker拉取官方 PyTorch 容器镜像把代码目录挂载进去即可具体命令以仓库 README 的 Installation 部分为准。数据怎么准备COCO 一键脚本 自定义数据集配置两条路任选用 COCO 复现指标执行bash scripts/get_coco.sh会自动下载 MS COCO 图片和标注数据组织方式由 data/coco.yaml 描述——该文件声明了数据根路径、train/val 图像列表以及 80 个类别名。用自己的数据图片与 YOLO 格式标注每行一个目标准备好后仿照data/coco.yaml写一个自己的 yaml改path、train/val和类别名names即可训练与推理脚本都会读这份配置。跑通第一次推理和训练先推理用仓库自带的转换版权重转换原因见下文延伸与边界python detect.py --source ./data/images/horses.jpg --img 640 \ --weights ./yolov9-c-converted.pt对示例马匹图片做检测带框结果图存到runs/detect/再训练最小配置只需指定模型结构、数据和训练轮数python train_dual.py --cfg models/detect/yolov9-c.yaml --data data/coco.yaml \ --img 640 --weights --epochs 500 --close-mosaic 15从 yolov9-c 结构开始训练--weights 表示不加载预训练权重。--cfg换其他 yaml 即可切换 T/S/M/E 型号超参数文件用--hyp指定仓库默认 data/hyps/hyp.scratch-high.yaml 面向高精度场景多卡训练加分布式启动参数README Training 一节有完整示例。落地场景导出 ONNX边缘部署最快配置训练完成后用 export.py 把.pt模型转成部署格式--include指定目标格式ONNX、TorchScript 等支持格式见export_formats()python export.py --weights runs/train/yolov9-c/weights/best.pt \ --img 640 --include onnx --simplify--simplify会简化 ONNX 计算图减小体积再加--half可导出半精度权重进一步压缩。导出的 ONNX 文件即可在 PythonONNX Runtime、C#、OpenCV DNN 等环境中加载不再依赖 PyTorch。部署架构从边缘识别到监控看板一个典型的落地链路如下图所示边缘端做实时检测结果回传云端做存储、统计与告警训练日志则接入看板持续观察模型状态仓库 utils/loggers/ 内置 Comet、WandB 等日志集成训练指标可以直接进可视化平台便于长期跟踪模型在自有数据上的表现漂移。接入自己的业务把检测框接进业务系统只需两步推理时加--save-txt输出结构化坐标或直接在代码里调用模型拿到结果后自行处理按类别过滤可用--classes参数。至于具体业务巡检、质检、监测能提效多少取决于数据质量与标注覆盖建议先用小数据集跑通全流程再评估投入产出。延伸与边界还能往哪走极致加速TensorRT 部署、QAT 量化感知训练、OpenVINO 都有社区验证过的做法README 的 Useful Links 部分列了对应讨论索引规模化训练支持torch.distributed多卡训练与--sync-bn以及--freeze冻结骨干做迁移学习小数据集场景很实用扩展任务在 train_dual.py、train_triple.py 基础上可继续叠加检测分割全景分割等多目标训练。它的边界这几个坑要知道必须做重参数化。PGI 结构只在训练时存在得到的原始权重需要合并成普通卷积-converted权重才能配合 detect.py/val.py 使用未转换的权重要用 detect_dual.py 系列脚本。自己训练完模型别忘了这一步详见 tools/reparameterization.ipynb。预训练权重只覆盖 COCO 80 类。想检测自己的类别必须用自定义数据重新训练仓库不承诺开箱即用的通用检测能力。许可协议是 GPL v3见 LICENSE.md闭源商业产品集成前请评估合规要求。仓库是研究代码不是产品。它不带内置跟踪Tracking、姿态估计等模块也没有数据标注工具这类能力需要自行组合第三方方案以仓库实际提供的脚本为准。指标上限看数据。COCO 上的 55.6% AP 不等于你在自己数据集上也能拿到同等精度——长尾类别、小目标、遮挡严重的场景通常会明显低于基准数字。把它定位清楚这是一个精度与部署成本兼顾、且带完整多任务脚本的 YOLO 系列实现适合从实验到边缘上线的完整链路把重参数化、许可和自定义训练这三件事想清楚它就能在你的场景里稳定产出结果。【免费下载链接】yolov9Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information项目地址: https://gitcode.com/GitHub_Trending/yo/yolov9创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表