YOLOv10(1):初探,训练自己的数据_yolov10 训练-CSDN博客
YOLOv10(2):网络结构及其检测模型代码部分阅读_yolov10网络结构图-CSDN博客
YOLOv10(4):损失(Loss)计算及其检测模型代码部分阅读_yolov10损失函数-CSDN博客
YOLOv10(6):YOLOv10基于TensorRT的部署(基于INetworkDefinition)_yolov10网络结构图-CSDN博客
目录
1. 写在前面
2. 数据集准备
3. 训练前配置
4. 开始训练
5. 评估模型
1. 写在前面
我们在YOLOv10初探第一课中,已经涉及到了一些关于如何训练自己数据集的信息,接下来本节将以VOC数据集(VOC标注形式)来更详细的带领小伙伴们走一遍训练。
2. 数据集准备
VOC数据集,全称为Visual Object Classes数据集,是一种广泛使用的计算机视觉数据集,主要用于目标检测、图像分割和图像分类等任务。
VOC类型的标注一般我们可以使用labelimg软件完成,标注后所得到的标签文件一般是XML类型,其中的内容形式如下。其中坐标信息是左上右下的形式。
我们要训练 YOLOv10,一种方法是转换成YOLO格式(txt文件形式),其内容参考如下,每一行是一个目标,包含类别ID,中心点和宽高信息(归一化之后)。
这一步我们可以通过脚本来转换,参考s1_voc2yolo_convert.py文件。运行该脚本以后,会在指定的数据及路径下生成labels子文件夹,文件夹中的内容如下所示,每一张图片对应生成一个txt标注文件。
转换完成以后,还需要将完整的数据集划分为测试集、训练集和评估集,参考脚本s2_split_train_val_test.py。
运行完该脚本以后,会在数据集路径下生成四个txt文件,分别是test.txt、train.txt、trainval.txt和val.txt,其中内容为完整的图像路径,如下。
3. 训练前配置
经过以上的数据集转换、处理以后,接下来仅需要进行简单的配置就可以进行训练了。
首先是数据集文件,在路径ultralytics/cfg/datasets路径下,仿照VOC.yaml创建一个新的文件即可。其内容如下所示。
然后是模型文件,如选择YOLOv10m,可以直接修改ultralytics/cfg/models/v10/yolov10m.yaml文件,将其中的nc改成对应的类别数。
4. 开始训练
处理完成数据,完成配置以后,就可以进行训练了,前面讲过,先对./ultralytics/models/yolov10/train进行一些改动,参考如下。
之后就可以开始训练了,首先进入YOLOv10的顶层路径,执行如下指令开始训练。
python3 ./ultralytics/models/yolov10/train.py。
必要时使用sudo。
5. 评估模型
在训练过程中,每一个epoch训练完成以后都会进行相应的评估,可以观察P、R、mAP@0.5、mAP@0.5:0.95等评估参数
也可以通过运行模型,将检测结果绘制在图像上进行观看,具体使用python3 ./ultralytics/models/yolov10/predict.py,完成绘制以后,效果如下。