YOLOv8目标检测(一)_检测流程梳理:YOLOv8目标检测(一)_检测流程梳理_yolo算法检测流程-CSDN博客
YOLOv8目标检测(二)_准备数据集:YOLOv8目标检测(二)_准备数据集_yolo目标检测 数据集准备-CSDN博客
YOLOv8目标检测(三)_训练模型:YOLOv8目标检测(三)_训练模型-CSDN博客
YOLOv8目标检测(三*)_最佳超参数训练:YOLOv8目标检测(三*)_最佳超参数训练-CSDN博客
经过之前的几篇文章,各位读者应该训练好了自己的模型,那么如何验证下效果呢?
这篇文章与各位读者分享如何用模型推理图片。
之前我们对数据集进行了82分(也可以91),8是训练集、2是验证集,其实用于训练的比例是80%,反正验证集没有被训练到模型里面,直接用验证集作为测试集不是更好?
答案是:绝对不行!**测试集数据要独立于训练集!!**这里分享下自己对训练集、验证集、测试集的理解供各位参考。
1)训练集:用于训练模型,即让模型通过数据学习到如何预测目标。确定模型权重、偏置等学习参数(学习)
2)验证集:用于模型选择和超参数调整。验证集帮助我们避免过拟合,并选择最佳的模型参数和结构。(小考)
3)测试集:用于最终评估模型的泛化能力。不参与学习参数过程,也不参与超参数选择过程(高考)
解释完概念,各位读者是否更清晰、更坚定了,“用验证集测试它没毛病”,绝对不行奥!笔者是这样理解的:
当模型根据验证集上的表现进行微调时,它实际上是在对模型参数进行小幅度的调整,以便更好地适应验证集上的数据分布和特征。这个过程中,模型可能会“记住”验证集的一些特征,但这并不是指模型像背诵课文那样记住验证集中的具体数据点,而是指模型通过调整其内部参数来更好地拟合验证集上的数据分布和模式。
懵懵的?进一步解释这种“记住”的特征:
1)数据特征:模型可能会学习到验证集上数据的整体分布,如数据的均值、方差、类别比例等。这些信息有助于模型在后续对未知数据进行预测时做出更准确的判断。
2)特征重要性:模型可能会根据验证集上的表现,调整不同特征在预测中的权重。一些在验证集上表现较好的特征可能会被赋予更高的权重,而一些表现较差的特征则可能会被降低权重或忽略。
3)类别边界:对于分类任务,模型可能会根据验证集上的数据点,调整不同类别之间的边界。这有助于模型在后续对未知数据进行分类时,更准确地判断其所属的类别。
好好好,我的朋友,就知道你还是懵懵的,通俗点:
举个例子,假如小鑫的工作是给文件盖章,他刚接触工作时,可能还要看一下这张纸内容,在哪里盖章,干了一段时间之后,他知道了,其实这种文件,百分之90都在右下角盖章,那么他这个盖章的手就放在右下方准备着盖。
验证集虽然没有被用于训练集真正训练,但是验证集给了模型一个“大方向”,用验证集作为测试集,是不可取的。
以上理解可能不是很权威,希望各位读者批评指正!
1.准备测试集
如果你的数据集数量比较多,可以直接将训练集、验证集、测试集分好,推荐7:2:1。
测试集覆盖场景要丰富全面。
最好将正样本图片和负样本图片分别命名,养成好习惯,方便后期梳理调优,如
2.运行预测命令
yolo predict model=。/your_best.pt source='./your_test_images' save=True save_txt=True
运行成功后结果如下:
3.查看结果文件
可以看到
(1)图片保存在runs/detect/predict2
(2)标签保存在runs/detect/predict2/labels
4.小技巧
当数据量过多时,可以先用自己标注的少部分数据训练一个模型,然后用这个模型推理剩余数据。
假如数据10000张,小技巧流程大致如下:
(1)标注1000张
(2)训练模型得到best_v1.pt
(3)使用best_v1.pt运行推理命令得到txt
推理后的图片,肯定需要修改,因为数据量小,模型学习还不完善。
(4)校验
打开labelimg,选择推理后的txt,大部分其实已经可以了,校验细节即可。
(5)训练best_last.pt
将10000张数据全部训练。
标签:训练,验证,检测,模型,YOLOv8,数据,推理 From: https://blog.csdn.net/weixin_48870215/article/details/144425479