ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

YOLOv5训练权重与超参数调整:从预训练到猪只行为检测

YOLOv5训练权重与超参数调整:从预训练到猪只行为检测 简介面向养殖场生猪行为状态检测场景这份资源集齐了YOLOv5训练权重、1000余张标注图片及可直接运行的PyQt界面适合有一定深度学习基础的算法工程师或智慧农业项目开发者直接迁移使用。数据集已按train/val/test划分并配置好data.yaml类别涵盖eat、stand、lie、attack四种行为标签为txt格式可无缝适配YOLOv5、YOLOv7、YOLOv8、YOLOv9等主流模型训练。压缩包共2000个文件包括1210个txt标注文件、706张jpg图像、34个Python脚本、28个yaml配置及若干说明文档整体大小约274MB目录结构清晰便于二次开发。已有446人学习下载借助附带权重与划分好的数据集读者可快速复现检测流程节省数据采集和标注时间适合在养殖场监控、生猪行为分析等项目中直接部署验证。3. 训练权重与超参数从预训练权重到能用的检测模型3.1 加载预训练权重与训练命令资源里的训练权重不是从零随机初始化训练出来的而是在 COCO 预训练权重基础上用 1000 多张猪场行为帧微调得到的。常见做法是先把yolov5s.pt作为 backbone 初始化让网络继承通用视觉特征再冻结前几层训练最后解冻全层微调。相比从零训练这个流程收敛更快前 20 个 epoch 就能看到 mAP 明显上升。标准训练命令如下python train.py --data data.yaml --weights yolov5s.pt --img 640 --batch 16 --epochs 100 --device 0 --project runs/pig_train --name exp01这里每个参数都对应一个容易踩坑的配置点。--img 640指定训练输入分辨率网络结构中的 P3、P4、P5 特征层都会以此为准--batch 16需要根据显存调整8GB 显存跑 16 通常稳定OOM 就降到 8--device 0指定第一个 GPU没有 GPU 时改成--device cpu但 1000 张图 100 epoch 可能要跑三四个小时--project和--name决定权重输出目录训练结束后最优权重在runs/pig_train/exp01/weights/best.pt最后一个 epoch 的权重是last.pt后续做界面推理时优先加载best.pt。3.2 不同模型尺寸的选型YOLOv5 的 s、m、l、x 四种尺寸由depth_multiple和width_multiple控制直接决定网络层数和通道数。对猪只行为检测这类目标大、场景固定的任务模型容量不是越大越好因为小数据集撑不起大模型的参数量。以 1080Ti 做参考模型参数量推理耗时适合场景yolov5s7.2M6msPyQt 本地实时检测CPU 可勉强运行yolov5m21.2M9ms服务器推理精度更高yolov5l46.5M15ms离线分析对帧率要求低如果界面端要求 25FPSyolov5m 在普通独显上勉强够用只有 CPU 的边缘盒子建议继续用 yolov5s再配合后续章节提到的推理优化手段。数据量只有 1000 多张时直接选用 yolov5l 容易出现训练集上 loss 很低、测试集上检测框乱跳的情况所以建议以 s 为基线确认 mAP 不再提升后再切到 m。3.3 类别不平衡与超参数调整猪只行为数据里lie和stand样本数量通常远大于eat和attack尤其攻击行为只在视频片段里零星出现。直接用默认超参训练模型会倾向于把不确定的猪只分成lie导致攻击行为漏检。常见的处理方式有三种一是在训练命令里调高分类损失权重二是对少数类样本做离线重采样三是更换低增强策略的超参文件。python train.py --data data.yaml --weights yolov5s.pt --img 640 --batch 16 --epochs 120 --cls 0.6 --obj 0.7 --hyp hyp.scratch-low.yaml--cls 0.6把分类损失的权重从默认值提高让模型更重视类别判断错误--obj 0.7控制目标置信度损失适当提高可以减少漏检--hyp hyp.scratch-low.yaml使用较弱的数据增强适合样本量不大、场景固定的养殖场数据。调整后attack的召回率通常能提升但同时会增加一些误检需要在验证集上反复试 0.5 到 0.8 之间的值。攻击行为如果仍然频繁漏掉优先检查标注框是否把撕咬瞬间的接触部位完整框住而不是继续加大模型尺寸。本文还有配套的精品资源点击获取
返回列表