Оцените семантический набор данных сегментации против наземной истины
ssm = evaluateSemanticSegmentation(pxdsResults,pxdsTruth)
ssm = evaluateSemanticSegmentation(pxdsResults,pxdsTruth,Name,Value)
вычисляет различные метрики, чтобы оценить качество семантических результатов сегментации, ssm
= evaluateSemanticSegmentation(pxdsResults
,pxdsTruth
)pxdsResults
, против наземной сегментации истины, pxdsTruth
.
вычисляет семантические метрики сегментации с помощью одного или нескольких аргументов пары ssm
= evaluateSemanticSegmentation(pxdsResults
,pxdsTruth
,Name,Value
)Name,Value
, чтобы управлять оценкой.
Оцените результаты семантической сегментации путем вычисления матрицы беспорядка и метрик для каждого класса, каждого изображения и целого набора данных.
Выполните семантическую сегментацию
Маркируйте каждый пиксель в серии изображений или как объект или как фон. Этот пример использует набор данных triangleImages
, который имеет 100 тестовых изображений треугольников с заземляющими метками истины.
Задайте местоположение набора данных, протестируйте изображения и заземляющие метки истины.
dataSetDir = fullfile(toolboxdir('vision'),'visiondata','triangleImages'); testImagesDir = fullfile(dataSetDir,'testImages'); testLabelsDir = fullfile(dataSetDir,'testLabels');
Создайте datastore изображений, содержащий тестовые изображения.
imds = imageDatastore(testImagesDir);
Задайте имена классов и их связанную метку IDs.
classNames = ["triangle","background"]; labelIDs = [255 0];
Создайте пиксельный datastore метки, содержащий заземляющие пиксельные метки истины для тестовых изображений.
pxdsTruth = pixelLabelDatastore(testLabelsDir,classNames,labelIDs);
Загрузите семантическую сеть сегментации, которая была обучена на учебных изображениях шумных форм.
net = load('triangleSegmentationNetwork');
net = net.net;
Запустите сеть на тестовых изображениях. Предсказанные метки записаны в диск во временной папке и возвращены как pixelLabelDatastore
.
pxdsResults = semanticseg(imds,net,"WriteLocation",tempdir);
Running semantic segmentation network ------------------------------------- * Processing 100 images. * Progress: 100.00%
Вычислите метрики матрицы и сегментации беспорядка
Оцените результаты прогноза против наземной истины. По умолчанию evaluateSemanticSegmentation
вычисляет все доступные метрики, включая матрицу беспорядка, нормированную матрицу беспорядка, метрики набора данных, метрики класса и метрики изображений.
metrics = evaluateSemanticSegmentation(pxdsResults,pxdsTruth)
Evaluating semantic segmentation results ---------------------------------------[==================================================] 100% Elapsed time: 00:00:01 Estimated time remaining: 00:00:00 * Finalizing... Done. * Data set metrics: GlobalAccuracy MeanAccuracy MeanIoU WeightedIoU MeanBFScore ______________ ____________ _______ ___________ ___________ 0.90624 0.95085 0.61588 0.87529 0.40652
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
metrics.NormalizedConfusionMatrix
ans=2×2 table
triangle background
________ __________
triangle 1 0
background 0.0983 0.9017
pxdsResults
— Предсказанные пиксельные меткиPixelLabelDatastore
| массив ячеек объектов PixelLabelDatastore
Предсказанные пиксельные метки, следующие из семантической сегментации, заданной как объект PixelLabelDatastore
или массив ячеек объектов PixelLabelDatastore
.
pxdsTruth
— Оснуйте пиксельные метки истиныPixelLabelDatastore
| массив ячеек объектов PixelLabelDatastore
Оснуйте пиксельные метки истины, заданные как объект PixelLabelDatastore
или массив ячеек объектов PixelLabelDatastore
.
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми.
Имя (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" |
Точность указывает на процент правильно идентифицированных пикселей для каждого класса. Используйте метрику точности, если вы хотите знать, как хорошо каждый класс правильно идентифицирует пиксели.
Точность класса является простой метрикой, аналогичной глобальной точности, но это может вводить в заблуждение. Например, маркировка всех пикселей "автомобиль" дает совершенный счет к "автомобильному" классу (несмотря на то, что не для других классов). Используйте точность класса в conjuction с 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'
— Отметьте, чтобы отобразить прогресс оценки1
(значение по умолчанию) | 0
Отметьте, чтобы отобразить информацию о прогрессе оценки в командном окне, заданном как пара, разделенная запятой, состоящая из 'Verbose'
и или 1
(true
) или 0
(false
).
Отображенная информация включает индикатор выполнения, прошедшее время, предполагаемое время, оставаясь и метрики набора данных.
Пример: metrics = evaluateSemanticSegmentation(pxdsResults, pxdsTruth,'Verbose',0)
вычисляет метрики сегментации, не отображая информацию о прогрессе.
Типы данных: логический
ssm
— Семантические метрики сегментацииsemanticSegmentationMetrics
Семантические метрики сегментации, возвращенные как объект semanticSegmentationMetrics
.
[1] Csurka, G., Д. Ларлус и Ф. Перроннин. "Что такое хорошая мера по оценке для семантической сегментации?" Продолжения британской Конференции по Машинному зрению, 2013, стр 32.1–32.11.
Чтобы запуститься параллельно, установите 'UseParallel'
на true
или включите это значением по умолчанию с помощью настроек Computer Vision Toolbox™.
Для получения дополнительной информации смотрите Поддержку Parallel Computing Toolbox.
PixelLabelDatastore
| bfscore
| jaccard
| plotconfusion
| semanticSegmentationMetrics
| semanticseg
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.