Чем отличается mAP от Mask R-CNN utils.py и mAP от (MS)COCO?
Я обучил свою сеть Mask R-CNN своими собственными данными, которые я преобразовал в стиль COCO для своей диссертации, и теперь я хочу оценить свои результаты. Я нашел два способа сделать это. Одним из методов является оценка самой COCO. Маска R-CNN сама показывает, как оценивать с помощью COCO Metric, в файле coco.py: https://github.com/matterport/Mask_RCNN/blob/master/samples/coco/coco.py
Я в основном использую evaluate_coco(...)
функция в строке 342. В результате я получаю результат из метрики COCO со средней точностью и средним повторным запуском для различных метрик, см. изображения ниже. Для параметра eval_type я использую eval_type="segm"
,
Для меня интересна карта. Я знаю, что mAP50 использует 0,5 для IuO (пересечение по объединению), и их стандартное значение mAP составляет от IuO = 0,5 до 0,95 с шагом 0,05.
Второй метод взят из самой маски R-CNN в их utils.py: https://github.com/matterport/Mask_RCNN/blob/master/mrcnn/utils.py
Название функции compute_ap(...)
в строке 715 и там написано, что IoU составляет 0,5. Функция возвращает значение mAP.
Это поднимает вопрос о том, какого типа compute_ap()
оценивает для. С COCO вы можете выбирать между "bbox" и "segm".
Также я хочу знать разницу между значением mAP и compute_ap(...)
функция и MAP50 от COCO, потому что с теми же данными я получаю разные результаты. К сожалению, я не могу загрузить лучшее изображение сейчас, потому что я могу пойти только в понедельник-пятницу в мой университет, и в пятницу я спешил и фотографировал, не проверяя их, но среднее значение для всех точек доступа от compute_ap()
0,91, и я вполне уверен, что AP50 от COCO 0,81.
Кто-то знает разницу или нет разницы?
Это из-за параметра maxDets=100?: Понимание оценки COCO "максимальное количество обнаружений" Мои фотографии имеют только 4 категории и максимум 4 экземпляра на изображение.
Или это способ, как mAP рассчитывается иначе?
РЕДАКТИРОВАТЬ: Теперь у меня есть лучшее изображение со всей метрикой COCO для типа "Сегм" и типа "BBox" и сопоставить его с результатом compute_ap()
, то есть "mAP: 0,41416..." Кстати, если в результате COCO есть "-1", значит ли это, что не было этого типа?