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的生猪检测+状态识别分析系统
在我之前的一篇文章中有过生猪检测盒状态识别相关的项目实践,如下: 《Python基于yolov4实现生猪检测及状态识》 感兴趣的话可以自行移步阅读,这里主要是基于同样的技术思想,将原始体积较大的yolov4模型做无缝替换,使…...

阅读笔记 First Order Motion Model for Image Animation
文章解决的是图片动画的问题。假设有源图片和驱动视频,并且其中的物体是同一类的,文章的方法让源图片中的物体按照驱动视频中物体的动作而动。 文章的方法只需要一个同类物体的视频集,不需要而外的标注。 方法 该方法基于self-supervised策…...

【计算机图形学】课堂习题汇总
在直线的光栅化算法中,如果不考虑最大位移方向则可能得到怎样的直线? A:斜率为1的线 B:总是垂直的 C:离散的点,无法构成直线 D:总是水平的 在直线的改进的Bresenham算法中,每当误…...

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

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

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

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

【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 , Python 哪一个更快? 读者答:这个我不知道从哪方面说,就是 C 的话,它其实能够提供开发者非常多的权限,就是说它能涉及到一些操作系统级别的一些操作,速度应该挺快。然后 Python 实现功能还…...

NOPI用法之自定义单元格背景色(3)
NPOI针对office2003使用HSSFWorkbook,对于offce2007及以上使用XSSFWorkbook;今天我以HSSFWorkbook自定义颜色为例说明,Office2007的未研究呢 在NPOI中默认的颜色类是HSSFColor,它内置的颜色有几十种供我们选择,如果不…...

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

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

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

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

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

200人 500人 园区网设计
实验要求: ① 设置合理的STP优先级、边缘端口、Eth-trunk ② 企业内网划分多个vlan ,减少广播域大小,提高网络稳定性 ③ 所有设备,在任何位置都可以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(Application Programming Interface),翻译为应用程序接口,是一套定义程序之间如何通讯的接口。API可以实现软件的可重用性、可维护性和互操作性,同时也可以提升软件的性能和安全性。API接口是一个软件系统中的重要…...

Day32内部类
内部类 内部类就是在一个类中定义一个类,(在A类中定义一个B类,B类就被称为内部类) 格式:public class 类名{ 修饰符 class 类名{} } 如:public class Outer{ public class Inner {} } //内部类可以访问外部…...

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

时下热门话题:ChatGPT能否取代人类?
时下热门话题:ChatGPT能否取代人类? 2022年11月底,人工智能对话聊天机器人ChatGPT推出,迅速在社交媒体上走红,短短5天,注册用户数就超过100万。2023年1月末,ChatGPT的月活用户已突破1亿&#x…...

每日刷题记录(十七)
目录 第一题:求12...n解题思路:代码实现: 第二题:两两交换链表中的节点解题思路:代码实现: 第三题:只出现一次的数字 II解题思路:代码实现: 第四题:根据字符串…...

开放原子训练营(第三季)RT-Thread Nano学习营一探究竟
前言 不知道从什么时候起,智能设备开始普及到了我们日常生活的方方面面。下班还未到家,热水器就可以调到合适的温度;上班刚进公司,忘关空调也不再是什么烦恼;诸如夜晚的灯光变换,白昼的窗帘适应等更给我们…...

数据库系统概论(二)关系数据库,SQL概述和数据库安全性
作者的话 前言:总结下知识点,自己偶尔看一看。 目录 一、关系模型概述 1.1关系数据结构及形式化定义 1.1.1域(Domain) 1.1.2笛卡尔积(Cartesian Product) 1.1.3关系(Relation) …...

【VM服务管家】VM4.x算子SDK开发_3.1 环境配置类
目录 3.1.1 环境配置:CSharp算子SDK开发环境配置方法3.1.2 算子封装:使用C封装算子SDK的方法3.1.3 异常中断:算子SDK软件运行报错“托管调试助手”中断的解决方法3.1.4 深度学习:GPU运行深度学习算子引发StackOverFlow异常的方法 …...

Java核心书籍1
1.《Java核心技术》是一本深入浅出的Java编程指南,适合初学者和有一定Java编程基础的读者。这本书的主要作者是Cay S. Horstmann和Gary Cornell,他们都是Java领域的知名专家。这本书的最新版本是第10版,其中涵盖了Java SE 9、10和11的新特性&…...

crontab详细用法 定时任务
使用crontab可以在指定时间执行一个shell脚本或者一系列Linux命令 crontab的使用方法 方法1.使用crontab命令 例如添加一个新的或者编辑已有的,使用: crontab -e就可以进入配置文件.此时配置crontab的执行者是当前登入用户,如果当前有用户是root,需要为其他用户配置,可以使用…...

基于ArcGIS Pro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局
查看原文>>>基于ArcGIS Pro、Python、USLE、INVEST模型等多技术融合的生态系统服务构建生态安全格局 目录 第一章、生态安全评价理论及方法介绍 第二章、平台基础 第三章、数据获取与清洗 第四章、基于USLE模型的土壤侵蚀评价 第五章、基于风蚀修正模型的防风固…...

开心档之MySQL 创建数据类型
MySQL 数据类型 MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。 数值类型 MySQL 支持所有标准 SQL 数值数据类型。 这些类型包括严格数值数据类型(INTEGER、S…...

【C++ Primer(第5版) 课后习题题目及答案 第一章】
C Primer5th 课后习题答案 第一章 1.1:查阅你使用的编译器的文档,确定它所使用的文件命名约定。编译并运行main程序。1.2:改写程序,让它返回-1。返回值-1通常被当作程序错误的标识。重新编译并运行你的程序,观察你的系…...