segmentationConfusionMatrix

Матрица беспорядка пиксельного уровня мультикласса отображает сегментацию

Описание

пример

confusionMatrix = segmentationConfusionMatrix(LPred,LTruth) вычисляет матрицу беспорядка из предсказанного пикселя, маркирует LPred и пиксель основной истины маркирует LTruth.

Примеры

свернуть все

Загрузите предварительно обученную сеть, которая выполняет бинарную сегментацию треугольников на фоне.

load('triangleSegmentationNetwork');

triangleImages набор данных имеет 100 тестовых изображений с метками основной истины. Задайте местоположение набора данных.

dataSetDir = fullfile(toolboxdir('vision'),'visiondata','triangleImages');

Получите одно тестовое изображение.

testImage = imread(fullfile(dataSetDir,'testImages','image_001.jpg'));

Получите соответствующую метку основной истины. Изображение метки хранится как числовое изображение, поэтому преобразуйте метку основной истины в категориальное изображение.

gtLabel = imread(fullfile(dataSetDir,'testLabels','labeled_image_001.png'));
classNames = ["triangle","background"];
labelIDs   = [255 0];
gtLabel = categorical(gtLabel,labelIDs,classNames);

Отобразите метки основной истины по тестовому изображению.

imshow(labeloverlay(testImage,gtLabel))

Figure contains an axes object. The axes object contains an object of type image.

Выполните семантическую сегментацию изображений.

predLabel = semanticseg(testImage,net);

Получите матрицу беспорядка меток основной истины и предсказанных меток. Матрица беспорядка показывает, что сегментация правильно классифицировала 21 пиксель как треугольник и 939 пикселей как фон. Матрица беспорядка также показывает, что сегментация неправильно классифицировала 64 фоновых пикселя как треугольник. Никакие треугольные пиксели не неправильно классифицируются как фон.

confusionMatrix = segmentationConfusionMatrix(predLabel,gtLabel)
confusionMatrix = 2×2

    21     0
    64   939

Чтобы проверять точность матрицы беспорядка, отобразите предсказанные метки по тестовому изображению. Наложение соглашается со значениями в матрице беспорядка.

imshow(labeloverlay(testImage,predLabel))

Figure contains an axes object. The axes object contains an object of type image.

Входные параметры

свернуть все

Предсказанные пиксельные метки после семантической сегментации в виде 2D изображения метки или 3-D изображения метки.

Типы данных: double | logical | categorical

Пиксель основной истины помечает в виде 2D изображения метки или 3-D изображения метки одного размера с предсказанными пиксельными метками, LPred.

Типы данных: double | logical | categorical

Выходные аргументы

свернуть все

Матрица беспорядка для классов в сегментированных изображениях, возвращенных как C-by-C числовая матрица, где C является количеством классов в семантической сегментации. Элементом (i, j) является количество пикселей, которые, как известно, принадлежали, чтобы классифицировать i, но предсказанный, чтобы принадлежать, чтобы классифицировать j.

Советы

  • Можно вычислить метрики семантической сегментации, такие как точность счета и классификации Jaccard из матрицы беспорядка при помощи evaluateSemanticSegmentation функция.

  • Можно использовать эту функцию в основанных на блоке рабочих процессах обработки изображений такой как bigimage. Например, можно выполнить семантическую сегментацию и вычислить матрицу беспорядка для блока в том же вызове apply функция.

Введенный в R2020b