Какие метрики используются для сегментации и детекции объектов?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
Для детекции объектов обычно называют IoU, precision, recall, F1 и mAP. Для сегментации — IoU по классам, Dice/F1 и mean IoU. Важно понимать, что для детекции качество оценивают не только по классу, но и по точности локализации bounding box или mask.
Определение:
Метрики для детекции и сегментации измеряют, насколько предсказания модели совпадают с разметкой по классу и по геометрии объекта.
Для детекции основная идея — сравнить предсказанный и истинный bounding box:
- IoU (Intersection over Union) — площадь пересечения делённая на площадь объединения двух областей.
- Precision — доля корректных срабатываний среди всех предсказанных объектов.
- Recall — доля найденных объектов среди всех объектов в разметке.
- F1-score — баланс precision и recall.
- mAP (mean Average Precision) — средняя точность по классам, часто считается при разных порогах IoU.
Для сегментации используются похожие метрики, но сравниваются маски:
- IoU / Jaccard для масок.
- Dice coefficient — особенно популярен в медицинской и бинарной сегментации.
- Pixel accuracy — доля правильно классифицированных пикселей, но может быть обманчивой при сильном дисбалансе классов.
- mIoU — средний IoU по классам, одна из самых распространённых метрик для semantic segmentation.
Пример использования:
Допустим, модель нашла на изображении человека и машину. Для каждого объекта предсказан bounding box, и нужно понять, насколько они совпадают с разметкой.
def iou(box1, box2):
# box = [x1, y1, x2, y2]
x_left = max(box1[0], box2[0])
y_top = max(box1[1], box2[1])
x_right = min(box1[2], box2[2])
y_bottom = min(box1[3], box2[3])
inter_w = max(0, x_right - x_left)
inter_h = max(0, y_bottom - y_top)
intersection = inter_w * inter_h
area1 = (box1[2] - box1[0]) * (box1[3] - box1[1])
area2 = (box2[2] - box2[0]) * (box2[3] - box2[1])
union = area1 + area2 - intersection
return intersection / union if union > 0 else 0.0
Если IoU >= 0.5, предсказание часто считают корректным детектом.
Для сегментации вместо box сравнивают две маски пиксель за пикселем и считают IoU или Dice.
Пояснение кода:
- Берутся координаты двух прямоугольников.
- Находится область пересечения.
- Считаются площади обоих прямоугольников.
- Вычисляется объединение:
area1 + area2 - intersection. - Возвращается
intersection / union— это и есть IoU.
В практической оценке модели:
- для детекции сначала сопоставляют предсказанные боксы с эталонными по IoU и классу;
- затем считают TP/FP/FN, на их основе precision/recall;
- после этого строят AP по каждому классу и усредняют в mAP;
- для сегментации аналогично считают overlap между масками, чаще через IoU и Dice.
Ключевые моменты:
- IoU — базовая метрика и для детекции, и для сегментации.
- Для детекции важно учитывать и класс, и локализацию объекта.
- mAP — стандартная итоговая метрика для object detection.
- Для сегментации часто используют IoU/mIoU и Dice.
- Pixel accuracy полезна, но плохо работает при дисбалансе классов.
- Порог IoU сильно влияет на итоговую оценку детектора: чем он выше, тем строже проверка.