exponenta event banner

evaluateImageRetrieval

Оценка результатов поиска изображений

Описание

пример

averagePrecision = evaluateImageRetrieval(queryImage,imageIndex,expectedIDs) возвращает метрику средней точности для измерения точности результатов поиска изображения для queryImage. expectedIDs ввод содержит индексы изображений в пределах imageIndex , которые, как известно, подобны изображению запроса.

[averagePrecision,imageIDs,scores] = evaluateImageRetrieval(queryImage,imageIndex,expectedIDs) дополнительно возвращает индексы, соответствующие изображениям в пределах imageIndex которые визуально похожи на изображение запроса. Он также возвращает соответствующие оценки подобия.

[averagePrecision,imageIDs,scores] = evaluateImageRetrieval(___,Name,Value) использует дополнительные параметры, указанные одним или несколькими Name,Value пары аргументов, используя любой из предшествующих синтаксисов.

Примеры

свернуть все

Определите набор изображений.

dataDir = fullfile(toolboxdir('vision'),'visiondata','bookCovers');
bookCovers = imageDatastore(dataDir);

Отображение набора изображений.

thumbnailGallery = [];
for i = 1:length(bookCovers.Files)
    img = readimage(bookCovers,i); 
    thumbnail = imresize(img,[300 300]);
    thumbnailGallery = cat(4,thumbnailGallery,thumbnail);
end
figure
montage(thumbnailGallery);

Figure contains an axes. The axes contains an object of type image.

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

imageIndex = indexImages(bookCovers);
Creating an inverted image index using Bag-Of-Features.
-------------------------------------------------------

Creating Bag-Of-Features.
-------------------------

* 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 58 images...done. Extracted 29216 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: 23373.
** Using the strongest 23373 features from each of the other image categories.

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

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

* Finished creating Bag-Of-Features


Encoding images using Bag-Of-Features.
--------------------------------------

* Encoding 58 images...done.
Finished creating the image index.

Выберите и просмотрите изображение запроса.

queryDir = fullfile(dataDir,'queries',filesep);
query = imread([queryDir 'query2.jpg']);

figure
imshow(query)

Figure contains an axes. The axes contains an object of type image.

Оценка требует знания ожидаемых результатов. Известно, что изображение запроса является 3-й книгой в imageIndex.

expectedID = 3;

Найдите и сообщите средний балл точности.

[averagePrecision,actualIDs] = evaluateImageRetrieval(query,...
    imageIndex,expectedID);

fprintf('Average Precision: %f\n\n',averagePrecision)
Average Precision: 0.100000

Показать запрос и наилучшее соответствие бок о бок.

bestMatch = actualIDs(1);
bestImage = imread(imageIndex.ImageLocation{bestMatch});

figure
imshowpair(query,bestImage,'montage')

Figure contains an axes. The axes contains an object of type image.

Создайте набор изображений обложек книг.

  dataDir = fullfile(toolboxdir('vision'),'visiondata','bookCovers');
  bookCovers = imageDatastore(dataDir);

Проиндексировать набор изображений. Индексация может занять несколько минут.

  imageIndex = indexImages(bookCovers,'Verbose',false);

Создание набора изображений запросов.

  queryDir = fullfile(dataDir,'queries',filesep);
  querySet = imageDatastore(queryDir);

Укажите ожидаемые результаты поиска для каждого изображения запроса.

  expectedIDs = [1 2 3];

Оцените каждое изображение запроса и соберите оценки средней точности.

  for i = 1:numel(querySet.Files)
      query = readimage(querySet,i);
      averagePrecision(i) = evaluateImageRetrieval(query, imageIndex, expectedIDs(i));
  end

Вычислить среднюю точность (MAP).

  map = mean(averagePrecision)
map = 1

Входные аргументы

свернуть все

Входное изображение вопроса, определенное или как M N 3 truecolor изображениями или как 2-е изображение оттенков серого M на Н.

Типы данных: single | double | int16 | uint8 | uint16 | logical

Индекс поиска изображения, указанный как invertedImageIndex объект. indexImages функция создает invertedImageIndex , в котором хранятся данные, используемые для поиска изображения.

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'NumResults',25

Максимальное число вычисляемых результатов поиска, указанное как пара, разделенная запятыми, состоящая из 'NumResults«и положительное целое значение». Функция оценивает верхнюю часть NumResults и возвращает значение average-precision-at-NumResults метрика.

Прямоугольная область поиска в изображении запроса, заданная как разделенная запятыми пара, состоящая из 'ROI«и форматированный вектор [x y width height]».

Выходные аргументы

свернуть все

Метрика средней точности, возвращаемая как скалярное значение в диапазоне [0 1]. Метрика средней точности представляет точность результатов поиска изображения для изображения запроса.

Ранжированный индекс извлекаемых изображений, возвращаемый как вектор M-by-1. Идентификаторы изображений возвращаются в ранжированном порядке из наиболее или наименее сходного совпадающего изображения.

Метрика подобия, возвращаемая как вектор N-by-1. Этот вывод содержит оценки, которые соответствуют извлеченным изображениям в imageIDs выход. Оценки вычисляются с использованием косинусного подобия и находятся в диапазоне от 0 до 1.

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