关闭

关于FCN的数据集着色说明

标签: fcn
179人阅读 评论(0) 收藏 举报
分类:

前方我们讲解了《 FCN-数据篇》。里面包含了如何制作类似pascal voc的label。很大篇幅在谈如何着色,如何转化为索引图像。 由于一些内容参考网上的资料,所以对里面的一些操作含义也有些糊涂。 其实网上的东西也不都对,很多人云亦云。所以需要我们仔细甄别。 其中我就发现了一个错误。我们来从头谈起。

  1. pascal voc数据集
    当我们从网上下载pascal voc2012的数据集,会发现SegmentationClass文件里的标注都是彩色图像。

    这里写图片描述

    但是查看其属性,发现其位深为8.

    这里写图片描述

一般情况下,彩色图像都是rgb格式,所以应该是24位,但这里是8位,其实这表明图像是索引格式。
里面8位存放的是索引值,区间范围[0,255]。图像应该还包含一个map,对应着每个索引的颜色。
我们用matlab 查看索引:

>> im=imread('H:\data\VOCtrainval_11-May-2012\VOCdevkit\VOC2012\SegmentationClass\2007_000346.png');
>> info=imfinfo('H:\data\VOCtrainval_11-May-2012\VOCdevkit\VOC2012\SegmentationClass\2007_000346.png');
>> info.Colormap

