evaluateImageRetrieval

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

Описание

пример

averagePrecision = evaluateImageRetrieval(queryImage,imageIndex,expectedIDs) возвращает среднюю метрику точности для измерения точности результатов поиска изображения для queryImage. The 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 изображением <reservedrangesplaceholder2>-by-3 truecolor или как M N 2-м изображением оттенков серого.

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

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

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

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

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

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

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

Прямоугольная область поиска в изображении запроса, заданная как разделенная разделенными запятой парами, состоящая из 'ROI[<reservedrangesplaceholder3> <reservedrangesplaceholder2> <reservedrangesplaceholder1> <reservedrangesplaceholder0>] отформатировал вектор.

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

свернуть все

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

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

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

Введенный в R2015a
Для просмотра документации необходимо авторизоваться на сайте