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