当前位置: 首页 > news >正文

python基于轻量级YOLOv5的生猪检测+状态识别分析系统

在我之前的一篇文章中有过生猪检测盒状态识别相关的项目实践,如下:

《Python基于yolov4实现生猪检测及状态识》

感兴趣的话可以自行移步阅读,这里主要是基于同样的技术思想,将原始体积较大的yolov4模型做无缝替换,使用当下比较优秀的轻量级yolov5s模型来实现目标检测,后续基于状态识别模型实现生猪状态的识别,首先看下效果图,如下所示:

 简单看下数据集:

 YOLO格式标注文件如下所示:

 实例标注内容如下所示:

0 0.062744 0.558594 0.046387 0.16276
0 0.077637 0.701497 0.0625 0.126953
0 0.107422 0.805664 0.053711 0.087891
0 0.129883 0.798503 0.063477 0.138672
0 0.151367 0.811198 0.073242 0.123698
0 0.22876 0.842773 0.085449 0.115234
0 0.283936 0.794922 0.066895 0.227865
0 0.333496 0.773438 0.06543 0.197917
0 0.362793 0.812826 0.078125 0.166016
0 0.394043 0.848958 0.108398 0.167969
0 0.468994 0.878255 0.131348 0.105469
0 0.720459 0.733398 0.068848 0.19987
0 0.86499 0.628255 0.096191 0.091146
0 0.922607 0.434245 0.040527 0.164062
0 0.87915 0.301107 0.046387 0.146484
0 0.907715 0.297852 0.035156 0.120443
0 0.870117 0.166992 0.047852 0.108724
0 0.829102 0.145182 0.058594 0.097656
0 0.79126 0.264974 0.112793 0.135417
0 0.684326 0.127279 0.104004 0.078776
0 0.668213 0.068685 0.10498 0.064453
0 0.616699 0.142578 0.104492 0.174479
0 0.49292 0.151042 0.162598 0.098958
0 0.437256 0.417643 0.202637 0.212891
0 0.387207 0.329753 0.104492 0.210286
0 0.300049 0.403971 0.069824 0.222005
0 0.195312 0.514974 0.12207 0.227865
0 0.222168 0.451497 0.092773 0.133464

VOC格式标注文件如下所示:

 实例标注数据如下所示:

<annotation><folder>DATASET</folder><filename>images/20190621141536.jpg</filename><source><database>The DATASET Database</database><annotation>DATASET</annotation><image>DATASET</image></source><owner><name>YMGZS</name></owner>    <size><width>2048</width><height>1536</height><depth>3</depth></size><segmented>0</segmented><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>775</xmin><ymin>1268</ymin><xmax>1072</xmax><ymax>1406</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>507</xmin><ymin>1279</ymin><xmax>785</xmax><ymax>1434</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>464</xmin><ymin>1130</ymin><xmax>728</xmax><ymax>1333</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>361</xmin><ymin>1197</ymin><xmax>507</xmax><ymax>1366</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>226</xmin><ymin>1164</ymin><xmax>399</xmax><ymax>1302</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>161</xmin><ymin>1171</ymin><xmax>321</xmax><ymax>1311</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>168</xmin><ymin>1025</ymin><xmax>314</xmax><ymax>1175</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>104</xmin><ymin>973</ymin><xmax>185</xmax><ymax>1161</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>87</xmin><ymin>754</ymin><xmax>166</xmax><ymax>987</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>68</xmin><ymin>641</ymin><xmax>178</xmax><ymax>736</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>70</xmin><ymin>580</ymin><xmax>179</xmax><ymax>656</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>71</xmin><ymin>425</ymin><xmax>218</xmax><ymax>592</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>266</xmin><ymin>335</ymin><xmax>487</xmax><ymax>440</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>464</xmin><ymin>321</ymin><xmax>673</xmax><ymax>454</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>530</xmin><ymin>508</ymin><xmax>768</xmax><ymax>717</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>709</xmin><ymin>521</ymin><xmax>909</xmax><ymax>847</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>787</xmin><ymin>209</ymin><xmax>1011</xmax><ymax>549</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>949</xmin><ymin>64</ymin><xmax>1261</xmax><ymax>233</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1045</xmin><ymin>237</ymin><xmax>1387</xmax><ymax>387</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1254</xmin><ymin>66</ymin><xmax>1476</xmax><ymax>218</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1295</xmin><ymin>135</ymin><xmax>1495</xmax><ymax>235</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1480</xmin><ymin>104</ymin><xmax>1661</xmax><ymax>197</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1649</xmin><ymin>142</ymin><xmax>1740</xmax><ymax>264</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1772</xmin><ymin>341</ymin><xmax>1891</xmax><ymax>560</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1828</xmin><ymin>553</ymin><xmax>1933</xmax><ymax>772</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1810</xmin><ymin>782</ymin><xmax>1939</xmax><ymax>977</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1364</xmin><ymin>902</ymin><xmax>1576</xmax><ymax>1216</ymax></bndbox></object><object>        <name>pig</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>1342</xmin><ymin>1016</ymin><xmax>1514</xmax><ymax>1247</ymax></bndbox></object></annotation>

