关于FCN的数据集着色说明

前方我们讲解了《 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.Colormapans =0         0         00.5020         0         00    0.5020         00.5020    0.5020         00         0    0.50200.5020         0    0.50200    0.5020    0.50200.5020    0.5020    0.50200.2510         0         00.7529         0         00.2510    0.5020         00.7529    0.5020         00.2510         0    0.50200.7529         0    0.50200.2510    0.5020    0.50200.7529    0.5020    0.50200    0.2510         00.5020    0.2510         00    0.7529         00.5020    0.7529         00    0.2510    0.50200.5020    0.2510    0.50200    0.7529    0.50200.5020    0.7529    0.50200.2510    0.2510         00.7529    0.2510         00.2510    0.7529         00.7529    0.7529         00.2510    0.2510    0.50200.7529    0.2510    0.50200.2510    0.7529    0.50200.7529    0.7529    0.50200         0    0.25100.5020         0    0.25100    0.5020    0.25100.5020    0.5020    0.25100         0    0.75290.5020         0    0.75290    0.5020    0.75290.5020    0.5020    0.75290.2510         0    0.25100.7529         0    0.25100.2510    0.5020    0.25100.7529    0.5020    0.25100.2510         0    0.75290.7529         0    0.75290.2510    0.5020    0.75290.7529    0.5020    0.75290    0.2510    0.25100.5020    0.2510    0.25100    0.7529    0.25100.5020    0.7529    0.25100    0.2510    0.75290.5020    0.2510    0.75290    0.7529    0.75290.5020    0.7529    0.75290.2510    0.2510    0.25100.7529    0.2510    0.25100.2510    0.7529    0.25100.7529    0.7529    0.25100.2510    0.2510    0.75290.7529    0.2510    0.75290.2510    0.7529    0.75290.7529    0.7529    0.75290.1255         0         00.6275         0         00.1255    0.5020         00.6275    0.5020         00.1255         0    0.50200.6275         0    0.50200.1255    0.5020    0.50200.6275    0.5020    0.50200.3765         0         00.8784         0         00.3765    0.5020         00.8784    0.5020         00.3765         0    0.50200.8784         0    0.50200.3765    0.5020    0.50200.8784    0.5020    0.50200.1255    0.2510         00.6275    0.2510         00.1255    0.7529         00.6275    0.7529         00.1255    0.2510    0.50200.6275    0.2510    0.50200.1255    0.7529    0.50200.6275    0.7529    0.50200.3765    0.2510         00.8784    0.2510         00.3765    0.7529         00.8784    0.7529         00.3765    0.2510    0.50200.8784    0.2510    0.50200.3765    0.7529    0.50200.8784    0.7529    0.50200.1255         0    0.25100.6275         0    0.25100.1255    0.5020    0.25100.6275    0.5020    0.25100.1255         0    0.75290.6275         0    0.75290.1255    0.5020    0.75290.6275    0.5020    0.75290.3765         0    0.25100.8784         0    0.25100.3765    0.5020    0.25100.8784    0.5020    0.25100.3765         0    0.75290.8784         0    0.75290.3765    0.5020    0.75290.8784    0.5020    0.75290.1255    0.2510    0.25100.6275    0.2510    0.25100.1255    0.7529    0.25100.6275    0.7529    0.25100.1255    0.2510    0.75290.6275    0.2510    0.75290.1255    0.7529    0.75290.6275    0.7529    0.75290.3765    0.2510    0.25100.8784    0.2510    0.25100.3765    0.7529    0.25100.8784    0.7529    0.25100.3765    0.2510    0.75290.8784    0.2510    0.75290.3765    0.7529    0.75290.8784    0.7529    0.75290    0.1255         00.5020    0.1255         00    0.6275         00.5020    0.6275         00    0.1255    0.50200.5020    0.1255    0.50200    0.6275    0.50200.5020    0.6275    0.50200.2510    0.1255         00.7529    0.1255         00.2510    0.6275         00.7529    0.6275         00.2510    0.1255    0.50200.7529    0.1255    0.50200.2510    0.6275    0.50200.7529    0.6275    0.50200    0.3765         00.5020    0.3765         00    0.8784         00.5020    0.8784         00    0.3765    0.50200.5020    0.3765    0.50200    0.8784    0.50200.5020    0.8784    0.50200.2510    0.3765         00.7529    0.3765         00.2510    0.8784         00.7529    0.8784         00.2510    0.3765    0.50200.7529    0.3765    0.50200.2510    0.8784    0.50200.7529    0.8784    0.50200    0.1255    0.25100.5020    0.1255    0.25100    0.6275    0.25100.5020    0.6275    0.25100    0.1255    0.75290.5020    0.1255    0.75290    0.6275    0.75290.5020    0.6275    0.75290.2510    0.1255    0.25100.7529    0.1255    0.25100.2510    0.6275    0.25100.7529    0.6275    0.25100.2510    0.1255    0.75290.7529    0.1255    0.75290.2510    0.6275    0.75290.7529    0.6275    0.75290    0.3765    0.25100.5020    0.3765    0.25100    0.8784    0.25100.5020    0.8784    0.25100    0.3765    0.75290.5020    0.3765    0.75290    0.8784    0.75290.5020    0.8784    0.75290.2510    0.3765    0.25100.7529    0.3765    0.25100.2510    0.8784    0.25100.7529    0.8784    0.25100.2510    0.3765    0.75290.7529    0.3765    0.75290.2510    0.8784    0.75290.7529    0.8784    0.75290.1255    0.1255         00.6275    0.1255         00.1255    0.6275         00.6275    0.6275         00.1255    0.1255    0.50200.6275    0.1255    0.50200.1255    0.6275    0.50200.6275    0.6275    0.50200.3765    0.1255         00.8784    0.1255         00.3765    0.6275         00.8784    0.6275         00.3765    0.1255    0.50200.8784    0.1255    0.50200.3765    0.6275    0.50200.8784    0.6275    0.50200.1255    0.3765         00.6275    0.3765         00.1255    0.8784         00.6275    0.8784         00.1255    0.3765    0.50200.6275    0.3765    0.50200.1255    0.8784    0.50200.6275    0.8784    0.50200.3765    0.3765         00.8784    0.3765         00.3765    0.8784         00.8784    0.8784         00.3765    0.3765    0.50200.8784    0.3765    0.50200.3765    0.8784    0.50200.8784    0.8784    0.50200.1255    0.1255    0.25100.6275    0.1255    0.25100.1255    0.6275    0.25100.6275    0.6275    0.25100.1255    0.1255    0.75290.6275    0.1255    0.75290.1255    0.6275    0.75290.6275    0.6275    0.75290.3765    0.1255    0.25100.8784    0.1255    0.25100.3765    0.6275    0.25100.8784    0.6275    0.25100.3765    0.1255    0.75290.8784    0.1255    0.75290.3765    0.6275    0.75290.8784    0.6275    0.75290.1255    0.3765    0.25100.6275    0.3765    0.25100.1255    0.8784    0.25100.6275    0.8784    0.25100.1255    0.3765    0.75290.6275    0.3765    0.75290.1255    0.8784    0.75290.6275    0.8784    0.75290.3765    0.3765    0.25100.8784    0.3765    0.25100.3765    0.8784    0.25100.8784    0.8784    0.25100.3765    0.3765    0.75290.8784    0.3765    0.75290.3765    0.8784    0.75290.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);
>> map2map2 =0         0         00.5020         0         00         0    0.50200.5020         0    0.50200    0.5020         00.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位rgbim_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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongobd python_Python操作MongoDB数据库PyMongo库使用方法

