这个例子展示了如何使用的分类图像卷积神经网络GoogLeNet pretrained深。
GoogLeNet已经在超过一百万个图像和训练可以分类图像到1000年对象类别(如键盘、咖啡杯、铅笔,和许多动物)。网络已经学会丰富广泛的图像特征表示。网络需要一个图像作为输入,然后输出图像中对象的标签一起为每个对象的类别的概率。
加载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年。
[2]BVLC GoogLeNet模型。https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet
DAGNetwork
|googlenet
|分类
|预测
|squeezenet