C ++ / OpenCV — Как индексировать картинки для поиска изображений? (и найти лучшее изображение)

Я хотел бы использовать BoW с FLANN, чтобы проиндексировать все мои фотографии в моей базе данных. (Для проекта CBIR)

Что я сделал :

  1. Цикл по всей базе данных, чтобы вычислить дескрипторы каждого изображения.
  2. Кластеризация дескрипторов с использованием K-MEAN
  3. Извлечение BoWDescriptors (визуальных слов), чтобы получить большую гистограмму со всеми моими функциями
  4. Используйте индекс FLANN для расчета индекса на каждой картинке

Код:

// Create Flann LSH index
cv::flann::Index flannIndex(this->descDescriptorbow, cv::flann::LshIndexParams(12, 20, 2), cvflann::FLANN_DIST_HAMMING);

cv::Mat results, dists;

int k=2; // find the 2 nearest neighbors

// search (nearest neighbor)
flannIndex.knnSearch(responseHist, results, dists, k, cv::flann::SearchParams() );

DescriptorBow содержит все мои BoWfeatures моей базы данных.
ResponseHist содержит лукFeature моей картины, которую я хочу оценить.

Теперь, что мне нужно сделать, чтобы увидеть, какая картинка лучше всего подходит?

Кто-нибудь может мне помочь ?

2

Решение

Задача ещё не решена.

Другие решения