класс invertedImageIndex

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

Синтаксис

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, Location, 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.06 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