好记性不如烂笔头,最近在使用caffe-ssd训练,所以简单写个总结,以防忘记一些过程,有不足之处,还请大家多多指教.
一.数据准备
pwd:/home/XXXXX/caffe-ssd/data/VOCdevkit/mydataset准备好jpg,txt和xml文件,分别放入对应的文件夹里
Annotations文件夹里存放所有的xml文件
ImageSets文件夹里的Main文件夹里分别存放txt文件,包括:test.txt,trainval.txt
test.txt,trainval.txt文件是自己写脚本实现的:sy_generate_txt.py
JPEGImages文件夹里存放所有的jpg文件
二.将数据转化为lmdb格式数据
pwd:/home/XXXXX/caffe-ssd/data/mydataset
在caffe-ssd根目录下执行:./data/mydataset/create_list.sh
create_list.sh文件生成训练数据的list
在caffe-ssd根目录下执行:./data/mydataset/create_data.sh
create_data.sh文件生成lmdb数据
/home/XXXXX/caffe-ssd/data/VOCdevkit/mydataset/lmdb
三.修改相关文件信息
/home/XXXXX/caffe-ssd/data/mydataset/labelmap_voc.prototxt
修改文件里面的类别信息
label:0 是背景,不需要进行任何修改
item {
name: "none_of_the_above"
label: 0
display_name: "background"
}
接着修改,如果我们要训练三个类,eg:apple,pear,banana,那我们需要再加三类信息,label依次为1,2,3,name与display_name
是我们的类名,如下:
item {
name: "apple"
label: 1
display_name: "apple"
}
item {
name: "pear"
label: 2
display_name: "pear"
}
item {
name: "banana"
label: 3
display_name: "banana"
}
修改完后保存即可.
/home/XXXXX/caffe-ssd/examples/ssd/ssd_sy_train.py
修改路径:
pretrain_model = 'models/VGGNet/VOCSY/SSD_300x300_sign_watch2/VGG_VOC_SSD_300x300_iter_24000.caffemodel'
有初始模型时,我们写上我们的初始模型路径
没有初始模型时,我们: pretrain_model = ''(注意:此处没有空格)
修改:num_classes,它的值为我们训练的类别数加1,如果我们要训练3个类,那么:num_classes = 4
四.开始训练
/home/XXXXX/caffe-ssd
运行python examples/ssd/ssd_sy_train.py文件
五.开始测试
修改测试文件里的相关路径
/home/XXXXX/caffe-ssd
python examples/ssd/ssd_sy_test.py
model_weights = 'models/VGGNet/VOCSY/SSD_300x300/VGG_VOC_SSD_300x300_iter_2000.caffemodel' 改为需要的模型所在路径
inputDir = '/home/data/images/s/' 改为测试数据所在的目录
outputDir1 = '/home/data/images/detect_results/' 保存测试结果的路径
在caffe根目录下运行python examples/ssd/ssd_sy_test.py文件