imageCategoryClassifier

Предскажите категорию изображений

Описание

imageCategoryClassifier объект содержит линейный классификатор машины опорных векторов (SVM), обученный распознать категорию изображений.

У вас должна быть лицензия Statistics and Machine Learning Toolbox™, чтобы использовать этот классификатор. Этот классификатор поддерживает параллельные вычисления с помощью нескольких рабочих MATLAB®. Включите параллельные вычисления с помощью диалогового окна Настроек Computer Vision Toolbox. Чтобы открыть настройки Computer Vision Toolbox™, на вкладке Home, в разделе Environment, нажимают Preferences. Выберите Computer Vision System Toolbox.

Создание

Используйте trainImageCategoryClassifier функция, чтобы создать imageCategoryClassifier объект.

bag = bagOfFeatures(trainingSet);
categoryClassifier = trainImageCategoryClassifier(trainingSet,bag);

Свойства

развернуть все

Подписи категорий, заданные как массив ячеек.

Количество обученных категорий, сохраненных как целочисленное значение.

Функции объекта

evaluateОцените классификатор изображений на наборе наборов изображений
predictПредскажите категорию изображений

Примеры

свернуть все

Загрузите две категории изображений.

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

Разделите набор данных в обучение и тестовые данные. Выберите 30% изображений от каждого набора для обучающих данных и остатка 70% для тестовых данных.

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

Создайте мешок визуальных слов.

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 21/100 iterations (~0.15 seconds/iteration)...converged in 21 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'}

Ссылки

[1] Csurka, G. C. R. Танцуйте, Л. Фэн, Й. Вилламовский и C. Дробите визуальную классификацию с мешком Keypoints, семинара по статистическому изучению в компьютерном зрении, ECCV 1 (1-22), 1-2.

Расширенные возможности

Введенный в R2014b