Вычисление mAP и Precision/Recall по результатам обнаружения с метками

При работе с детекторами объектов, где нет меток объектов, вычисление #TruePositive, #FalsePositive и #FalseNegative является простым:

  • Вы вычисляете IoU каждого блока из результатов с каждым блоком из GT
  • Вы сортируете пары в порядке убывания в соответствии с их IoU
  • Вы перебираете пары. Каждая пара с IoU > some_predefined_threshold добавляет 1 to #TruePositive и его члены пары помечены как "совпавшие", если хотя бы один из членов пары не был сопоставлен
  • #FalsePositive будет количеством непревзойденных блоков из результатов
  • #FalseNegative будет числом непревзойденных коробок от GT

Когда поля также включают метки (например, типы объектов, такие как dog, person, carи т. д.), проблема становится более неоднозначной.

Что я сейчас делаю в этом случае, так это то, что я просто усиливаю условие соответствия, чтобы IoU > thresh а также pred_label == gt_label,

Это напрямую означает, что каждый блок из результатов имеет возможность увеличивать #TruePositive, если он имеет достаточно высокую IoU с блоком GT и независимо от других блоков результатов, которые могли иметь более высокие IoU, но неправильные метки. (Для сравнения, более строгий подход может соответствовать только в соответствии с самыми высокими IoU, как если бы не было меток, и в конечном итоге удалить совпадения, которые не совпадают по меткам).

Это правильный подход для вычисления точности и повторного вызова на задачах обнаружения и распознавания, в качестве предыдущего шага для mAP?

0 ответов

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