exponenta event banner

classifyRegions

Классификация объектов в областях изображения с помощью детектора объектов Fast R-CNN

Описание

пример

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

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

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

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

Примеры

свернуть все

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

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

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

Чтение тестового изображения, содержащего знак остановки.

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

Figure contains an axes. The axes 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. The axes 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' - Использовать графический процессор. Для использования графического процессора необходимо иметь панель инструментов параллельных вычислений и графический процессор NVIDIA с поддержкой CUDA. Если подходящий графический процессор недоступен, функция возвращает ошибку. Сведения о поддерживаемых вычислительных возможностях см. в разделе Поддержка графического процессора по выпуску (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