exponenta event banner

предсказать

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

Описание

пример

[labelIdx,score] = predict(categoryClassifier,I) возвращает прогнозируемый индекс метки и оценку для входного изображения.

predict поддерживает параллельные вычисления с использованием нескольких работников MATLAB ®. Включите параллельные вычисления с помощью диалогового окна «Настройки панели инструментов компьютерного зрения». Чтобы открыть настройки Toolbox™ компьютерного зрения, на вкладке Главная в разделе Среда щелкните Настройки. Выберите Инструмент компьютерного зрения (Computer Vision Toolbox).

[labelIdx,score] = predict(categoryClassifier,imds) возвращает прогнозируемый индекс метки и оценку для изображений, указанных в imds.

[labelIdx,score] = predict(___,'Verbose',true) также включает отображение хода выполнения на экране. Установить в значение false чтобы выключить его.

Примеры

свернуть все

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

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.23 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.

Спрогнозировать метку категории для одного из изображений в тестовом наборе.

img = readimage(testSet,1);
[labelIdx, score] = predict(categoryClassifier,img);
categoryClassifier.Labels(labelIdx)
ans = 1x1 cell array
    {'books'}

Входные аргументы

свернуть все

Входное изображение, определенное или как M N 3 truecolor изображениями или как 2-е изображение оттенков серого M на Н.

Классификатор категорий изображений, указанный как imageCategoryClassifier объект.

Изображения, указанные как ImageDatastore объект.

Выходные аргументы

свернуть все

Прогнозируемый индекс метки, возвращаемый как вектор M-by-1 для M изображений или скалярное значение для одного изображения. labelIdx выходное значение соответствует индексу набора изображений, используемого для обучения пакета признаков. Индекс прогнозирования соответствует классу с наименьшей средней двоичной потерей классификатора SVM ECOC.

Оценка прогнозирования, заданная как вектор 1-by-N или матрица M-by-N. N представляет количество классов. M представляет количество изображений в imageSet входной объект, imgSet. Оценка обеспечивает отрицательную среднюю двоичную потерю на класс. Каждый класс представляет собой мультиклассовый классификатор вспомогательных векторных машин (SVM), который использует подход с коррекцией выходных кодов (ECOC).

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

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