Ответ 1
Локальные функции
Когда вы работаете с SIFT, вы обычно хотите извлекать локальные функции. Что это значит? У вас есть изображение, и с этого изображения вы найдете точки, из которых вы будете извлекать локальные векторы объектов. Локальный вектор признаков - это просто вектор, состоящий из числовых значений, которые описывают визуальную информацию области изображения, из которой она была извлечена. Хотя количество локальных векторов признаков, которые вы можете извлечь из изображения A, не обязательно должно быть таким же, как число векторов признаков, которые вы можете извлечь из изображения B, числовые компоненты локального вектора признаков (то есть его размерность) всегда то же самое.
Теперь, если вы хотите использовать свои локальные векторы объектов для классификации изображений, у вас есть проблема. В традиционной классификации изображений каждое изображение описывается глобальным вектором признаков, который в контексте машинного обучения можно рассматривать как набор числовых атрибутов. Однако, когда вы извлекаете набор локальных векторных векторов, у вас нет глобального представления каждого изображения, которое требуется для классификации изображений. Техника, которая может быть использована для решения этой проблемы, - это мешок слов, также известный как сумка визуальных слов (BoW).
Сумка визуальных слов
Здесь (очень) упрощенный алгоритм BoW:
-
Извлеките локальные векторные объекты SIFT из вашего набора изображений;
-
Поместите все эти локальные векторы объектов в один набор. На этом этапе вам даже не нужно сохранять, с какого изображения был извлечен каждый локальный вектор функции;
-
Примените алгоритм кластеризации (например, k-означает) по множеству локальных векторов признаков, чтобы найти координаты центра и назначить идентификатор каждому центроиду. Этот набор центроидов будет вашим лексиконом;
-
Глобальный вектор признаков будет гистограммой, которая подсчитывает, сколько раз каждый центроид возникал в каждом изображении. Чтобы вычислить гистограмму, найдите ближайший центроид для каждого локального вектор-функции.
Классификация изображений
Здесь я предполагаю, что ваша проблема заключается в следующем:
У вас есть входной набор помеченных изображений и набор немаркированных изображения, которые вы хотите присвоить метке на основе ее визуального появление. Предположим, ваша проблема заключается в классификации пейзажной фотографии. Вы можете использовать ярлыки изображений, например, "горы", "пляж" или "Лес".
Глобальный вектор признаков, извлеченный из каждого изображения (т.е. его мешок визуальных слов), можно рассматривать как набор числовых атрибутов. Этот набор числовых атрибутов, представляющих визуальные характеристики каждого изображения и соответствующие метки изображений, может использоваться для обучения классификатора. Например, вы можете использовать программное обеспечение для интеллектуального анализа данных, такое как Weka, в котором реализована реализация SVM, известного как SMO, для решения вашей проблемы,
В принципе, вам нужно отформатировать глобальные векторы объектов и соответствующие метки изображений в соответствии с файлом ARFF, который, в основном, CSV глобальных векторов признаков, за которыми следует метка изображения.