selectStrongestBboxMulticlass

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

Синтаксис

selectedBboxes = selectStrongestBboxMulticlass(bboxes,scores,labels)
[selectedBboxes,selectedScores,selectedLabels,index] = selectStrongestBboxMulticlass(bboxes,scores,labels)
[___] = selectStrongestBboxMulticlass(___,Name,Value)

Описание

пример

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. Каждая строка задана в формате [x y width height], где x и y соответствуют левому верхнему углу ограничительной рамки. Вход bboxes должен быть действительным, конечным, и неразреженным.

Типы данных: 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'RatioType', 'Union' устанавливает свойство 'RatioType' на 'Union'.

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

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

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

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

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

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

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

свернуть все

Выбранные ограничительные рамки, возвращенные как M-by-4 матрица. Вывод selectedBboxes возвращает выбранные ограничительные рамки во вход bboxes, которые имеют самый высокий счет уверенности. Функция использует NMS, чтобы устранить перекрывающиеся ограничительные рамки. Тип данных selectedBboxes совпадает с типом данных bboxes.

Множество выбранных ограничительных рамок, возвращенных как 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