引用PyMongo复制代码 代码如下:>>> import pymongo创建连接Connection复制代码 代码如下:>>> import pymongo>>> conn pymongo.Connection(localhost,27017)或复制代码 代码如下:>>> from pymongo import Connection>>> conn C…

Android Property Animation动画

3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:property animation,这三种动画模式在SDK中被称为property animation,view animation,drawable animation…

angular实现select的ng-options

ng实现简单的select <div ng-controller"ngSelect"><select ng-model"vm.selectVal" ng-options"o.title for o in vm.optionsData"><option value"">请选择</option></select> </div> var app …

Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)

不多说&#xff0c;直接上干货&#xff01; 前期博客 Ubuntu14.04下Mongodb&#xff08;离线安装方式|非apt-get&#xff09;安装部署步骤&#xff08;图文详解&#xff09;&#xff08;博主推荐&#xff09; Ubuntu14.04下Mongodb官网安装部署步骤&#xff08;图文详解&#x…

deeplab运行指南

以下仅仅为一个总结&#xff0c;参考了网上的众多资料&#xff0c;仅备忘记。 主要链接 deeplab主页&#xff1a;http://liangchiehchen.com/projects/DeepLab.html官方代码&#xff1a;https://bitbucket.org/aquariusjay/deeplab-public-ver2python 版caffe实现&#xff1a…

tensorboard使用_colab打不开tensorboard的解决办法

2020.4.1更新&#xff1a;colab现在自带tensorboard的魔术方法了&#xff0c;用这个命令就能展示tensorboard%load_ext tensorboard %tensorboard --logdir ./log/train# 加载一次后&#xff0c;如果要重新加载&#xff0c;就需要使用reload方法 %reload_ext tensorboard %tens…

构造函数为什么不能是虚函数 ( 转载自C/C++程序员之家)

从存储空间角度&#xff0c;虚函数对应一个指向vtable虚函数表的指针&#xff0c;这大家都知道&#xff0c;可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了&#xff0c;如果构造函数是虚的&#xff0c;就需要通过 vtable来调用&#xff0c;可是对象还没有实…

小程序“自定义关键词”功能的常见问答

