yolov2Layers

Создайте сеть обнаружения объектов YOLO v2

Описание

пример

lgraph = yolov2Layers(imageSize,numClasses,anchorBoxes,network,featureLayer) создает сеть обнаружения объектов YOLO v2 и возвращает его как LayerGraph объект.

пример

lgraph = yolov2Layers(___,'ReorgLayerSource',reorgLayer) задает источник слоя перестройки при помощи пары "имя-значение". Можно задать эту пару "имя-значение", чтобы добавить слой перестройки в архитектуру сети YOLO v2. Задайте этот аргумент в дополнение к входным параметрам в предыдущем синтаксисе.

Примеры

свернуть все

Задайте размер входного изображения для того, чтобы обучить сеть.

imageSize = [224 224 3];

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

numClasses = 1;

Задайте поля привязки.

anchorBoxes = [1 1;4 6;5 3;9 6];

Задайте предварительно обученную сеть ResNet-50 как основную сеть для YOLO v2. Чтобы использовать эту предварительно обученную сеть, необходимо установить 'Модель Deep Learning Toolbox для Сетевого' пакета поддержки ResNet-50.

network = resnet50();

Анализируйте сетевую архитектуру, чтобы просмотреть все сетевые слои.

analyzeNetwork(network)

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

featureLayer = 'activation_49_relu';

Создайте сеть обнаружения объектов YOLO v2. Сеть возвращена как LayerGraph объект.

lgraph = yolov2Layers(imageSize,numClasses,anchorBoxes,network,featureLayer);

Анализируйте архитектуру сети YOLO v2. Слои, следующие за слоем функции, удалены. Серия свертки, ReLU и пакетных слоев нормализации наряду с YOLO v2 преобразовывает и YOLO v2, выходные слои добавляются к слою функции основной сети.

analyzeNetwork(lgraph)

Задайте размер входного изображения для того, чтобы обучить сеть.

imageSize = [224 224 3];

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

numClasses = 1;

Задайте поля привязки.

anchorBoxes = [1 1;4 6;5 3;9 6];

Задайте предварительно обученный ResNet-50 как основную сеть для YOLO v2. Чтобы использовать эту предварительно обученную сеть, необходимо установить 'Модель Deep Learning Toolbox для Сетевого' пакета поддержки ResNet-50.

network = resnet50();

Анализируйте сетевую архитектуру, чтобы просмотреть все сетевые слои.

analyzeNetwork(network)

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

featureLayer = 'activation_49_relu';

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

reorgLayer = 'activation_47_relu';

Создайте сеть обнаружения объектов YOLO v2. Сеть возвращена как LayerGraph объект.

lgraph = yolov2Layers(imageSize,numClasses,anchorBoxes,network,featureLayer,'ReorglayerSource',reorgLayer);

Анализируйте архитектуру сети YOLO v2. Слои, следующие за слоем функции, удалены. Подсеть обнаружения наряду с YOLO v2 преобразовывает и YOLO v2, выходные слои добавляются к слою функции основной сети. Слой перестройки и слой конкатенации глубины также добавляются к сети. Слой YOLO v2 reorg реорганизовывает размерность выходных функций от activation_47_relu слой. Слой конкатенации глубины конкатенирует выход слоя перестройки с выходом более высокого слоя.

analyzeNetwork(lgraph)

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

свернуть все

Размер входного изображения, заданного как одно из этих значений:

  • Двухэлементный вектор формы [H W] - Для полутонового изображения размера H-by-W

  • Трехэлементный вектор формы [H W 3] - Для цветного изображения RGB размера H-by-W

Количество классов объектов, заданных как положительное целое число.

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

Размер каждого поля привязки определяется на основе шкалы и соотношения сторон различных классов объектов, существующих во входных обучающих данных. Кроме того, размер каждого поля привязки должен быть меньшим, чем или равным размеру входного изображения. Можно использовать кластеризирующийся подход в оценке полей привязки от обучающих данных. Для получения дополнительной информации смотрите Оценочные Поля Привязки От Обучающих данных.

Предварительно обученная сверточная нейронная сеть, заданная как LayerGraph, DAGNetwork, или SeriesNetwork объект. Эта предварительно обученная сверточная нейронная сеть используется в качестве основы для сети обнаружения объектов YOLO v2. Для получения дополнительной информации на предварительно обученных сетях в MATLAB®, смотрите Предварительно обученные Глубокие нейронные сети (Deep Learning Toolbox).

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

Примечание

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

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

Примечание

Вход к слою перестройки должен быть от любого из сетевых слоев, которые лежат выше слоя функции.

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

свернуть все

Сеть обнаружения объектов YOLO v2, возвращенная как LayerGraph объект.

Примечание

Значение по умолчанию для Normalization свойство изображения ввело слой в возвращенном lgraph объект установлен в Normalization свойство основной сети задано в network.

Алгоритмы

yolov2Layers функция создает сеть YOLO v2, которая представляет сетевую архитектуру для детектора объектов YOLO v2. Используйте trainYOLOv2ObjectDetector функция, чтобы обучить сеть YOLO v2 для обнаружения объектов. Функция возвращает объект, который генерирует сетевую архитектуру для сети обнаружения объектов YOLO v2, представленной в [1] и [2].

yolov2Layers использует предварительно обученную нейронную сеть в качестве основной сети, в которую она добавляет подсеть обнаружения, требуемую для создания сети обнаружения объектов YOLO v2. Учитывая основную сеть, yolov2Layers удаляет все слои, следующие за слоем функции в основной сети, и добавляет подсеть обнаружения. Подсеть обнаружения включает группы последовательно связанной свертки, ReLU и пакетные слои нормализации. YOLO v2 преобразовывает слой и YOLO v2, выходной слой добавляется к подсети обнаружения. Если вы задаете пару "имя-значение" 'ReorgLayerSource', сеть YOLO v2 конкатенирует выход слоя перестройки с выходом слоя функции.

Для получения информации о создании пользовательского слоя слоем сети YOLO v2 смотрите, Создают Сеть обнаружения объектов YOLO v2.

Ссылки

[1] Джозеф. R, С. К. Диввэла, Р. Б. Джиршик и Ф. Али. "Вы Только Взгляд Однажды: Объединенное, Обнаружение объектов В реальном времени". В Продолжениях Конференции по IEEE по Компьютерному зрению и Распознаванию образов (CVPR), стр 779–788. Лас-Вегас, NV: CVPR, 2016.

[2] Джозеф. R и Ф. Али. "YOLO 9000: Лучше, Быстрее, Более сильный". В Продолжениях Конференции по IEEE по Компьютерному зрению и Распознаванию образов (CVPR), стр 6517–6525. Гонолулу, HI: CVPR, 2017.

Расширенные возможности

Введенный в R2019a