ans =

         0         0         0
    0.5020         0         0
         0    0.5020         0
    0.5020    0.5020         0
         0         0    0.5020
    0.5020         0    0.5020
         0    0.5020    0.5020
    0.5020    0.5020    0.5020
    0.2510         0         0
    0.7529         0         0
    0.2510    0.5020         0
    0.7529    0.5020         0
    0.2510         0    0.5020
    0.7529         0    0.5020
    0.2510    0.5020    0.5020
    0.7529    0.5020    0.5020
         0    0.2510         0
    0.5020    0.2510         0
         0    0.7529         0
    0.5020    0.7529         0
         0    0.2510    0.5020
    0.5020    0.2510    0.5020
         0    0.7529    0.5020
    0.5020    0.7529    0.5020
    0.2510    0.2510         0
    0.7529    0.2510         0
    0.2510    0.7529         0
    0.7529    0.7529         0
    0.2510    0.2510    0.5020
    0.7529    0.2510    0.5020
    0.2510    0.7529    0.5020
    0.7529    0.7529    0.5020
         0         0    0.2510
    0.5020         0    0.2510
         0    0.5020    0.2510
    0.5020    0.5020    0.2510
         0         0    0.7529
    0.5020         0    0.7529
         0    0.5020    0.7529
    0.5020    0.5020    0.7529
    0.2510         0    0.2510
    0.7529         0    0.2510
    0.2510    0.5020    0.2510
    0.7529    0.5020    0.2510
    0.2510         0    0.7529
    0.7529         0    0.7529
    0.2510    0.5020    0.7529
    0.7529    0.5020    0.7529
         0    0.2510    0.2510
    0.5020    0.2510    0.2510
         0    0.7529    0.2510
    0.5020    0.7529    0.2510
         0    0.2510    0.7529
    0.5020    0.2510    0.7529
         0    0.7529    0.7529
    0.5020    0.7529    0.7529
    0.2510    0.2510    0.2510
    0.7529    0.2510    0.2510
    0.2510    0.7529    0.2510
    0.7529    0.7529    0.2510
    0.2510    0.2510    0.7529
    0.7529    0.2510    0.7529
    0.2510    0.7529    0.7529
    0.7529    0.7529    0.7529
    0.1255         0         0
    0.6275         0         0
    0.1255    0.5020         0
    0.6275    0.5020         0
    0.1255         0    0.5020
    0.6275         0    0.5020
    0.1255    0.5020    0.5020
    0.6275    0.5020    0.5020
    0.3765         0         0
    0.8784         0         0
    0.3765    0.5020         0
    0.8784    0.5020         0
    0.3765         0    0.5020
    0.8784         0    0.5020
    0.3765    0.5020    0.5020
    0.8784    0.5020    0.5020
    0.1255    0.2510         0
    0.6275    0.2510         0
    0.1255    0.7529         0
    0.6275    0.7529         0
    0.1255    0.2510    0.5020
    0.6275    0.2510    0.5020
    0.1255    0.7529    0.5020
    0.6275    0.7529    0.5020
    0.3765    0.2510         0
    0.8784    0.2510         0
    0.3765    0.7529         0
    0.8784    0.7529         0
    0.3765    0.2510    0.5020
    0.8784    0.2510    0.5020
    0.3765    0.7529    0.5020
    0.8784    0.7529    0.5020
    0.1255         0    0.2510
    0.6275         0    0.2510
    0.1255    0.5020    0.2510
    0.6275    0.5020    0.2510
    0.1255         0    0.7529
    0.6275         0    0.7529
    0.1255    0.5020    0.7529
    0.6275    0.5020    0.7529
    0.3765         0    0.2510
    0.8784         0    0.2510
    0.3765    0.5020    0.2510
    0.8784    0.5020    0.2510
    0.3765         0    0.7529
    0.8784         0    0.7529
    0.3765    0.5020    0.7529
    0.8784    0.5020    0.7529
    0.1255    0.2510    0.2510
    0.6275    0.2510    0.2510
    0.1255    0.7529    0.2510
    0.6275    0.7529    0.2510
    0.1255    0.2510    0.7529
    0.6275    0.2510    0.7529
    0.1255    0.7529    0.7529
    0.6275    0.7529    0.7529
    0.3765    0.2510    0.2510
    0.8784    0.2510    0.2510
    0.3765    0.7529    0.2510
    0.8784    0.7529    0.2510
    0.3765    0.2510    0.7529
    0.8784    0.2510    0.7529
    0.3765    0.7529    0.7529
    0.8784    0.7529    0.7529
         0    0.1255         0
    0.5020    0.1255         0
         0    0.6275         0
    0.5020    0.6275         0
         0    0.1255    0.5020
    0.5020    0.1255    0.5020
         0    0.6275    0.5020
    0.5020    0.6275    0.5020
    0.2510    0.1255         0
    0.7529    0.1255         0
    0.2510    0.6275         0
    0.7529    0.6275         0
    0.2510    0.1255    0.5020
    0.7529    0.1255    0.5020
    0.2510    0.6275    0.5020
    0.7529    0.6275    0.5020
         0    0.3765         0
    0.5020    0.3765         0
         0    0.8784         0
    0.5020    0.8784         0
         0    0.3765    0.5020
    0.5020    0.3765    0.5020
         0    0.8784    0.5020
    0.5020    0.8784    0.5020
    0.2510    0.3765         0
    0.7529    0.3765         0
    0.2510    0.8784         0
    0.7529    0.8784         0
    0.2510    0.3765    0.5020
    0.7529    0.3765    0.5020
    0.2510    0.8784    0.5020
    0.7529    0.8784    0.5020
         0    0.1255    0.2510
    0.5020    0.1255    0.2510
         0    0.6275    0.2510
    0.5020    0.6275    0.2510
         0    0.1255    0.7529
    0.5020    0.1255    0.7529
         0    0.6275    0.7529
    0.5020    0.6275    0.7529
    0.2510    0.1255    0.2510
    0.7529    0.1255    0.2510
    0.2510    0.6275    0.2510
    0.7529    0.6275    0.2510
    0.2510    0.1255    0.7529
    0.7529    0.1255    0.7529
    0.2510    0.6275    0.7529
    0.7529    0.6275    0.7529
         0    0.3765    0.2510
    0.5020    0.3765    0.2510
         0    0.8784    0.2510
    0.5020    0.8784    0.2510
         0    0.3765    0.7529
    0.5020    0.3765    0.7529
         0    0.8784    0.7529
    0.5020    0.8784    0.7529
    0.2510    0.3765    0.2510
    0.7529    0.3765    0.2510
    0.2510    0.8784    0.2510
    0.7529    0.8784    0.2510
    0.2510    0.3765    0.7529
    0.7529    0.3765    0.7529
    0.2510    0.8784    0.7529
    0.7529    0.8784    0.7529
    0.1255    0.1255         0
    0.6275    0.1255         0
    0.1255    0.6275         0
    0.6275    0.6275         0
    0.1255    0.1255    0.5020
    0.6275    0.1255    0.5020
    0.1255    0.6275    0.5020
    0.6275    0.6275    0.5020
    0.3765    0.1255         0
    0.8784    0.1255         0
    0.3765    0.6275         0
    0.8784    0.6275         0
    0.3765    0.1255    0.5020
    0.8784    0.1255    0.5020
    0.3765    0.6275    0.5020
    0.8784    0.6275    0.5020
    0.1255    0.3765         0
    0.6275    0.3765         0
    0.1255    0.8784         0
    0.6275    0.8784         0
    0.1255    0.3765    0.5020
    0.6275    0.3765    0.5020
    0.1255    0.8784    0.5020
    0.6275    0.8784    0.5020
    0.3765    0.3765         0
    0.8784    0.3765         0
    0.3765    0.8784         0
    0.8784    0.8784         0
    0.3765    0.3765    0.5020
    0.8784    0.3765    0.5020
    0.3765    0.8784    0.5020
    0.8784    0.8784    0.5020
    0.1255    0.1255    0.2510
    0.6275    0.1255    0.2510
    0.1255    0.6275    0.2510
    0.6275    0.6275    0.2510
    0.1255    0.1255    0.7529
    0.6275    0.1255    0.7529
    0.1255    0.6275    0.7529
    0.6275    0.6275    0.7529
    0.3765    0.1255    0.2510
    0.8784    0.1255    0.2510
    0.3765    0.6275    0.2510
    0.8784    0.6275    0.2510
    0.3765    0.1255    0.7529
    0.8784    0.1255    0.7529
    0.3765    0.6275    0.7529
    0.8784    0.6275    0.7529
    0.1255    0.3765    0.2510
    0.6275    0.3765    0.2510
    0.1255    0.8784    0.2510
    0.6275    0.8784    0.2510
    0.1255    0.3765    0.7529
    0.6275    0.3765    0.7529
    0.1255    0.8784    0.7529
    0.6275    0.8784    0.7529
    0.3765    0.3765    0.2510
    0.8784    0.3765    0.2510
    0.3765    0.8784    0.2510
    0.8784    0.8784    0.2510
    0.3765    0.3765    0.7529
    0.8784    0.3765    0.7529
    0.3765    0.8784    0.7529
    0.8784    0.8784    0.7529

