bboxPrecisionRecall

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

Синтаксис

[precision,recall] = bboxPrecisionRecall(bboxes,groundTruthBboxes)
[precision,recall] = bboxPrecisionRecall(bboxes,groundTruthBboxes,threshold)

Описание

пример

[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   

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

[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