Показатели качества семантической сегментации
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: True positives и 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 объекты, представляющие набор данных.
В этом примере используются:
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 (инструментарий для глубокого обучения)
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.