【2022第十届‘泰迪杯’挑战赛】A题:害虫识别完整版(大致思路。详细过程和代码以及结果csv在压缩包中)

2023-11-01

【2022第十届‘泰迪杯’挑战赛】A题:害虫识别完整版(已有完整结果)

2022泰迪杯挑战赛A题害虫识别完整版(大致思路,详细过程和代码在压缩包中):

正式数据:

2022.04.06(正式数据)

提取码: u54n

写在前面:

完整版下载:

建议Chrome浏览器打开

下载地址

本套压缩包,包含了:

数据预处理代码、YOLO害虫识别定位全套代码、结果处理代码(去归一化为像素坐标等转为csv文件)、已有的结果result2,result3.csv(由于百度网盘速度感人,上传至阿里云盘,包中有网站和提取码)、另外赠送pycharm专业版软件

已有整套结果数据(检测的图片,问题二三的结果csv)

一、数据预处理:(在数据预处理.ipynb中)

1、构造出YOLO格式标签集:

在这里插入图片描述

2、预处理部分代码:

在这里插入图片描述

在这里插入图片描述

3、选出用于训练的图片集和待测图片集:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、通过txt文件和对应的images图片文件转化为YOLO所需的voc数据集格式:

三、模型训练(全套模型和结果都在YOLO—hc压缩包中)

1、安装好环境,连接好服务器

2、参数设置成本题的数据:

在这里插入图片描述

3、训练好后使用best.pt进行验证,val.py参数为:

在这里插入图片描述

4、验证好后,进行最后的检测,detect.py,参数方面设置为:选用最好模型,选择待测数据集:
在这里插入图片描述

五、结果进行处理转为像素坐标点然后写入csv

runs\train\exp16:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

confusion_matrix.png(混淆矩阵)

混淆矩阵能对分类问题的预测结果进行总结,显示了分类模型的在进行预测时会对哪一部分产生混淆。

F1_curve:

F1分数与置信度之间的关系。F1分数(F1-score)是分类问题的一个衡量指标,是精确率precision和召回率recall的调和平均数,最大为1,最小为0, 1是最好,0是最差

P_curve.png :

准确率precision和置信度confidence的关系图

PR_curve.png:

PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。PR曲线下围成的面积即AP,所有类别AP平均值即Map.如果PR图的其中的一个曲线A完全包住另一个学习器的曲线B,则可断言A的性能优于B,当A和B发生交叉时,可以根据曲线下方的面积大小来进行比较。一般训练结果主要观察精度和召回率波动情况(波动不是很大则训练效果较好)Precision和Recall往往是一对矛盾的性能度量指标;提高Precision == 提高二分类器预测正例门槛 == 使得二分类器预测的正例尽可能是真实正例;提高Recall == 降低二分类器预测正例门槛 == 使得二分类器尽可能将真实的正例挑选

R_curve.png :召回率和置信度之间的关系
results.png:

Box_loss: YOLO V5使用 GIOU Loss作为bounding box的损失,Box推测为GIoU损失函数均值,越小方框越准;
Objectness_loss: 推测为目标检测loss均值,越小目标检测越准;
Classification_loss: 推测为分类loss均值,越小分类越准;
Precision: 精度(找对的正类/所有找到的正类);
Recall: 真实为positive的准确率,即正样本有多少被找出来了(召回了多少).Recall从真实结果角度出发,描述了测试集中的真实正例有多少被二分类器挑选了出来,即真实的正例有多少被该二分类器召回。
val Box_loss: 验证集bounding box损失;
val Objectness_loss: 验证集目标检测loss均值;
val classification_loss: 验证集分类loss均值;

C:\Users\X\Desktop\yolov5-hc\runs\val\exp3:

在这里插入图片描述

六、结果:

运行detect.py:

在这里插入图片描述

检测图片:

在这里插入图片描述

转为结果保存到csv文件:

在这里插入图片描述

result2.csv:

在这里插入图片描述

result3.csv:

在这里插入图片描述

优化前:

在这里插入图片描述

优化后:

在这里插入图片描述

七、写在最后:

由于数据量过大不能一次性上传完,所以拆分些数据先一步上传至阿里云盘,具体在教程中

