您的位置:首页 > 理论基础 > 计算机网络

基于 VGG16 深度学习预训练权重的图像分类预测实验

2017-02-19 12:25 281 查看
徐海蛟教学

一直以来,计算科学家在为建立世界上最精确的计算机视觉系统孜孜不倦地努力着,但取得进展的过程却一直如马拉松竞赛般漫长而艰辛。斯坦福大学每年都会举行一个比赛 ILSVR ,邀请谷歌、微软、百度等IT企业使用ImageNet —— 全球最大的图像识别数据库,测试他们的系统运行情况。每年一度的比赛也牵动着各大巨头公司的心弦,过去几年中,系统的图像识别功能大大提高,ImageNet 2012分类数据集中的错误率已降低至4.94%。而此前同样的实验中,人眼辨识的错误率大概为5.1%。在比赛 ILSVR中,比赛数据集包含约120万张训练图像、5万张验证图像和10万张测试图像,分为1000个不同的类别。

VGG-16 是视觉几何组(Visual Geometry Group)开发的卷积神经网络结构,该深度学习神经网络赢得了ILSVR(ImageNet)2014的冠军,时至今日,VGG仍然被认为是一个杰出的视觉模型。今天,我们来做基于 VGG16 深度学习预训练权重的图像分类预测实验,我们无需自己训练神经网络权重参数,使用VGG-16已经训练好的模型与权重参数来预测图片的类别。

我们考虑基于Keras深度学习框架来完成该实验,仅需要寥寥数行代码即可。非常简洁。

我们的环境如下。

Python 3.6.0 |Anaconda 4.3.0 (64-bit)| (default, Dec 23 2016, 12:22:00)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

Theano (0.8.2)

Keras (1.2.0)

事先把 vgg16_weights_th_dim_ordering_th_kernels.h5 权重文件和imagenet_class_index.json类信息文件下载在~/.keras/models/下,否则在线下载很慢。代码所在目录放置一副测试图片,例如:elephant.jpg 大象图片。

python 代码如下。

import time

from keras.applications.imagenet_utils import preprocess_input, decode_predictions

from keras.applications.vgg16 import VGG16

from keras.preprocessing import image

import numpy as np

t0 = time.time()

model = VGG16(weights='imagenet')  # 224×224

img_path = 'elephant.jpg'

img = image.load_img(img_path, target_size=(224, 224))  # 224×224

x = image.img_to_array(img)     # 三维(3, 224, 224)

x = np.expand_dims(x, axis=0)  # 四维(1, 3, 224, 224)

x = preprocess_input(x)  # 预处理

y_pred = model.predict(x) # 预测概率

print('测试图:', decode_predictions(y_pred))  # 输出5个最高概率:(类名, 语义概念, 预测概率)

print("耗时: %.2f seconds【徐海蛟博士】 ..." % (time.time() - t0))

结果如下。

Using Theano backend.

Using gpu device 3: TITAN X (Pascal) (CNMeM is enabled with initial size: 95.0% of memory, cuDNN 5005)

测试图: [[('n03743016', 'megalith', 0.68713152), ('n01871265', 'tusker', 0.063741349), ('n02504458', 'African_elephant', 0.050206956), ('n02437312', 'Arabian_camel', 0.026673665), ('n02130308', 'cheetah', 0.021096079)]]

耗时: 7.98 seconds【徐海蛟博士】 ...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