Как оценить точность модели сегментации?
Оценка точности модели сегментации — критически важный этап, позволяющий понять, насколько хорошо модель распознаёт объекты на уровне пикселей. В сегментации цель — предсказать для каждого пикселя правильную метку класса. Поэтому стандартные метрики классификации (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=1C∑i=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=1C∑i=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=1C∑i=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=1Cni∑knk⋅IoUi\\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{supa∈Ainfb∈Bd(a,b),supb∈Binfa∈Ad(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 |
--- | --- |
Оценка точности модели сегментации включает не только подбор правильной метрики, но и её адаптацию к специфике задачи: плотность классов, форма объектов, критичность границ и ошибки в малых областях. Именно поэтому часто используют комбинацию метрик, чтобы получить полное представление о производительности модели.