【2022第十届‘泰迪杯’挑战赛】A题:害虫识别完整版(已有完整结果)
2022泰迪杯挑战赛A题害虫识别完整版(大致思路,详细过程和代码在压缩包中):
正式数据:
2022.04.06(正式数据)
提取码: u54n
写在前面:
完整版下载:
建议Chrome浏览器打开
下载地址
本套压缩包,包含了:
数据预处理代码、YOLO害虫识别定位全套代码、结果处理代码(去归一化为像素坐标等转为csv文件)、已有的结果result2,result3.csv(由于百度网盘速度感人,上传至阿里云盘,包中有网站和提取码)、另外赠送pycharm专业版软件
已有整套结果数据(检测的图片,问题二三的结果csv)
一、数据预处理:(在数据预处理.ipynb中)
1、构造出YOLO格式标签集:
![在这里插入图片描述](https://img-blog.csdnimg.cn/298c940a07ae4eefa2c39b8604e03fe8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
2、预处理部分代码:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1fbfbfc6fd874ae9927b46d14cfc2abb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/187470c2b1494b22a8df1b7c72e4f139.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
3、选出用于训练的图片集和待测图片集:
![在这里插入图片描述](https://img-blog.csdnimg.cn/ef4e8baf46d04d6db8dfba7299dcf7bf.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/1256ae4213ed4bf28c3014a30c1f962a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/8d00e4310cd74bb4816169771379bdf1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/8471437ba7b942a685c45e3ee26b6a6f.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
二、通过txt文件和对应的images图片文件转化为YOLO所需的voc数据集格式:
三、模型训练(全套模型和结果都在YOLO—hc压缩包中)
1、安装好环境,连接好服务器
2、参数设置成本题的数据:
![在这里插入图片描述](https://img-blog.csdnimg.cn/4f56b43e10b64af7864d313e7b464b4a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
3、训练好后使用best.pt进行验证,val.py参数为:
![在这里插入图片描述](https://img-blog.csdnimg.cn/b16bf899ff28469f8764954c03cda8f2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
4、验证好后,进行最后的检测,detect.py,参数方面设置为:选用最好模型,选择待测数据集:
![在这里插入图片描述](https://img-blog.csdnimg.cn/1b205ed684c34c28b712b215c71a3c33.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
五、结果进行处理转为像素坐标点然后写入csv
runs\train\exp16:
![在这里插入图片描述](https://img-blog.csdnimg.cn/304368a849d64717ac12c243b1b98615.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/75a579e0932148bfb2bf45ee646c9db4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/3704dcaaf97d4f379dcb6349b5680ee4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb3f7e240f11433e8b5b4c508516a4a5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
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:
![在这里插入图片描述](https://img-blog.csdnimg.cn/cb399fc99f1b4b27a164adcba0b841d0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
六、结果:
运行detect.py:
![在这里插入图片描述](https://img-blog.csdnimg.cn/08e15b05f1bc4387a68c5c91e97008a9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
检测图片:
![在这里插入图片描述](https://img-blog.csdnimg.cn/cbc72238d8db4358afe48c2de0c2f668.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
转为结果保存到csv文件:
![在这里插入图片描述](https://img-blog.csdnimg.cn/a76de53c95f04d428d816c6ee568ed51.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
result2.csv:
![在这里插入图片描述](https://img-blog.csdnimg.cn/5edb5122595441649d8a21a7a06e3791.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
result3.csv:
![在这里插入图片描述](https://img-blog.csdnimg.cn/27c8e4f74e374e72a09ee91a501461c8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_18,color_FFFFFF,t_70,g_se,x_16#pic_center)
优化前:
![在这里插入图片描述](https://img-blog.csdnimg.cn/e04b821f464c45de9928f79072505d27.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
优化后:
![在这里插入图片描述](https://img-blog.csdnimg.cn/4afa9ec52bfe4633a24141e30a8687c1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
七、写在最后:
由于数据量过大不能一次性上传完,所以拆分些数据先一步上传至阿里云盘,具体在教程中
有包中详细教程,纯手码,创作不易,感谢支持
![在这里插入图片描述](https://img-blog.csdnimg.cn/ce253ed9bcbc4015b310f10f79264095.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQmlnIGRhdGHovr7pl7vopb8=,size_8,color_FFFFFF,t_70,g_se,x_16#pic_center)