fasterRCNNLayers

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

Описание

пример

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

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

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

Используя эту функцию требует Deep Learning Toolbox™.

Примеры

свернуть все

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

inputImageSize = [224 224 3];

Задайте количество объектов обнаружить.

numClasses = 1;

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

network = 'resnet50';

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

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: [188×1 nnet.cnn.layer.Layer]
    Connections: [205×2 table]

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

analyzeNetwork(lgraph)                      

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

свернуть все

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

Количество классов для сети, чтобы классифицировать, заданный как целое число, больше, чем 1.

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

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

Когда вы задаете сеть как SeriesNetwork объект, DAGNetwork объект, или по наименованию, функция преобразовывает сеть в сеть Faster R-CNN. Это преобразовывает сеть путем добавления сети предложения по области (RPN) и ROI, макс. объединяющего слой, и новую классификацию и слои регрессии, чтобы поддержать обнаружение объектов.

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

Примечание

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

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

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

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

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

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

  • Вставляет новый ROI, макс. объединяющий слой после слоя извлечения признаков, когда слой рядом со слоем извлечения признаков не является макс. слоем объединения.

  • Заменяет текущий слой объединения после слоя извлечения признаков с ROI, макс. объединяющим слой.

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

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

свернуть все

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

Введенный в R2019b