Imagenet VGG-19图片识别实例展示

资源

1.相关的vgg模型下载网址

http://www.vlfeat.org/matconvnet/models/beta16/imagenet-vgg-verydeep-19.mat

2.ImageNet 1000种分类以及排列

https://github.com/sh1r0/caffe-Android-demo/blob/master/app/src/main/assets/synset_words.txt(如果下载单个txt格式不对的话就整包下载)

 

完整代码如下:

import numpy as np
import scipy.misc
import scipy.io as sio
import tensorflow as  tf
import os##卷积层
def _conv_layer(input, weight, bias):conv = tf.nn.conv2d(input, tf.constant(weight), strides=(1, 1, 1, 1), padding='SAME')return tf.nn.bias_add(conv, bias)##池化层
def _pool_layer(input):return tf.nn.max_pool(input, ksize=(1, 2, 2, 1), strides=(1, 2, 2, 1), padding='SAME')##全链接层
def _fc_layer(input, weights, bias):shape = input.get_shape().as_list()dim = 1for d in shape[1:]:dim *= dx = tf.reshape(input, [-1, dim])fc = tf.nn.bias_add(tf.matmul(x, weights), bias)return fc##softmax输出层
def _softmax_preds(input):preds = tf.nn.softmax(input, name='prediction')return preds##图片处里前减去均值
def _preprocess(image, mean_pixel):return image - mean_pixel##加均值  显示图片
def _unprocess(image, mean_pixel):return image + mean_pixel##读取图片 并压缩
def _get_img(src, img_size=False):img = scipy.misc.imread(src, mode='RGB')if not (len(img.shape) == 3 and img.shape[2] == 3):img = np.dstack((img, img, img))if img_size != False:img = scipy.misc.imresize(img, img_size)return img.astype(np.float32)##获取名列表
def list_files(in_path):files = []for (dirpath, dirnames, filenames) in os.walk(in_path):# print("dirpath=%s, dirnames=%s, filenames=%s"%(dirpath, dirnames, filenames))files.extend(filenames)breakreturn files##获取文件路径列表dir+filename
def _get_files(img_dir):files = list_files(img_dir)return [os.path.join(img_dir, x) for x in files]##获得图片lable列表
def _get_allClassificationName(file_path):f = open(file_path, 'r')lines = f.readlines()f.close()return lines##构建cnn前向传播网络
def net(data, input_image):layers = ('conv1_1', 'relu1_1', 'conv1_2', 'relu1_2', 'pool1','conv2_1', 'relu2_1', 'conv2_2', 'relu2_2', 'pool2','conv3_1', 'relu3_1', 'conv3_2', 'relu3_2','conv3_3', 'relu3_3', 'conv3_4', 'relu3_4', 'pool3','conv4_1', 'relu4_1', 'conv4_2', 'relu4_2','conv4_3', 'relu4_3', 'conv4_4', 'relu4_4', 'pool4','conv5_1', 'relu5_1', 'conv5_2', 'relu5_2','conv5_3', 'relu5_3', 'conv5_4', 'relu5_4', 'pool5','fc6', 'relu6','fc7', 'relu7','fc8', 'softmax')weights = data['layers'][0]net = {}current = input_imagefor i, name in enumerate(layers):kind = name[:4]if kind == 'conv':kernels, bias = weights[i][0][0][0][0]kernels = np.transpose(kernels, (1, 0, 2, 3))bias = bias.reshape(-1)current = _conv_layer(current, kernels, bias)elif kind == 'relu':current = tf.nn.relu(current)elif kind == 'pool':current = _pool_layer(current)elif kind == 'soft':current = _softmax_preds(current)kind2 = name[:2]if kind2 == 'fc':kernels1, bias1 = weights[i][0][0][0][0]kernels1 = kernels1.reshape(-1, kernels1.shape[-1])bias1 = bias1.reshape(-1)current = _fc_layer(current, kernels1, bias1)net[name] = currentassert len(net) == len(layers)return net, mean_pixel, layersif __name__ == '__main__':imagenet_path = 'data/imagenet-vgg-verydeep-19.mat'image_dir = 'images/'data = sio.loadmat(imagenet_path)  ##加载ImageNet mat模型mean = data['normalization'][0][0][0]mean_pixel = np.mean(mean, axis=(0, 1))  ##获取图片像素均值lines = _get_allClassificationName('data/synset_words.txt')  ##加载ImageNet mat标签images = _get_files(image_dir)  ##获取图片路径列表with tf.Session() as sess:for i, imgPath in enumerate(images):image = _get_img(imgPath, (224, 224, 3))  ##加载图片并压缩到标准格式=>224 224image_pre = _preprocess(image, mean_pixel)# image_pre = image_pre.transpose((2, 0, 1))image_pre = np.expand_dims(image_pre, axis=0)image_preTensor = tf.convert_to_tensor(image_pre)image_preTensor = tf.to_float(image_preTensor)# Test pretrained modelnets, mean_pixel, layers = net(data, image_preTensor)preds = nets['softmax']predsSortIndex = np.argsort(-preds[0].eval())print('#####%s#######' % imgPath)for i in range(3):   ##输出前3种分类nIndex = predsSortIndexclassificationName = lines[nIndex[i]] ##分类名称problity = preds[0][nIndex[i]]   ##某一类型概率print('%d.ClassificationName=%s  Problity=%f' % ((i + 1), classificationName, problity.eval()))

 

