原材料:
1)训练好的caffemodel
2) 定义网络结构的deploy.prototxt配置文件
3) 训练时使用的mean文件,在/cafferoot/python/classify.py的demo中,要求使用的是.npy格式的meanfile,如果我们手上有的是mean.binaryproto文件, 则需要自己完成转换:可以使用以下convert_mean.py来实现
#!/usr/bin/python
import numpy as np
import sys
sys.path.append('/home/caffe/python') #caffe_root is your caffe root dir need change
import caffe
blob = caffe.proto.caffe_pb2.BlobProto()
data = open( 'places205CNN_mean.binaryproto', 'rb' ).read()
blob.ParseFromString(data)
arr = np.array( caffe.io.blobproto_to_array(blob) )
out = arr[0]
np.save( 'mean' , out )
places205CNN_mean.binaryproto是我存放在当前目录下的mean文件,运行上面的python程序将它转换成存在当前目录下的mean.npy文件。
4) 图片文件list,其中存有图片绝对路径和图片的标签。
具体过程:
/cafferoot/python/classify.py是一个可以实现特征提取/分类的demo,调用的是/cafferoot/python/caffe/classifier.py文件里实现的classifer和predict函数。
classify.py可以接受一系列命令行参数,可以接受的数据源格式非常灵活,包括:图片绝对路径/保存图片的文件夹路径/保存图片的.npy。文件内容如下:
#!/usr/bin/env python
"""
classify.py is an out-of-the-box image classifer callable from the command line.
By defaul