环境配置完全后
1 VOC数据集
在/data/VOCdevkit目录下创建mydataset, 并放入自己的数据集:
cd data/VOCdevkit
mkdir mydataset
cd mydataset
mkdir Annotations
mkdir ImageSets
mkdir JPEGImages
cd ImageSets
mkdir Layout
mkdir Main
mkdir Segmentation
其中Annotations中存放一些列XML文件,包含object的bbox,name等;
ImageSets中三个子目录下均存放train.txt, val.txt, trainval.txt, test.txt这几个文件,文件内容为图片的文件名(不带后缀);
JPEGImages存放所有的图片;
2 生成lmdb训练数据
在/data目录下创建一个自己的文件夹:
cd /data
mkdir mydataset
把/data/VOC0712目录下的create_list.sh 、create_data.sh、labelmap_voc.prototxt 这三个文件拷贝到/mydataset下:
cp VOC0712/create* ./mydataset
cp VOC0712/label* ./mydataset
labelmap_voc.prototxt, 此文件定义label。
修改create_list.sh
修改成for name in mydataset
修改create_data.sh
修改成dataset_name="mydataset"
修改labelmap_indoor.prototxt
修改分类类别
./data/mydataset/create_list.sh
./data/mydataset/create_data.sh
错误处理:
ImportError: No module named caffe.proto
输入
export PYTHONPATH=/home/cehh/caffe/python:$PYTHONPATH
3 训练
python ./examples/ssd/ssd_mydata2.py
主要修改点:
(1)train_data和test_data修改成指向自己的数据集LMDB
train_data = "examples/mydataset/mydataset_trainval_lmdb"
test_data = "examples/mydataset/mydataset_test_lmdb"
(2) num_test_image该变量修改成自己数据集中测试数据的数量
(3)num_classes 该变量修改成自己数据集中 标签类别数量数 + 1