经常使用caffe进行图片分类,用了经常忘了当初怎么配置的,现在记录下。
caffe 主页
http://caffe.berkeleyvision.org
github 项目主页
https://github.com/BVLC/caffe/
caffe官网主页using the C++ API进行图片分类教程
http://caffe.berkeleyvision.org/gathered/examples/cpp_classification.html
本篇博客在基于自己编译好caffe的基础上进行。
在教程中要求
./scripts/download_model_binary.py models/bvlc_reference_caffenet
使用该命令得到原有模型,无奈在Linux系统网速太慢了,大家可以打开caffe主文件夹下找到caffe-master\caffe-master\models\bvlc_reference_caffenet
models文件夹下有好集中模型,大家可以选caffenet打开,里边有一个readme.md文件,大家可以看看里边有
caffemodel_url: http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel
这个标签,其实这个就是该model对应的地址,可以返回去看看 download_model_binary.py ,大家就理解这个文件的意思了,有了地址大家先办法下载就好了,这可以Linux下快快太多了,哈哈。希望大家多读源代码啊。
这个只是得到了训练好的模型就一个文件,要想能做分类看教程还需要
./data/ilsvrc12/get_ilsvrc_aux.sh
这个命令是为了得到imagenet相关的数据的类、类名什么的。可以去ilsvrc12下找到对应文件打开看看是很简单的
wget http://dl.caffe.berkeleyvision.org/caffe_ilsvrc12.tar.gz
有地址了自己想办法下载好了,下载完了放到对应文件夹下解压就好了。
完成上边两部很快的,接着就可以跑分类命令了:
./build/examples/cpp_classification/classification.bin \
models/bvlc_reference_caffenet/deploy.prototxt \
models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel \
data/ilsvrc12/imagenet_mean.binaryproto \
data/ilsvrc12/synset_words.txt \
examples/images/cat.jpg
很快可以得到结果:
---------- Prediction for examples/images/cat.jpg ----------
0.3134 - "n02123045 tabby, tabby cat"
0.2380 - "n02123159 tiger cat"
0.1235 - "n02124075 Egyptian cat"
0.1003 - "n02119022 red fox, Vulpes vulpes"
0.0715 - "n02127052 lynx, catamount"