Можно использовать функции Computer Vision Toolbox™, чтобы искать изображением, также известным как систему извлечения изображений на основе содержимого (CBIR). Системы CBIR используются, чтобы получить изображения из набора изображений, которые подобны изображению запроса. Применение этих типов систем может быть найдено во многих областях, таких как веб-поиск продукта, наблюдение и визуальная идентификация места. Сначала система ищет набор изображений, чтобы найти тех, которые визуально подобны изображению запроса.
Поисковая система использует мешок визуальных слов, набор дескрипторов изображений, чтобы представлять ваш набор данных изображений. Изображения индексируются, чтобы создать отображение визуальных слов. Индекс сопоставляет каждое визуальное слово с их случаями в наборе изображений. Сравнение между изображением запроса и индексом обеспечивает изображения, самые подобные изображению запроса. При помощи системного рабочего процесса CBIR можно оценить точность для известного набора результатов поиска изображений.
Создайте набор изображений, который представляет функции изображений извлечения. Используйте imageDatastore
, чтобы сохранить данные изображения. Используйте большое количество изображений, которые представляют различные точки зрения объекта. Большое и разнообразное количество изображений помогает обучить мешок визуальных слов и увеличивает точность поиска изображений.
Тип функции. Функция indexImages
создает мешок визуальных слов с помощью ускоренных устойчивых функций (SURF). Для других типов функций можно использовать пользовательский экстрактор, и затем использовать bagOfFeatures
, чтобы создать мешок визуальных слов. Смотрите, что Создать Поисковый Индекс Использует Пользовательский Мешок примера Функций.
Можно использовать исходный imgSet
или различный набор изображений для набора обучающих данных. Чтобы использовать различный набор, создайте мешок визуальных слов прежде, чем создать индекс изображений, с помощью функции bagOfFeatures
. Преимущество использования того же набора изображений состоит в том, что визуальный словарь адаптируется в соответствии с поисковым набором. Недостаток этого подхода - то, что поисковая система должна повторно изучить визуальный словарь, чтобы использовать на решительно различном наборе изображений. С независимым набором визуальный словарь лучше способен обработать сложения новых изображений в поисковый индекс.
Индексируйте изображения. Функция indexImages
создает поисковый индекс, который сопоставляет визуальные слова с их случаями в наборе изображений. Когда вы создаете мешок визуальных слов с помощью независимого набора или набора подмножества, включаете bag
как входной параметр к indexImages
. Если вы не создаете независимый мешок визуальных слов, то функция создает сумку на основе целого набора входа imgSet
. Можно добавить и удалить изображения непосредственно к и от индекса изображений с помощью методов removeImages
и addImages
.
Поисковый набор данных для подобных изображений. Используйте функцию retrieveImages
, чтобы искать набор изображений изображения, которые подобны изображению запроса. Используйте свойство NumResults
управлять количеством результатов. Например, чтобы возвратить лучшие 10 подобных изображений, установите свойство ROI
использовать меньшую область изображения запроса. Меньшая область полезна для изоляции конкретного объекта в изображении, которое вы хотите искать.
Используйте функцию evaluateImageRetrieval
, чтобы оценить извлечение изображений при помощи изображения запроса с известным набором результатов. Если результаты не то, что вы ожидаете, можно изменить или увеличить функции изображений мешком визуальных слов. Исследуйте тип полученных функций. Тип функции, использованной для извлечения, зависит от типа изображений в наборе. Например, если вы ищете набор изображений, составленный из сцен, таких как пляжи, города, или магистрали, используете глобальную функцию изображений. Глобальная функция изображений, такая как цветная гистограмма, получает основные элементы целой сцены. Чтобы найти конкретные объекты в наборах изображений, используйте локальные функции изображений, извлеченные вокруг объекта keypoints вместо этого.