ssd训练自己的数据集

1.在ssd/caffe/data下创建VOC2007的目录,将ssd/caffe/data/VOC0712里的create_data.sh、create_list.sh和labelmap_voc.prototxt拷贝到VOC2007下,得如下图:

2.在/home/bnrc下创建data目录,在data目录下创建VOCdevkit2007目录,直接把VOC2007整个数据的文件夹放在VOCdevkit2007目录下,结构如图:

VOC2007文件夹所包含的目录:

3.在ssd/caffe/examples目录下,创建VOC2007文件夹,这个文件夹之后要存储生成的lmdb数据

4.修改labelmap_voc.prototxt成你自己的格式:

运行create_list.sh:./create_list.sh,报以下错误:

因为我的data目录下是VOCdevkit2007,所以需要修改create_list.sh中的root_dir=$HOME/data/VOCdevkit/为root_dir=$HOME/data/VOCdevkit2007/

修改之后依旧报以下错:

这是因为/data/VOCdevkit2007下只有VOC2007,没有2012,所以需要把for name in VOC2007 VOC2012中的VOC2012删除

修改之后报以下错误:

这是还没有编译ssd这个目录的原因

之后再运行create_data.sh :./create_data.sh,报以下错误:

需要将create_data.sh中的data_root_dir="$HOME/data/VOCdevkit"改为data_root_dir="$HOME/data/VOCdevkit2007",将dataset_name="VOC0712"改为dataset_name="VOC2007"

再运行报以下错误:

 用export PYTHONPATH=/home/bnrc/ssd/caffe/python修改PYTHONPATH

修改之后又报错:

 

这是因为我之前只在ssd/caffe进行make,没有make pycaffe

make pycaffe的显示:

可以看到,生成了_caffe

再运行就能正确在./examples/VOC2007下生成lmdb数据了

5.修改ssd_pascal.py代码:

自己的是VOC2007

model_name修改为VOC2007

save_dir修改为VOC2007

snapshot_dir修改为VOC2007

job_dir修改为VOC2007

output_result_dir在/data前加/home/bnrc

name_size_file修改为VOC2007

label_map_file修改为VOC2007

num_classes修改为2

gpu可以根据需要选择

6.训练数据:python ./examples/ssd/ssd_pascal.py

原文地址:https://www.cnblogs.com/ymjyqsx/p/7767055.html