1.前言
Ultralytics YOLOv8 是一款前沿、最先进(SOTA)的模型,基于先前 YOLO 版本的成功,引入了新功能和改进,进一步提升性能和灵活性。YOLOv8 设计快速、准确且易于使用,使其成为各种物体检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。
2.源码下载以及部署
1.下载YOLOV8源码地址:
https://github.com/ultralytics/ultralytics
解压之后使用pycharm打开
下载预训练权重,下载yolov8n版本
将下载好的预训练权重放在根目录下面
2.部署深度学习环境
激活虚拟环境之后
pip install ultralytics
在pycharm里面选择自己的深度学习环境
3.测试是否部署成功
1.打开Terminal输入以下代码来测试预训练模型的效果
yolo predict model=yolov8n.pt source=ultralytics/assets/bus.jpg
2.预测结果
4.训练COCO128数据集
1.打开Terminal输入以下代码训练COCO128数据集
yolo train data=coco128.yaml model=yolov8n.pt epochs=3 lr0=0.01 batch=4
也可以使用yolov8m权重文件进行训练,效果比n好很多
yolo train data=coco128.yaml model=yolov8m.pt epochs=3 lr0=0.01 batch=4
2.训练结果
找到存储训练结果的文件夹
weights文件夹里面装的是效果最好的一次权重文件以及最后一轮训练的权重文件
以及P-R曲线图
会在根目录下面生成一个datasets文件夹,里面装着coco128的数据集
5.训练自己的数据集
1.准备数据集
在目标检测的训练过程中,训练集、验证集和测试集扮演着不同的角色:
-
训练集(Training Set):
训练集是用于模型训练的数据集。目标检测模型通过对训练集中的图像进行学习和参数优化,来掌握目标的特征和上下文信息。训练集通常包含大量的标注数据,其中目标物体被标记为其位置和类别。模型通过观察训练集中的样本来学习目标的外观和形状,以便能够在后续的预测中对新的图像进行目标检测。 -
验证集(Validation Set):
验证集用于在训练过程中评估模型的性能和调整超参数。它是从与训练集不同的图像中随机选择的一部分数据。通过在验证集上进行评估,可以监控模型的训练过程并调整模型的超参数,例如学习率、正则化参数等。验证集上的性能指标可以帮助选择最佳的模型,并防止过拟合。验证集的数据标注也需要包含目标物体的位置和类别信息。 -
测试集(Test Set):
测试集是用于最终评估训练好的目标检测模型性能的数据集。它是与训练集和验证集完全独立的数据集。测试集中的图像对于模型来说是全新的,模型在这些图像上进行预测并生成目标检测结果。测试集的数据标注同样包含目标物体的位置和类别信息。通过与测试集的性能比较,可以得出模型在真实场景中的准确率、召回率、精确率等性能指标,评估模型的泛化能力和实际应用效果。
这三个数据集在目标检测的训练过程中扮演着重要的角色,训练集用于模型的学习和参数优化,验证集用于超参数调优和模型选择,而测试集用于最终评估模型的性能和泛化能力。它们的目的是确保训练出的模型能够准确地检测出新的图像中的目标物体。
1.数据集处理
1.数据集按照指定比例划分(训练集:验证集:测试集=7:2:1)
将YOLO数据集按照指定比例划分(训练集、验证集、测试集)的详细教程_Dragon_0010的博客-优快云博客
2.数据集格式处理,将xml格式的数据集转化为txt格式
VOC数据集转换为yolo格式:xml转txt(亲测有用)_Dragon_0010的博客-优快云博客
2.数据集文件结构
将自己的数据集放在datasets文件夹下面,按照训练集,测试集,验证集的结构存储
2.准备配置(yaml)文件
1.找到coco128.yaml文件
文件位置
2.复制该文件到同级目录,并取名叫myhat.yaml
3.进行训练
打开终端(Terminal),复制以下代码进行训练
yolo train data=ultralytics/cfg/datasets/myhat.yaml model=yolov8n.pt epochs=10 lr0=0.01 batch=4
或者用这行代码也行,后面如果想改进模型的话,就将model=yolov8.yaml替换成其他的yaml文件
yolo train data=ultralytics/cfg/datasets/myhat.yaml model=yolov8.yaml pretrained=yolov8n.pt epochs=10 lr0=0.01 batch=4
4.训练结果
5.测试结果
在网上找一张施工现场的图片测试一下效果,图片就放在ultralytics/assets文件夹下面
输入以下代码进行测试,使用效果最好的权重文件
yolo predict model=runs/detect/train12/weights/best.pt source=ultralytics/assets/guowang1.jpg
到此为止,使用yolov8训练自己的数据集完毕。