第一种方法是测试批量图片,使用caffe.bin即可,首先要做的是把你的jpg图片转换为LMDB的格式,如何转换呢?用/build/tools/convert_image --resize_width 227 --resize_height 227 图片所在的目录 class.txt LMDB文件生成的目录(注意是目录)即可,这里class.txt是我自己生成的,内容是每个图片的路径。

  得到相应的LMDB目录以后,把这个路径填入到prototxt的test layer中的source中,修改一下batch_size的大小,然后执行命令./build/tools/caffe.bin test -model 你的网络prototxt -weights 你的caffemodel -iterations 100 (迭代一百次);

 

  第二种方法是使用classfication,这个是针对一幅图做分类的。这个网上百分之99的都是直接用bvlc这个model来测试的,那里面什么东西都给好了,实在是没有任何的借鉴的意义,最近我在复现一篇论文的工作,它里面调用的是googlenet,用classification的话就需要自己修改一下东西。

  首先是deploy.prototxt文件,我的prototext是训练和测试的,所以你要用来预测图片,需要自己做修改,最简单的方法是吧input的layer都删除了,换成:

layer {
name: "data"
type: "Input"
top: "data"
input_param
{ shape: { dim:1 dim: 3 dim: 227 dim: 227 }}}

     第一个维度是图片数,第二个是通道数,后面的是图片的长宽,然后对于googlenet,他的输出是三个...所以我就强行把前两个输出删除了,这里因为还没有读过相   关的paper,不太清楚为什么要三个输出,这几天有时间准备把paper读一下,搞定这个以后,要确定你的caffe编译了opencv,这样它就不会报错说没有input了。