基于 YOLOv8 的猪只行为智能识别系统实践[目标检测完整源码]
一、项目背景与问题引入
在规模化养殖场中,猪只的进食、饮水、休息及异常行为直接关系到生长效率、健康水平和疾病预警。然而,传统人工巡检方式存在明显短板:
- 人力成本高,难以 24 小时持续监控
- 行为判断主观性强,缺乏量化依据
- 无法形成长期可追溯的数据资产
随着计算机视觉与深度学习技术的成熟,利用目标检测模型对猪只行为进行自动化识别与统计分析,成为智慧养殖的重要技术方向。
基于此,本文介绍一套基于 YOLOv8 的猪只生活行为识别系统,通过深度学习模型 + PyQt5 桌面端工具,实现从模型训练到实际部署的完整闭环。
源码下载与效果演示
哔哩哔哩视频下方观看:
https://www.bilibili.com/video/BV1gMYuzyEtA/
包含:
📦完整项目源码
📦 预训练模型权重
🗂️ 数据集地址(含标注脚本)
二、系统整体架构设计
本系统采用典型的“模型层 + 推理层 + 交互层”三层架构,兼顾算法性能与实际使用体验。
2.1 技术栈选型
| 模块 | 技术方案 |
|---|---|
| 行为识别模型 | YOLOv8(Detection) |
| 深度学习框架 | PyTorch |
| 推理与部署 | Ultralytics YOLO API |
| 可视化界面 | PyQt5 |
| 输入源 | 图片 / 文件夹 / 视频 / 摄像头 |
该组合在保证实时性与准确率的同时,也具备良好的可扩展性,便于后续接入统计分析或物联网系统。
三、行为建模思路:从“动作”到“姿态 + 状态”
3.1 行为拆解逻辑
与简单的“吃 / 喝 / 休息”分类不同,本项目采用了更细粒度的行为建模方式,将猪只行为拆分为:
- 身体姿态:站立 / 坐姿 / 俯卧 / 侧卧
- 行为状态:进食 / 饮水 / 无行为
- 关键设施:饲槽、饮水器
最终形成12 个检测类别,既能反映行为本身,又能结合场景上下文进行判断。
nc:12names:-饲槽-侧卧-坐姿饮水-坐姿吃食-坐姿无行为-站立饮水-站立吃食-站立无行为-俯卧饮水-俯卧吃食-俯卧无行为-饮水器这种设计方式在后续统计分析中尤为重要,例如:
- “长时间站立无行为”
- “频繁饮水但不进食”
都可以作为潜在异常信号。
四、数据集构建与标注规范
4.1 数据集结构
项目使用标准 YOLO 数据组织方式,兼容 Ultralytics 原生训练流程:
dataset/ ├── images/ │ ├── train │ └── val ├── labels/ │ ├── train │ └── val每张图像对应一个.txt标签文件,采用归一化边界框格式:
class_id x_center y_center width height4.2 数据采集特点
- 来自真实养殖环境
- 光照条件复杂、遮挡频繁
- 猪只体态相似,行为差异细微
因此在标注阶段,重点保证:
- 行为与姿态定义的一致性
- 饲槽、饮水器等设施的完整标注
- 多猪场景下的实例区分准确性
—
五、YOLOv8 模型训练与优化
5.1 模型选择原因
YOLOv8 相比早期 YOLO 系列,具备以下优势:
- Anchor-Free 架构,减少先验依赖
- 更高效的特征分配策略(Task-Aligned)
- 推理速度快,适合实时监控场景
在农牧场这类背景复杂、目标密集的环境中,YOLOv8 具备良好的综合表现。
5.2 训练命令示例
yolo detect train\data=datasets/pig_behavior.yaml\model=yolov8n.pt\epochs=100\batch=16\lr0=0.001训练完成后,系统会自动输出:
- 最优权重
best.pt - 损失与 mAP 曲线
- 混淆矩阵与评估指标
当 mAP@0.5 达到较高水平后,即可进入部署阶段。
六、推理与结果可视化实现
6.1 推理流程
系统基于 Ultralytics 官方 API 进行推理封装:
fromultralyticsimportYOLO model=YOLO("best.pt")results=model(source,conf=0.25,save=True)输出结果包含:
- 检测框坐标
- 行为类别
- 置信度信息
6.2 PyQt5 桌面端设计
为了降低使用门槛,项目开发了完整的PyQt5 图形界面,核心功能包括:
- 模型一键加载
- 图片 / 视频 / 摄像头切换
- 检测结果实时展示
- 图片与视频结果保存
即使没有编程经验的养殖人员,也可以直接上手操作。
七、典型应用场景分析
该系统在实际养殖管理中可扩展出多种应用:
日常行为监控
自动统计进食、饮水频率,评估饲养状态异常行为预警
长时间无行为或姿态异常可触发告警数据驱动养殖决策
为饲料调整、环境优化提供客观依据智慧养殖系统集成
可与摄像头、传感器、管理平台联动
八、项目部署与开箱体验
项目已完成工程化封装,具备以下特点:
- 已训练模型权重直接可用
- 支持本地运行与二次训练
- 源码、数据集、UI 完整提供
启动检测仅需:
python main.py即可进入可视化界面。
九、总结与展望
本文介绍了一套面向实际养殖场景的猪只行为识别系统,通过 YOLOv8 模型实现细粒度行为检测,并结合 PyQt5 完成可视化落地。
系统的核心价值在于:
- 将“经验判断”转化为“数据驱动”
- 将单一检测升级为行为分析
- 为智慧养殖提供可复用的技术范式
未来,该方案还可进一步扩展至:
- 行为时间序列分析
- 群体行为统计与对比
- 与疾病模型、环境数据的多模态融合
为现代化、智能化养殖提供更坚实的技术基础。