exponenta event banner

fasterRCNNLayers

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

Описание

пример

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

lgraph = fasterRCNNLayers(inputImageSize,numClasses,anchorBoxes,network,featureLayer) возвращает сеть обнаружения объектов на основе указанного featureLayer сети. Этот синтаксис используется при указании сети в качестве SeriesNetwork (инструментарий глубокого обучения), DAGNetwork (инструментарий глубокого обучения), или layerGraph (инструментарий глубокого обучения). объект.

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

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

Примеры

свернуть все

Укажите размер изображения.

inputImageSize = [224 224 3];

Укажите количество обнаруживаемых объектов.

numClasses = 1;

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

network = 'resnet50';

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

featureLayer = 'activation_40_relu';

Укажите поля привязки. Вы также можете использовать estimateAnchorBoxes для оценки полей привязки на основе данных обучения.

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

Создайте более быструю сеть обнаружения объектов 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-элементный вектор в формате [высота, ширина, глубина]. глубина - количество каналов изображения. Установить глубину в 3 для изображений RGB, для 1 для изображений в градациях серого или к числу каналов для мультиспектральных и гиперспектральных изображений.

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

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

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

  • 'alexnet (Инструментарий глубокого обучения) '

  • 'vgg16 (Инструментарий глубокого обучения) '

  • 'vgg19 (Инструментарий глубокого обучения) '

  • 'resnet18 (Инструментарий глубокого обучения) '

  • 'resnet50 (Инструментарий глубокого обучения) '

  • 'resnet101 (Инструментарий глубокого обучения) '

  • 'inceptionv3 (Инструментарий глубокого обучения) '

  • 'googlenet (Инструментарий глубокого обучения) '

  • 'inceptionresnetv2 (Инструментарий глубокого обучения) '

  • 'squeezenet (Инструментарий глубокого обучения) '

  • 'mobilenetv2 (Инструментарий глубокого обучения) '

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

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

Примечание

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

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

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

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

Уровень максимального пула ROI, указанный как 'auto', 'insert', или 'replace'. Можно указать, roiMaxPooling2dLayer заменяет слой объединения или следует за слоем извлечения элементов.

При выборе 'auto', функция:

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

  • Заменяет текущий уровень объединения после уровня извлечения элементов уровнем максимального объема окупаемости инвестиций.

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

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

свернуть все

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

Представлен в R2019b