或者

[im,map]=imread('H:\data\VOCtrainval_11-May-2012\VOCdevkit\VOC2012\SegmentationClass\2007_000346.png');

如果进一步地想要显示索引图像或者转为rgb,可以:

[cdata,map] = imread( filename )         %读索引图像文件
if ~isempty( map )     
   rgb = ind2rgb( cdata, map );         %将索引图像数据转为RGB图像数据
end 
imshow(rgb )
imshow(cdata,map) %这样读也可以

根据上面显示的map,我们发现与《 FCN-数据篇》的pascal voc的colormap完全一致。
另外需要注意:cdata是从0开始,对应着map的第一行。

自定义数据

根据前面《 FCN-数据篇》 的生成
自定义数据的方法,包括:
1. 使用labelme标注图像,生成灰度图像
2. 将灰度标签图像转化为rgb 24位图像,根据pascal voc的colormap,使用函数label2rgb
3. 将24位png图转换为8位png图。生成索引图像

其中第3步很重要,先前网上的资料有误。之前的代码是:

dirs=dir('F:/xxx/*.png');
for n=1:numel(dirs)
     strname=strcat('F:/xxx/',dirs(n).name);
     img=imread(strname);
     [x,map]=rgb2ind(img,256);
     newname=strcat('F:/xxx/',dirs(n).name);
     imwrite(x,map,newname,'png');
end

这里也生成了一个map,当时我就很疑惑为什么这里还有一个map呢?
于是试验了一下:

>> im=imread('G:\deeplearning\FCN_train-master\xxx.png');
>>  [a,map2]=rgb2ind(im,256);
>> map2

map2 =

         0         0         0
    0.5020         0         0
         0         0    0.5020
    0.5020         0    0.5020
         0    0.5020         0
    0.5020    0.5020         0

显然这里的map与pascal voc的map不一致了,会导致很严重的问题。
因此正确的是:

>> im=imread('G:\deeplearning\FCN_train-master\xxx.png');
>> map=labelcolormap(256);
>> x=rgb2ind(im,map);
>> imshow(x,map)
>> imwrite(x,map,'test.png','png')

其中第二步就是生成pascal voc的colormap,可以在《 FCN-数据篇》 查找。

二分类标签数据的制作

对于二分类问题而言,但我们标注好了图像语义后,我们常常得到的是黑白灰度图像。比如前景部分用255显示,背景用0显示。而且有可能24位,也可能是8位。

这时我们需要做两件事:
1. 将图像转化为24位
2. 生成8位索引图像
代码如下:

