Оцените набор данных семантической сегментации относительно основной истины
вычисляет различные метрики, чтобы оценить качество результатов семантической сегментации из матриц неточностей, ssm
= evaluateSemanticSegmentation(imageSetConfusion
,classNames
)imageSetConfusion
, с классами сегментации classNames
.
[
вычисляет различные метрики, чтобы оценить качество основанных на блоках результатов семантической сегментации из матриц неточностей, ssm
,blockMetrics
] = evaluateSemanticSegmentation(blockSetConfusion
,classNames
)blockSetConfusion
с классами classNames
.
[___] = evaluateSemanticSegmentation(___,
вычисляет семантические метрики сегментации с помощью одного или нескольких Name,Value
)Name,Value
пара аргументов для управления оценкой.
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
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 массив ячеек -by-one. Каждый элемент массива ячеек содержит матрицу неточностей для соответствующего изображения.
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 | ничего |
"iou" |
Перекресток над объединением (IoU), также известный как коэффициент подобия Жаккара, является наиболее часто используемой метрикой. Используйте метрику IoU, если вы хотите статистическое измерение точности, которое штрафует ложные срабатывания.
Для получения дополнительной информации см. | MeanIoU | MeanIoU | IoU |
"weighted-iou" | Средний IoU каждого класса, взвешенный на количество пикселей в этом классе. Используйте эту метрику, если изображения имеют непропорционально большие классы, чтобы уменьшить влияние ошибок в небольших классах на совокупный счет качества. | WeightedIoU | WeightedIoU | ничего |
Пример: metrics = evaluateSemanticSegmentation(pxdsResults,pxdsTruth,'Metrics',["global-accuracy","iou"])
вычисляет глобальную точность и метрики IoU для набора данных, изображений и классов.
Типы данных: string
'Verbose'
- Флаг для отображения прогресса оценки1
(по умолчанию) | 0
Флаг для отображения информации о прогрессе оценки в командном окне, заданный как разделенная разделенными запятой парами, состоящая из 'Verbose'
и любой из них 1
(true
) или 0
(false
).
Отображаемая информация включает индикатор прогресса, истекшее время, предполагаемое время пребывания и метрики набора данных.
Пример: metrics = evaluateSemanticSegmentation(pxdsResults, pxdsTruth,'Verbose',0)
вычисляет метрики сегментации без отображения информации о прогрессе.
Типы данных: logical
ssm
- Семантические метрики сегментацииsemanticSegmentationMetrics
объектСемантические метрики сегментации, возвращенные как semanticSegmentationMetrics
объект.
blockMetrics
- Основанные на блоках метрики семантической сегментацииОснованные на блоках метрики семантической сегментации, возвращенные как F-на-один массив ячеек, где F количество изображений в наборе данных. Каждый элемент массива ячеек содержит информацию обо всех метриках, рассчитанных для всех блоков в соответствующем изображении, форматированных как таблица.
Каждая таблица имеет K (f) строки, где K (f) - количество блоков в f-м изображении в наборе данных. Таблица имеет до пяти переменных:
Таблица всегда включает в себя BlockInfo
переменная. Данные этой таблицы в этой переменной являются структурами, которые обеспечивают пространственную информацию о блоке. Четыре поля struct BlockStartWorld
, BlockEndWorld
, DataStartWorld
, и DataEndWorld
. Для получения дополнительной информации об этих полях смотрите аргумент пары "имя-значение" 'IncludeBlockInfo' apply
функция.
Таблица включает метрики в свойстве DataSetMetrics ssm
выходной аргумент. По умолчанию метрики GlobalAccuracy
, MeanAccuracy
, MeanIoU
, и WeightedIoU
. Однако, если вы создаете ssm
и задайте подмножество метрик для вычисления с помощью Metrics
аргумент пары "имя-значение", тогда таблица включает только указанные метрики.
[1] Csurka, G., D. Larlus, and F. Perronnin. «Какова хорошая мера оценки для семантической сегментации?» Материалы конференции British Machine Vision Conference, 2013, pp. 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.