Caffe+windows7分类测试代码

1.python 接口来显示出分类概率的大小:(useful)deploy.py

# coding:utf-8
import numpy as np
 

MyCaffeRoot = 'C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/'
ImgTestPath = 'C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/myself/classification_test/timg.jpg' #测试图片路径
#LabelsPath = MyCaffeRoot + 'myself/classification_test/labels.txt'

import sys
import caffe
import os

CaffeModelPath = MyCaffeRoot + 'myself/classification_test/_iter_184000.caffemodel'
DeployPath = MyCaffeRoot + 'myself/classification_test/my_deploy.prototxt'
NpyMeanPath = 'C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/myself/classification_test/meannpy.npy'

if os.path.exists(CaffeModelPath) == False:
    print u'找不到模型的路径'
else:
    print u'找到模型的路径......'

caffe.set_mode_gpu();

net = caffe.Net(DeployPath, CaffeModelPath, caffe.TEST)  #创建网络
#负载均衡减去均值
mu = np.load(NpyMeanPath)
#print ("2222")
mu = mu.mean(1).mean(1)     # average over pixels to obtain the mean (BGR) pixel values 
print u'各个颜色通道的均值:', zip('BGR', mu)

transformer = caffe.io.Transformer({'data':net.blobs['data'].data.shape})
transformer.set_transpose('data',(2, 0, 1))  # move image channels to outermost dimension  
transformer.set_mean('data',mu)              # subtract the dataset-mean value in each channel 
transformer.set_raw_scale('data', 255)       # rescale from [0, 1] to [0, 255]
transformer.set_channel_swap('data',(2, 1, 0)) # swap channels from RGB to BGR  

net.blobs['data'].reshape(50, 3, 256, 256)

#执行测试
out = net.forward()

# transform it and copy it into the net
image = caffe.io.load_image(ImgTestPath)
net.blobs['data'].data[...] = transformer.preprocess('data', image)
 
print ("1111")
# perform classification
net.forward()

# obtain the output probabilities
output_prob = net.blobs['prob'].data[0].flatten()
print output_prob

2.中间需要将自己平均的数据转换成mannpy.npy:npy.py

import numpy as np
import caffe
import sys

BinaryMeanPath = 'C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/myself/classification_test/myimg_mean.binaryproto'
NpyMeanOuPath = 'C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/myself/classification_test/meannpy.npy'


print 'Start.............'
blob = caffe.proto.caffe_pb2.BlobProto()
data = open( BinaryMeanPath , 'rb' ).read()
blob.ParseFromString(data)
arr = np.array( caffe.io.blobproto_to_array(blob) )
out = arr[0]
np.save( NpyMeanOuPath , out )
print 'Complete.............'


3.使用PIL将图片归一到一样的尺寸:(useful)save_convert.py



from PIL import Image import os.path import glob def convertjpg(jpgfile,outdir,width=256,height=256): img=Image.open(jpgfile) #new_img=img.thumbnail((width,height)) new_img=img.resize((width,height),Image.BILINEAR) new_img.save(os.path.join(outdir,os.path.basename(jpgfile))) for jpgfile in glob.glob("C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/myself/classification_test/timg.jpg"): convertjpg(jpgfile,"C:/Users/Administrator/Desktop/Caffe_Using/caffe-master/myself/classification_test/")
#convertjpg(jpgfile, outdir)

 

4.需要将_iter_184000.caffemodel文件,测试照片和生成的meannpy.npy还有my_deploy.prototxt文件和myimg_mean.binaryproto放在同一个文件夹。依次运行即可。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值