root='H:\data\IrsData\iris_ground-truth\MICHE_subset\';
input_dir=strcat(root,'ground truth\');
output_dir=strcat(root,'temp\');
src_type='tiff';
files = dir([input_dir, '*.', src_type]);
n = length(files);

for i = 1:n 

    [filename, type] = strtok(files(i).name, '.');

    im_src = imread([input_dir, files(i).name]);
    info=imfinfo([input_dir, files(i).name]);
    if info.BitDepth==8  %转化为24位rgb
        im_src=cat(3,im_src,im_src,im_src);
    end
   [x,map]=rgb2ind(im_src,2);
    newname=strcat(output_dir,filename,'.png');
    imwrite(x,map,newname,'png');

end

至此生成的图像时索引图像,二分类,前景为白色,背景为黑色,索引值为0,1.

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

图像分割 | FCN数据集制作的全流程(图像标注)

一 全卷积神经网络深度学习图像分割(FCN)训练自己的模型大致可以以下三步:1.为自己的数据制作label;2.将自己的数据分为train,val和test集;3.仿照voc_lyaers.py编写自...
  • u010402786
  • u010402786
  • 2017-06-06 15:52
  • 8873

使用FCN做图像语义分割(实践篇)

FCN原理原理我已经在上篇博客说过,大家可以参考FCN原理篇代码FCN有官方的代码,具体地址是FCN官方代码 不过我用的不是这个代码,我用的是别人修改官方的版本的代码,使用Chainer框架实现的,...
  • Gavin__Zhou
  • Gavin__Zhou
  • 2016-08-07 15:25
  • 25076

FCN制作自己的数据集、训练和测试全流程

**FCN制作自己的数据集、训练和测试全流程** 花了两三周的时间,在导师的催促下,把FCN的全部流程走了一遍,期间走了很多弯路,现在记录一下。系统环境:ubuntu 16.04LTS一、数据集的制...
  • zoro_lov3
  • zoro_lov3
  • 2017-07-06 15:11
  • 4893

FCN数据集 图片和标签

  • 2016-12-29 20:42
  • 30.66MB
  • 下载

FCN制作自己的数据集、训练和测试全流程

**FCN制作自己的数据集、训练和测试全流程** 花了两三周的时间,在导师的催促下,把FCN的全部流程走了一遍,期间走了很多弯路,现在记录一下。系统环境:ubuntu 16.04LTS一、数据集的制...
  • zoro_lov3
  • zoro_lov3
  • 2017-07-06 15:11
  • 4893

用自己的数据集在R-FCN框架下进行检测

这个教程默认代码、预训练模型、测试部分的代码已经下载好,环境也已经编译好【训练】 models models文件夹下存放的是对应的预训练的模型在训练时的网络参数。 以ResNet-101为例: ...
  • baidu_32134431
  • baidu_32134431
  • 2017-11-12 11:26
  • 46

FCN网络训练 SIFTFLOW数据集

论文全名:Fully Convolutional Networks for Semantic Segmentation 全卷积神经网络 FCN代码运行详解: 运行平台: Ubuntu...
  • a8039974
  • a8039974
  • 2017-11-22 14:05
  • 107

R-FCN+ResNet-50用自己的数据集训练模型(python版本)

R-FCN+ResNet-50用自己的数据集训练模型(python版本)
  • zchang81
  • zchang81
  • 2017-06-13 21:18
  • 765

R-FCN+ResNet-50用自己的数据集训练模型(python版本)

说明: 本文假设你已经做好数据集,格式和VOC2007一致,并且Linux系统已经配置好caffe所需环境(博客里教程很多),下面是训练的一些修改。 py-R-FCN源码下载地址: https:/...
  • qq_36673141
  • qq_36673141
  • 2017-10-24 15:43
  • 37

R-FCN+ResNet-50用自己的数据集训练模型(python版本)

说明: 本文假设你已经做好数据集,格式和VOC2007一致,并且Linux系统已经配置好caffe所需环境(博客里教程很多),下面是训练的一些修改。 py-R-FCN源码下载地址: https:/...
  • sinat_30071459
  • sinat_30071459
  • 2016-11-17 21:35
  • 24502
    个人资料
    • 访问:285090次
    • 积分:4126
    • 等级:
    • 排名:第8660名
    • 原创:117篇
    • 转载:82篇
    • 译文:8篇
    • 评论:106条
    个人网站
    最新评论