Классификационный отчет для обнаружения объектов - PullRequest
1 голос
/ 04 июля 2019

Я работаю над обнаружением объектов.Я знаю стандарт, чтобы проверить, насколько хороша ваша модель для вычисления mAP, но я хочу сделать еще один шаг вперед.Я хочу создать классификационный отчет для каждого класса.Для этого я хочу сосчитать TP, FP и FN.Я хочу здесь избежать циклов и найти быстрый способ рассчитать это.В двух словах, шаги включают в себя:

1) Откажитесь от всех предсказанных блоков, где показатель достоверности <0,6 2) Вычислите IOU оставшихся блоков с GT.Это <code>vectorized 3) Для всех ящиков с IOU> = 0,5 отметьте соответствующие метки predicted и ground-truth.4) Обновление TP, FP и FN count

Вот пример:

Ground-Truth:
[[142. 208. 158. 346.]  person,  
 [ 39.  63. 203. 112.]  dog,     
 [ 49.  75. 203. 125.]  person,
 [ 31.  69. 201. 125.]  dog,
 [ 50.  72. 197. 121.]  cat,
 [ 35.  51. 196. 110.]  dog]]


Predictions:

[[243. 203. 348. 279.]  cat     0.7,
 [ 54.  66. 198. 114.]  person  0.5,
 [ 42.  78. 186. 126.]  person  0.5,
 [ 18.  63. 235. 135.]  person  0.5,
 [ 54.  72. 198. 120.]  person  0.5]

Я вычисляю IOU vectorized способом и получаю этот массив:

IOU:

array([[0.        , 0.        , 0.        , 0.        , 0.        ],
       [0.        , 0.79577124, 0.48706725, 0.51433694, 0.62690467],
       [0.        , 0.6242775 , 0.787838  , 0.49283153, 0.79685193],
       [0.        , 0.65112543, 0.70033115, 0.609319  , 0.72605044],
       [0.        , 0.7406585 , 0.70739084, 0.4610215 , 0.94662803],
       [0.        , 0.6147791 , 0.39040923, 0.43102074, 0.48987743]],
      dtype=float32)

Теперь я не могу понять, как быстрее сопоставить метки классов, учитывая, что это матрица IOUs.Может кто-нибудь помочь мне здесь?

1 Ответ

0 голосов
/ 04 июля 2019

Если я правильно понимаю вывод метрики IOU (каждая строка представляет предсказание ограничивающего прямоугольника, а каждый столбец - ограничивающий прямоугольник для каждого объекта на изображении).
Затем вы можете получить для каждой строки индекс столбца, который максимизирует показатель IOU:

indices = np.argmax(IOU, axis=1)

С этими индексами, доступ к вашим ground-truth меткам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...