主要内容

分类图像使用GoogLeNet

这个例子展示了如何使用的分类图像卷积神经网络GoogLeNet pretrained深。

GoogLeNet已经在超过一百万个图像和训练可以分类图像到1000年对象类别(如键盘、咖啡杯、铅笔,和许多动物)。网络已经学会丰富广泛的图像特征表示。网络需要一个图像作为输入,然后输出图像中对象的标签一起为每个对象的类别的概率。

负载Pretrained网络

加载pretrained GoogLeNet网络。这一步需要深度学习工具箱™模型GoogLeNet网络金宝app支持包。如果你没有安装所需的支持包,然后软件提供一个下载链接。金宝app

你也可以选择加载不同的pretrained网络图像分类。尝试不同的pretrained网络,打开这个例子在MATLAB®和选择一个不同的网络。例如,您可以试一试squeezenet一个网络,甚至超过googlenet。你可以运行这个例子与其他pretrained网络。所有可用网络列表,请参阅负载Pretrained网络

网=googlenet;

你要分类的图像必须有相同的大小作为输入网络的大小。GoogLeNet的第一个元素网络的属性是图像输入层。网络输入大小InputSize图像的属性输入层。

.InputSize inputSize = net.Layers (1)
inputSize =1×3224 224 3

最后的元素属性分类的输出层。的一会财产这一层包含类的名称由网络学习。10个随机类名的共有1000人。

一会= net.Layers .ClassNames(结束);numClasses =元素个数(类名);disp(类名(randperm (numClasses 10)))
“魔”“蛋”“菠萝蜜”“城堡”睡袋的“红脚鹬”“创可贴”“锅”的“安全带”“橙色”

阅读和调整图像

读取和显示你想要的图像分类。

我= imread (“peppers.png”);图imshow(我)

显示图像的大小。384————512像素图像和有三个颜色通道(RGB)。

大小(我)
ans =1×3384 512 3

调整图像的输入大小网络使用imresize。这稍微调整图像的纵横比变化。

我= imresize(我inputSize (1:2));图imshow(我)

根据您的应用程序中,您可能想要调整图像以不同的方式。例如,您可以作物图像的左上角用我(1:inputSize (1), 1: inputSize (2):)。如果你有图像处理工具箱™,那么您可以使用imcrop函数。

图像的分类

图像分类和计算概率使用的类分类。网络的正确分类甜椒的形象。网络分类训练输出一个标签为每个输入图像,即使图像包含多个对象。

(标签,分数)=分类(净,我);标签
标签=分类甜椒

显示图像的标签和图像的预测概率预测该标签。

图imshow(我)标题(string(标签)+”、“= = + num2str(100 *分数(类名标签),3)+“%”);

显示前预测

显示五大标签及其相关预测概率直方图。因为网络将图像分为很多对象类别,和许多类别相似,通常考虑五大精度在评估网络。网络分类甜椒和高概率的形象。

[~,idx] =排序(分数,“下”);idx = idx (5: 1:1);classNamesTop = net.Layers(结束).ClassNames (idx);scoresTop =分数(idx);图barh (scoresTop) xlim([0 1])标题(“5大预言”)包含(“概率”)yticklabels (classNamesTop)

引用

[1]Szegedy,基督徒,魏Liu Yangqing贾,皮埃尔•Sermanet斯科特•里德Dragomir Anguelov, Dumitru Erhan,文森特Vanhoucke和安德鲁·拉比诺维奇。“更深的曲线玲珑。”In《IEEE计算机视觉与模式识别会议1 - 9页。2015年。

另请参阅

||||

相关的话题