exponenta event banner

imageCategoryClassifier

Прогнозировать категорию изображения

Описание

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

Для использования этого классификатора необходимо иметь лицензию Toolbox™ статистики и машинного обучения. Этот классификатор поддерживает параллельные вычисления с использованием нескольких работников MATLAB ®. Включите параллельные вычисления с помощью диалогового окна «Настройки панели инструментов компьютерного зрения». Чтобы открыть настройки 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 25/100 iterations (~0.22 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'}

Ссылки

[1] Csurka, G., C. R. Dance, L. Fan, J. Willamowski и C. Bray Визуальная категоризация с сумкой ключевых точек, Семинар по статистическому обучению компьютерному зрению, ECCV 1 (1-22), 1-2.

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

Представлен в R2014b