Pascal VOC 数据集格式

Pascal VOC 数据集格式是目标检测任务中常用的一种数据组织方式。它不仅包含图像文件,还包含与之对应的标注文件(通常是 XML 格式),用于描述图像中目标的位置和类别。以下是 Pascal VOC 数据集格式的详细说明:

数据集结构

Pascal VOC 数据集通常具有以下目录结构:
复制
/VOCdevkit
    /VOC2007
        /Annotations
            000001.xml
            000002.xml
            ...
        /JPEGImages
            000001.jpg
            000002.jpg
            ...
        /ImageSets
            /Main
                train.txt
                val.txt
                trainval.txt
                test.txt
 

1. Annotations

  • 内容:存放标注文件,通常是 XML 格式。
  • 文件名:与对应的图像文件名相同,但扩展名为 .xml
  • 格式:每个 XML 文件包含图像中所有目标的标注信息。以下是一个示例 XML 文件的内容:
xml
复制
<annotation>
    <folder>VOC2007</folder>
    <filename>000001.jpg</filename>
    <source>
        <database>The VOC2007 Database</database>
        <annotation>PASCAL VOC2007</annotation>
        <image>flickr</image>
    </source>
    <size>
        <width>353</width>
        <height>500</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>dog</name>
        <pose>Unspecified</pose>
        <truncated>1</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>48</xmin>
            <ymin>240</ymin>
            <xmax>195</xmax>
            <ymax>371</ymax>
        </bndbox>
    </object>
    <object>
        <name>cat</name>
        <pose>Unspecified</pose>
        <truncated>1</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>8</xmin>
            <ymin>12</ymin>
            <xmax>352</xmax>
            <ymax>498</ymax>
        </bndbox>
    </object>
</annotation>
 

XML 文件字段说明

  • <folder>:数据集名称(如 VOC2007)。
  • <filename>:图像文件名。
  • <source>:数据来源信息。
  • <size>:图像的尺寸信息。
    • <width>:图像宽度。
    • <height>:图像高度。
    • <depth>:图像通道数(通常是 3,表示 RGB 图像)。
  • <segmented>:是否进行了像素级分割(0 表示未分割)。
  • <object>:图像中的一个目标对象。
    • <name>:目标的类别名称(如 dogcat 等)。
    • <pose>:目标的姿态(通常是 Unspecified)。
    • <truncated>:目标是否被截断(1 表示是,0 表示否)。
    • <difficult>:目标是否难以识别(1 表示是,0 表示否)。
    • <bndbox>:目标的边界框坐标。
      • <xmin>:边界框左上角的 x 坐标。
      • <ymin>:边界框左上角的 y 坐标。
      • <xmax>:边界框右下角的 x 坐标。
      • <ymax>:边界框右下角的 y 坐标。

2. JPEGImages

  • 内容:存放图像文件,通常是 JPEG 格式。
  • 文件名:与对应的标注文件名相同,但扩展名为 .jpg.jpeg

3. ImageSets/Main

  • 内容:存放训练集、验证集和测试集的索引文件。
  • 文件名:
    • train.txt:包含训练集图像的文件名(不带扩展名)。
    • val.txt:包含验证集图像的文件名(不带扩展名)。
    • trainval.txt:包含训练集和验证集图像的文件名(不带扩展名)。
    • test.txt:包含测试集图像的文件名(不带扩展名)。
  • 格式:每个文件包含一行行的图像文件名,例如:
复制
000001
000002
000003
...
 

示例

假设你有以下图像和标注文件:
  • 图像文件:000001.jpg000002.jpg
  • 标注文件:000001.xml000002.xml
对应的目录结构如下:
复制
/VOCdevkit
    /VOC2007
        /Annotations
            000001.xml
            000002.xml
        /JPEGImages
            000001.jpg
            000002.jpg
        /ImageSets
            /Main
                train.txt
                val.txt
                trainval.txt
                test.txt
 
假设 train.txtval.txt 的内容如下:
  • train.txt
000001
 
  • val.txt
000002
 

使用 LabelImg 生成 Pascal VOC 格式标注

  1. 打开 LabelImg:启动 LabelImg 后,点击“Open Dir”按钮选择包含图像的文件夹。
  2. 创建标注框:选择图像后,点击“Create RectBox”按钮或使用快捷键 W 创建矩形框。
  3. 输入标签:在弹出的对话框中输入标签名称(如 dogcat 等)。
  4. 保存标注:点击“Save”按钮保存标注文件,LabelImg 会自动生成对应的 XML 文件。
通过以上步骤,你可以轻松创建符合 Pascal VOC 格式的标注数据集,用于训练目标检测模型(如 Faster R-CNN)。
posted @ 2025-04-20 20:06  yinghualeihenmei  阅读(354)  评论(0)    收藏  举报