数据准备
使用公共数据集
PASCAL VOC格式
PASCAL VOC格式的目标检测任务标注文件采用XML格式,其中包含了每个目标的位置、类别、难度等信息。具体来说,标注文件中每个目标的信息包括以下几个部分:
目标类别:标注文件中,每个目标都会被赋予一个类别,例如人、狗、汽车等。在XML文件中,类别信息通常保存在
<name>
标签中。目标边界框:对于目标检测任务,每个目标都会被框定一个边界框,用于表示目标在图像中的位置和大小。边界框通常由四个坐标值表示,即左上角和右下角的(x,y)坐标值。在XML文件中,边界框信息通常保存在
<bndbox>
标签中,其中包括<xmin>
、<ymin>
、<xmax>
、<ymax>
四个子标签,分别表示边界框的左上角和右下角的x、y坐标值。目标难度:对于目标检测任务,标注文件中还可能包含目标的难度信息,用于表示该目标在图像中的难易程度。通常,难度信息包括三个等级:easy、medium、hard,分别表示目标在图像中的大小、遮挡程度和视角变化程度等因素的影响程度。
YOLO格式
YOLO格式的数据集特点是将图像和标注信息保存在一个文本文件中,方便数据的读取和处理。具体来说,YOLO格式数据集中的每个图像对应一个文本文件,文件名与图像文件名相同,只是后缀名为.txt
。文本文件中包含了每个目标的类别、边界框位置和大小等信息。具体格式如下:
其中,<object-class>
表示目标的类别,是一个整数值,对应于数据集中的类别标签;<x>
和<y>
表示目标边界框的中心点在图像中的相对位置,是一个0到1之间的浮点数;<width>
和<height>
表示目标边界框的宽度和高度在图像中的相对大小,也是0到1之间的浮点数。这些信息以空格分隔,每行表示一个目标。
与其他数据集格式相比,YOLO格式的数据集具有以下优点:
方便读取和处理:YOLO格式的数据集将图像和标注信息保存在同一个文本文件中,方便研究者和开发者进行数据读取和处理。
易于扩展:YOLO格式的数据集可以很容易地扩展到新的类别和数据集,只需添加新的类别标签和对应的标注信息即可。
适用于实时检测:YOLO算法本身就是一种实时目标检测算法,采用YOLO格式的数据集可以更好地适应实时检测的需求。
MS COCO格式
COCO格式的数据集主要包括以下几个文件:
train2017/
和val2017/
文件夹:包含训练集和验证集的图像文件,每个文件名对应一个唯一的图像ID。annotations/instances_train2017.json
和annotations/instances_val2017.json
文件:包含训练集和验证集的目标实例标注信息,以JSON格式保存。annotations/instances_train2017.json
和annotations/instances_val2017.json
文件:包含训练集和验证集的图像信息,以JSON格式保存。
COCO格式的数据集中的每个目标实例都包含以下信息:
id
:目标实例的唯一标识符。image_id
:目标实例所属的图像ID。category_id
:目标实例的类别ID。bbox
:目标实例的边界框信息,包括左上角的坐标和宽度、高度。area
:目标实例的面积。iscrowd
:目标实例是否是一组对象。
制作自己的数据集
安装标注工具
可以使用labelimg标注数据
建议“拥抱”Segment Anything,高效依托SAM实现半自动标注
数据标注方法
LabelImg是一个用于图像标注的开源工具,可以用于创建图像分类、检测和分割等任务的标注数据。以下是LabelImg的使用方法:
下载并安装LabelImg软件。
打开LabelImg软件,点击“Open Dir”按钮选择要标注的图像文件夹。
在左侧的列表中选择要标注的图像,然后点击“Create RectBox”按钮开始标注。
在图像上用鼠标拖拽创建矩形框来标注物体,可以使用“Create Circle”、“Create Line”等按钮创建其他形状的标注。
在标注框上方的“Label”下拉菜单中选择物体类别,并可以在“Annotations”列表中查看已标注的物体。
可以使用“Next Image”、“Prev Image”等按钮切换到下一张或上一张图像进行标注。
完成标注后,点击“Save”按钮保存标注结果,标注结果将保存为XML或YAML格式的文件。
可以使用“View”菜单中的“Auto Save Mode”选项开启自动保存模式,以便在标注过程中自动保存标注结果。
可以使用“View”菜单中的“Change Save Dir”选项更改标注结果保存的文件夹。
可以使用“View”菜单中的“Zoom In”、“Zoom Out”等选项调整图像的缩放比例,以便更好地标注物体。
数据集准备
本文使用VOC格式进行训练,训练前需要自己制作好数据集。
coco、yolo等格式数据可使用data_process文件夹下的代码做格式转换。 建议将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中;将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
Last updated