Оцените набор данных семантической сегментации против основной истины
вычисляет различные метрики, чтобы оценить качество семантической сегментации, следует из матриц беспорядка, ssm
= evaluateSemanticSegmentation(imageSetConfusion
,classNames
)imageSetConfusion
, с классами сегментации classNames
.
[
вычисляет различные метрики, чтобы оценить качество основанной на блоке семантической сегментации, следует из матриц беспорядка, ssm
,blockMetrics
] = evaluateSemanticSegmentation(blockSetConfusion
,classNames
)blockSetConfusion
с классами classNames
.
[___] = evaluateSemanticSegmentation(___,
вычисляет метрики семантической сегментации с помощью одного или нескольких Name,Value
)Name,Value
парные аргументы, чтобы управлять оценкой.
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
dsResults
— Предсказанные пиксельные меткиPixelLabelDatastore
возразите | PixelLabelImageDatastore
| массив ячеек объектов datastoreПредсказанные пиксельные метки, следующие из семантической сегментации в виде datastore или массива ячеек объектов datastore. dsResults
может быть любой datastore, который возвращает категориальные изображения, такие как PixelLabelDatastore
или pixelLabelImageDatastore
. read
(dsResults
) должен возвратить категориальный массив, массив ячеек или таблицу. Если read
функция возвращает многостолбцовый массив ячеек или таблицу, второй столбец должен содержать категориальные массивы.
dsTruth
— Пиксельные метки основной истиныPixelLabelDatastore
возразите | массив ячеек PixelLabelDatastore
объектыПиксель основной истины помечает в виде datastore или массива ячеек объектов datastore. dsResults
может быть любой datastore, который возвращает категориальные изображения, такие как PixelLabelDatastore
или pixelLabelImageDatastore
. Используя read
(dsTruth
) должен возвратить категориальный массив, массив ячеек или таблицу. Если read
функция возвращает многостолбцовый массив ячеек или таблицу, второй столбец должен содержать категориальные массивы.
imageSetConfusion
— Матрицы беспорядка для сегментированных изображенийМатрица беспорядка для классов в сегментированных изображениях в виде одного из следующих, где F является количеством изображений в наборе данных.
Таблица со строками F и одна переменная с именем ConfusionMatrix
. Каждая строка в таблице содержит массив ячеек с матрицей беспорядка для соответствующего изображения.
Массив ячеек F "один". Каждый элемент массива ячеек содержит матрицу беспорядка для соответствующего изображения.
blockSetConfusion
— Матрицы беспорядка для сегментированных блоковМатрицы беспорядка для сегментированных блоков в виде таблицы со строками B и трех столбцов, где B является общим количеством блоков во всех изображениях в наборе данных. Эти три столбца являются переменными ImageNumber
, ConfusionMatrix
, и BlockInfo
. Можно получить таблицу правильного формата при помощи segmentationConfusionMatrix
функция в вызове основанного на блоке apply
функция. Для примера смотрите, Вычисляют Метрики Сегментации в Основанном на блоке Рабочем процессе.
classNames
— Имена классовИмена классов в виде массива строк или массива ячеек из символьных векторов.
Пример: ["sky" "grass" "building" "sidewalk"]
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
metrics = evaluateSemanticSegmentation(pxdsResults,pxdsTruth,'Metrics',"bfscore")
вычисляет только средний счет BF каждого класса, каждого изображения и целого набора данных.'Metrics'
— Метрики сегментации"all"
(значение по умолчанию) | вектор из строкМетрики сегментации в semanticSegmentationMetrics
вычислить в виде разделенной запятой пары, состоящей из 'Metrics'
и вектор из строк. Этот аргумент задает который переменные в DataSetMetrics
, ClassMetrics
, и ImageMetrics
таблицы, чтобы вычислить. ConfusionMatrix
и NormalizedConfusionMatrix
вычисляются независимо от значения 'Metric'
.
Значение | Описание | Метрика набора агрегированных данных | Метрика изображений | Метрика класса |
---|---|---|---|---|
"all" | Оцените все метрики семантической сегментации. Функция исключает | Все агрегированные данные установили метрики | Все метрики изображений | Все метрики класса |
"accuracy" | Точность указывает на процент правильно идентифицированных пикселей для каждого класса. Используйте метрику точности, если вы хотите знать, как хорошо каждый класс правильно идентифицирует пиксели.
Точность класса является простой метрикой, аналогичной глобальной точности, но это может вводить в заблуждение. Например, маркировка всех пикселей "автомобиль" дает совершенный счет к "автомобильному" классу (несмотря на то, что не для других классов). Используйте точность класса в сочетании с IoU для более полной оценки результатов сегментации. | MeanAccuracy | MeanAccuracy | Accuracy |
"bfscore" | Счет соответствия контура граничного F1 (BF) указывает, как хорошо предсказанный контур каждого класса выравнивается с истинным контуром. Используйте счет BF, если вы хотите метрику, которая имеет тенденцию коррелировать лучше с человеческой качественной оценкой, чем метрика IoU.
Для получения дополнительной информации смотрите Эта метрика не доступна, когда вы задаете матрицу беспорядка ( | MeanBFScore | MeanBFScore | MeanBFScore |
"global-accuracy" |
| GlobalAccuracy | GlobalAccuracy | 'none' |
"iou" |
Пересечение по объединению (IoU), также известное как коэффициент подобия Jaccard, является обычно используемой метрикой. Используйте метрику IoU, если вы хотите статистическое измерение точности, которое штрафует ложные положительные стороны.
Для получения дополнительной информации смотрите | MeanIoU | MeanIoU | IoU |
"weighted-iou" | Средний IoU каждого класса, взвешенного количеством пикселей в том классе. Используйте эту метрику, если изображения непропорционально измерили классы, чтобы уменьшать удар ошибок в маленьких классах на совокупном качественном счете. | WeightedIoU | WeightedIoU | 'none' |
Пример: metrics = evaluateSemanticSegmentation(pxdsResults,pxdsTruth,'Metrics',["global-accuracy","iou"])
вычисляет глобальную точность и метрики IoU через набор данных, изображения и классы.
Типы данных: string
'Verbose'
— Отметьте, чтобы отобразить прогресс оценки
(значение по умолчанию) | 0
Отметьте, чтобы отобразить информацию о прогрессе оценки в командном окне в виде разделенной запятой пары, состоящей из 'Verbose'
и любой 1
TRUE
) или 0
ложь
).
Отображенная информация включает индикатор выполнения, прошедшее время, предполагаемое время, оставаясь и метрики набора данных.
Пример: metrics = evaluateSemanticSegmentation(pxdsResults, pxdsTruth,'Verbose',0)
вычисляет метрики сегментации, не отображая информацию о прогрессе.
Типы данных: логический
ssm
— Метрики семантической сегментацииsemanticSegmentationMetrics
объектМетрики семантической сегментации, возвращенные как semanticSegmentationMetrics
объект.
blockMetrics
— Основанные на блоке метрики семантической сегментацииОснованные на блоке метрики семантической сегментации, возвращенные как массив ячеек F "один", где F является количеством изображений в наборе данных. Каждый элемент в массиве ячеек содержит информацию обо всех метриках, вычисленных для всех блоков в соответствующем изображении, отформатированном как таблица.
Каждая таблица имеет K (f) строки, где K (f) является количеством блоков в f th изображение в наборе данных. Таблица имеет до пяти переменных:
Таблица всегда включает BlockInfo
переменная. Эти табличные данные в этой переменной являются структурами, которые предоставляют пространственную информацию о блоке. Четырьмя полями struct является BlockStartWorld
, BlockEndWorld
, DataStartWorld
, и DataEndWorld
. Для получения дополнительной информации об этих полях, смотрите аргумент пары "имя-значение" 'IncludeBlockInfo' apply
функция.
Таблица включает метрики в свойство DataSetMetrics ssm
выходной аргумент. По умолчанию метриками является GlobalAccuracy
, MeanAccuracy
, MeanIoU
, и WeightedIoU
. Однако, если вы создаете ssm
и задайте подмножество метрик, чтобы вычислить при помощи Metrics
аргумент пары "имя-значение", затем таблица включает только заданные метрики.
[1] Csurka, G., Д. Ларлус и Ф. Перроннин. "Что такое хорошая мера по оценке для семантической сегментации?" Продолжения британской Конференции по Машинному зрению, 2013, стр 32.1–32.11.
Чтобы запуститься параллельно, установите 'UseParallel'
к true
или включите это значением по умолчанию с помощью настроек Computer Vision Toolbox™.
Для получения дополнительной информации смотрите Поддержку Parallel Computing Toolbox.
Параллельная обработка только поддерживается, когда входными хранилищами данных является pixelLabelDatastore
или pixelLabelImageDatastore
.
bfscore
| jaccard
| segmentationConfusionMatrix
| semanticseg
| plotconfusion
(Deep Learning Toolbox)У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.