classifyRegions

Классифицируйте объекты на области изображений с помощью Быстрого детектора объектов R-CNN

Описание

пример

[labels,scores] = classifyRegions(detector,I,rois) классифицирует объекты в необходимых областях изображения I, использование Быстрого R-CNN (области со сверточными нейронными сетями) детектор объектов. Для каждой области, classifyRegions возвращает метку класса с соответствующей самой высокой классификационной оценкой.

При использовании этой функции, использования CUDA® активированный NVIDIA® Графический процессор настоятельно рекомендован. Графический процессор значительно уменьшает время вычисления. Использование графического процессора требует Parallel Computing Toolbox™. Для получения информации о поддерживаемом вычислите возможности, смотрите Поддержку графического процессора Релизом (Parallel Computing Toolbox).

[labels,scores,allScores] = classifyRegions(detector,I,rois) также возвращает все классификационные оценки каждой области. Баллы возвращены в M-by-N матрица областей M и меток класса N.

[___] = classifyRegions(___,'ExecutionEnvironment',resource) указывает, что аппаратный ресурс раньше классифицировал объект в областях изображений: 'auto', 'cpu', или 'gpu'. Можно использовать этот синтаксис с любым из предыдущих синтаксисов.

Примеры

свернуть все

Сконфигурируйте Быстрый детектор объектов R-CNN и используйте его, чтобы классифицировать объекты в нескольких областях изображения.

Загрузите fastRCNNObjectDetector объект, который предварительно обучен обнаружить знаки Стоп.

data = load('rcnnStopSigns.mat','fastRCNN');
fastRCNN = data.fastRCNN;

Читайте в тестовом изображении, содержащем знак Стоп.

I = imread('stopSignTest.jpg');
figure
imshow(I)

Figure contains an axes object. The axes object contains an object of type image.

Задайте необходимые области, чтобы классифицировать в тестовом изображении.

rois = [416   143    33    27
        347   168    36    54];

Классифицируйте области изображений и смотрите выходные метки и классификационные оценки. Метки прибывают из ClassNames свойство детектора.

[labels,scores] = classifyRegions(fastRCNN,I,rois)
labels = 2x1 categorical
     stopSign 
     Background 

scores = 2x1 single column vector

    0.9969
    1.0000

Детектор имеет высокое доверие к классификациям. Отобразите классифицированные области на тестовом изображении.

detectedI = insertObjectAnnotation(I,'rectangle',rois,cellstr(labels));
 
figure
imshow(detectedI)

Figure contains an axes object. The axes object contains an object of type image.

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

свернуть все

Быстрый детектор объектов R-CNN в виде fastRCNNObjectDetector объект. Чтобы создать этот объект, вызовите trainFastRCNNObjectDetector функция с обучающими данными, как введено.

Введите изображение в виде действительного, неразреженного, изображение RGB или полутонового.

Типы данных: uint8 | uint16 | int16 | double | single | logical

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

Аппаратный ресурс раньше классифицировал области изображений в виде 'auto', 'gpu', или 'cpu'.

  • 'auto' — Используйте графический процессор, если это доступно. В противном случае используйте центральный процессор.

  • 'gpu' — Используйте графический процессор. Чтобы использовать графический процессор, у вас должен быть Parallel Computing Toolbox, и CUDA включил NVIDIA графический процессор. Если подходящий графический процессор не доступен, функция возвращает ошибку. Для получения информации о поддерживаемом вычислите возможности, смотрите Поддержку графического процессора Релизом (Parallel Computing Toolbox).

  • 'cpu' — Используйте центральный процессор.

Пример: 'ExecutionEnvironment','cpu'

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

свернуть все

Метки классификации областей, возвращенных как M-by-1 категориальный массив. M является числом регионов интереса к rois. Каждое имя класса в labels соответствует классификационной оценке в scores и необходимая область в rois. classifyRegions получает имена классов из входа detector.

Самая высокая классификационная оценка на область, возвращенную как M-by-1 вектор из значений в области значений [0, 1]. M является числом регионов интереса к rois. Каждая классификационная оценка в scores соответствует имени класса в labels и необходимая область в rois. Более высокий счет указывает на более высокое доверие к классификации.

Все классификационные оценки на область, возвращенную как M-by-N матрица значений в области значений [0, 1]. M является числом регионов в rois. N является количеством имен классов, сохраненных во входе detector. Каждая строка классификационных оценок в allscores соответствует необходимой области в rois. Более высокий счет указывает на более высокое доверие к классификации.

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

Приложения

Функции

Объекты

Введенный в R2017a