代码先锋网 代码片段及技术文章聚合

caffe中使用训练好的模型进行图像识别

# -*- coding: utf-8 -*-
"""
Created on Fri Apr  6 09:33:13 2018

@author: Daniel
"""

import caffe 
import numpy as np
import PIL
from PIL import Image
import matplotlib.pyplot as plt
import os
import sys

#定义相关文件路径
caffe_root = 'F:/GitHub/caffe_sub/caffe/'
deploy_file = caffe_root + 'models/bvlc_googlenet/deploy.prototxt'
model_file = caffe_root + 'models/bvlc_googlenet/bvlc_googlenet.caffemodel'

#设置训练模式
caffe.set_mode_cpu()

#定义网络模型
net = caffe.Classifier(deploy_file,
                model_file,
                mean=np.load(caffe_root + 'python/caffe/imagenet/ilsvrc_2012_mean.npy').mean(1).mean(1),
                channel_swap=(2,1,0),
                raw_scale=255,#python中的像素取值范围是0-1,而caffe中图片是0-255,故需要一个转换
                image_dims=(224,224))

#分类标签文件
imagenet_labels_filename = caffe_root + 'models/bvlc_googlenet/synset_words.txt'
labels = np.loadtxt(imagenet_labels_filename, str, delimiter = '\t')#载入标签,类型为string,分隔符为制表符

##对目标中的图像进行遍历并分类
for root, dir, files in os.walk(caffe_root + 'models/bvlc_googlenet/image/'):
    for file in files:
        #加载要分类的图片
        image_file = os.path.join(root,file)#组合root和file,使之成为root/file
        input_image = caffe.io.load_image(image_file)#加载图片

        #打印图片路径及名称
        image_path = os.path.join(root, file)
        print(image_path)

        #显示图片
        img = Image.open(image_path)#将图片转换为PIL图像
        plt.imshow(img)#将PIL图像传入,返回AxesImage(坐标图像)
        plt.axis('off')#关闭坐标
        plt.show()#显示图像

        #预测分类
        prediction = net.predict([input_image])
        #输出概率前五的预测结果
        top_five = prediction[0].argsort()[-5:][::-1]#[::-1]是对当前序列取到数操作
        for i in top_five:
            #获取分类名称
            class_string = labels[i]
            #获取置信度
            score = prediction[0][i]

            print('%s (score = %.5s)' % (class_string, score))
版权声明:本文为qq_28915885原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_28915885/article/details/79865241

智能推荐

使用训练好的caffe模型分类图片(python版)

 英文官方文档:http://nbviewer.jupyter.org/github/BVLC/caffe/blob/master/examples/00-classification.ipynb 导入python caffe包 加载网络,创建输入处理 使用python  caffe.io.loadImage接口读取图片,返回的是[0-1]返回的np.float32数组 pyt...

Windows下使用训练好的Caffe模型

使用训练好的Caffe模型可以直接通过调用Caffe的Classifier文件,具体代码如下: 注意,如果训练网络时减去了均值文件,那么用图片进行demo也需要减均值文件,且必须是.npy文件,而不是训练时所用.binaryproto的二进制文件。 至于.binaryproto转.npy可以参考以下代码(convert_mean.py): 将该脚本放到和二进制均值文件相同路径下,通过cmd执行以下...

Kaldi中如何使用已经训练好的模型进行语音识别ASR呢?

我们如何运用已经训练好的模型进行语音识别呢?这才是我们研究的目的啊,是不? 很好,细心的你一定会发现kaldi源码src目录中有online*相关的模块,这就是我们今天的主角啦!!! Kaldi中有两个版本的online、online2分别是第一代、第二代,现在已经不维护online,转到online2了,但作为我们入门的,我建议还是选择online,由简入深嘛!!! 默认kaldi是不会编译on...

使用训练好的模型对遥感大图像进行忽略边缘(划窗)预测

大佬原文链接 大佬代码可以直接用,只需简单修改即可 依次为:要预测的遥感图像、训练好的模型、预测结果大图 预测后大图像可能全黑色,原因是像素灰度值为0或1,因此需要进行一下后处理。 下面实现代码比较老套,也可以对大图拼接代码进行修改。...

图像识别--Java中使用openCV提取Hog特征通过SVM训练实现图像识别

图像识别大致可以分为这么几步: 1.对训练图片进行预处理 2.对预处理的图片进行Hog特征提取 3.使用SVM分类器对特征进行分类形成模型 4.根据模型对测试图片进行预测   以下都是通过openCV实现(若直接使用openCV提取Hog特征可直接跳过预处理阶段直接看Hog特征提取阶段): 预处理阶段: 1.图像的灰度化处理 2.灰度化的图片进行gamma校正 3.计算图像梯度 Hog特...

猜你喜欢

使用tensorflow的keras和estimator进行图像识别

任务 数据集来自https://blog.csdn.net/hahajinbu/article/details/72877998 有68个人,每个人有若干张照片。编写CNN模型来分辨某张照片是哪一个人 模型 使用sqeeze net模型,来自论文官方github的keras实现 https://github.com/DT42/squeezenet_demo 生成数据 注意cnn要3维图像,nump...

在Ubuntu上利用caffe进行食物图像识别

如何搭建caffe环境已经在之前的文章中介绍了,有需要的可以自行回顾。 一、准备数据集 首先是准备好要用到的图片数据集,目前随机选用了五类水果:苹果、草莓、香蕉、火龙果、猕猴桃来作为图像识别的测试案例(事实证明,这个看似随机的选择在后续暴露出了caffe使用会遇到的问题,有点巧了)。图片是我从百度图片中随机挑选下载的,总共250张,其中每类50张,分割为10张测试集和40张训练集。 选择完图片集后...