主要内容

使用googlenet对图像进行分类

此示例显示如何使用佩带的深卷积神经网络Googlenet对图像进行分类。

Googlenet已培训超过一百万只图像,可以将图像分类为1000个对象类别(例如键盘,咖啡杯,铅笔和许多动物)。该网络已经学习了丰富的特征表示,以获得各种图像。网络将图像作为输入拍摄,然后将图像中的对象的标签与每个对象类别的概率一起输出。

负载净化网络

加载预制googlenet网络。此步骤需要深度学习工具箱™模型对于Googlenet网络金宝app支持包。如果您没有安装所需的支持包,则软件提供了下载链接。金宝app

您还可以选择加载不同的预制网络以进行图像分类。要尝试不同的净修网络,请在MATLAB®中打开此示例,然后选择不同的网络。例如,你可以尝试挤压,一个甚至更快的网络googlenet.。您可以使用其他佩带的网络运行此示例。有关所有可用网络的列表,请参阅加载净化网络

净=googlenet;

您要分类的图像必须具有与网络的输入大小相同的大小。对于googlenet,第一个元素层数网络的属性是图像输入层。网络输入大小是输入图像输入层的属性。

InputSize = Net.Layers(1).InputSize
InputSize =1×3.224 224 3.

最终的元素层数属性是分类输出层。这Classnames.此图层的属性包含网络学习的类的名称。查看总计1000的10个随机类名称。

ClassNames = Net.Layers(END).Classnames;numclasses = numel(classnames);DISP(CLASSNMES(RANDPERM(NUMCLASES,10)))
'Papillon''eggng''Jarkfruit''Castle''''睡袋''Redshank''乐队援助''Wok''''''''''''''''''''''''''')

读取并调整图像大小

读取并显示要对的图像进行分类。

我= imread('peppers.png');图imshow(i)

显示图像的大小。图像是384-×512像素,具有三个颜色通道(RGB)。

尺寸(i)
ans =.1×3.384 512 3.

通过使用将图像的大小调整为网络的输入大小imresize.。该调整大小略微改变图像的纵横比。

i = imresize(i,输入(1:2));图imshow(i)

根据您的应用程序,您可能希望以不同的方式调整图像大小。例如,您可以通过使用裁剪图像的左上角i(1:InputSize(1),1:InputSize(2),:)。如果您有图像处理工具箱™,那么您可以使用im功能。

分类图像

分类图像并计算类概率使用分类。网络将图像正确分类为甜椒。即使图像包含多个对象,也会训练用于分类的网络以输出每个输入图像的单个标签。

[标签,分数] =分类(网络,i);标签
标签=分类灯笼椒

使用预测标签和具有该标签的图像的预测概率显示图像。

图imshow(i)标题(字符串(标签)+“,”+ num2str(100 *分数(ClassNames == Label),3)+“%”);

展示最重要的预测

显示前五个预测标签及其相关概率作为直方图。由于网络将图像分类为如此多的对象类别,并且许多类别相似,因此很常见,以考虑评估网络时的前五个精度。网络将图像分类为具有高概率的甜椒。

[〜,IDX] =排序(分数,“下降”);IDX = IDX(5:-1:1);ClassNamestop = Net.Layers(END).Classnames(IDX);scorestop =得分(IDX);图Barh(Scorestop)XLIM([0 1])标题('前5名预测')Xlabel('可能性')yticklabels(ClassNamestop)

参考

[1] Szegedy,Christian,Wei Liu,Yangqing Jia,Pierre Sermanet,斯科特芦苇,龙卷风犬,Dumitru Erhan,Vincent Vanhoucke和Andrew Rabinovich。“随着卷积更深。”在计算机愿景和模式识别的IEEE会议的诉讼程序,pp。1-9。2015年。

也可以看看

||||

相关话题