semanticSegmentationMetrics

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

Описание

A 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 объекты, представляющие набор данных.

Примеры

свернуть все

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   

Введенный в R2017b