bboxPrecisionRecall

Вычислите точность ограничительной рамки и отзыв против основной истины

Описание

пример

[precision,recall] = bboxPrecisionRecall(bboxes,groundTruthBboxes) измеряет точность перекрытия ограничительной рамки между bboxes и groundTruthBboxes. Precision является отношением истинных положительных экземпляров ко всем положительным экземплярам объектов в детекторе, на основе основной истины. Recall является отношением истинных положительных экземпляров к сумме истинных положительных сторон и ложных отрицательных сторон в детекторе, на основе основной истины.

Если ограничительная рамка сопоставлена с меткой класса, precision и recall содержите метрики для каждого класса. Если ограничительная рамка также сопоставлена с оценкой достоверности для рейтинга, используйте evaluateDetectionPrecision функция.

[precision,recall] = bboxPrecisionRecall(bboxes,groundTruthBboxes,threshold) задает порог перекрытия для присвоения данного поля к основному блоку истинности.

Примеры

свернуть все

Создайте два основных блока истинности.

groundTruthBoxes = [2 2 10 20; 80 80 30 40];

Создайте три поля для оценки.

boundingBoxes = [4 4 10 20; 50 50 30 10; 90 90 40 50];

Постройте поля.

figure
hold on
for i=1:2
    rectangle('Position',groundTruthBoxes(i,:),'EdgeColor','r');
end
for i=1:3
    rectangle('Position',boundingBoxes(i,:),'EdgeColor','b');
end   

Figure contains an axes object. The axes object contains 5 objects of type rectangle.

Оцените точность перекрытия против достоверных данных.

[precision,recall] = bboxPrecisionRecall(boundingBoxes,groundTruthBoxes)
precision = 0.3333
recall = 0.5000

Задайте имена классов.

classNames = ["A","B","C"];

Создайте ограничительные рамки для оценки.

predictedLabels = {...
    categorical("A",classNames); ...
    categorical(["C";"B"],classNames)};
bboxes = {...
    [10 10 20 30]; ...
    [60 18 20 10; 120 120 5 10]};
boundingBoxes = table(bboxes,predictedLabels,'VariableNames',...
    {'PredictedBoxes','PredictedLabels'});

Создайте основные блоки истинности.

A = {[10 10 20 28]; []};
B = {[]; [118 120 5 10]};
C = {[]; [59 19 20 10]};
groundTruthData = table(A,B,C);

Оцените точность перекрытия против достоверных данных.

[precision,recall] = bboxPrecisionRecall(boundingBoxes,groundTruthData)
precision = 3×1

     1
     0
     1

recall = 3×1

     1
     0
     1

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

свернуть все

Ограничительные рамки в виде одного из следующих. M является количеством ограничительных рамок.

  • Для ограничительных рамок единого класса, bboxes может быть M-by-4 матрица, или таблица со строками M и один столбец. Каждая строка матрицы или элемента в таблице представляет ограничительную рамку, заданную в формате [x y width height], где x и y соответствуют левому верхнему углу ограничительной рамки.

  • Для ограничительных рамок мультикласса, bboxes таблица со строками M и два столбца. Каждый элемент в первом столбце представляет ограничительную рамку, заданную в формате [x y width height]. Второй столбец содержит предсказанную метку для каждого поля. Метка должна быть категориальным типом, заданным переменной (столбец) имена groundTruthBboxes таблица.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Ограничительные рамки основной истины в виде одного из следующих. M является количеством ограничительных рамок основной истины.

  • Для ограничительных рамок единого класса, groundTruthBboxes может быть M-by-4 матрица, или таблица со строками M и один столбец. Каждая строка матрицы или элемента в таблице представляет ограничительную рамку, заданную в формате [x y width height], где x и y соответствуют левому верхнему углу ограничительной рамки.

  • Для ограничительных рамок мультикласса, groundTruthBboxes таблица со строками M и несколько столбцов. Каждый столбец представляет различный класс, и имя столбца задает метку класса. Каждый элемент в таблице имеет формат [x y width height].

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Перекройте порог для присвоенного обнаружение к основному блоку истинности в виде числового скаляра. Отношение перекрытия вычисляется как пересечение по объединению.

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

свернуть все

Значения точности от каждого обнаружения, возвращенного в виде числа для ограничительных рамок единого класса. Для ограничительных рамок мультикласса, precision возвращен как числовой вектор, состоящий из метрик для каждого класса. Порядок класса следует за тем же порядком следования столбцов как groundTruthBboxes таблица.

Вспомните значения из каждого обнаружения, возвращенного в виде числа для ограничительных рамок единого класса. Для ограничительных рамок мультикласса, recall возвращен как числовой вектор, состоящий из метрик для каждого класса. Порядок класса следует за тем же порядком следования столбцов как groundTruthBboxes таблица.

Смотрите также

|

Введенный в R2018a