在caffe-windows下跑自己的数据集leveldb格式 或者lmdb

文介绍如何使用caffe对自己的图像数据进行分类。

图片数据库准备

由于图片数据收集比较费时,实验室数据库分为5类,1 2 3 4 5类train150张,val256张。


新建一个文件夹leveldb,放自己的数据,在leveldb文件夹下新建trainval文件夹,train文件夹下新建1、2、3、4、5文件夹分别存放150类别图片val文件夹同样如此。注样如此。

 

train文件夹


val文件夹

1 2 3 4 5类文件夹内存储的是每类的图片,比如我的1文件夹中为


转换成leveldb格式

leveldb文件夹下新建两个txt文件:train.txtval.txt,列出对应图片名及其标签。

数据量较少的可以手动标签,数据量较大的话,可以写批处理命令,比较方便。

批处理的方式可以使用.bat命令行,  

注意:标签一定要从零开始标起

打开新件的文本文档,并输入DIR *.* /B > 文件名称列表.txt

保存后关闭。然后使用word打开txt,替换那种方式更改名称


请注意前面文件名称的路径问题,这些如果在转换格式的命令行中,若报错找不到该图片的话就是名称路径问题,根据报错的路径更改txt中图片的名称,0 1 2 3 4代表五类数据


生成列表后,编译convert_imageset.cpp

在\caffe-master\Build\x64\Release\convert_imageset.exe。做一个批处理命令将图片数据转换成leveldb格式。

在caffe-windows文件夹下新建convertimage2ldb.bat。


.bat命令可以由txt改后缀得到,前面是命令,中间是resize大小,--shuffle --backend="leveldb"是leveldb数据格式,对应的--shuffle --backend="lmdb"是lmdb数据格式  ,F:\caffe-master\data\leveldb\train  F:\caffe-master\data\leveldb\train.txt是之前定义的train的文件路径,F:\caffe-master\data\leveldb\mtrainldb是存储转换好的训练数据的路径。

双击运行,在leveldb文件夹下就会出现mtrainldb文件夹。

同理可得到mvalldb。这两个就是caffe需要的数据。

注意,我的leveldb文件夹是放在data文件夹下的,在写convertimage2ldb.bat时注意你自己路径。

3 计算mean

这个比较简单,编译comput_image_mean.cpp

利用comput_image_mean.exe。做一个computeMean.bat方便以后使用。

注意数据格式类型


开始出现错误


然后搜索

caffe db_lmdb.hpp:14] Check failed: mdb_status == 0 (2 vs. 0) No such file or directory


找到https://github.com/happynear/caffe-windows/issues/91链接 解决问题


文本中加入 --backend=leveldb成功运行


双击运行之后在leveldb文件夹里面出现*_mean.binaryproto,这就是caffe需要的图片均值文件。

4 训练自己的网络

数据集和均值文件都生成之后,训练和前面两篇文章类似。这次我直接使用的是imagenet的网络结构,几乎没怎么修改,所以我将imagenet里面的imagenet_train.prototxt、imagenet_val.prototxt、imagenet_solver.prototxt直接拷过来修改一下。

imagenet_val.prototxt、imagenet_train.prototxt里面的

source: "mtrainldb"

mean_file:"mimg_mean.binaryproto"

batch_size: 10

还有最后一层的output改为5,因为我只有五类。

imagenet_solver.prototxt里面的网络参数修改:


注意最后根据自己电脑的配置选择 solver_mode:GPU 还是CPU

开始训练:

找到自己存放的路径

就可以跑起来了



参考文献:
http://blog.csdn.net/u012878523/article/details/41698209
https://github.com/happynear/caffe-windows/issues/91
http://jingyan.baidu.com/article/9158e0004080baa2541228b6.html




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

uncle_ll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值