CNN学习----创建自己的数据集

    学习的时候看了很多参考书和博客,调试了很多次,其实数据集lmdb格式转换很简单,需要更改的文件并不多

将自己的数据导入Ubuntu,这里作者省略步骤。导入linux之后就可以对数据集进行格式转换操作了

1. 将文件分为两类:训练文件和测试文件

CNN学习----创建自己的数据集_第1张图片 

这里我把两个文件夹放在了名为nuaa的文件夹中

对于train和val文件夹,每个文件夹中存放的是每个类别的子文件夹,这里作者做的是二分类,如下图CNN学习----创建自己的数据集_第2张图片

我把图片分为两类,分别给标签0.1,val文件夹也是如此

2.创建train.txt文件

这时候需要一个.sh文件,在nuaa文件夹创建一个,sh文件,命名为train,sh。代码如下

# !/usr/bin/env sh
DATA=/raid/tyy/caffe-master/myfile/nuaa
MY=/raid/tyy/caffe-master/myfile/nuaa

echo "==================Creat train.txt===================="
rm -rf $MY/train.txt
find $DATA/train/1 -name *.jpg | cut -d'/' -f8-9 | sed "s/$/ 1/">>$MY/train.txt

find $DATA/train/0 -name *.jpg | cut -d'/' -f8-9 | sed "s/$/ 0/">>$MY/tmp1.txt



cat $MY/tmp1.txt>>$MY/train.txt


rm -rf $MY/tmp.txt
rm -rf $MY/tmp1.txt


echo "train data OK"

echo "==================Creat test.txt===================="
rm -rf $MY/val.txt
find $DATA/val/0 -name *.jpg | cut -d'/' -f8-9| sed "s/$/ 0/">>$MY/val.txt

find $DATA/val/1 -name *.jpg | cut -d'/' -f8-9 | sed "s/$/ 1/">>$MY/tmp4.txt



cat $MY/tmp4.txt>>$MY/val.txt



rm -rf $MY/tmp4.txt


echo "test data OK"

echo "Done!"


其中需要根据情况更改自己的路径和路径级数,即DATA ,MY路径,设为训练图片所在路径,-f8-9指的是0/1文件夹所在文件路径级数,这个根据情况更改。

运行train.sh后,会在nuaa文件夹下生成两个.txt文件:train.txt  val.txt

CNN学习----创建自己的数据集_第3张图片

CNN学习----创建自己的数据集_第4张图片

生成,txt文件后我们就可以生成.lmdb文件了,创建一个.sh文件,这里我将它命名为create_lmdb.sh文件,具体代码如下:

DATA=/raid/tyy/caffe-master/myfile/nuaa
TOOLS=/raid/tyy/caffe-master/build/tools

echo "Create train lmdb.."
rm -rf $DATA/train_lmdb
$TOOLS/convert_imageset \
--shuffle \
--resize_height=162 \
--resize_width=162 \
/raid/tyy/caffe-master/myfile/nuaa/train/ \
$DATA/train.txt \
$DATA/train_lmdb

echo "Create val lmdb.."
rm -rf $DATA/val_lmdb 
$TOOLS/convert_imageset \
--shuffle \
--resize_width=162 \
--resize_height=162 \
/raid/tyy/caffe-master/myfile/nuaa/val/ \
$DATA/val.txt \
$DATA/val_lmdb

echo "All Done.."
这里更改的也是路径,将DATA更改为.txt文件所在路径,TOOLS路径为
convert_imageset
所在路径一般不需要更改。将图片大小改为自己需要的大小,执行.sh文件,就得到了想要的数据集

CNN学习----创建自己的数据集_第5张图片

这时候Terminal窗口会显示成功CNN学习----创建自己的数据集_第6张图片

还有一种检测是否成功的方法是看生成lmdb文件夹大小,如果只有十几kb,那就要回去看看是不是路径错误了,在这里要注意的是:

1.路径问题

2.文件夹所在位置以及.txt文件的内容是否正确,正确格式为:类别/图片名  类别


你可能感兴趣的:(CNN学习----创建自己的数据集)