默认使用轻量级的yolov5s模型来进行模型的开发,默认训练100次epoch,结果详情如下所示:

【F1值曲线】

 【PR曲线】

 【Precision和Recall曲线】

 数据可视化:

 Batch计算实例:

 可视化界面推理实例如下:

 目标检测+状态识别在界面中做了集成实现。

相关文章:

python基于轻量级YOLOv5的生猪检测+状态识别分析系统

在我之前的一篇文章中有过生猪检测盒状态识别相关的项目实践&#xff0c;如下&#xff1a; 《Python基于yolov4实现生猪检测及状态识》 感兴趣的话可以自行移步阅读&#xff0c;这里主要是基于同样的技术思想&#xff0c;将原始体积较大的yolov4模型做无缝替换&#xff0c;使…...

阅读笔记 First Order Motion Model for Image Animation

文章解决的是图片动画的问题。假设有源图片和驱动视频&#xff0c;并且其中的物体是同一类的&#xff0c;文章的方法让源图片中的物体按照驱动视频中物体的动作而动。 文章的方法只需要一个同类物体的视频集&#xff0c;不需要而外的标注。 方法 该方法基于self-supervised策…...

【计算机图形学】课堂习题汇总

在直线的光栅化算法中&#xff0c;如果不考虑最大位移方向则可能得到怎样的直线&#xff1f; A&#xff1a;斜率为1的线 B&#xff1a;总是垂直的 C&#xff1a;离散的点&#xff0c;无法构成直线 D&#xff1a;总是水平的 在直线的改进的Bresenham算法中&#xff0c;每当误…...

国外导师对博士后申请简历的几点建议

正所谓“工欲善其事&#xff0c;必先利其器”&#xff0c;想要申请国外的博士后职位&#xff0c;就要准备好相应的申请文书材料。如果说Cover Letter是职位的窍门砖&#xff0c;那么申请者的简历就是争取职位的决定性筹码。 相信大家已经看过许多简历的模版了&#xff0c;但是…...

【五一创作】Scratch资料袋

Scratch软件是免费的、免费的、免费的。任何需要花钱才能下载Scratch软件的全是骗子。 1、什么是Scratch Scratch是麻省理工学院的“终身幼儿园团队”开发的一种图形化编程工具。是面向青少年的一款模块化&#xff0c;积木化、可视化的编程语言。 什么是模块化、积木化&…...

数据库基础篇 《17.触发器》

数据库基础篇 《17.触发器》 在实际开发中&#xff0c;我们经常会遇到这样的情况&#xff1a;有 2 个或者多个相互关联的表&#xff0c;如商品信息和库存信息分别存放在 2 个不同的数据表中&#xff0c;我们在添加一条新商品记录的时候&#xff0c;为了保证数据的完整性&#…...

03 - 大学生如何使用GPT

大学生如何使用GPT提高学习效率 一、引言 在当今的高速发展的信息时代&#xff0c;大学生面临着越来越多的学习挑战。作为一种先进的人工智能技术&#xff0c;GPT为大学生提供了一种强大的学习工具。本文将介绍大学生在不同场景中如何使用GPT来提高学习效率&#xff0c;并给出…...

【P1】Jmeter 准备工作

文章目录 一、Jmeter 介绍1.1、Jmeter 有什么样功能1.2、Jmeter 与 LoadRunner 比较1.3、常用性能测试工具1.4、性能测试工具如何选型1.5、学习 Jmeter 对 Java 编程的要求 二、Jmeter 软件安装2.1、官网介绍2.2、JDK 安装及环境配置2.3、Jmeter 三种模式2.4、主要配置介绍2.4.…...

