用已有的caffemodel和python脚本进…

来源:互联网 发布:阿里云备案网站名称 编辑:程序博客网 时间:2024/06/11 12:21
2月13日更新:
在使用python脚本之前,首先需要在根目录makepycaffe,同时确保环境变量PYTHONPATH是指向当前caffe/python这一子目录下的,如果指向其他版本caffe的python目录,可能导致程序无法运行

==========================================================

当已有caffemodel之后,整个学习过程并没有结束,还有最后一个步骤——预测。这个也就是常见的deploy.txt这个文件的用处,打开文件可以看到,没有data_layer,只有一个inputdim,这是因为,这个文件不能单独运行,必须配合python或者c++的脚本来预处理数据,把数据变成第一个conv层能接受的形式,再输入到网络中。

下面就是一个简单的python预测脚本。根据TSP网络,一次输入三张图片,分别用transformer转变后,统一赋给blob里面的'data'数组,就能作为网络的输入。需要注意的是,原TSP网络的dim四1、3、224、224,第一维是1,也就是只能输入一张图片,要输入3张的话,需要手动把第一个dim改成3。

import caffe 
caffe_root='/home/hadoop/whx/tsncaffe/'
data_root='/home/hadoop/whx/dataset/ucf101/ucf_videoframedata_jpeg/'
model_root='/home/hadoop/whx/exp-result/'
import numpy as np  
import scipy
import sys
import os

def rgb_predict()
net = caffe.Net(caffe_root +'mywork/ucf101/tsn_bn_inception_rgb_deploy.prototxt',model_root+'2017-1-7/ucf_rgb_bn_inception_iter_80000.caffemodel',caffe.TEST)

transformer = caffe.io.Transformer({'data':net.blobs['data'].data.shape})#设置transformer
transformer.set_transpose('data',(2,0,1))#本来是224*224*3,改成3*224*224
transformer.set_mean('data', np.load(caffe_root +'python/caffe/imagenet/ilsvrc_2012_mean.npy').mean(1).mean(1))#读取均值文件
transformer.set_raw_scale('data', 255)#本来的像素值是0-1,扩展为0-255
transformer.set_channel_swap('data', (2,1,0))#caffe接收的图片彩色通道应该是BGR这样排列,而原图是RGB格式

image1=caffe.io.load_image(data_root +'PlayingViolin/v_PlayingViolin_g01_c01/frame000001.jpg')
image2=caffe.io.load_image(data_root +'PlayingViolin/v_PlayingViolin_g01_c01/frame000010.jpg')
image3=caffe.io.load_image(data_root +'PlayingViolin/v_PlayingViolin_g01_c01/frame000020.jpg')

net.blobs['data'].reshape(3,3,224,224)
net.blobs['data'].data[...] = [transformer.preprocess('data',image1),transformer.preprocess('data',image2),transformer.preprocess('data', image3)]#transformer设置的是3维(即针对单个图片)而不是4维,因此需要先transformer,再把转换后的3张图拼接在一起。
net.forward()

out = net.blobs['pool_fc'].data[...]
out =out[0][0][0]#得到的data[...]是一个(1,1,1,101)的四维数组,因此取最后一维即可
print out.argmax()+1

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一岁半的宝宝光喝奶粉不吃饭怎么办 两岁半宝宝光喝奶粉不吃饭怎么办 宝宝9个月不好好吃饭奶粉怎么办 2岁半宝宝不愿意自己吃饭怎么办 一周岁多的宝宝不吃饭怎么办 一岁宝宝吃母乳不爱吃饭怎么办 三个月大的宝宝不肯喝奶粉怎么办 自己要上班婆婆带孩子看不惯怎么办 让农村婆婆来给我带孩子怎么办 吃的不好胃难受怎么办吃什么药 特别讨厌婆婆还需要她带小孩怎么办 一岁八个月宝宝不喜欢穿袜子怎么办 未来婆婆给我买衣服我不喜欢怎么办 孩子调皮被同学排斥不想上学怎么办 宝宝出生没人带怎么办自己要上班 孩子上幼儿园一年了还哭怎么办 6年级孩子会认字不会写怎么办 小孩写字没兴趣爱玩玩具怎么办 小学二年级语文记不住生字怎么办 2周半宝宝不肯马桶拉臭臭怎么办 娃晚上不肯睡早上不肯起怎么办 小学一年纪学生做作业粗心怎么办 考完试的题本偷撕了一页怎么办 犯错把父母惹的很生气该怎么办 一年级孩子做题粗心不认真怎么办 作弊被老师发现怎么办抄错了卷子 孩子最近老是被老师罚抄课文怎么办 孩子总是撒谎说作业作完了怎么办 孩子严重挑食怎么办一点菜也不吃 孩子在家很听话在学校很调皮怎么办 没通过交警车主全责不垫付怎么办 开车撞伤人交警说车主全责怎么办 面对喜欢上网又判逆的儿子怎么办 五年级了计算题老是出错怎么办 三年级的孩子老是计算题出错怎么办 写在表上的字写错了怎么办不能涂改 我的孩子做作业很马虎怎么办 幼儿园老师把学生名字写错怎么办 孩子的手写字磨了疙瘩怎么办 我家孩子上一年级算题特慢怎么办 脚注太多导致与正文距离太大怎么办