Метрики качества семантической сегментации
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 объекты, представляющие набор данных.
triangleImages набор данных имеет 100 тестовых изображений с метками основной истины. Задайте местоположение набора данных.
dataSetDir = fullfile(toolboxdir('vision'),'visiondata','triangleImages');
Задайте местоположение тестовых изображений.
testImagesDir = fullfile(dataSetDir,'testImages');Задайте местоположение меток основной истины.
testLabelsDir = fullfile(dataSetDir,'testLabels');Создайте imageDatastore содержание тестовых изображений.
imds = imageDatastore(testImagesDir);
Задайте имена классов и их связанную метку IDs.
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
evaluateSemanticSegmentation | plotconfusion (Deep Learning Toolbox) | jaccard | bfscore
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.