字节的面试,你能扛住几道?

C &#xff0c; Python 哪一个更快&#xff1f; 读者答&#xff1a;这个我不知道从哪方面说&#xff0c;就是 C 的话&#xff0c;它其实能够提供开发者非常多的权限&#xff0c;就是说它能涉及到一些操作系统级别的一些操作&#xff0c;速度应该挺快。然后 Python 实现功能还…...

NOPI用法之自定义单元格背景色(3)

NPOI针对office2003使用HSSFWorkbook&#xff0c;对于offce2007及以上使用XSSFWorkbook&#xff1b;今天我以HSSFWorkbook自定义颜色为例说明&#xff0c;Office2007的未研究呢 在NPOI中默认的颜色类是HSSFColor&#xff0c;它内置的颜色有几十种供我们选择&#xff0c;如果不…...

数据分析中常见标准的参考文献

做数据分析过程中&#xff0c;有些分析法方法的标准随便一搜就能找到&#xff0c;不管是口口相传还是默认&#xff0c;大家都按那样的标准做了。日常分析不细究出处还可以&#xff0c;但是正式的学术论文你需要为你写下的每一句话负责&#xff0c;每一个判断标准都应该有参考文…...

辨析 变更请求、批准的变更请求、实施批准的变更请求

变更请求、批准的变更请求、实施批准的变更请求辨析 辨析各种变更请求&#xff0c;不服来辨。 变更请求 定义&#xff1a;对正规受控的文件或计划(范围、进度、成本、政策、过程、计划或程序)等的变更&#xff0c;以反映修改或增加的意见或内容 根据变更请求的工作内容可将变…...

leetcode 561. 数组拆分

题目描述解题思路执行结果 leetcode 561. 数组拆分 题目描述 数组拆分 给定长度为 2n 的整数数组 nums &#xff0c;你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) &#xff0c;使得从 1 到 n 的 min(ai, bi) 总和最大。 返回该 最大总和 。 示例 1&am…...

AviatorScript

AviatorScript 是一门高性能、轻量级寄宿于 JVM &#xff08;包括 Android 平台&#xff09;之上的脚本语言 特性介绍 支持数字、字符串、正则表达式、布尔值、正则表达式等基本类型&#xff0c;完整支持所有 Java 运算符及优先级等。函数是一等公民&#xff0c;支持闭包和函…...

Oracle跨服务器取数——DBlink 初级使用

前言 一句话解释DBlink是干啥用的 实现跨库访问的可能性. 通过DBlink我们可以在A数据库访问到B数据库中的所有信息,例如我们在加工FDS层表时需要访问ODS层的表,这是就需要跨库访问 一、DBlink的分类 private&#xff1a;用户级别&#xff0c;只有创建该dblink的用户才可以使…...

200人 500人 园区网设计

实验要求&#xff1a; ① 设置合理的STP优先级、边缘端口、Eth-trunk ② 企业内网划分多个vlan &#xff0c;减少广播域大小&#xff0c;提高网络稳定性 ③ 所有设备&#xff0c;在任何位置都可以telnet远程管理 ④ 出口配置NAT ⑤ 所有用户均为自动获取ip地址 ⑥ 在企业…...

netstat命令解析

一、linux系统中netstat命令的帮助信息 └──╼ $netstat -h usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}netstat [-vWnNcaeol] [<Socket> ...]netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }-r, --route …...

API接口的自我阐述

API&#xff08;Application Programming Interface&#xff09;&#xff0c;翻译为应用程序接口&#xff0c;是一套定义程序之间如何通讯的接口。API可以实现软件的可重用性、可维护性和互操作性&#xff0c;同时也可以提升软件的性能和安全性。API接口是一个软件系统中的重要…...

Day32内部类

内部类 内部类就是在一个类中定义一个类&#xff0c;&#xff08;在A类中定义一个B类&#xff0c;B类就被称为内部类&#xff09; 格式&#xff1a;public class 类名{ 修饰符 class 类名{} } 如&#xff1a;public class Outer{ public class Inner {} } //内部类可以访问外部…...

用户画像系列——HBase 在画像标签过期策略中的应用

一、背景 前面系列文章介绍了用户画像的概念、用户画像的标签加工、用户画像的应用。本篇文章主要介绍一些画像的技术细节&#xff0c;让大家更加详细的了解画像数据存储和处理的逻辑 举个现实中的例子&#xff1a; 例子1&#xff1a;因为疫情原因&#xff0c;上线一个平台(…...

