fasterRCNNLayers

Создайте более быструю сеть обнаружения объектов R-CNN

Описание

пример

lgraph = fasterRCNNLayers(inputImageSize,numClasses,anchorBoxes,network) возвращает сеть Faster R-CNN как layerGraph (Deep Learning Toolbox) объект. Сеть Faster R-CNN является сверточным детектором объектов на основе нейронной сети. Детектор предсказывает координаты ограничивающих блоков, счета объективности и классификационные оценки для набора анкерных блоков. Для обучения созданной сети используйте trainFasterRCNNObjectDetector функция. Для получения дополнительной информации смотрите Начало работы с R-CNN, Fast R-CNN и Faster R-CNN.

lgraph = fasterRCNNLayers(inputImageSize,numClasses,anchorBoxes,network,featureLayer) возвращает сеть обнаружения объектов на основе заданного featureLayer сети. Используйте этот синтаксис, когда вы задаете сеть как SeriesNetwork (Deep Learning Toolbox), DAGNetwork (Deep Learning Toolbox), или layerGraph (Deep Learning Toolbox). объект.

lgraph = fasterRCNNLayers(___,Name,Value) возвращает сеть обнаружения объектов с необязательными входными свойствами, заданными одним или несколькими аргументами пары "имя-значение".

Для использования этой функции требуется Deep Learning Toolbox™.

Примеры

свернуть все

Задайте размер изображения.

inputImageSize = [224 224 3];

Укажите количество объектов для обнаружения.

numClasses = 1;

Используйте предварительно обученную ResNet-50 сеть в качестве базовой сети для сети Faster R-CNN. Необходимо загрузить resnet50 (Deep Learning Toolbox) пакет поддержки.

network = 'resnet50';

Укажите слой сети, который будет использоваться для редукции данных. Можно использовать analyzeNetwork (Deep Learning Toolbox) функция, чтобы видеть все имена слоев в сети.

featureLayer = 'activation_40_relu';

Задайте анкерные рамки. Можно также использовать estimateAnchorBoxes функция для оценки анкерных коробок из ваших обучающих данных.

anchorBoxes = [64,64; 128,128; 192,192];

Создайте сеть обнаружения объектов Faster R-CNN.

lgraph = fasterRCNNLayers(inputImageSize,numClasses,anchorBoxes, ...
                          network,featureLayer)
lgraph = 
  LayerGraph with properties:

         Layers: [188x1 nnet.cnn.layer.Layer]
    Connections: [205x2 table]
     InputNames: {'input_1'}
    OutputNames: {1x4 cell}

Визуализируйте сеть с помощью сетевого анализатора.

analyzeNetwork(lgraph)                      

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

свернуть все

Размер входного изображения сети, заданный как вектор с 3 элементами в формате [height, width, depth]. depth - количество каналов изображений. Установите depth значение 3 для изображений RGB, чтобы 1 для полутоновых изображений или к количеству каналов для мультиспектральных и гиперспектральных изображений.

Количество классов для классификации сети, заданное как целое число, больше 0.

Анкерные коробки, заданные как матрица M-на-2 M анкерных коробок в формате [height, width]. Анкерные коробки определяются на основе шкалы и соотношения сторон объектов в обучающие данные наборе. Например, если объект локализован квадратным окном, то можно задать размер якорных полей равным [64 64;128 128].

Предварительно обученная классификационная сеть, заданная как a SeriesNetwork (Deep Learning Toolbox), DAGNetwork (Deep Learning Toolbox), или layerGraph (Deep Learning Toolbox), или как на:

Когда вы задаете сеть как SeriesNetwork (Deep Learning Toolbox) объект, а DAGNetwork (Deep Learning Toolbox) объект, или по имени, функция преобразует сеть в сеть Faster R-CNN. Он преобразует сеть путем добавления сети предложений областей (RPN) и слоя объединения ROI max, а также новых слоев классификации и регрессии для поддержки обнаружения объектов.

Слой редукции данных, заданный как вектор символов или строковый скаляр. Используйте один из более глубоких слоев в заданной сети. Вы можете использовать analyzeNetwork (Deep Learning Toolbox) функция для просмотра имен слоев входной сети.

Примечание

Можно задать любой слой сети, кроме полносвязного слоя, в качестве слоя функции.

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

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

Пример: 'ROIMaxPoolingLayer', 'auto'

Максимальный слой объединения ROI, заданный как 'auto', 'insert', или 'replace'. Можно задать, roiMaxPooling2dLayer ли заменяет слой объединения или следует за слоем редукции данных.

Если вы выбираете 'auto', функция:

  • Вставляет новый слой максимального объединения ROI после слоя редукции данных, когда слой рядом со слоем редукции данных не является слоем максимального объединения.

  • Заменяет текущий слой объединения после слоя редукции данных слоем объединения ROI max.

Информация только для чтения макс выходного размера слоя объединения, заданный как 'auto' или 2-элементный вектор положительных целых чисел. Когда вы устанавливаете значение 'auto'функция определяет размер выхода на основе ROIMaxPoolingLayer свойство. Он использует размер выхода слоя редукции данных или слоя объединения, следующего за слоем редукции данных.

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

свернуть все

Сеть обнаружения объектов, возвращенная как layerGraph (Deep Learning Toolbox) объект. Сетевые выходы и основа imageInputLayer значения нормализации равны.

Введенный в R2019b