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,参数方面设置为:选用最好模型,选择待测数据集:
混淆矩阵能对分类问题的预测结果进行总结,显示了分类模型的在进行预测时会对哪一部分产生混淆。
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均值;
运行detect.py:
检测图片:
转为结果保存到csv文件: result2.csv: result3.csv:优化前:
优化后:
七、写在最后:由于数据量过大不能一次性上传完,所以拆分些数据先一步上传至阿里云盘,具体在教程中
有包中详细教程,纯手码,创作不易,感谢支持
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)