model = YOLO(abs_path('./weights/yolov5nu.pt', path_type='current'), task='detect')
results = model.train(
data=data_path,
device=device,
workers=workers,
imgsz=640,
epochs=120,
batch=batch,
name='train_v5_' + data_name
model = YOLO(abs_path('./weights/yolov8n.pt'), task='detect')
results2 = model.train(
data=data_path,
device=device,
workers=workers,
imgsz=640,
epochs=120,
batch=batch,
name='train_v8_' + data_name
在博客的这一部分中,我们展示了从数据准备到模型训练的整个过程。通过这一详细的步骤介绍,读者可以了解如何使用YOLOv8模型进行深度学习训练,特别是在农作物害虫检测这一实际应用领域。
在深度学习模型的训练过程中,损失函数和评价指标的分析是至关重要的。通过观察这些图像,我们可以了解模型在训练过程中的表现及其对数据的学习效果。下面,我们将对YOLOv8模型在训练时的损失函数图像进行详细分析。
首先,损失函数图表展示了模型在训练和验证阶段的表现。对于训练损失,我们看到train/box_loss、train/cls_loss和train/obj_loss随着训练周期的增加而显著下降,这表明模型在边界框定位、类别识别和目标检测方面的性能都在不断提升。这种下降趋势表明模型的预测与真实标签之间的误差正在减小,模型正在逐渐学会如何从输入图像中准确识别和定位害虫。
在验证损失中,我们观察到与训练损失类似的下降趋势,val/box_loss、val/cls_loss和val/obj_loss也都表现出了下降的趋势,这进一步表明模型在未见过的数据上也具有良好的泛化能力。这是非常重要的,因为这意味着模型不仅能在训练数据上表现良好,也能在新的、未知的数据上取得好的结果。值得注意的是,验证损失的下降趋势平滑且逐渐趋于稳定,这表示模型在训练过程中没有出现过拟合的现象。
接下来,我们分析模型的精确度和召回率。从metrics/precision和metrics/recall的图表中可以看出,模型的精确度和召回率都随着训练的进行而逐步提升,最终达到了非常高的水平。精确度的提升意味着模型在识别害虫时越来越少地产生误报,而召回率的提升则意味着模型漏检害虫的情况在减少。在害虫检测的应用中,高召回率尤为重要,因为漏检可能会导致害虫问题的延误处理。
最后,metrics/mAP50和metrics/mAP50-95图表显示了模型在不同置信度阈值下的平均精确度(mAP)表现。mAP是目标检测领域中最常用的性能评估指标之一,mAP50表示在IoU(交并比)阈值为0.5时的mAP,而mAP50-95表示在IoU从0.5到0.95的范围内的平均mAP。这两个指标的稳步提升表示模型在害虫检测任务上具有很高的准确性,能够在不同的检测难度上保持稳定的性能。
在使用机器学习模型,尤其是深度学习模型对目标进行分类时,评估模型性能的一个重要指标是F1分数。F1分数是精确度和召回率的调和平均,能够平衡这两者之间的关系,特别适合于那些正负样本分布不平衡的情况。下图为博主训练农作物害虫检测的F1曲线图。
从图中我们可以看到,各个类别的F1分数在不同的置信度阈值下变化明显。在置信度较低时,大多数类别的F1分数较高,这是因为当模型对自己的预测较不自信时,它会产生更多的正类预测,从而提高召回率,但这通常也伴随着较低的精确度。随着置信度阈值的提高,模型变得更加保守,只有当模型对预测较有信心时才会预测正类,这提高了精确度,但召回率可能下降,导致F1分数降低。最佳的F1分数通常出现在两者之间的某个平衡点,对于这个特定的数据集来说,平均而言,在约0.512的置信度阈值时,所有类别的F1分数达到了0.89的高值,这是一个相对较好的结果,显示了模型在综合精确度和召回率方面的强大性能。
进一步观察,每个害虫类别的F1分数曲线呈现不同的趋势,这反映了模型对于不同害虫的检测能力。例如,某些类别在较低的置信度阈值时F1分数就已经很高,而其他类别则需要更高的置信度阈值才能达到较高的F1分数。这种差异可能源自各类害虫的视觉特征差异,一些容易识别的害虫(如形状、颜色具有显著特征的害虫)能够被模型更准确地检测出来,而对于那些特征不那么明显的害虫,则可能需要模型更加自信的预测才能达到高精度。
总结来说,这个F1分数曲线图提供了对模型性能的深入洞察,表明了模型在各个类别上的综合表现。一个高F1分数表明模型在保持较高召回率的同时也保持了较高的精确度,对于农作物害虫检测系统而言,这意味着能够有效地减少漏检和误检,为农业害虫管理提供了有力的技术支持。