深度学习框架用的是caffe;网络模型是CaffeNet(AlexNet的变形)。
1.准备数据
我用的是Fish4knowledge数据集,数据集内总共有27370张图片,23类,每一类的数量不等且差异大。将其按照5:1:1的比例分为训练集、验证集、测试集。(记住由于每类的数据不均衡,所以一定要随机分配)
- 训练集:19550张图片
- 验证集:3910张图片
- 测试集:3910张图片
2.生成filelist的txt文件
接下来要生成三个文件列表,train.txt、val.txt、test.txt。文件中的每一行存放的是一张图片的文件名(包含相对路径)和类别号,中间用空格隔开。我的类别号从1开始,到23。
可以用python\matlab\shell,任意挑一种你熟练的语言遍历整个数据集,获取文件名列表以及每个文件的类别。
3.转换为lmdb格式
在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致。因此我们可以调用caffe里的convert_imageset工具来将图片文件转换成caffe框架中能直接使用的db文件。create_lmdb.sh 且数据集中的图片大小根据情况统一成47*47。
#!/usr/bin/en sh
rm -rf img_lmdb_train
/home/zh/caffe/build/tools/convert_imageset --shuffle \ # "\" 是另起一行的意思
--resize_height=47 --resize_width=47 \
Image/train/ \
ImageSets/train.txt img_lmdb_train
rm -rf img_lmdb_val
/home/zh/caffe/build/tools/convert_imageset --shuffle \
--resize_height=47 --resize_width=47 \
Image/val/ \
ImageSets/val.txt img_lmdb_val
rm -rf img_lmdb_test
/home/zh/