【CNN学习之路】Pascal VOC和COCO数据集

PASCAL VOC(The PASCAL Visual Object Classes)是一个世界级的计算机视觉挑战赛,由英国牛津大学的计算机视觉研究组创建,并得到了欧盟的资助。该挑战赛自2005年开始举办,每年一届,直到2012年结束,为图像识别和分类提供了一整套标准化的数据集,用来构建和评估用于图像分类(Classification)、目标检测(Object Detection)和分割(Segmentation)的算法。PASCAL的全称是Pattern Analysis, Statistical modelling and ComputAtional Learning。

PASCAL VOC数据集是计算机视觉领域的一个重要资源,广泛应用于目标检测、对象分类和语义分割等任务。通过这个数据集,研究人员可以评估模型在像素级别上的分割精度,并探索改进算法的方法。许多著名的计算机视觉模型,如R-CNN系列、SSD和YOLO等,都是基于PASCAL VOC数据集进行开发和优化的。

PASCAL VOC数据集由5个部分构成:JPEGImages,Annotations,ImageSets,SegmentationClass以及SegmentationObject。

VOC(Visual Object Classes)数据集的目录结构通常较为统一,以下是一个典型的VOC数据集目录结构示例,以VOC2007为例:

VOC2007 
|—— labels.txt       # 标签文件,里面内容是识别对象名称
├── JPEGImages       # 存放源图片的文件夹  
│   ├── 000001.jpg  
│   ├── 000002.jpg  
│   └── ...          # 其他图片文件  
├── Annotations      # 存放与JPEGImages中图片一一对应的xml标注文件  
│   ├── 000001.xml  
│   ├── 000002.xml  
│   └── ...          # 其他xml文件  
├── ImageSets       #Layout、Main、Action和Segmentation子文件夹分别用于不同目的的数据集划分
│   ├── Layout  
│   │   ├── train.txt  
│   │   ├── trainval.txt  
│   │   ├── test.txt  
│   │   └── val.txt  
│   ├── Main     #测试集图片的文件名、训练集图片的文件名、训练验证集文件名、验证集文件名
│   │   ├── train.txt  
│   │   ├── trainval.txt  
│   │   ├── test.txt  
│   │   └── val.txt  
│   ├── Action  
│   │   ├── ...      # 特定任务的划分文件,如动作识别  
│   └── Segmentation  
│       ├── train.txt  
│       ├── trainval.txt  
│       ├── test.txt  
│       └── val.txt  
├── SegmentationClass  # 用于图像分割的类别标注图  
│   ├── ...  
└── SegmentationObject # 用于图像分割的实例标注图  
    ├── ...


目录结构详细说明:

  1. JPEGImages
    • 此文件夹存放数据集中的所有原始图像文件。图像文件的格式并不限于JPG,尽管文件夹名为JPEGImages。
  2. Annotations
    • 此文件夹存放与JPEGImages中每张图片对应的xml标注文件。每个xml文件包含对应图片的详细信息,如图像尺寸、对象类别、边界框坐标等。
  3. ImageSets
    • 这是一个包含多个子文件夹的目录,用于存放数据集的划分文件(即txt文件)。
      • LayoutMainActionSegmentation子文件夹分别用于不同目的的数据集划分。
      • train.txtval.txttest.txt等文件分别列出了训练集、验证集和测试集的图片文件名(不包含扩展名)。
  4. SegmentationClass 和 SegmentationObject
    • 这两个文件夹存放的都是图片,且都是图像分割结果图,对目标检测任务来说没有用。class segmentation 标注出每一个像素的类别 。object segmentation 标注出每一个像素属于哪一个物体。

Annotation的标注文件(XML)格式说明:

VOC数据集的xml标注文件包含了图像的基本信息、图像尺寸、对象类别、边界框坐标等。以下是一个xml标注文件的基本结构示例:

<annotation>
  <folder>VOC2007</folder> # 图片所处文件夹
  <filename>000007.jpg</filename> # 图片名
  <source>  #图片来源相关信息
    <database>The VOC2007 Database</database>
    <annotation>PASCAL VOC2007</annotation>
    <image>flickr</image>
    <flickrid>194179466</flickrid>
  </source>
  <size> #图片尺寸
    <width>640</width>
    <height>480</height>
    <depth>3</depth>
  </size>
  <segmented>0</segmented>  #是否有分割label
  <object> 包含的物体
    <name>car</name>  #物体类别
    <pose>Unspecified</pose>  #物体的姿态
    <truncated>0</truncated>  #物体是否被部分遮挡(>15%)
    <difficult>0</difficult>  #是否为难以辨识的物体, 主要指要结体背景才能判断出类别的物体。虽有标注, 但一般忽略这类物体
    <bndbox>  #物体的bound box
      <xmin>2</xmin>
      <ymin>156</ymin>
      <xmax>111</xmax>
      <ymax>259</ymax>
    </bndbox>
  </object>
</annotation>

COCO数据集(Common Objects in Context)是微软发布的一个大规模、多功能的计算机视觉数据集,被广泛应用于图像检测、语义分割、图像标题生成、关键点检测等多种任务中。

数据集结构

COCO数据集由多个子集组成,包括训练集(train)、验证集(val)和测试集(test),并配有详细的注释文件。数据集目录结构通常如下:

├── coco: 数据集根目录
     ├── train: 所有训练图像文件夹(118287张)
     ├── val: 所有验证图像文件夹(5000张)
     └── annotations: 对应标注文件夹
     		  ├── instances_train2017.json: 对应目标检测、分割任务的训练集标注文件
     		  ├── instances_val2017.json: 对应目标检测、分割任务的验证集标注文件
     		  ├── captions_train2017.json: 对应图像描述的训练集标注文件
     		  ├── captions_val2017.json: 对应图像描述的验证集标注文件
     		  ├── person_keypoints_train2017.json: 对应人体关键点检测的训练集标注文件
     		  └── person_keypoints_val2017.json: 对应人体关键点检测的验证集标注文件夹
     		  

数据集用途

COCO数据集适用于多种计算机视觉任务,包括但不限于:

  1. 目标检测(Object Detection):识别图像中的所有目标,并显示其边界框。
  2. 实例分割(Instance Segmentation):识别图像中的目标,并生成每个目标的分割掩码。
  3. 语义分割(Semantic Segmentation):把图像划分为具有不同语义标签的区域。
  4. 人体关键点检测(Keypoint Detection):检测人体的关键点位置,如头、肩、肘、膝等。
  5. 图像标题生成(Image Captioning):生成描述图像内容的文本。

适用模型

COCO数据集适用于多种类型的模型,包括但不限于:

  • 目标检测:Faster R-CNN、YOLO、SSD、EfficientDet等
  • 实例分割:Mask R-CNN、PANet、YOLACT等
  • 关键点检测:OpenPose、HRNet、Simple Baselines for Human Pose Estimation等
  • 语义分割:DeepLab系列、PSPNet、FCN等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值