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

MatConvNet 使用VGG网络模型对图像做分类处理

2017-11-10 20:33 579 查看
使用已经训练好的VGG网络模型直接对图像做分类处理。

示例如下:

%下载一个训练好了的模型
urlwrite('http://www.vlfeat.org/matconvnet/models/imagenet-vgg-f.mat','imagenet-vgg-f.mat'); %下载并存储文件,前一个引号为目标文件地址,后一个引号为本地地址(216MB)。

%将模型加载到工作区
net = load('imagenet-vgg-f.mat');

%读入并预处理一幅图像
im = imread('peppers.png'); %读入matlab自带图像
im_ = imresize(single(im), net.meta.normalization.imageSize(1:2)); %转换图像的数据类型,规范化输入图像的宽高
im_ = im_ - net.meta.normalization.averageImage; %将输入图像减去模型均值

%运行CNN
res = vl_simplenn(net, im_); %返回一个res结构的输出网络层

%展示分类结果
scores = squeeze(gather(res(end).x)); %得到图像属于各个分类的概率
[bestScore, best] = max(scores); %得到最大概率值,及其索引值
figure(1) ; clf ; imagesc(im); %显示图像
title(sprintf('%s (%d), score %.3f',net.meta.classes.description{best}, best, bestScore)); %添加标题——"种类(第几类),所属该类的概率"


结果展示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