我们知道小程序可以通过线下扫码、公众号、好友分享、长按小程序码、搜索小程序名称来找到&#xff0c;现在又多了一个新方式——小程序后台新增自定义关键词功能&#xff1a;已发布小程序的开发者&#xff0c;可提交最多10个与小程序业务相关的关键词&#xff0c;帮助你的小程…

语义分割深度学习方法集锦

转载&#xff1a;https://github.com/handong1587/handong1587.github.io/edit/master/_posts/deep_learning/2015-10-09-segmentation.md Papers Deep Joint Task Learning for Generic Object Extraction intro: NIPS 2014homepage: http://vision.sysu.edu.cn/projects/d…

员工培训与开发实训心得体会_公司新员工培训心得体会800字范文

点击蓝字关注我们培训是一次能够快速提升我们的机会&#xff0c;而每个新员工也是通过培训尽快的融入公司的。因此&#xff0c;我们要更加重视培训一些!下面是小编为大家整理的公司新员工培训心得体会&#xff0c;希望对大家有帮助。公司新员工培训心得体会800字为了让我们新进…

Nginx ab压力测试

20-ab压力测试及nginx性能统计模块 优化的启发&#xff0c;打开的文件太多 Nginx 错误日志显示&#xff0c;打开文件数太多 系统层面 more /proc/sys/net/core/somaxconn 单个Nginx 测试index.html 没优化前 [root/home/www]#ab -c 4000 -n 100000 http://test.demo.com/inde…

Code First02---CodeFirst配置实体与数据库映射的两种方式

Code First有两种配置数据库映射的方式&#xff0c;一种是使用数据属性DataAnnotation&#xff0c;另一种是Fluent API.这两种方式分别是什么呢&#xff1f;下面进行一一解释&#xff1a;DataAnnotation的配置方式需要你给定义实体和值对象的类和类中的属性加上与数据库映射相关…

sigmoid函数的数值稳定性

在深度学习中&#xff0c;我们常常选用sigmoid函数作为激活函数。sigmoid函数的具体形式如下&#xff1a; f(x)11e−xf(x)=\frac{1}{1+e^{-x}}曲线表示为&#xff1a; 再画大一点&#xff0c;取x区间更大一些&#xff0c;则为&#xff1a; 显然从图像上看&#xff0c;sigmoid函…

查看CentOS版本方法

有以下命令可以查看&#xff1a; # lsb_release -a LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarchDistributor ID: CentOSDescription: CentOS release 5.4 (Final)Release: 5.4Codename: Final这个命令适用于所有的li…

windows远程连接ubuntu 黑屏_Windows跟Windows远程连接传输文件

关注奕奇科技&#xff0c;学习更多小妙招电脑小知识&#xff0c;值得收藏我们一般在使用windows远程连接时需要传输文件该怎么办&#xff1f;我们可以插入U盘导入导出&#xff0c;但这样很是麻烦而且如果身边暂时没有U盘的情况就要通过社交工具传播文件&#xff0c;大的文件也更…

思维导图分析http之前端组成

思维导图分析http前端组成全文总览本文分为三个部分&#xff1a;前端组成&#xff0c;http协议&#xff0c;http服务器应用程序。http的应用按照我自己的理解分为前端应用以及后端应用&#xff0c;所以我分别写了前端组成以及http服务器应用程序两章&#xff0c;中间穿插了一章…

Linux命令工具基础02 文件及目录管理

文件及目录管理 文件管理不外乎文件或目录的创建、删除、查询、移动&#xff0c;有mkdir/rm/mv 文件查询是重点&#xff0c;用find来进行查询&#xff1b;find的参数丰富&#xff0c;也非常强大&#xff1b; 查看文件内容是个大的话题&#xff0c;文本的处理有太多的工具供我们…

caffe 关于Deconvolution的初始化注意事项

对于fcn&#xff0c;经常要使用到Deconvolution进行上采样。对于caffe使用者&#xff0c;使用Deconvolution上采样&#xff0c;其参数往往直接给定&#xff0c;不需要通过学习获得。 给定参数的方式很有意思&#xff0c;可以通过两种方式实现&#xff0c;但是这两种方式并非完…

多目标进化优化_SDIM 学术讲座|分解多目标优化与帕累托多任务学习

分解多目标优化与帕累托多任务学习2020年11月4日晚&#xff0c;香港城市大学电脑学系讲座教授、博士生导师、IEEE Fellow张青富教授应我院王振坤教授的邀请&#xff0c;在线举办了一场主题为“分解多目标优化与帕累托多任务学习”的学术讲座。此次讲座采用线上和线下两种渠道&a…

hibernate(nested transactions not supported)异常

org.hibernate.TransactionException: nested transactions not supported错误的解决方法&#xff01; 原因&#xff1a;事务没有提交&#xff0c;事务提交后正常 Transaction tx session.beginTransaction(); tx.commit(); //缺少这句话转载于:https://www.cnblogs.com/lmq-1…