我自己在开始学习的时候遇到了很多问题,所以就把解决的过程分享出来给有需要的朋友。
这里SSD的安装就不介绍了,直接按照官网的教程做就是了。官网链接如下:
https://github.com/weiliu89/caffe/tree/ssd
安装好SSD以后,跑官网的例子的具体过程如下:
1、下载VOC2007和VOC2012数据集
首先在根目录,也是home目录下面建立data文件夹,我们下载的数据要存储在这个文件夹下面。一定需要这样做哦,不然需要更改各种路径的,挺麻烦的。当然厉害的,想改路径的亲们就不需要了。
(跟目录就是你登录服务器时候所在的路径)
这里我的根目录就是/share/manage/NEU/neu_js/
红色地方就是我所用的caffe和我建立的data
下载的话第一种方式:
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
可以直接在浏览器中粘贴上面的地址进行下载。
也可以采用类似下面的命令进行下载:
wget 地址
也可以在我的百度云进行下载:http://pan.baidu.com/s/1i5iNOTv
解压图像数据集
压缩包上传到data文件夹,直接在服务器上进行解压。
服务器中解压的命令是:(解压顺序不要变哦,这个也是一定的,出错了就删除了,再解压)
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
2、生成list文件和lmdb格式。
如果上述的数据处理得当的话,此处不需要任何麻烦,进入caffe目录下,运行以下命令:
sh ./data/VOC0712/create_list.sh
sh ./data/VOC0712/create_data.sh
这里会报错误:
Traceback (most recent call last):
File “/share/manage/NEU/neu_js/caffe/data/VOC0712/../../scripts/create_annoset.py”, line 7, in
from caffe.proto import caffe_pb2
ImportError: No module named caffe.proto
修改的办法是,找到你caffe路径下面的文件:
“/share/manage/NEU/neu_js/caffe/scripts/create_annoset.py”
打开:
修改它如下:
修改的就是红色框框的里面东西,绿色部分需要你改成自己文件的位置。
3. 训练
下载官方提供的模型。存放到.caffe/models/VGG/文件夹下面
下载地址为:
https://gist.github.com/weiliu89/2ed6e13bfd5b57cf81d6
接着打开我们训练要采用的ssd_pascal.py,进行修改:
Modify the job name if you want.
job_name = “SSD_{}”.format(resize)
The name of the model. Modify it if you want.
model_name = “VGG_VOC0712_{}”.format(job_name)
Directory which stores the model .prototxt file.
save_dir =”models/VGGNet/VOC0712/{}”.format(job_name)
Directory which stores the snapshot of models.
snapshot_dir = “models/VGGNet/VOC0712/{}”.format(job_name)
Directory which stores the job script and log file.
job_dir = “jobs/VGGNet/VOC0712/{}”.format(job_name)
Directory which stores the detection results.
output_result_dir = “{}/data/VOCdevkit/results/VOC2007/{}/Main”.format(os.environ[‘HOME’], job_name)
The pretrained model. We use the Fully convolutional reduced (atrous) VGGNet.
pretrain_model = “models/VGGNet/VGG_ILSVRC_16_layers_fc_reduced.caffemodel”
Stores LabelMapItem.
num_classes = 21 num
test_image = 4952
模型准备好之后,在caffe路径下,执行下面的命令,开始训练:
python ./examples/ssd/ssd_pascal.py
我的路径如下:
然后模型就类似这样,就跑起来了
如果在训练的过程中,损失发散的话,建议调小学习率。
参考:
http://blog.csdn.net/u014696921/article/details/53141791