semanticSegmentationMetrics

Метрики качества семантической сегментации

Описание

semanticSegmentationMetrics объект инкапсулирует метрики качества семантической сегментации для набора изображений.

Создание

Создайте semanticSegmentationMetrics объект с помощью evaluateSemanticSegmentation функция.

Свойства

развернуть все

Это свойство доступно только для чтения.

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

Это свойство доступно только для чтения.

Нормированная матрица беспорядка в виде таблицы со строками и столбцами C, где C является количеством классов в семантической сегментации. Каждым табличным элементом (i, j) является количество пикселей, которые, как известно, принадлежали, чтобы классифицировать i, но предсказанный, чтобы принадлежать, чтобы классифицировать j, разделенный на общее количество пикселей, предсказанных в классе j. Элементы находятся в области значений [0, 1].

Это свойство доступно только для чтения.

Метрики семантической сегментации, агрегированные по набору данных в виде таблицы с одной строкой. DataSetMetrics имеет до пяти столбцов, соответствуя метрикам, которые были заданы 'Metrics' пара "имя-значение", используемая с evaluateSemanticSegmentation:

  • GlobalAccuracy — Отношение правильно классифицированных пикселей к общим пикселям, независимо от класса.

  • MeanAccuracy — Отношение правильно классифицированных пикселей в каждом классе к общим пикселям, усредненным по всем классам. Значение равно среднему значению ClassMetrics.Accuracy.

  • MeanIoU — Среднее пересечение по объединению (IoU) всех классов. Значение равно среднему значению ClassMetrics.IoU.

  • WeightedIoU — Средний IoU всех классов, взвешенных количеством пикселей в классе.

  • MeanBFScore — Средний счет граничного F1 (BF) всех изображений. Значение равно среднему значению ImageMetrics.BFScore. Эта метрика не доступна, когда вы создаете semanticSegmentationMetrics объект при помощи матрицы беспорядка как вход к evaluateSemanticSegmentation.

Это свойство доступно только для чтения.

Метрики семантической сегментации для каждого класса в виде таблицы со строками C, где C является количеством классов в семантической сегментации. ClassMetrics имеет до трех столбцов, соответствуя метрикам, которые были заданы 'Metrics' пара "имя-значение", используемая с evaluateSemanticSegmentation:

  • Accuracy — Отношение правильно классифицированных пикселей в каждом классе к общему количеству пикселей, принадлежащих тому классу согласно основной истине. Точность может быть описана как:

    Accuracy = (TP + TN) / (TP + TN + FP + FN)

     ПоложительныйОтрицательный
    ПоложительныйTP: верный положительныйFN: ложное отрицание
    ОтрицательныйFp : положительная ложьTN: истинное отрицание

    TP: Истинные положительные стороны и FN являются количеством ложных отрицательных сторон.

  • IoU — Отношение правильно классифицированных пикселей к общему количеству пикселей, которые присвоены что класс основной истиной и предиктором. IoU может быть описан как:

    IoU = TP / (TP + FP + FN)

    Изображение описывает истинные положительные стороны (TP), ложные положительные стороны (FP) и ложные отрицательные стороны (FN).

  • MeanBFScore — Граничные F1 выигрывают за каждый класс, усредненный по всем изображениям. Эта метрика не доступна, когда вы создаете semanticSegmentationMetrics объект при помощи матрицы беспорядка как вход к evaluateSemanticSegmentation.

Это свойство доступно только для чтения.

Метрики семантической сегментации для каждого изображения в наборе данных в виде таблицы со строками N, где N является количеством изображений в наборе данных. ImageMetrics имеет до пяти столбцов, соответствуя метрикам, которые были заданы 'Metrics' пара "имя-значение", используемая с evaluateSemanticSegmentation:

  • GlobalAccuracy — Отношение правильно классифицированных пикселей к общим пикселям, независимо от класса.

  • MeanAccuracy — Отношение правильно классифицированных пикселей к общим пикселям, усредненным по всем классам в изображении.

  • MeanIoU — Средний IoU всех классов в изображении.

  • WeightedIoU — Средний IoU всех классов в изображении, взвешенном количеством пикселей в каждом классе.

  • MeanBFScore — Средний счет BF каждого класса в изображении. Эта метрика не доступна, когда вы создаете semanticSegmentationMetrics объект при помощи матрицы беспорядка как вход к evaluateSemanticSegmentation.

Каждая метрика изображений возвращает вектор с одним элементом для каждого изображения в наборе данных. Порядок строк совпадает с порядком изображений, заданных входом PixelLabelDatastore объекты, представляющие набор данных.

Примеры

свернуть все

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   

Введенный в R2017b