Я работаю над обнаружением объектов.Я знаю стандарт, чтобы проверить, насколько хороша ваша модель для вычисления 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.Может кто-нибудь помочь мне здесь?