exponenta event banner

bboxPrecisionRecall

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

Описание

пример

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

Если ограничительная рамка связана с меткой класса, 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. The axes 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