数据集简介

PASCAL VOC 2012 增强数据集(PASCAL VOC 2012 Augmented Dataset)是现目前语义分割领域最常用、也是最基础的benchmark数据集,它是由两个数据集合二为一制作的:

  • PASCAL VOC 20121:用于语义分割的图片数量分布为:1464 for training, 1449 for validation, and 1456 for testing;
  • Semantic Boundaries Dataset2:包含的图片数量为:8498 for training and 2857 for validation;

制作完成的增强数据集图片分布为:10582, 1449 and 1456 images for training, validation and testing respectively.

数据集下载

PASCAL VOC 2012 数据集下载,官网或者其他博客给出的地址可以下载 训练/验证集:VOCtrainval_11-May-2012.tar。另外需要下载 测试集:VOC2012test.tar。笔者在这里提供一个镜像网站,可以同时下载上述 训练/验证/测试数据集。

Semantic Boundaries Dataset,为了方便,这里笔者就将之称为SBD数据集吧。点击 benchmark.tgz 可以下载。

关于两个数据集的目录结构、数据标注格式这里就不再赘述。

(忍不住Diss一下国内很多博客,抄抄改改又一篇,甚至有些改都懒得改!!!它们很多打着“完全解析”的名号,其实内容一塌糊涂,有些只提供了VOC 2012 训练和验证集的下载,只字未提还有个测试数据集;有的制作增强数据集的脚本代码有误;不知写博文的人有没有真的搞懂这两个数据集,以及融合它们所制作的增强数据集。在这里把自己踩过的坑记录一下,希望能够帮助到后来者)

增强数据集制作

首先我们将VOC 2012 的测试数据集放在一旁,打开VOC 2012 训练/验证数据集和SBD数据集我们可以看到,原始 VOC 2012 的标注使用的是彩色标注,SBD数据集是使用matlab中 .mat 后缀的文件标注的,要将二者进行融合,我们需要对标注数据做一个简单地转换。这里需要用到两个 python 脚本:mat2png.py 和 convert_labels.py,前者用于将 .mat 标注转换为灰度标注图像,后者用于将彩色标注转换为灰度标注。脚本见MXNetSeg

  1. 首先将 .mat 标注转换为灰度图像:python mat2png.py cls cls_aug,第一个参数为SBD数据集中 .mat 标注格式的目录,第二个参数为转换之后的灰度图存放的目录;
  2. 将 VOC 2012 彩色标注转换为灰度图像:python convert_labels.py pascal/VOC2012/SegmentationClass pascal/VOC2012/ImageSets/Segmentation/trainval.txt pascal/VOC2012/SegmentationClass_1,参数含义同上;
  3. 使用的时候注意运行python脚本的目录参数目录的对应关系即可。

完成之后,直接将两个数据集合二为一即可(拷贝、粘贴、覆盖重复文件)。下图是笔者的增强数据集目录:

语义分割segnet_语义分割segnet


其中img_aug是所有的原始图片,共17125张,cls_aug是原始图片的灰度标注,共12031张。当然,两个目录的名字可以随便起,需要注意的是修改 .txt 文件中的相应目录名保持一致。

增强数据集使用的测试数据集和原始VOC 2012 测试集一致, 所以最后,我们直接将测试集和增强数据集融合即可(上图中的test.txt就是测试数据集中的)。

总结一下:

  • 原始VOC 2012 数据集:1464 for training, 1449 for validation and 1456 for testing,
  • VOC 2012 增强数据集:10582 for training, 1449 for validation and 1456 images for testing.
  • 通常来说,先使用 VOC 2012 增强数据集预训练模型,再使用原始 VOC 2012 数据集微调模型,如PSPNet3 ,Deeplab v34,Deeplab v3+5
  • VOC 2012 测试数据集的 Ground Truth 并未公开,要想知道模型在测试数据集上的表现,需要按照官网向导提交结果,由在线的 evaluation server 评估模型性能。

注意:官网中提到的 Competiton 5 和 Competition 6的说明如下,完整的说明文档可以点击这里下载。

语义分割segnet_语义分割_02

参考文献


  1. M. Everingham, S. M. A. Eslami, L. V. Gool, C. K. I. Williams, J. Winn, and A. Zisserma. The pascal visual object classes challenge a retrospective. IJCV, 2014. ↩︎
  2. B. Hariharan, P. Arbel´aez, L. Bourdev, S. Maji, and J. Malik. Semantic contours from inverse detectors. In ICCV, 2011. ↩︎
  3. H. Zhao, et al. Pyramid Scene Parsing Network. CVPR, 2017 ↩︎
  4. L. Chen, et al. Rethinking Atrous Convolution for Semantic Image Segmentation. arXiv, 2017 ↩︎
  5. L. Chen, et al. Encoder-decoder with atrous separable convolution for semantic image segmentation. ECCV, 2018 ↩︎