selectStrongestBboxMulticlass

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

Описание

пример

selectedBboxes = selectStrongestBboxMulticlass(bboxes,scores,labels) возвращает выбранные ограничительные рамки, которые имеют высокие оценки достоверности. Функция использует жадное немаксимальное подавление (NMS), чтобы устранить перекрывающиеся ограничительные рамки из bboxes введите, только если у них есть та же метка класса.

[selectedBboxes,selectedScores,selectedLabels,index] = selectStrongestBboxMulticlass(bboxes,scores,labels) дополнительно возвращает баллы, метки и индекс, сопоставленный с выбранными ограничительными рамками.

[___] = selectStrongestBboxMulticlass(___,Name,Value) дополнительные опции использования заданы одним или несколькими Name,Value парные аргументы.

Примеры

свернуть все

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

detectorInria = peopleDetectorACF('inria-100x41');
detectorCaltech = peopleDetectorACF('caltech-50x21');

Примените детекторы.

I = imread('visionteam1.jpg');
[bboxesInria,scoresInria] = detect(detectorInria,I,'SelectStrongest',false);
[bboxesCaltech,scoresCaltech] = detect(detectorCaltech,I,'SelectStrongest',false);

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

labelsInria = repelem("inria",numel(scoresInria),1);
labelsInria = categorical(labelsInria,{'inria','caltech'});
labelsCaltech = repelem("caltech",numel(scoresCaltech),1);
labelsCaltech = categorical(labelsCaltech,{'inria','caltech'});

Объединение следует из всех детекторов к для результатов обнаружения мультикласса.

allBBoxes = [bboxesInria;bboxesCaltech];
allScores = [scoresInria;scoresCaltech];
allLabels = [labelsInria;labelsCaltech];

Запустите мультикласс немаксимальное подавление.

[bboxes,scores,labels] = selectStrongestBboxMulticlass(allBBoxes,allScores,allLabels,...
    'RatioType','Min','OverlapThreshold',0.65);

Аннотируйте обнаруженных людей.

annotations = string(labels) + ": " + string(scores);
I = insertObjectAnnotation(I,'rectangle',bboxes,cellstr(annotations));
imshow(I)
title('Detected People, Scores, and Labels')

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

свернуть все

Ограничительные рамки в виде M-by-4 или M-by-5 неразреженная числовая матрица. M является количеством ограничительных рамок. Каждая строка матрицы задает ограничительную рамку или как выровненный осью прямоугольник или как вращаемый прямоугольник. Эта таблица описывает формат для каждой ограничительной рамки.

BoundingboxСтрокаОписание
Выровненный осью прямоугольник[Min x, min y, width, height]Этот тип ограничительной рамки задан в пиксельных координатах как M-by-4 матрица, представляющая ограничительные рамки M
Вращаемый прямоугольник[Центр x, центр y, width, height, yaw]Этот тип ограничительной рамки задан в пространственных координатах как M-by-5 матрица, представляющая ограничительные рамки M. Центр x и координаты центра y представляют центр ограничительной рамки. width и элементы height представляют длину поля вдоль x и осей y, соответственно. yaw представляет угол поворота в градусах. Объем вращения вокруг центра ограничительной рамки измеряется в направлении по часовой стрелке.

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

Оценки достоверности, соответствующие входным ограничительным рамкам в виде M-by-1 вектор. selectStrongestBboxMulticlass функционируйте использует жадный NMS, чтобы устранить перекрывающиеся ограничительные рамки и сопоставить оценку достоверности с полями. Более высокий счет представляет более высокое доверие к хранению ограничительной рамки. scores введите должно быть действительным, конечным, и неразреженным.

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

Метки, соответствующие входным ограничительным рамкам в виде M-by-1 категориальный или числовой вектор.

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

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'RatioType'объединение устанавливает 'RatioType' свойство к 'Union'.

Тип отношения в виде вектора символов 'Union' или 'Min'.

  • Установите тип отношения на 'Union' вычислить отношение как область пересечения между bboxA и bboxB, разделенный на область объединения двух.

  • Установите тип отношения на 'Min' вычислить отношение как область пересечения между bboxA и bboxB, разделенный на минимальную область этих двух ограничительных рамок.

Типы данных: char

Перекройте порог отношения в виде разделенной запятой пары, состоящей из 'OverlapThreshold'и скаляр в области значений [0 1]. Когда отношение перекрытия выше порога, функция удаляет ограничительные рамки вокруг ссылочного поля. Уменьшите порог, чтобы сократить количество выбранных ограничительных рамок. Однако, если вы уменьшаете порог слишком много, вы можете устранить поля, которые представляют объекты друг близко к другу в изображении.

Типы данных: single | double

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

свернуть все

Выбранные ограничительные рамки, возвращенные как M-by-4 или M-by-5 матрица. Векторы с 4 элементами представляют выровненные осью прямоугольники, и векторы с 5 элементами представляют вращаемые прямоугольники.

selectedBbox выведите возвращает выбранные ограничительные рамки в bbox введите, которые имеют самую высокую оценку достоверности. Функция использует немаксимальное подавление, чтобы устранить перекрывающиеся ограничительные рамки.

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

Множество выбранных ограничительных рамок, возвращенных как M-by-1 вектор. M th выигрывает в selectedScores выведите соответствует M th ограничительная рамка в selectedBboxes вывод . Тип данных selectedScores совпадает с типом данных scores.

Метки выбранных ограничительных рамок, возвращенных как M-by-1 категориальный или числовой вектор. M th помечает в selectedLabels выведите соответствует M th ограничительная рамка в selectedBboxes вывод . Тип данных selectedLabels совпадает с типом данных labels.

Индекс выбранных ограничительных рамок, возвращенных как M-by-1 вектор. index вектор содержит индексы к выбранному, окружает bboxes входной параметр.

Типы данных: double

Расширенные возможности

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

|

Введенный в R2018a