invertedImageIndex class

Поисковый индекс, который сопоставляет визуальные слова с изображениями

Синтаксис

imageIndex = invertedImageIndex(bag)
imageIndex = invertedImageIndex(bag,'SaveFeatureLocations',tf)
imageIndex = invertedImageIndex(___,Name,Value)

Конструкция

imageIndex = invertedImageIndex(bag) возвращает поисковый индексный объект, который можно использовать с retrieveImages функционируйте, чтобы искать изображение. Объектно-ориентированная память визуальное отображение слова к изображению на основе входа bag, bagOfFeatures объект.

imageIndex = invertedImageIndex(bag,'SaveFeatureLocations',tf) опционально задает, сохранить ли данные о местоположении функции в imageIndex.

imageIndex = invertedImageIndex(___,Name,Value) дополнительные опции использования заданы одним или несколькими Name,Value парные аргументы, с помощью любого из предыдущих синтаксисов.

Входные параметры

развернуть все

Мешок визуальных слов, заданных как bagOfFeatures объект.

Сохраните местоположения функции, заданные как логический скаляр. Когда вы устанавливаете это свойство на true, местоположения функции изображений сохранены в imageIndex выведите объект. Используйте данные о местоположении, чтобы проверить пространственные или геометрические результаты поиска изображений. Если вы не требуете местоположений функции, установите это свойство на false уменьшать потребление памяти.

Свойства

развернуть все

Индексируемые расположения изображения, сохраненные как массив ячеек.

Визуальные слова, сохраненные как 1 M вектором visualWords объекты для каждого индексируемого изображения. visualWords объект содержит WordIndexместоположение , VocabularySize, и Count свойства для каждого индексируемого изображения.

Вхождение Word, заданное как M-by-1 вектор. Вектор содержит процент изображений, в которых происходит каждое визуальное слово. Эти проценты походят на частоту документа в текстовых приложениях извлечения. WordFrequency свойство содержит процент изображений, в которых происходит каждое визуальное слово. Часто полезно подавить наиболее распространенные слова, чтобы уменьшать поисковый набор при поиске самых соответствующих изображений. Также полезный, должен подавить редкие слова, когда они, вероятно, происходят из выбросов в наборе изображений.

Можно управлять, насколько верхний и нижний конец визуального распределения слова влияет на результаты поиска путем настройки WordFrequencyRange свойство. Хороший способ установить это значение состоит в том, чтобы построить отсортированный WordFrequency значения.

Мешок визуальных слов, заданных как bagOfFeatures объект используется в индексе.

Процент подобных слов требуется между запросом и потенциальным соответствием изображений, заданным как числовое значение в области значений [0, 1]. Чтобы получить больше результатов поиска, понизьте этот порог.

Диапазон частотности слова, указанный как двухэлементный вектор более низкого и верхнего процента, [lower upper]. Используйте область значений частотности слова, чтобы проигнорировать общие слова (верхняя область значений процента) или редкие слова (более низкая область значений процента) в индексе изображений. Эти слова часто происходят как повторенные шаблоны или выбросы и могут уменьшать поисковую точность. Можно управлять, насколько верхний и нижний конец визуального распределения слова влияет на результаты поиска путем настройки WordFrequencyRange свойство. Хороший способ установить это значение состоит в том, чтобы построить отсортированный WordFrequency значения.

Методы

addImagesДобавьте новые изображения, чтобы отобразить индекс
removeImagesУдалите изображения из индекса изображений

Примеры

свернуть все

Задайте набор изображений, чтобы искать.

imageFiles = ...
  {'elephant.jpg', 'cameraman.tif', ...
   'peppers.png',  'saturn.png',...
   'pears.png',    'stapleRemover.jpg', ...
   'football.jpg', 'mandi.tif',...
   'kids.tif',     'liftingbody.png', ...
   'office_5.jpg', 'gantrycrane.png',...
   'moon.tif',     'circuit.tif', ...
   'tape.png',     'coins.png'};

imgSet = imageSet(imageFiles);

Изучите визуальный словарь.

bag = bagOfFeatures(imgSet,'PointSelection','Detector',...
  'VocabularySize',1000);
Creating Bag-Of-Features.
-------------------------
* Image category 1: <undefined>
* Selecting feature point locations using the Detector method.
* Extracting SURF features from the selected feature point locations.
** detectSURFFeatures is used to detect key points for feature extraction.

* Extracting features from 16 images in image set 1...done. Extracted 3680 features.

* Keeping 80 percent of the strongest features from each category.

* Balancing the number of features across all image categories to improve clustering.
** Image category 1 has the least number of strongest features: 2944.
** Using the strongest 2944 features from each of the other image categories.

* Using K-Means clustering to create a 1000 word visual vocabulary.
* Number of features          : 2944
* Number of clusters (K)      : 1000

* Initializing cluster centers...100.00%.
* Clustering...completed 10/100 iterations (~0.05 seconds/iteration)...converged in 10 iterations.

* Finished creating Bag-Of-Features

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

imageIndex = invertedImageIndex(bag);

addImages(imageIndex, imgSet);
Encoding images using Bag-Of-Features.
--------------------------------------
* Image category 1: <undefined>
* Encoding 16 images from image set 1...done.

* Finished encoding images.

Задайте изображение запроса и ROI, чтобы искать целевой объект, слона.

queryImage = imread('clutteredDesk.jpg');
queryROI = [130 175 330 365]; 

figure
imshow(queryImage)
rectangle('Position',queryROI,'EdgeColor','yellow')

Можно также использовать imrect функция, чтобы выбрать ROI в интерактивном режиме. Например, queryROI = getPosition(imrect).

Найдите изображения, которые содержат объект.

imageIDs = retrieveImages(queryImage,imageIndex,'ROI',queryROI)
imageIDs = 15×1

     1
    11
     2
     6
     3
    12
     8
    14
     9
    13
      ⋮

bestMatch = imageIDs(1);

figure
imshow(imageIndex.ImageLocation{bestMatch})

Ссылки

Сивич, J. и А. Зиссермен. Видео Google: текстовое извлечение приближается, чтобы возразить соответствию в видео. ICCV (2003) пг 1470-1477.

Philbin, J. O. Приятель, М. Исард, Й. Сивич и А. Зиссермен. Объектное извлечение с большими словарями и быстро пространственное соответствие. CVPR (2007).

Представленный в R2015a