📦数据准备

使用公共数据集

PASCAL VOC格式

PASCAL VOC格式的目标检测任务标注文件采用XML格式,其中包含了每个目标的位置、类别、难度等信息。具体来说,标注文件中每个目标的信息包括以下几个部分:

  1. 目标类别:标注文件中,每个目标都会被赋予一个类别,例如人、狗、汽车等。在XML文件中,类别信息通常保存在<name>标签中。

  2. 目标边界框:对于目标检测任务,每个目标都会被框定一个边界框,用于表示目标在图像中的位置和大小。边界框通常由四个坐标值表示,即左上角和右下角的(x,y)坐标值。在XML文件中,边界框信息通常保存在<bndbox>标签中,其中包括<xmin><ymin><xmax><ymax>四个子标签,分别表示边界框的左上角和右下角的x、y坐标值。

  3. 目标难度:对于目标检测任务,标注文件中还可能包含目标的难度信息,用于表示该目标在图像中的难易程度。通常,难度信息包括三个等级:easy、medium、hard,分别表示目标在图像中的大小、遮挡程度和视角变化程度等因素的影响程度。

YOLO格式

YOLO格式的数据集特点是将图像和标注信息保存在一个文本文件中,方便数据的读取和处理。具体来说,YOLO格式数据集中的每个图像对应一个文本文件,文件名与图像文件名相同,只是后缀名为.txt。文本文件中包含了每个目标的类别、边界框位置和大小等信息。具体格式如下:

<object-class> <x> <y> <width> <height>

其中,<object-class>表示目标的类别,是一个整数值,对应于数据集中的类别标签;<x><y>表示目标边界框的中心点在图像中的相对位置,是一个0到1之间的浮点数;<width><height>表示目标边界框的宽度和高度在图像中的相对大小,也是0到1之间的浮点数。这些信息以空格分隔,每行表示一个目标。

与其他数据集格式相比,YOLO格式的数据集具有以下优点:

  1. 方便读取和处理:YOLO格式的数据集将图像和标注信息保存在同一个文本文件中,方便研究者和开发者进行数据读取和处理。

  2. 易于扩展:YOLO格式的数据集可以很容易地扩展到新的类别和数据集,只需添加新的类别标签和对应的标注信息即可。

  3. 适用于实时检测:YOLO算法本身就是一种实时目标检测算法,采用YOLO格式的数据集可以更好地适应实时检测的需求。

MS COCO格式

COCO格式的数据集主要包括以下几个文件:

  1. train2017/val2017/文件夹:包含训练集和验证集的图像文件,每个文件名对应一个唯一的图像ID。

  2. annotations/instances_train2017.jsonannotations/instances_val2017.json文件:包含训练集和验证集的目标实例标注信息,以JSON格式保存。

  3. annotations/instances_train2017.jsonannotations/instances_val2017.json文件:包含训练集和验证集的图像信息,以JSON格式保存。

COCO格式的数据集中的每个目标实例都包含以下信息:

  1. id:目标实例的唯一标识符。

  2. image_id:目标实例所属的图像ID。

  3. category_id:目标实例的类别ID。

  4. bbox:目标实例的边界框信息,包括左上角的坐标和宽度、高度。

  5. area:目标实例的面积。

  6. iscrowd:目标实例是否是一组对象。

制作自己的数据集

安装标注工具

可以使用labelimg标注数据

pip install labelimg

建议“拥抱”Segment Anything,高效依托SAM实现半自动标注

数据标注方法

LabelImg是一个用于图像标注的开源工具,可以用于创建图像分类、检测和分割等任务的标注数据。以下是LabelImg的使用方法:

  1. 下载并安装LabelImg软件。

  2. 打开LabelImg软件,点击“Open Dir”按钮选择要标注的图像文件夹。

  3. 在左侧的列表中选择要标注的图像,然后点击“Create RectBox”按钮开始标注。

  4. 在图像上用鼠标拖拽创建矩形框来标注物体,可以使用“Create Circle”、“Create Line”等按钮创建其他形状的标注。

  5. 在标注框上方的“Label”下拉菜单中选择物体类别,并可以在“Annotations”列表中查看已标注的物体。

  6. 可以使用“Next Image”、“Prev Image”等按钮切换到下一张或上一张图像进行标注。

  7. 完成标注后,点击“Save”按钮保存标注结果,标注结果将保存为XML或YAML格式的文件。

  8. 可以使用“View”菜单中的“Auto Save Mode”选项开启自动保存模式,以便在标注过程中自动保存标注结果。

  9. 可以使用“View”菜单中的“Change Save Dir”选项更改标注结果保存的文件夹。

  10. 可以使用“View”菜单中的“Zoom In”、“Zoom Out”等选项调整图像的缩放比例,以便更好地标注物体。

数据集准备

本文使用VOC格式进行训练,训练前需要自己制作好数据集。

coco、yolo等格式数据可使用data_process文件夹下的代码做格式转换。 建议将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中;将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。

Last updated