用CNN做图像分类,在得到训练好的模型之后,往往会用caffe自带的classification.bin测试单张图片的分类结果,但是这会存在一些问题,下面我用caffe自带的Cifar10来分析。
训练得到Cifar10的网络模型
网上有很多博文,可以参考 学习笔记:Caffe上配置和运行Cifar10的示例
用单张图片测试训练好的模型
- 利用classification.bin识别单张图片
cd caffe #进入caffe目录
./build/examples/cpp_classification/classification.bin \
examples/cifar10/cifar10_quick.prototxt \ #网络结构描述文件
examples/cifar10/cifar10_quick_iter_5000.caffemodel.h5 \ #保存的网络模型
examples/cifar10/mean.binaryproto \ #数据集的均值文件
data/cifar/batches.meta.txt \ #分类标签文件
.../.../*.jpg #测试图像
下载一张图片测试
注意:这里的图片要resize到32*32,例如
from PIL import Image
img = Image.open('dog.jpg')
image = img.resize((32, 32), Image.ANTIALIAS)
image.save('dog.jpg')
测试结果:
0.7372 - "dog"
0.1329 - "cat"
0.0622 - "deer"
0.0573 - "horse&