#####images/cat1.jpg#######
1.ClassificationName=n02123045 tabby, tabby cat
  Problity=0.219027
2.ClassificationName=n02123159 tiger cat
  Problity=0.091527
3.ClassificationName=n02445715 skunk, polecat, wood pussy
  Problity=0.028864

 

#####images/cat2.jpg#######
1.ClassificationName=n02123045 tabby, tabby cat
  Problity=0.337648
2.ClassificationName=n02123159 tiger cat
  Problity=0.171013
3.ClassificationName=n02124075 Egyptian cat
  Problity=0.059857

 

#####images/cat_two.jpg#######
1.ClassificationName=n03887697 paper towel
  Problity=0.178623
2.ClassificationName=n02111889 Samoyed, Samoyede
  Problity=0.119629
3.ClassificationName=n02098286 West Highland white terrier
  Problity=0.060589

 

#####images/dog1.jpg#######
1.ClassificationName=n02096585 Boston bull, Boston terrier
  Problity=0.403131
2.ClassificationName=n02108089 boxer
  Problity=0.184223
3.ClassificationName=n02093256 Staffordshire bullterrier, Staffordshire bull terrier
  Problity=0.101937

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45966.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外滩画报:揭秘全球电子垃圾坟墓

在西方发达国家,有这样一个不为人知的秘密:当你把电子垃圾送给回收商而不是扔进垃圾箱里后,很快,大约 80% 的电子垃圾就会被装上集装箱船,运往尼日利亚、印度、巴基斯坦和中国那些常年被毒烟笼罩的垃圾场。师从人道主义…

《荒野猎人》影评

如果没有小李子和奥斯卡数十年相爱相杀赚足眼球这件事,《荒野猎人》最大的看点应该是导演亚利桑德罗冈萨雷斯伊纳里图和摄影师艾曼努尔卢贝兹基的再度合作。 伊纳里图的电影履历如晴朗夏夜的星空一般漂亮璀璨,执导座《爱情是狗娘》一举拿下2000年东京国际…

印度之行(一) 印度是个很大的国家

(baidu真渣。。。) 首先,我们弄清了,老王吃了一个月咖喱的地方,下面是老王的咖喱味思考: 在印度浦内市(又译浦那市)待了5周,基本是在公司的浦内office做项目,…

HTML标签

HTML标签友情链接 如果在 HTML 中需要文字或者图片垂直居中时&#xff0c;可以使用 align "center"&#xff0c;可以对文字或着图片进行垂直居中&#xff01; 这是一个很好的例子&#xff1a; <!doctype html> <html lang"en"> <head&…

苏州免费景点

文章目录 苏州免费景点姑苏区相门古城墙平江历史街区曲园畅园七里山塘朴园五峰园拥翠山庄天香小筑明轩实样北寺塔定慧寺城隍庙神仙庙苏州博物馆忠王府苏州民俗博物馆中国昆曲博物馆苏州公园桂花公园桐泾公园 吴中区沐春园(原园博会苏州园)瑞园道勤小筑乡畦小筑石湖风景区灵岩山…

又一个程序员被判刑了!运维违规操作被判5年半,IT从业需要懂法律!

点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Sleeping is nice. You forget about everything for a little while. 还是睡觉好&#xff0c;能暂时忘掉一切烦恼。 每日掏心话 人生如梦&#xff0c;岁月匆匆&#x…

又背锅了,一个“锁表” 损失 800万,程序员被判5年半

图片来自 Pexels 出处&#xff1a;云头条&#xff0c;知乎综合整理, 51CTO 链接&#xff1a;https://www.zhihu.com/question/389167387/answer/1170852426 近日&#xff0c;云头条发布的“一个违规操作、损失 800 万、被判五年半&#xff1a;运维夏某某致郑大一附院智慧医院系…

一个“锁表”损失800万,运维被判5年半

“ 近日&#xff0c;云头条发布的“一个违规操作、损失 800 万、被判五年半&#xff1a;运维夏某某致郑大一附院智慧医院系统瘫痪 2 个小时&#xff0c;判破坏计算机信息系统罪”一文引发了技术圈的热议。 图片来自 Pexels 事件经过 夏某某任职北京中科某某科技有限公司&#x…

