Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

事前学習済みのネットワークを使用したイメージの分類

この例では、事前学習済みの深層畳み込みニューラル ネットワーク GoogLeNet を使用してイメージを分類する方法を説明します。

GoogLeNet は、100 万個を超えるイメージで学習しており、イメージを 1000 個のオブジェクト カテゴリ (キーボード、マグ カップ、鉛筆、多くの動物など) に分類できます。このネットワークは広範囲にわたるイメージについての豊富な特徴表現を学習しています。このネットワークは入力としてイメージを取り、イメージ内のオブジェクトのラベルを各オブジェクト カテゴリの確率と共に出力します。

事前学習済みのネットワークの読み込み

事前学習済みの GoogLeNet ネットワークを読み込みます。イメージ分類用の異なる事前学習済みネットワークを読み込むこともできます。この手順には、Deep Learning Toolbox™ Model for GoogLeNet Network サポート パッケージが必要です。必要なサポート パッケージがインストールされていない場合、ダウンロード用リンクが表示されます。

net = googlenet;

イメージの読み取りとサイズ変更

分類するイメージのサイズは、ネットワークの入力サイズと同じでなければなりません。GoogLeNet の場合、ネットワーク入力サイズはイメージ入力層の InputSize プロパティです。

分類するイメージを読み取り、そのサイズをネットワークの入力サイズに変更します。このサイズ変更では、イメージの縦横比が多少変化します。

I = imread("peppers.png");
inputSize = net.Layers(1).InputSize;
I = imresize(I,inputSize(1:2));

イメージの分類と表示

イメージを分類し、予測ラベルと共に表示します。

label = classify(net,I);
figure
imshow(I)
title(string(label))

Figure contains an axes object. The axes object with title bell pepper contains an object of type image.

上位の予測とそれらに対応する確率も表示する方法を示す、より詳細な例については、GoogLeNet を使用したイメージの分類を参照してください。

深層学習の次のステップとして、この事前学習済みのネットワークを他のタスクに使用できます。転移学習または特徴抽出を使用して、自分のイメージ データで新しい分類問題を解決してみましょう。例については、転移学習を使用した短時間での深層学習の開始事前学習済みのネットワークから抽出された特徴を使用した分類器の学習を参照してください。他の事前学習済みのネットワークを試してみるには、事前学習済みの深層ニューラル ネットワークを参照してください。

参考文献

  1. Szegedy, Christian, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. "Going deeper with convolutions." In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 1-9. 2015.

  2. BVLC GoogLeNet Model. https://github.com/BVLC/caffe/tree/master/models/bvlc_googlenet

参考

| |

関連するトピック