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

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

一、准备数据集

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

二、生成准备文件

    1. 按文件存放。 

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

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

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

        整个数据集准备完成。( 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 文件如下:

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

  <<<<<< 替换后的路径

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

三、制作数据集

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

测试一下:

这样就是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:生成的数据库的路径(包含文件名)

开始执行之后:

完成之后会生成train_imgSet.lmdb:

同样的方法生成val_imgSet.lmdb:

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

猜你喜欢

转载自blog.csdn.net/RookieSa/article/details/83449982
今日推荐