Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

trainImageCategoryClassifier

イメージ カテゴリ分類器の学習

説明

classifier = trainImageCategoryClassifier(imds,bag) は、イメージ カテゴリ分類器を返します。分類器には、カテゴリの数と入力イメージ imds のカテゴリ ラベルが含まれています。関数は、bagOfFeatures オブジェクトの入力 bag を使用して、サポート ベクター マシン (SVM) マルチクラス分類器を学習させます。

この関数を使用するには、Statistics and Machine Learning Toolbox™ のライセンスを所有していなければなりません。

この関数は、複数の MATLAB® ワーカーを使用する並列計算をサポートします。Computer Vision Toolbox の基本設定 ダイアログを使用して並列計算を有効にします。Computer Vision Toolbox™ の基本設定を開くには、[ホーム] タブの [環境] セクションで [基本設定] をクリックします。Computer Vision Toolbox を選択します。

classifier = trainImageCategoryClassifier(imds,bag,Name,Value) は、1 つ以上の Name,Value 引数ペアによって指定されたオプションの入力プロパティを使用して classifier オブジェクトを返します。

すべて折りたたむ

2 つのイメージ カテゴリを読み込みます。

setDir  = fullfile(toolboxdir('vision'),'visiondata','imageSets');
imds = imageDatastore(setDir,'IncludeSubfolders',true,'LabelSource',...
    'foldernames');

データセットを学習データとテスト データに分割します。各セットのイメージの 30% を学習データとして、残りの 70% をテスト データとして選択します。

[trainingSet,testSet] = splitEachLabel(imds,0.3,'randomize');

bag of visual words を作成します。

bag = bagOfFeatures(trainingSet);
Creating Bag-Of-Features.
-------------------------
* Image category 1: books
* Image category 2: cups
* Selecting feature point locations using the Grid method.
* Extracting SURF features from the selected feature point locations.
** The GridStep is [8 8] and the BlockWidth is [32 64 96 128].

* Extracting features from 4 images...done. Extracted 76800 features.

* Keeping 80 percent of the strongest features from each category.

* Using K-Means clustering to create a 500 word visual vocabulary.
* Number of features          : 61440
* Number of clusters (K)      : 500

* Initializing cluster centers...100.00%.
* Clustering...completed 25/100 iterations (~0.58 seconds/iteration)...converged in 25 iterations.

* Finished creating Bag-Of-Features

学習セットを使用して分類器の学習を行います。

categoryClassifier = trainImageCategoryClassifier(trainingSet,bag);
Training an image category classifier for 2 categories.
--------------------------------------------------------
* Category 1: books
* Category 2: cups

* Encoding features for 4 images...done.

* Finished training the category classifier. Use evaluate to test the classifier on a test set.

テスト イメージを使用して分類器を評価します。混同行列を表示します。

confMatrix = evaluate(categoryClassifier,testSet)
Evaluating image category classifier for 2 categories.
-------------------------------------------------------

* Category 1: books
* Category 2: cups

* Evaluating 8 images...done.

* Finished evaluating all the test sets.

* The confusion matrix for this test set is:


             PREDICTED
KNOWN    | books   cups   
--------------------------
books    | 0.75    0.25   
cups     | 0.25    0.75   

* Average Accuracy is 0.75.
confMatrix = 2×2

    0.7500    0.2500
    0.2500    0.7500

分類の平均精度を求めます。

mean(diag(confMatrix))
ans = 0.7500

新たに学習を行った分類器を適用して新しいイメージを分類します。

img = imread(fullfile(setDir,'cups','bigMug.jpg'));
[labelIdx, score] = predict(categoryClassifier,img);

分類ラベルを表示します。

categoryClassifier.Labels(labelIdx)
ans = 1x1 cell array
    {'cups'}

入力引数

すべて折りたたむ

imageDatastore オブジェクトとして指定されたイメージ。

bag of features。bagOfFeatures オブジェクトとして指定します。このオブジェクトには、各イメージ カテゴリの典型的なイメージから抽出された特徴記述子のビジュアル ボキャブラリが含まれます。

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: 'Verbose',true は、'Verbose' を logical true に設定します。

画面への進行状況表示の有効化。'Verbose' と logical true または false で構成されるコンマ区切りのペアとして指定します。

分類器オプション。'LearnerOptions' と、関数 templateSVM (Statistics and Machine Learning Toolbox) によって返される学習器オプションの出力で構成されるコンマ区切りのペアとして指定します。

例2 例

templateSVM (Statistics and Machine Learning Toolbox) の正則化パラメーターを調整し、カスタム カーネル関数を設定するには、次の構文を使用します。

opts = templateSVM('BoxConstraint',1.1,'KernelFunction','gaussian');
classifier = trainImageCategoryClassifier(imds,bag,'LearnerOptions',opts);

出力引数

すべて折りたたむ

イメージ カテゴリ分類器。imageCategoryClassifier オブジェクトとして返されます。この関数は、誤り訂正出力符号 (ECOC) フレームワークを使用して、サポート ベクター マシン (SVM) マルチクラス分類器の学習を行います。

参照

[1] Csurka, G., C. R. Dance, L. Fan, J. Willamowski, and C. Bray Visual Categorization with Bag of Keypoints, Workshop on Statistical Learning in Computer Vision, ECCV 1 (1-22), 1-2.

拡張機能

R2014b で導入