caffe下fcn数据集制作的简化
来源:互联网 发布:逛淘宝免流量 编辑:程序博客网 时间:2024/05/17 07:25
前面一直跑caffe下的fcn,同时上一篇博客,也说明了关于fcn的数据集的制作。但是过程还是显的很复杂,因为我们都是模仿作者的数据集而作,而作者为了完成多任务,数据集制作的略显复杂,比如还需用到.mat文件。但其实我们跑fcn有了python这个接口,数据的输入完全可以是一张张图片,并不要转成其他格式。下面我就来具体说明一下,怎么更改几个caffe的fcn的文件,就可以实现数据集的简化制作。
首先,对于fcn,我们都知道,其实数据的输入无非就是原图,和label图,分的再细一点就是训练的原图和label,测试的原图和label。那么对于已经写好的python的数据输入层是怎么样的呢?我们先打开fcn下voc_layers.py这个文件:
里面我们可以看到 class VOCSegDataLayer(caffe.Layer):和 class SBDDSegDataLayer(caffe.Layer) 这两个类,第一个是测试时数据输入调用的python类,第二个是训练时数据输入调用的python类。而这类里面,分别是对输入数据的一些预处理操作。我们回想一下作者的数据集制作是怎样的,训练时,输入原图,label是.mat,测试时输入原图,label是索引图。显然对于测试就很简单,输入都是图片,而训练还要.mat.那我们是不是可以把.mat也换成索引图呢,这样所有原图都放在一个文件夹里,所有label都是索引图也放在一个文件里,训练网络时,只要根据train.txt和test.txt来调用是不是就简单了很多。但是有人或许会有疑问,.mat里面还有好几个部分,什么分类啊,边缘啊,这些信息索引图都表达不了啊。不急,我们先来看看voc_layers.py这个文件对.mat的读取,我们先进入class SBDDSegDataLayer(caffe.Layer) 这个类,找到def load_label(self, idx)这个函数,看里面代码:
很显然这里面读取的只是.mat里买的segmentation这个部分,制作过.mat的人都知道,这其实就是没有map的索引图 ,而其他部分,很显然,我们这里的fcn并没有用到。所以我们只要吧这里读取.mat的函数换成读取索引图的函数,再把.mat换成索引图是不是就ok了呢? 至于.mat变成索引图,很简单,而这个函数怎么换,也简单,想想我们那个测试集的读取不就是索引图吗,直接copy下来不久ok了吗?好,我们现在就进入class VOCSegDataLayer(caffe.Layer)这个类,copy出def load_label(self, idx):这个函数:
细心的发现没有其实这两个函数差不多,只是读取上不一样,我们把copy的这个函数去替换掉上面的那个函数即可,
但是这样真的就可以了吗?显然不是,我们copy的函数这里是self.voc_dir,如图
这个并不是这个类中的参数,所以这个参数我们得换成原来的这个,self.sbdd_dir,如图:
好,到这里基本就大工告成了。但是到这里,我们只是不需要制作.mat了,我们并不能把数据训练的原图和测试的原图放在一个文件,训练的label和测试的label放在一个文件里。因为我们还没有改路径,至于路径 怎么改,这里每个人路径都不样,我只说改哪里,大家跟着改就可以了:
第一点就是刚刚那两个函数中的那一句Image.open:
还有就是train.prototxt和val.prototxt中的着一块:
根据自己的路径改动相应的位置,报错没关系,很据错误一步步改进,这样自己也能熟悉caffe下python接口读取路径的方式。
- caffe下fcn数据集制作的简化
- caffe下fcn数据集制作的简化
- caffe下fcn数据集的制作
- FCN制作自己的数据集、训练和测试 caffe
- caffe fcn数据集制作 -标签
- caffe下用FCN做图像分割,如何制作训练集?
- caffe下FCN注意事项
- caffe下FCN测试
- 在caffe环境下制作自己的数据集
- Caffe:Win10下测试自己制作的数据集
- caffe Windows下 FCN 跑sift-flow数据
- caffe FCN网络的训练——以SIFT-Flow 数据集为例
- caffe制作数据集
- caffe制作数据集
- caffe随记(八)---使用caffe训练FCN的pascalcontext-fcn32s模型(pascal-context数据集)
- caffe随记(八)---使用caffe训练FCN的pascalcontext-fcn32s模型(pascal-context数据集)
- 制作caffe所需要的数据集
- caffe框架制作自己的数据集
- Device Tree设备数(一):背景介绍
- 企业大咖走进华清远见济南中心,倾情分享嵌入式硬件开发秘籍
- listview简单使用与优化
- matlab图像剪裁命令
- 献给初学者:谈谈如何学习Linux操作系统
- caffe下fcn数据集制作的简化
- [一个人的项目] 序
- 写一函数,将两个字符串连接
- JavaScript教程
- Tomcat jvm启动命令之参数优化
- fopen,fprintf 和 sprintf在Matlab中的应用
- Java单例代码
- 23种设计模式类图总结
- 使用fedora的live-rescure模式恢复系统