有包中详细教程,纯手码,创作不易,感谢支持

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【2022第十届‘泰迪杯’挑战赛】A题:害虫识别完整版(大致思路。详细过程和代码以及结果csv在压缩包中) 的相关文章

  • for 循环在 Python 中生成/导出输出所需的时间太长

    这个问题是上一个问题的延续for 循环花费太长时间才能产生输出 https stackoverflow com questions 41339200 for loop taking too long to produce output no
  • 在Linux中的端口80上运行flask[重复]

    这个问题在这里已经有答案了 也许以前有过这个问题的答案 所以请重定向我 如果是这样的话 我正在考虑在端口 80 上运行 Flask 所以我检查了是否有任何东西正在使用端口 80 因为事实证明端口 80 没有运行 所以当我输入以下内容时 if
  • Python 如果 kwargs 中的 key 并且 key 为 true

    if force in kwargs and kwargs force is True 感觉应该有更好的方法来编写这个条件 因为我重复了键和变量 假设您确实想检查返回的关键字参数是否is True 这是另一种稍微不同的方式 if kwarg
  • UnicodeDecodeError:“charmap”编解码器无法解码位置 2483 中的字节 0x81:字符映射到 <未定义>

    我正在解析 csv 文件 但收到以下错误 import os import csv from collections import defaultdict demo data defaultdict list if os path exis
  • 如何从数据库模式自动生成示例 Django 应用程序?

    我正在评估概念验证应用程序的框架 该应用程序的生命周期约为 30 天 之后它将被遗忘或完全重写 我已确定要从现有数据库模式自动生成示例应用程序 然后调整视觉设计的某些方面 我看过一个演示红宝石 on Rails 它会为数据库中的每个表自动生
  • 如何在模型 Django 中创建必需:布尔字段

    我有一个模型 其中有一个名为的字段is student and is teacher Student and Teacher forms is teacher models BooleanField teacher status defau
  • Pyjnius导入jar文件

    Pyjnius 允许您为 java 类创建 python 包装器 例如 Hardware autoclass org myapp Hardware 有没有办法像这样导入现有的 jar 文件 语法是什么样的 您可以将 jar 添加到 CLAS
  • 使用 OpenCV 进行图像模糊检测

    我正在研究图像的模糊检测 我已经用过拉普拉斯方法的方差在 OpenCV 中 img cv2 imread imgPath gray cv2 cvtColor img cv2 COLOR BGR2GRAY value cv2 Laplacia
  • Pandas cut 方法不包括下限

    我正在尝试对包含 0 到 100 范围内的年龄的数据帧列进行分箱 当我尝试使用垃圾箱来包含零年龄时 它不起作用 这是一个使用包含我的数据范围的列表的演示 pd cut pd Series range 101 0 24 49 74 100 范
  • 点击后 Dash DropDown 关闭

    我不希望下拉菜单在选择值后关闭 我希望它在我的页面上保持打开状态 我正在使用 dcc Dropdown dcc Dropdown id job type options self options placeholder Select one
  • 简单 CAE 的问题

    看起来简单的 CAE 不适用于 Carvana 数据集 我正在尝试对 Carvana 数据集进行简单的 CAE 你可以下载它here https www kaggle com c carvana image masking challeng
  • 如何让 Discord 机器人显示“机器人正在输入...”状态?

    所以如果我有一个像这样的长命令 bot command pass context True async def longCommand ctx typing status sleep 10 bot say Done 不幸的是 在文档或此处没
  • 确保特定列位于数据框中最后(或第一个)的最快方法是什么

    given df df pd DataFrame np arange 8 reshape 2 4 columns list abcd 假设我需要专栏 b 到最后 我可以做 df a c d b 但是确保给定列位于末尾的最有效方法是什么 这就
  • Python服务器“通常只允许每个套接字地址使用一次”

    我正在尝试用 python 创建一个非常基本的服务器 它侦听端口 当客户端尝试连接时创建 TCP 连接 接收数据 发回某些内容 然后再次侦听 并无限期地重复该过程 这是我到目前为止所拥有的 from socket import server
  • Python 的二进制字符串列表

    我有一个像这样的二进制字符串 1100011101 我想将其解析为一个列表 其中每个 1 或 0 块都是列表中的单独值 例如 1100011101 变成 11 000 111 0 1 您可以通过使用正则表达式而不是从中获得一点 次要 性能g
  • 提取二值图像中的最中心区域

    我正在处理二进制图像 之前使用此代码来查找二进制图像中的最大区域 Use the hue value to convert to binary thresh 20 thresh thresh img cv2 threshold h thre
  • Kivy错误(python 2.7):sdl2导入错误

    我尝试在我的 Python 2 7 项目 在 PyCharm Windows 10 环境中 上使用 kivy 但出现以下错误 如果有人可以帮助我吗 谢谢 PS 我多次尝试卸载 重新安装库等 并按照像这样的帖子上的建议进行操作 但它不起作用
  • Python:使用Excel CSV文件仅读取某些列和行

    虽然我可以读取 csv 文件而不是读取整个文件 但如何仅打印某些行和列 想象一下这是 Excel A B C D E State Heart Disease Rate Stroke Death Rate HIV Diagnosis Rate
  • 从 Python 访问 802.11 无线管理帧

    我想从 Linux 上的 Python 嗅探 802 11 管理 探测请求 帧 这可以从 Scapy 中实现 如下所示 coding utf 8 from scapy all import def proc p if p haslayer
  • Django Python - LDAP 身份验证

    我目前正在研究 Django Python 我的目标是从 Ldap 目录对用户进行身份验证 我确实有 python 代码来访问 ldap 目录并检索信息 Code import ldap try l ldap open ldap forum

随机推荐