Модель обнаружения объектов предсказывает ограничивающую рамку для каждого объекта на изображении, чтобы локализовать объекты. Обычно мы используем среднюю среднюю точность (mAP) для оценки качества модели обнаружения объектов. В этой статье я подробно объясню, как рассчитывается mAP.

Истинные и ложные срабатывания на основе IOU

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

Имея набор обнаруженных блоков и соответствующих блоков истинности для изображения, мы должны быть в состоянии определить, какие из обнаружений являются «правильными» (т. е. истинно положительными), а какие «неправильными» (ложные срабатывания). Поскольку при обнаружении прогнозируемые блоки никогда не совпадают с блоками достоверности, необходимо сопоставить предсказанные блоки с контрольными данными.

Чтобы предсказанный блок был истинно положительным для данного блока истинности, он должен удовлетворять следующим трем критериям (в противном случае он считается ложноположительным):

  • Соответствие категории: прогнозируемая категория должна соответствовать истинной категории.
  • Совпадение местоположения. Чтобы определить, совпадают ли два блока по местоположению, мы измеряем их перекрытие, вычисляя пересечение-на-объединение или долговую расписку (т. е. площадь пересечения, деленная на площадь union, показанный на следующем рисунке) и сравните с пороговым значением. Типичное пороговое значение составляет 50 % — таким образом, если перекрытие между предсказанным полем и полем наземной истины составляет 50 % или выше (и два других пункта маркированного списка остаются в силе), мы говорим, что обнаруженное поле является истинно положительным.
  • Точность: наконец, предсказанный блок не может быть истинно положительным для нескольких наземных боксов (а несколько предсказанных боксов не могут одновременно быть истинными положительными для наземного ложа правды). На практике это обеспечивается путем жадного вычисления совпадения между предсказанными блоками и блоками достоверности в порядке убывания оценки на основе перекрытия долговых расписок.

Точность и отзыв

Чтобы детектор считался «хорошим», мы хотим, чтобы: (1) большая часть производимых обнаружений была истинно положительной и (2) поля истинности, соответствующие этим обнаружениям, составляли большую часть всех полей истинности по земле в пределах набор данных. При использовании фиксированного порога IOU, например 50%, точность и полнота могут быть рассчитаны следующим образом:

  • Точность: доля произведенных обнаружений, которые являются истинными положительными.
  • Отзыв – это доля полей истинности в данных, совпавших с некоторым произведенным обнаружением.

Кривая точного отзыва

На практике обычно существует компромисс между точностью и отзывом, который достигается за счет отбрасывания ящиков, чьи оценки обнаружения ниже некоторого фиксированного порога оценки. Если предположить, что оценки дают значимый порядок достоверности, то установка низкого порога позволяет нам находить больше объектов на изображении за счет ложных срабатываний. Это будет считаться настройкой с низкой точностью и высоким отзывом. С другой стороны, установка высокого порога позволяет нам свести к минимуму количество ложных срабатываний в наших обнаружениях, которые мы бы считали высокой точностью и низкой настройкой отзыва. Можно было бы выбрать подходящую модель в зависимости от потребности (высокая точность или больше данных с допустимыми ложными срабатываниями).

Мы можем визуализировать компромисс между точностью и отзывом более явно, создав так называемую кривую точности/отзыва для данной долговой расписки, перебрав множество пороговых значений и нанеся соответствующие точность и отзыв детектора вдоль оси x и y графика. Хорошие детекторы — это те, которым удается получить точки, расположенные вверху и справа на этих графиках. На следующем изображении показан пример кривой точного отзыва.

Средняя средняя точность

Основываясь на кривой отзыва точности при нескольких значениях IOU, мы можем вычислить следующие показатели:

  • Средняя точность (AP). Мы можем вычислить среднюю точность для данной долговой расписки, вычислив область под кривой отзыва точности. Это достигается путем выбора 11 равноотстоящих значений отзыва [0, 0,1, 0,2, …, 1,0] и аппроксимации интегрирования путем выборки точного отзыва на этих значениях отзыва.
  • Интегрированная точка доступа. Чтобы вычислить интегрированную точку доступа, мы усредняем точку доступа по нескольким значениям порога IoU. Например, мы усредняем значения от 50% до 95% с шагом 5%.
  • AP категории. Чтобы вычислить AP категории, мы вычисляем AP независимо для каждого класса. Это позволяет нам оценивать производительность детекторов отдельно для людей, собак, кошек и т. д. Категория AP может быть рассчитана при фиксированном пороге IoU или усреднена по нескольким значениям порога IoU как интегрированная AP.
  • Средний AP (mAP). Средний AP (или mAP) – это среднее значение AP категории, усредненное по всем классам. Среднее AP часто принимается как одно число, которое представляет собой производительность детектора в наборе данных. Обратите внимание, что эта метрика игнорирует дисбаланс классов — таким образом, даже если набор данных содержит 20 собак для каждой кошки, средний AP все равно будет придавать одинаковый вес обеим категориям.

Заключение и предостережения

mAP считается золотой метрикой, потому что это хорошее обобщение производительности моделей обнаружения. Однако это может быть не лучший показатель для вашей проблемы. Вот что следует учитывать, если вы хотите использовать mAP для оценки своих моделей обнаружения объектов.

  • Как выбрать долговую расписку. mAP — это агрегированная метрика для всех возможных пороговых значений IOU. Однако, если для ваших приложений критична точность расположения ограничительной рамки, вы можете использовать mAP@0,75IOU в качестве оценочной метрики.
  • Несбалансированность данных: mAP не дает никаких весов при усреднении категорий API. Однако, если распределение классов на самом деле отражает важность каждого класса, вы можете вместо этого рассмотреть возможность использования средневзвешенного значения.