Оценка набора данных семантической сегментации на основе истинной информации
вычисляет различные метрики для оценки качества результатов семантической сегментации из матриц путаницы, 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);
Определите имена классов и связанные с ними идентификаторы меток.
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 | массив ячеек объектов хранилища данныхПрогнозируемые пиксельные метки в результате семантической сегментации, определенные как хранилище данных или массив ячеек объектов хранилища данных. dsResults может быть любым хранилищем данных, которое возвращает категориальные образы, такие как PixelLabelDatastore или pixelLabelImageDatastore. read(dsResults) должен возвращать категориальный массив, массив ячеек или таблицу. Если read функция возвращает массив или таблицу ячеек из нескольких столбцов, второй столбец должен содержать категориальные массивы.
dsTruth - Метки пикселей истинности землиPixelLabelDatastore объект | массив ячеек PixelLabelDatastore объектыМетки исходного пикселя истинности, заданные как хранилище данных или массив ячеек объектов хранилища данных. dsResults может быть любым хранилищем данных, которое возвращает категориальные образы, такие как 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" | Точность указывает процент правильно идентифицированных пикселей для каждого класса. Используйте метрику точности, если нужно знать, насколько хорошо каждый класс правильно идентифицирует пикселы.
Точность класса является простой метрикой, аналогичной глобальной точности, но она может вводить в заблуждение. Например, маркировка всех пикселей «car» дает идеальный балл для класса «car» (хотя и не для других классов). Используйте точность класса в сочетании с IoU для более полной оценки результатов сегментации. | MeanAccuracy | MeanAccuracy | Accuracy |
"bfscore" | Показатель соответствия контуров F1 границ (BF) показывает, насколько хорошо предсказанная граница каждого класса выравнивается с истинной границей. Используйте оценку BF, если вы хотите, чтобы метрика лучше коррелировала с качественной оценкой человека, чем метрика IoU.
Дополнительные сведения см. в разделе Эта метрика недоступна при указании матрицы путаницы ( | MeanBFScore | MeanBFScore | MeanBFScore |
"global-accuracy" |
| GlobalAccuracy | GlobalAccuracy | ничего |
"iou" |
Пересечение через объединение (IoU), также известное как коэффициент подобия Jaccard, является наиболее часто используемой метрикой. Используйте метрику 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) - количество блоков в четвертом изображении в наборе данных. Таблица содержит до пяти переменных:
Таблица всегда включает в себя BlockInfo переменная. Данные таблицы в этой переменной представляют собой структуры, которые предоставляют пространственную информацию о блоке. Четыре поля структуры: BlockStartWorld, BlockEndWorld, DataStartWorld, и DataEndWorld. Дополнительные сведения об этих полях см. в аргументе пары имя-значение IncludeBlockInfo apply функция.
Таблица включает метрики в свойство DataSetMetrics ssm выходной аргумент. По умолчанию используются следующие метрики: GlobalAccuracy, MeanAccuracy, MeanIoU, и WeightedIoU. Однако при создании ssm и укажите подмножество метрик для вычисления с помощью Metrics аргумент пары имя-значение, то таблица включает только указанные метрики.
[1] Сюрка, Г., Д. Ларлус и Ф. Перроннин. «Что является хорошей оценочной мерой для семантической сегментации?» Материалы Британской конференции машинного видения, 2013 год, стр. 32.1-32.11.
Параллельный запуск, установка 'UseParallel' кому true или включите его по умолчанию с помощью настроек Toolbox™ компьютерного зрения.
Дополнительные сведения см. в разделе Поддержка панели инструментов параллельных вычислений.
Параллельная обработка поддерживается только в том случае, если входными хранилищами данных являются pixelLabelDatastore или pixelLabelImageDatastore.
bfscore | jaccard | segmentationConfusionMatrix | semanticseg | plotconfusion (инструментарий для глубокого обучения)Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.