量子化学计算中的自旋适应算符与费米子激发算符

1. 量子化学计算中的自旋适应算符基础在量子化学模拟领域&#xff0c;保持电子波函数的自旋对称性是一个根本性挑战。传统计算方法中&#xff0c;我们使用Slater行列式来表示多电子波函数&#xff0c;这种方法虽然直观&#xff0c;但无法保证波函数是总自旋算符Ŝ的本征态。自旋…...

用C#给PowerMill做个外挂:手把手教你写第一个连接与断开PM的WinForm工具

用C#打造PowerMill效率工具&#xff1a;从零构建自动化控制面板 在CNC编程工程师的日常工作中&#xff0c;PowerMill作为行业领先的CAM软件&#xff0c;其强大的功能背后也隐藏着大量重复性操作。每天数十次的项目打开关闭、连接状态检查、刀具路径查询等机械式点击&#xff0c…...

2026年企微会话存档涨价后,怎么买最划算?

2026 年企业微信官方会话存档价格大幅上调&#xff0c;基础费用直接翻倍。不少依赖会话存档做合规、质检的企业&#xff0c;陷入了 “合规刚需不能丢&#xff0c;成本暴涨扛不住” 的两难。其实&#xff0c;放弃纯官方接口自研&#xff0c;转向高性价比第三方服务商&#xff0c…...

【STM32】GuiLite在HAL库环境下的轻量级GUI移植实战

1. GuiLite框架简介 第一次接触GuiLite是在一个资源紧张的STM32F103项目上&#xff0c;当时需要给设备加个简单的用户界面&#xff0c;但传统的GUI框架动不动就几十KB的代码量实在吃不消。GuiLite这个只有5千行C代码的轻量级框架完美解决了我的痛点。 它的核心优势可以用三个关…...

仿真流程专题——基于Workbench的随机振动工程实践与3σ准则应用

1. 随机振动分析入门&#xff1a;从理论到工程实践 第一次接触随机振动分析时&#xff0c;我和大多数工程师一样感到困惑——这种"不确定"的载荷到底该怎么分析&#xff1f;经过多个项目的实战&#xff0c;我发现用生活中的例子最容易理解&#xff1a;想象你在颠簸的…...

UCCL:GPU网络传输的性能优化与创新

1. UCCL&#xff1a;GPU网络传输的革命性创新在分布式机器学习训练场景中&#xff0c;GPU集群间的通信效率往往成为制约系统整体性能的关键瓶颈。传统基于TCP/IP的传输协议由于内核协议栈处理和多次数据拷贝等问题&#xff0c;难以满足现代AI训练任务对低延迟和高带宽的严苛要求…...

Configor 自动重载功能深度解析:实现配置热更新的终极指南

Configor 自动重载功能深度解析&#xff1a;实现配置热更新的终极指南 【免费下载链接】configor Golang Configuration tool that support YAML, JSON, TOML, Shell Environment 项目地址: https://gitcode.com/gh_mirrors/co/configor Configor 是 Golang 生态系统中一…...

2026年选对工作钢格板厂家,这三大核心标准决定你的采购成败

在工业厂房、化工厂、电厂等生产场景中&#xff0c;工作钢格板作为至关重要的安全承重平台与通道&#xff0c;其产品质量直接关系到人员安全与生产稳定。2026年的制造业竞争愈发激烈&#xff0c;供应链选择也更为审慎。面对市场上琳琅满目的供应商&#xff0c;您是否正为找到一…...

告别手动标注!用X-AnyLabeling和SAM-HQ模型,5分钟搞定你的第一个AI标注项目

5分钟极速上手&#xff1a;用X-AnyLabeling与SAM-HQ实现零基础AI标注 在计算机视觉项目的早期阶段&#xff0c;数据标注往往是最耗时的环节。传统手工标注一张图片可能需要几分钟到几十分钟不等&#xff0c;而一个中等规模的数据集往往需要数千张标注样本。这种低效的工作流程…...

LeetCode 重新安排行程题解

LeetCode 重新安排行程题解 题目描述 给定一个机票列表&#xff0c;从起点出发&#xff0c;重新安排行程。 示例&#xff1a; 输入&#xff1a;tickets [["MUC","LHR"],["JFK","MUC"],["SFO","SJC"],["LHR&…...