caffe识别手写数字

    网上很多教程指导建立caffe中的mnist手写数字识别模型(比如http://www.cnblogs.com/aaa-YK/p/5537329.html),运行后可以得到一个分类文件lenet_iter_10000.caffemodel。

    做为一个linux+python小白,尝试使用C++进行手写数字识别。


    classification.bin是caffe进行C++分类的接口。示例用法如下:


./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  //待识别的图片


(1)网络参数deploy.prototxt 文件时按照教程http://www.cnblogs.com/carle-09/p/5779555.html生成的。


(2)模型是lenet_iter_10000.caffemodel文件。


(3)图像均值文件是使用compute_image_mean.bin生成的。具体命令如下:


Projects/caffe/distribute/bin/compute_image_mean.bin Projects/caffe/examples/mnist/mnist_train_lmdb  Projects/caffe/examples/images/mean.binaryprot


(4)分类名称的synset_words.txt内容为0-9的十个数字,一个数字一行。


(5)最后一行是待识别的图像地址。


回车之后可以得到:
cnn@cnn-X9DAi:~$ Projects/caffe/distribute/bin/classification.bin Projects/caffe/examples/images/deploy.prototxt  Projects/caffe/examples/images/lenet_iter_10000.caffemodel Projects/caffe/examples/images/mean.binaryproto Projects/caffe/examples/images/synset_words.txt Projects/caffe/examples/images/figure/4/12.bmp
---------- Prediction for Projects/caffe/examples/images/figure/4/12.bmp ----------
1.0000 - "4"
0.0000 - "5"
0.0000 - "3"
0.0000 - "6"
0.0000 - "1"


识别结束!

识别图片



ps.开始用的识别图片是白底黑字的,识别结果总是不对。后来下载了mnist的图片库,发现图片库里的图片都是黑底白字的。改了图片后识别结果就正确了。


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页