Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat

       Caffe 由两种常用的数据集格式,一种是LMDB,另一种事HDF5,前者常用来做分类问题(单标签),后者用来做回归问题(多标签)。今天用经典的猫狗数据集生成自己的LMDB数据集。

一、准备数据集

        我们用的数据集事经典的Kaggle数据集,可以直接在Kaggle上下载到,本地的百度云网盘也会在文末放出。

二、生成准备文件

Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat_第1张图片

    1. 按文件存放。 

        刚下载下来的数据集只有train和test压缩包,我们从train中选取500张放入到新建的val目录中,作为验证集,而test作为测试集使用。将train中的猫狗数据分开存放在train目录下,cat图片放在0目录下,dog图片放在1目录下。

Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat_第2张图片

        同样的方式对val进行存放。

Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat_第3张图片

存放完成之后,整个数据集的目录架构应该是:

Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat_第4张图片

        整个数据集准备完成。( val 500张可能有点少,可以自行修改增加)

    2. 生成txt描述文件。

        直接使用脚本生成 train 和 val 的描述文件。

import os
import os.path
# 指明被遍历的文件夹

FILE_NAME = '0'
LABLE = -1
rootdir = "./val/";     
SAVE_PATH = "./val_list.txt" 
fh = open(SAVE_PATH,'w')

#三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
for parent,dirnames,filenames in os.walk(rootdir):
    print(dirnames)
    for filename in filenames:                        #输出文件信息
        abs_path = parent + "/"+ filename + " " + str(LABLE)
        print(abs_path)
        fh.write(abs_path)
        fh.write('\n')
	
    LABLE = LABLE + 1


fh.close();

修改FILE_NAME 、rootdir 以及 SAVE_PATH 即可,生成后的 txt 文件如下:

Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat_第5张图片

        用Notepad++打开文件,将./val/替换为空。

Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat_第6张图片

Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat_第7张图片  <<<<<< 替换后的路径

同样的方法生成 train 目录的 txt 描述文件。

三、制作数据集

将编译好的caffe的添加到Path环境变量中。

测试一下:

Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat_第8张图片

这样就是OK的。

切换到工程目录下,右键,打开Powershell。

输入命令:

convert_imageset --resize_height=208 --resize_width=208 --shuffle .\tr
ain/ .\train_list.txt train_imgSet.lmdb

convert_imageset 是用来生成数据集的命令,默认是LMDB,如果要生成leveldb还需要加入 --backend=leveldb。

FLAGE 表示各项参数,包括 resize_height(改变高度)、resize_width(改变宽度)、shuffle(打乱读取)、backend(生成的数据格式)。

ROOTFOLDER:图片的存放目录(不包含文件名)

LISTFILE:生成的txt文档的路径(包含文件名)

DB_NAME:生成的数据库的路径(包含文件名)

开始执行之后:

Caffe学习:3. 生成自己的数据集(一) Dogs VS Cat_第9张图片

完成之后会生成train_imgSet.lmdb:

同样的方法生成val_imgSet.lmdb:

到此整个数据集生成完成。

 

 

你可能感兴趣的:(Caffe)