基于yolov5的农业害虫图像目标检测

目录

前言

一、读取标记数据

1.数据下载

2.数据示例

3.数据预处理​​​​​​​

二、数据分析

三、算法介绍

1.卷积神经网络

2.yolov5

3.数据增强

4.自适应锚框

5.遗传算法实现超参数演化

一个小细节,best.pt的意义

四、云训练环境的搭建

五、训练结果


前言

其实是前段时间参加泰迪杯的赛题记录啦。

在农业生产中预防虫害的工作异常重要,传统的监视、检测方法不能适应工业化农业生产对虫害预防工作的需要。本文结合具体的数据特点,主要应用了yolov5算法建立农田害虫图像识别模型,确定害虫具体位置及类别,并对不同种类的害虫进行了数量统计。

一、读取标记数据

1.数据下载

数据是泰迪杯主办方提供的已经标记好的数据,4k画质的图片,总大小8个G

链接:https://pan.baidu.com/s/1fvmNHGrLvflEovjfCjDLOw?pwd=6666 
提取码:6666 

(如果过期了可以联系我补)

2.数据示例

图片

标签

3.数据预处理

yolov5要求的输入格式是txt,所以要把csv转成txt,

对于标签需要进行编码,比如这里的虫子编号7,228转成1号和13号,否则实测会报错,这是yolov5框架目前的缺陷

对于坐标进行归一化处理

2022泰迪杯自动提取csv表格文件中的数据,保存到符合YOLOv5格式的txt文件中,并修改标签值的代码实现_Flying Bulldog的博客-CSDN博客_csv转yolo

二、数据分析

分析使用的是泰迪杯平台提供的SPSSPRO数据分析平台,功能差不多就是Tableau+Spss,熟悉这两个软件的小伙伴应该懂我意思(笑)

由上图可以看出只有少部分图片中的害虫个数超过10个,大部分图片的害虫个数都是1到2个

 

由上图可知到标记样本的害虫目标绝大多数分布在图片的中间位置,极少数出现在图片的边缘

 

由上图和下表可知61%的图片里是没有害虫的,而在这些有标签的图片中只有八种害虫超过了总数的1%,其中八点灰灯蛾数量最多,占9.3%。

害虫名称

八点灰灯蛾

褐飞虱属

白背飞虱

二化螟

蟋蟀

黄足猎蝽

黄毒蛾

粘虫

频数

1637

247

150

120

90

87

59

40

27

百分比(%)

61.634

9.3

5.648

4.518

3.389

3.276

2.221

1.506

1.017

累计百分比(%)

61.634

70.934

76.581

81.099

84.488

87.764

89.985

91.491

92.508

实际上在标签数据极少的情况下,那些在图片中出现频率低的害虫将很难被识别,样本标签不平衡是我比赛时没有想到的问题

三、算法介绍

1.卷积神经网络

卷积神经网络主要由这几类层构成:输入层、卷积层,ReLU层、池化(Pooling)层和全连接层。通过将这些层叠加起来,就可以构建一个完整的卷积神经网络。

—— https://zhuanlan.zhihu.com/p/47184529

2.yolov5

yolo系列模型是图像目标检测领域的一种分支,是和R-CNN并称两个大方向,二者的最终目的都是为了在给定的图像中识别出目标,但是yolo是一步到位,后者则一般分为两步执行,所以论速度yolo更快

深入浅出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基础知识完整讲解_江大白*的博客-CSDN博客_江大白yolov3深入浅出Yolo系列之Yolov5核心基础知识完整讲解 - 知乎深入浅出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基础知识完整讲解_江大白*的博客-CSDN博客_江大白yolov3

以上两点是模型的基础知识,下面是本文采用的前沿优化

3.数据增强

目标检测 YOLOv5 - 数据增强_西西弗Sisyphus的博客-CSDN博客_yolov5数据增强

4.自适应锚框

yolov5中的初始anchor值以及根据数据集中的目标进行聚类等计算得到自适应anchor_沉醉,于风中的博客-CSDN博客_yolov5自适应锚框

5.遗传算法实现超参数演化

YOLOv5的Tricks | 【Trick5】遗传算法实现超参数进化(Hyperparameter Evolution)_Clichong的博客-CSDN博客k

看起来很高端,但其实都是在框架内部已经实现的算法,只需要启用并根据实际情况调参即可(ಥ _ ಥ)

一个小细节,best.pt的意义

http://t.csdn.cn/13bNiyolov5中的best.pt_EXYlkx的博客-CSDN博客http://t.csdn.cn/13bNi

四、云训练环境的搭建

云GPU运行yolov5模型训练_EXYlkx的博客-CSDN博客

五、训练结果

 这里的val是十折交叉验证,准确率98%左右。当然这终究是在标签集上的准确率,在比赛的测试数据上,目测有个40%就不错了。。图像识别领域目前整体就只能做到这个程度了

 

yolov5的detect输出可以设置输出图片和txt

 

如果需要csv,也可以用numpy很容易的转换

实现批量读取txt文件数据并写入csv文件_cyzzzm的博客-CSDN博客_批量txt转csv​​​​​​​

猜你喜欢

转载自blog.csdn.net/EXYlkx/article/details/125367454