Метрики качества семантической сегментации
A semanticSegmentationMetrics
объект инкапсулирует метрики качества семантической сегментации для набора изображений.
Создайте semanticSegmentationMetrics
использование объекта evaluateSemanticSegmentation
функция.
ConfusionMatrix
- Матрица неточностейЭто свойство доступно только для чтения.
Матрица неточностей, заданная как таблица с C строками и столбцами, где C - количество классов в семантической сегментации. Каждый элемент таблицы (i, j) является количеством пикселей, которые, как известно, относятся к классу i но, по прогнозам, относятся к классу j.
NormalizedConfusionMatrix
- Нормированная матрица неточностейЭто свойство доступно только для чтения.
Нормированная матрица неточностей, заданная как таблица с C строками и столбцами, где C - количество классов в семантической сегментации. Каждый элемент таблицы (i, j) является количеством пикселей, которые, как известно, относятся к классу i но, по прогнозам, относятся к классу j, деленным на общее количество пикселей, предсказанных в классе j. Элементы находятся в области значений [0, 1].
DataSetMetrics
- Метрики набора данныхЭто свойство доступно только для чтения.
Семантические метрики сегментации, агрегированные по набору данных, заданные как таблица с одной строкой. DataSetMetrics
имеет до пяти столбцов, соответствующих метрикам, заданным 'Metrics'
Пара "имя-значение", используемая с evaluateSemanticSegmentation
:
GlobalAccuracy
- Отношение правильно классифицированных пикселей к общему количеству пикселей независимо от класса.
MeanAccuracy
- Отношение правильно классифицированных пикселей в каждом классе к общему количеству пикселей, усредненное по всем классам. Значение равно среднему значению ClassMetrics.Accuracy
.
MeanIoU
- Среднее пересечение через объединение (IoU) всех классов. Значение равно среднему значению ClassMetrics.IoU
.
WeightedIoU
- Средний IoU всех классов, взвешенный по количеству пикселей в классе.
MeanBFScore
- Средняя граничная F1 (BF) счет всех изображений. Значение равно среднему значению ImageMetrics.BFScore
. Эта метрика недоступна при создании semanticSegmentationMetrics
объект при помощи матрицы неточностей в качестве входов для evaluateSemanticSegmentation
.
ClassMetrics
- Метрики классовЭто свойство доступно только для чтения.
Метрики семантической сегментации для каждого класса, заданные как таблица с C строками, где C - количество классов в семантической сегментации. ClassMetrics
имеет до трех столбцов, соответствующих метрикам, заданным 'Metrics'
Пара "имя-значение", используемая с evaluateSemanticSegmentation
:
Accuracy
- Отношение правильно классифицированных пикселей в каждом классе к общему количеству пикселей, принадлежащих этому классу, согласно основной истине. Точность может быть выражена как:
Accuracy
= (TP + TN )/( TP + TN + FP + FN)
Положительный | Отрицательный | |
---|---|---|
Положительный | TP: Истинный позитив | FN: ложный отрицательный |
Отрицательный | FP: Ложный позитив | TN: Истинный Отрицательный |
TP: Истинные срабатывания, и FN - это количество ложных срабатываний.
IoU
- Отношение правильно классифицированных пикселей к общему количеству пикселей, которым присвоен этот класс наземной истиной и предиктором. IoU может быть выражено как:
IoU
= TP/( TP + FP + FN)
Изображение описывает истинные срабатывания (TP), ложные срабатывания (FP) и ложные срабатывания (FN).
MeanBFScore
- Граничный F1 счет для каждого класса, усредненный по всем изображениям. Эта метрика недоступна при создании semanticSegmentationMetrics
объект при помощи матрицы неточностей в качестве входов для evaluateSemanticSegmentation
.
ImageMetrics
- Метрики изображенийЭто свойство доступно только для чтения.
Семантические метрики сегментации для каждого изображения в наборе данных, заданные как таблица с N строками, где N количество изображений в наборе данных. ImageMetrics
имеет до пяти столбцов, соответствующих метрикам, заданным 'Metrics'
Пара "имя-значение", используемая с evaluateSemanticSegmentation
:
GlobalAccuracy
- Отношение правильно классифицированных пикселей к общему количеству пикселей независимо от класса.
MeanAccuracy
- Отношение правильно классифицированных пикселей к общему количеству пикселей, усредненное по всем классам на изображении.
MeanIoU
- Средний IoU всех классов в изображении.
WeightedIoU
- Средний IoU всех классов в изображении, взвешенный по количеству пикселей в каждом классе.
MeanBFScore
- Средний счет BF каждого класса в изображении. Эта метрика недоступна при создании semanticSegmentationMetrics
объект при помощи матрицы неточностей в качестве входов для evaluateSemanticSegmentation
.
Каждая метрика изображения возвращает вектор с одним элементом для каждого изображения в наборе данных. Порядок строк совпадает с порядком изображений, заданным входом PixelLabelDatastore
объекты, представляющие набор данных.
The triangleImages
набор данных имеет 100 тестовых изображений с основной истиной метками. Определите местоположение набора данных.
dataSetDir = fullfile(toolboxdir('vision'),'visiondata','triangleImages');
Определите местоположение тестовых изображений.
testImagesDir = fullfile(dataSetDir,'testImages');
Определите местоположение меток основной истины.
testLabelsDir = fullfile(dataSetDir,'testLabels');
Создайте imageDatastore, содержащий тестовые изображения.
imds = imageDatastore(testImagesDir);
Задайте имена классов и связанные с ними идентификаторы меток.
classNames = ["triangle","background"]; labelIDs = [255 0];
Создайте pixelLabelDatastore, содержащий основную истину пиксельных меток для тестовых изображений.
pxdsTruth = pixelLabelDatastore(testLabelsDir,classNames,labelIDs);
Загрузите сеть семантической сегментации, которая была обучена на обучающих изображениях triangleImages
.
net = load('triangleSegmentationNetwork');
net = net.net;
Запустите сеть на тестовых изображениях. Предсказанные метки записываются на диск во временной директории и возвращаются как pixelLabelDatastore.
pxdsResults = semanticseg(imds,net,"WriteLocation",tempdir);
Running semantic segmentation network ------------------------------------- * Processed 100 images.
Оцените результаты предсказания по основной истине.
metrics = evaluateSemanticSegmentation(pxdsResults,pxdsTruth);
Evaluating semantic segmentation results ---------------------------------------- * Selected metrics: global accuracy, class accuracy, IoU, weighted IoU, BF score. * Processed 100 images. * Finalizing... Done. * Data set metrics: GlobalAccuracy MeanAccuracy MeanIoU WeightedIoU MeanBFScore ______________ ____________ _______ ___________ ___________ 0.90624 0.95085 0.61588 0.87529 0.40652
Отображение свойств semanticSegmentationMetrics
объект.
metrics
metrics = semanticSegmentationMetrics with properties: ConfusionMatrix: [2x2 table] NormalizedConfusionMatrix: [2x2 table] DataSetMetrics: [1x5 table] ClassMetrics: [2x3 table] ImageMetrics: [100x5 table]
Отобразите точность классификации, пересечение через объединение и контур граничного F-1 для каждого класса. Эти значения хранятся в ClassMetrics
свойство.
metrics.ClassMetrics
ans=2×3 table
Accuracy IoU MeanBFScore
________ _______ ___________
triangle 1 0.33005 0.028664
background 0.9017 0.9017 0.78438
Отобразите нормированную матрицу неточностей, которая сохранена в NormalizedConfusionMatrix
свойство.
metrics.ConfusionMatrix
ans=2×2 table
triangle background
________ __________
triangle 4730 0
background 9601 88069
bfscore
| evaluateSemanticSegmentation
| jaccard
| plotconfusion
(Deep Learning Toolbox)
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.