Используйте функции Computer Vision Toolbox™ в классификации категорий изображений путем создания мешка визуальных слов. Процесс генерирует гистограмму визуальных случаев слова, которые представляют изображение. Эти гистограммы используются, чтобы обучить классификатор категории изображений. Шаги ниже описывают, как установить ваши изображения, создать мешок визуальных слов, и затем обучить и применить классификатор категории изображений.
Организуйте и разделите изображения в обучение и протестируйте подмножества. Используйте imageDatastore
функционируйте, чтобы сохранить изображения, чтобы использовать в обучении классификатор изображений. Организация изображений в категории делает обрабатывающие большие наборы изображений намного легче. Можно использовать splitEachLabel
функционируйте, чтобы разделить изображения в обучение и тестовые данные.
Считайте изображения категории и создайте наборы изображений.
setDir = fullfile(toolboxdir('vision'),'visiondata','imageSets'); imds = imageDatastore(setDir,'IncludeSubfolders',true,'LabelSource',... 'foldernames');
Разделите наборы на обучение и протестируйте подмножества изображений. В этом примере 30% изображений разделены для обучения и остатка для тестирования.
[trainingSet,testSet] = splitEachLabel(imds,0.3,'randomize');
Создайте визуальный словарь или набор признаков, путем извлечения дескрипторов функции из представительных изображений каждой категории.
bagOfFeatures
объект задает функции или визуальные слова, при помощи k-средних значений, кластеризирующих (Statistics and Machine Learning Toolbox) алгоритм на дескрипторах функции, извлеченных из trainingSets
. Алгоритм итеративно группирует дескрипторы в k взаимоисключающие кластеры. Получившиеся кластеры компактны и разделяются подобными характеристиками. Каждый кластерный центр представляет функцию или визуальное слово.
Можно извлечь функции на основе анализатора, или можно задать сетку, чтобы извлечь дескрипторы функции. Метод сетки может потерять мелкомодульную информацию о шкале. Поэтому используйте сетку в изображениях, которые не содержат отличные функции, такие как изображение, содержащее пейзаж, как пляж. Используя ускоренные устойчивые функции (или SURF) детектор обеспечивает большую масштабную инвариантность. По умолчанию алгоритм запускает 'grid'
метод.
Этот рабочий процесс алгоритма анализирует изображения в их полноте. Изображения должны иметь соответствующие метки, описывающие класс, который они представляют. Например, набор автомобильных изображений мог быть помечен автомобили. Рабочий процесс не использует пространственную информацию, ни при маркировке конкретных объектов в изображении. Мешок визуального метода слов использует обнаружение без локализации.
trainImageCategoryClassifier
функция возвращает классификатор изображений. Функция обучает классификатор мультикласса с помощью среды выходных кодов с коррекцией ошибок (ECOC) с бинарными классификаторами машины опорных векторов (SVM). trainImageCategoryClassfier
функционируйте использует мешок визуальных слов, возвращенных bagOfFeatures
объект закодировать изображения в наборе изображений в гистограмму визуальных слов. Гистограмма визуальных слов затем используется в качестве положительных и отрицательных выборок, чтобы обучить классификатор.
Используйте bagOfFeatures
encode
метод, чтобы закодировать каждое изображение от набора обучающих данных. Эта функция обнаруживает и извлекает функции из изображения и затем использует аппроксимированный самый близкий соседний алгоритм, чтобы создать гистограмму функции для каждого изображения. Функция затем постепенно увеличивает интервалы гистограммы на основе близости дескриптора к конкретному кластерному центру. Длина гистограммы соответствует количеству визуальных слов что bagOfFeatures
объект создается. Гистограмма становится характеристическим вектором для изображения.
Повторите шаг 1 для каждого изображения в наборе обучающих данных, чтобы создать обучающие данные.
Оцените качество классификатора. Используйте imageCategoryClassifier
evaluate
метод, чтобы протестировать классификатор против набора валидации изображений. Выходная матрица беспорядка представляет анализ предсказания. Совершенная классификация приводит к нормированной матрице, содержащей 1 с на диагонали. Неправильная классификация заканчивается дробные значения.
Используйте imageCategoryClassifier
predict
метод на новом изображении, чтобы определить его категорию.
[1] Csurka, G. C. R. Танцуйте, Л. Фэн, Й. Вилламовский и C. Рев. Визуальная классификация с мешками Keypoints. Семинар по статистическому изучению в компьютерном зрении. ECCV 1 (1–22), 1–2.