Как оценить точность модели сегментации?

Оценка точности модели сегментации — критически важный этап, позволяющий понять, насколько хорошо модель распознаёт объекты на уровне пикселей. В сегментации цель — предсказать для каждого пикселя правильную метку класса. Поэтому стандартные метрики классификации (accuracy, precision, recall и т. д.) применяются в адаптированном виде, учитывая пространственные характеристики.

1. Pixel Accuracy (PA, точность по пикселям)

Одна из самых простых метрик: она измеряет долю правильно классифицированных пикселей от общего числа пикселей.

PA=∑iTPi∑i(TPi+FPi+FNi)=число верно классифицированных пикселейобщее число пикселей\text{PA} = \frac{\sum_i TP_i}{\sum_i (TP_i + FP_i + FN_i)} = \frac{\text{число верно классифицированных пикселей}}{\text{общее число пикселей}}

  • Где TPiTP_i — число пикселей, правильно классифицированных как класс i.

  • Не различает, какие именно классы были перепутаны.

Недостатки:

  • При сильно несбалансированных классах (например, фон занимает 90% изображения), модель может просто предсказывать "фон" и получать высокую точность.

2. Mean Pixel Accuracy (mPA)

Это средняя точность по каждому классу:

mPA=1Ci=1CTPiTPi+FNi\\text{mPA} = \\frac{1}{C} \\sum_{i=1}^C \\frac{TP_i}{TP_i + FN_i}
  • Где CC — число классов

  • Лучше учитывает редкие классы, чем обычная Pixel Accuracy

3. Intersection over Union (IoU), также Jaccard Index

Метрика IoU измеряет степень совпадения между предсказанной и истинной масками для каждого класса:

IoUi=TPiTPi+FPi+FNi\\text{IoU}\_i = \\frac{TP_i}{TP_i + FP_i + FN_i}
  • Для каждого класса считается отношение площади пересечения предсказания и истинной маски к площади их объединения.

  • Позволяет оценить, насколько точно модель определяет границы объектов.

Mean IoU (mIoU):

mIoU=1Ci=1CIoUi\\text{mIoU} = \\frac{1}{C} \\sum_{i=1}^C \\text{IoU}\_i

Это самая распространённая метрика для оценки качества сегментации в задачах CV, используется в соревнованиях (например, PASCAL VOC, COCO, Cityscapes).

4. Dice Coefficient (F1 Score для сегментации)

Похожа на IoU, но более чувствительна к пересечениям, особенно на малых объектах:

Dicei=2TPi2TPi+FPi+FNi\\text{Dice}\_i = \\frac{2TP_i}{2TP_i + FP_i + FN_i}
  • Часто используется в медицинской сегментации (например, опухоли, органы).

  • Значения: от 0 (нет совпадения) до 1 (полное совпадение)

Mean Dice Score:

mean Dice=1Ci=1CDicei\\text{mean Dice} = \\frac{1}{C} \\sum_{i=1}^C \\text{Dice}\_i

5. Precision, Recall и F1-Score на уровне пикселей

Можно адаптировать стандартные метрики классификации:

  • Precision (точность):
    TPTP+FP\frac{TP}{TP + FP}
  • Recall (полнота):
    TPTP+FN\frac{TP}{TP + FN}
  • F1-score (среднее гармоническое):
    2⋅Precision⋅RecallPrecision+Recall\frac{2 \cdot \text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}

Эти метрики можно считать по каждому классу отдельно и усреднять (macro- или weighted-average).

6. Confusion Matrix (матрица ошибок)

Матрица ошибок показывает, как часто пиксели одного класса были перепутаны с другим. Элемент [i, j] в матрице — количество пикселей класса i, предсказанных как класс j.

Полезна для:

  • Анализа "перепутанных" классов

  • Выявления систематических ошибок

7. Frequency Weighted IoU (FWIoU)

Метрика, учитывающая частоту встречаемости классов:

FWIoU=i=1CniknkIoUi\\text{FWIoU} = \\sum_{i=1}^{C} \\frac{n_i}{\\sum_k n_k} \\cdot \\text{IoU}\_i
  • nin_i — общее количество пикселей класса i

  • Предотвращает переоценку редких классов, в отличие от mIoU

8. Boundary F1 Score (BF score)

Метрика, оценивающая точность границ объектов:

  • Строится граница предсказанной маски и истинной.

  • Вычисляется F1-score между этими границами.

Особенно полезна, когда критичны контуры объектов (например, в медицинских и картографических задачах).

9. Hausdorff Distance

Измеряет максимальное расстояние между границами предсказания и ground truth:

H(A,B)=max{supaAinfbBd(a,b),supbBinfaAd(a,b)}H(A, B) = \\max\\{\\sup_{a \\in A} \\inf_{b \\in B} d(a, b), \\sup_{b \\in B} \\inf_{a \\in A} d(a, b)\\}
  • A,BA, B — границы истинной и предсказанной маски

  • d(a,b)d(a, b) — расстояние между точками

  • Особенно полезна для оценки форм и структур

10. Structural Similarity Index (SSIM)

Хотя SSIM чаще используется для оценки качества изображений, его можно применить к бинарным/многоканальным маскам для оценки структурной близости предсказания к ground truth.

11. Пример на PyTorch

import torch
import numpy as np
def compute_iou(pred, target, num_classes):
ious = \[\]
for cls in range(num_classes):
pred_inds = (pred == cls)
target_inds = (target == cls)
intersection = (pred_inds & target_inds).sum().item()
union = (pred_inds | target_inds).sum().item()
if union == 0:
ious.append(float('nan')) # класс отсутствует
else:
ious.append(intersection / union)
return np.nanmean(ious)

12. Пример библиотеки для оценки: torchmetrics

pip install torchmetrics
from torchmetrics.classification import MulticlassJaccardIndex
metric = MulticlassJaccardIndex(num_classes=3) # IoU
iou = metric(preds, targets)

13. Специализированные тулкиты

  • mmsegmentation (OpenMMLab) — предоставляет встроенные метрики mIoU, Dice, PixelAcc

  • SegEval — специализированный фреймворк для оценки сегментации

  • scikit-learn — можно использовать для кастомных метрик на векторизированных масках

14. На что обращать внимание при выборе метрики

Цель задачи Рекомендуемые метрики
Общее качество mIoU, Pixel Accuracy
--- ---
Баланс редких и частых mIoU, Dice, mPA
--- ---
Маленькие объекты Dice, BF-score
--- ---
Контурно-чувствительная Hausdorff, Boundary F1
--- ---
Медицинская сегментация Dice, HD, Recall
--- ---
Веса по классам важны Frequency-Weighted IoU
--- ---

Оценка точности модели сегментации включает не только подбор правильной метрики, но и её адаптацию к специфике задачи: плотность классов, форма объектов, критичность границ и ошибки в малых областях. Именно поэтому часто используют комбинацию метрик, чтобы получить полное представление о производительности модели.