Вычисление отзыва и точность для оценки системы CBIR

Я реализовал CBIR с SIFT в сочетании с другими алгоритмами, основанными на функциях (с OpenCV и Python3), теперь я должен оценить, как работает их комбинация (то есть SIFT/SURF, ORB/BRISK...).

Я обнаружил, что могу использовать Precision |TP| / (|TP| + |FP|) и Recall |TP| / (|TP| + |FN|). Я знаю, что TP - правильный положительный результат, что FN - это соответствующие документы, которые не возвращены, и что FP - это документы, которые возвращены, но не имеют отношения

Я рассчитываю свои совпадения с BF и предполагаю, что:

  • matches=bf.knnMatch(descriptor1, descriptor2, k=2) мои TP+FP
  • спички с тестом на рацион - моя TP

Как я могу рассчитать свой FN? Такие как совпадения, которые актуальны, но не возвращены?

Обратите внимание, что я просто формулирую гипотезу, поэтому, пожалуйста, исправьте меня, если я ошибаюсь.

Я хотел бы получить некоторую помощь по конкретной реализации, например, где эти данные в конкретном случае сопоставления изображений.

В качестве альтернативы, можете ли вы предложить мне, как оценить систему CBIR на основе обнаружения и описания функций?

1 ответ

Я наконец-то нашел ответ на свой вопрос, может, он кому-нибудь поможет!

Существует разница между расчетами PRECISION и RECALL в КОНТЕКСТЕ ПОЛУЧЕНИЯ ИНФОРМАЦИИ и КОНТЕКСТЕ КЛАССИФИКАЦИИ.

Для поиска информации:

precision = (relevant documents + retrieved documents) / retrieved documents
recall = (relevant documents + retrieved dcuments) / relevant documents

Для контекста классификации можно говорить о матрице смешения:

precision = TP/TP+FP
recall = TP/TP+FN

В моем случае, например, не было возможности использовать путаницу матрицы.

Другие вопросы по тегам