训练好的caffemodel对图像进行批量测试并输出其TP、FN、TRP以及测试平均使用时间。

31 篇文章 1 订阅
23 篇文章 0 订阅
# coding=utf-8
from __future__ import division

import os
import caffe
import numpy as np
#import datetime
import time
import cv2

root = '/home/x306/xn/caffe-master/'
deploy = root + 'examples/facetestquestions/finetuning_deploy.prototxt'
#Different models correspond to different deploy.prototxt
caffe_model = root + 'examples/facetestquestions/model/mnin_plant_pre_iter_30000.caffemodel'
#Replace trim or original model
mean_file = root + 'examples/facetestquestions/plant_mean.npy'
labels_filename = root + 'examples/facetestquestions/synset_words.txt'

dir = root + 'examples/facetestquestions/test/'
for class_name in os.listdir(dir):
#for index,name in enumerate(classes):
    class_path = dir+class_name+"/"
    for filename in os.listdir(class_path):
        img_path = class_path + filename
        image = cv2.imread(img_path)

caffe.set_mode_gpu()

filelist = []
filenames = os.listdir(dir)
for fn in filenames:
    fullfilename = os.path.join(dir, fn)
    filelist.append(fullfilename)

net = caffe.Net(deploy, caffe_model, caffe.TEST)

transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})
transformer.set_transpose('data', (2, 0, 1))
transformer.set_mean('data', np.load(mean_file).mean(1).mean(1))
transformer.set_raw_scale('data', 255)
transformer.set_channel_swap('data', (2, 1, 0))

#f=open(root + 'examples/facetestquestions/plant_test.txt','r')
#lines=f.readlines()
#f.close()


#def time_1():
#    begin = datetime.datetime.now()
#    sum = 0
#    for i in xrange(10000000):
#        sum = sum + i
#    end = datetime.datetime.now()
#    return end - begin

#sts=[]
#for line in lines:
#    for st in line.split():
#        sts.append(st)
#print(sts)
#for st in sts:
#    print(st[0:-1])
j = 0
x = 0
num = 0
i = 0
startall = time.time()
#for i in range(0, len(filelist)):
#    start = time.time()
#    img = filelist[i]
for class_name in os.listdir(dir):
#for index,name in enumerate(classes):
    class_path = dir+class_name+"/"
    for filename in os.listdir(class_path):
        start = time.time()
        img_path = class_path + filename
        print filename

        im = caffe.io.load_image(img_path)
        net.blobs['data'].data[...] = transformer.preprocess('data', im)


        out = net.forward()

        labels = np.loadtxt(labels_filename, str, delimiter='/t')
        prob = net.blobs['prob'].data[0].flatten()


        index1 = prob.argsort()[-1]
        index2 = prob.argsort()[-2]
        index3 = prob.argsort()[-3]
        index4 = prob.argsort()[-4]

        #sts = []
        #for line in lines:
        #    for st in line.split():
        #        sts.append(st)
        #stc = sts[i]
        #i = i + 1
    #num = len(sts)
    #stri = 'noplant'
    #if labels[index1] == stri:
    #    x = x + 1
        if class_name == labels[index1]:
            j = j + 1

        print labels[index1], '--', prob[index1]
        print labels[index2], '--', prob[index2]
        #print labels[index3], '--', prob[index3]
        #print labels[index4], '--', prob[index4]
        end = time.time()
        print str(end - start)
endall = time.time()

number = 60

print 'TP=', j
print 'FN=', number - j
print 'TPR=', j/number
print 'The average processing time is:', (endall - startall)/len(filelist)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值