1 简介
数据集是必不可少的部分,数据集的优劣直接影响训练效果。一般来说,一个完整的数据集应该包括训练集、测试集和验证集。通常,数据集会被划分为训练集和测试集,比如将数据集的70%用作训练集,30%用作测试集。在进行训练时,可以使用交叉验证的方法将训练集再次划分为训练子集和验证子集,用于模型的训练和验证。
训练集是用于模型的训练的数据集。在训练过程中,模型使用训练集中的样本进行学习和参数调整,通过不断迭代优化模型的参数,使模型能够更好地拟合训练集中的数据。
测试集是用于模型的评估的数据集。在训练完成后,使用测试集中的样本来评估模型的性能和泛化能力。测试集中的样本是模型没有看到过的样本,可以用来判断模型是否过拟合了训练集,以及模型在真实场景中的表现如何。
验证集是用于模型的调优的数据集。在训练过程中,可以使用验证集对模型进行调参,比如选择合适的模型结构、调整超参数等。验证集的作用是帮助选择最佳的模型,并避免使用测试集对模型进行过度调优。
2 数据集标注
模型的建立需要收集图片并且进行标注。YOLOv8标注的文件格式如下:
其中,第一个数字表示目标框的类别,后面四个长数字代表框框的四个点的位置。
手动标注很累,推荐使用下面的项目进行标注:
1 Labelme
labelme 是一款开源的图像/视频标注工具,标签可用于目标检测、分割和分类。灵感是来自于 MIT 开源的一款标注工具 LabelMe。labelme 具有的特点是:
- 支持图像的标注的组件有:矩形框,多边形,圆,线,点(rectangle, polygons, circle, lines, points)
- 支持视频标注
- GUI 自定义
- 支持导出 VOC 格式用于 semantic/instance segmentation
- 支出导出 COCO 格式用于 instance segmentation
2 LabelImg
LabelImg是一个图形化的图像注释工具。它是用Python编写的,使用Qt作为其图形界面。注释被保存为PASCAL VOC格式的XML文件,该格式被ImageNet使用。此外,它还支持YOLO和Create ML格式。LabelImg是由Tzutalin在几十位贡献者的帮助下创建的流行的图像注释工具,现在已经不再积极开发,并成为Label Studio社区的一部分。