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

使用已经训练好的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)); %添加标题——"种类(第几类),所属该类的概率"

结果展示:
MatConvNet 使用VGG网络模型对图像做分类处理_第1张图片

你可能感兴趣的:(MATLAB,MatConvNet,图像分类)