大运河的一些总结

京杭大运河&#xff0c;是一条承载着历史&#xff0c;流淌着过去和未来的河流&#xff0c;是我非常喜欢的一条人工河&#xff0c;但一直以来不太清楚其具体分段和水流流向&#xff0c;近期通过了解南水北调东线工程&#xff0c;并经过查阅资料终于弄清楚了京杭大运河的各个河段…

科技周刊第六期:接近本质的东西才会长远

这里记录每周值得分享的东西&#xff0c;每周五发布。 封面图 中国西南西藏自治区山南市扎南县的雅鲁藏布江&#xff08;出处&#xff09; 本周话题&#xff1a;接近本质的东西才会长远 我想说三个现象&#xff1a; 1、为什么很多明星能够一直红下去&#xff1f;而有的明星只…

python调用mysql并在前台做数据展示

今天是学习python的第二天。 根据自己的需要&#xff0c;将前段时间的扇形图稍微升华一下&#xff0c;从而可以从mysql数据库中查询数据&#xff0c;并作图形的展示。 以下为图形展示&#xff1a; #导入库--注意本段代码不适用于python2 import pymysql import matplotlib.py…

中国农民丰收节交易会暨“日照有礼”功能性特色产品展示

中国农民丰收节交易会暨“日照有礼”功能性特色产品展示 齐鲁网闪电新闻讯 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 经信研究 国研智库 国情讲坛 万赢信采编&#xff1a;为庆祝农民丰收节&#xff0c;进一步推动日照乡村振兴建设步伐&#xff0c;倡导功能性农业农业…

C++ STL的简单运用——学习记录

本周学了一下STL&#xff0c;学的内容有string&#xff0c;stack&#xff0c;queue&#xff0c;vector&#xff0c;priority queue&#xff0c;map&#xff0c;set与其简单应用&#xff0c; 速度比较快&#xff0c;&#xff0c;还好学之前我预习了一些&#xff0c;&#xff0c;…

ArcGIS水文分析实战教程(12)河网分级流程

ArcGIS水文分析实战教程(12)河网分级流程 本章导读&#xff1a;如果说河流提取是面对没有数据后者数据匮乏的用户&#xff0c;那么河网分级就完全属于为水文研究而生的一个工具。河流具有干流和支流之分&#xff0c;河网分级能够将这些干支关系理顺&#xff0c;并从中找到其水文…

[论文总结] 深度学习在农业领域应用论文笔记2

文章目录 1. A comparative study of fruit detection and counting methods for yield mapping in apple orchards &#xff08;IF3.581, 2019&#xff09;1.1 介绍1.2 实验与结果1.3 定性结果1.4 失败案例1.4.1 检测1.4.2 计数 1.5 结论与未来工作 2.Wheat crop yield predic…

Java 反射慢?它到底慢在哪?

往期热门文章&#xff1a; 1、GitHub 被超火的 ChatGPT 霸榜&#xff01; 2、Java使用 try catch会影响性能&#xff1f; 3、原来count(*)是接口性能差的真凶&#xff01; 4、大公司病了&#xff0c;这也太形象了吧&#xff01;&#xff01;&#xff01; 5、全球最大资源站创始…

运营人必懂 | TikTok运营指南

“TikTok之前确实很火&#xff0c;现在呢&#xff1f;” 最新数据告诉你&#xff1a; Sensor Tower商店情报数据显示&#xff0c;2022年9月抖音及海外版TikTok在全球App Store和Google Play吸金超过3.15亿美元&#xff0c;是去年同期的1.7倍&#xff0c;蝉联全球移动应用&…

抖音号运营爆量爆单技巧

泛知识付费2.0时代&#xff0c;短视频、直播间成为了知识传播的重要阵地&#xff0c;只要有技能干货&#xff0c;不论是行业大咖&#xff0c;还是精通某领域的普通人&#xff0c;都有机会成为大众的“老师”&#xff0c;依靠输出视频、音频等内容课程来知识变现。而抖音生态&am…

抖音直播运营分析必备工具!千川投放提高付费流量转化ROI

千川正式上线后的几个月&#xff0c;由于操作更简单越来越多的商家已经通过千川把新号快速的跑起来了&#xff0c;不少新号已经实现高投产比。但还有很多新手商家&#xff0c;遇到新号起号难&#xff0c;千川投放没产出等问题&#xff0c;最近讨论比较多的主要有&#xff1a; …

抖音运营方针策略

抖音&#xff0c;是一款可以拍短视频的音乐创意短视频社交软件&#xff0c;该软件于2016年9月上线&#xff0c;是一个专注年轻人音乐短视频社区平台。用户可以通过这款软件选择歌曲&#xff0c;拍摄音乐短视频&#xff0c;形成自己的作品。 抖音运营是一款社交类的软件&#xf…