Поиск изображений с сумкой визуальных слов

Можно использовать функции Computer Vision Toolbox™ для поиска по изображению, также известные как система поиска изображений (CBIR) на основе содержимого. Системы CBIR используются для извлечения изображений из набора изображений, которые аналогичны изображению запроса. Применение этих типов систем можно найти во многих областях, таких как веб-поиск продукта, наблюдение и визуальная идентификация места. Сначала система ищет набор изображений, чтобы найти таковые, визуально похожие на изображение запроса.

Система поиска использует пакет визуальных слов, набор дескрипторов изображений, чтобы представлять ваш набор данных изображений. Изображения индексируются, чтобы создать отображение визуальных слов. Индекс сопоставляет каждое визуальное слово с их вхождениями в наборе изображений. Сравнение изображения запроса и индекса обеспечивает изображения, наиболее похожие на изображение запроса. При помощи рабочего процесса системы CBIR можно оценить точность для известного набора результатов поиска изображений.

Рабочий процесс извлечения системы

  1. Создайте набор изображений, который представляет функции изображений для извлечения. Использовать imageDatastore для хранения данных изображения. Используйте большое количество изображений, которые представляют различные точки зрения объекта. Большое и разнообразное количество изображений помогает обучать мешок визуальных слов и повышает точность поиска изображений.

  2. Тип функции. indexImages функция создает пакет визуальных слов, используя ускоренные устойчивые функции (SURF). Для других типов функций можно использовать пользовательский экстрактор, а затем использовать bagOfFeatures создать сумку визуальных слов. Смотрите пример создания поискового индекса с использованием пользовательской сумки признаков.

    Можно использовать оригинал imgSet или другую коллекцию изображений для набора обучающих данных. Чтобы использовать другой набор, создайте пакет визуальных слов перед созданием индекса изображения с помощью bagOfFeatures функция. Преимущество использования того же набора изображений заключается в том, что визуальный словарь адаптирован к набору поиска. Недостатком этого подхода является то, что система поиска должна перезапустить визуальный словарь, чтобы использовать на резко отличном наборе изображений. С независимым набором визуальный словарь лучше обрабатывает сложения новых изображений в поисковый индекс.

  3. Индексируйте изображения. indexImages функция создает поисковый индекс, который сопоставляет визуальные слова с их вхождениями в коллекции изображений. Когда вы создаете пакет визуальных слов с помощью независимого или подмножественного набора, включите bag как входной параметр indexImages. Если вы не создаете независимый пакет визуальных слов, то функция создает пакет на основе всего imgSet входный набор. Вы можете добавлять и удалять изображения непосредственно в и из индекса изображения с помощью addImages и removeImages методы.

  4. Поиск по набору данных для аналогичных изображений. Используйте retrieveImages функция для поиска в наборе изображений изображений, которые аналогичны изображению запроса. Используйте NumResults свойство для контроля количества результатов. Например, чтобы вернуть топ-10 похожих изображений, установите ROI свойство для использования меньшей области изображения запроса. Меньшая область полезна для изоляции конкретного объекта в изображении, которое вы хотите искать.

Оценка извлечения изображений

Используйте evaluateImageRetrieval функция для оценки извлечения изображений при помощи изображения запроса с известным набором результатов. Если результаты не те, которые вы ожидаете, можно изменять или увеличивать функции изображения с помощью пакета визуальных слов. Проверьте тип извлечённых функций. Тип функции, используемой для извлечения, зависит от типа изображений в наборе. Например, если вы ищете коллекцию изображений, состоящую из сцен, таких как пляжи, города или шоссе, используйте глобальную функцию изображений. Глобальная функция изображения, такая как цветовая гистограмма, захватывает ключевые элементы всей сцены. Чтобы найти определенные объекты в коллекциях изображений, используйте локальные функции изображений, извлеченные вокруг точек ключа объекта.

Похожие темы