用于FCN的Pascal VOC 2012增强版语义分割数据集制作

版权声明:新博客地址sjming.net 转载请注明 https://blog.csdn.net/u014451076/article/details/79700653

数据集准备

  1. train/val/test的划分,这个采用Hariharan[1]的做法,这个也是deeplab采用的方法,下载地址https://ucla.app.box.com/s/rd9z2xvwsfpksi7mi08i2xqrj7ab4keb
    目录如下:
test.txt  
test_id.txt  
train.txt
train_aug.txt    
trainval_aug.txt  
trainval.txt  
val.txt
val_id.txt  
  1. 主要使用其中的train_aug.txt文件,其中包含了10582行,代表训练和文件相对路径
  2. 在PASCAL VOC 2012官网上下载pascal voc 2012的数据集,文件名为VOCtrainval_11-May-2012.tar,解压后,取出文件夹中的VOC2012,放在新建的pascal文件夹下.
    http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz下载SBD数据集

数据处理

目前的文件目录如下
1
其中tools中为下载的三个数据处理的脚本,分别是mat2png,convert_labels和utils三个python脚本
下载地址在这里:https://download.csdn.net/download/u014451076/10396698
1. 把sbd数据集的.mat转化为png格式图片

python mat2png.py cls cls_aug

在cls_aug文件夹中生成转化后的分割结果的灰度图
2. 将pascal voc原有的train和val的分割结果转化为灰度图,注意保留白边

python convert_labels.py pascal/VOC2012/SegmentationClass pascal/VOC2012/Main/train_val.txt pascal/VOC2012/SegmentationClass_1

在SegmentationClass_1保存转化后的pascal的分割图
3. 将两类结果进行融合,融合JPEGImages和Segmentation,将pascal voc的结果copy到sbd进行覆盖,分别是img_aug和cls_aug,最终的子文件数分别为17125和12031
4. 将img_aug和cls_aug重命名为JPEGImages和SegmentationClass,覆盖掉pascal voc中的这两个文件夹
5. 后续的实验使用list中的train_aug.txt即可

参考文献

[1] B. Hariharan, P. Arbeláez, L. Bourdev, S. Maji, and J. Malik,
“Semantic contours from inverse detectors,” in ICCV, 2011.

展开阅读全文

没有更多推荐了,返回首页