yolov2Layers

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

Описание

Вы только смотрите, если версия 2 (YOLO v2) является основанным на сверточной нейронной сети (CNN) объектным детектором. Сеть YOLO v2 предсказывает координаты ограничительных рамок, очков объектности и очков классификации от предопределенного набора полей привязки. Функция yolov2Layers создает сеть YOLO v2, которая представляет сетевую архитектуру для детектора объекта YOLO v2. Используйте функцию trainYOLOv2ObjectDetector, чтобы обучить сеть YOLO v2 для обнаружения объектов.

Создание

Синтаксис

lgraph = yolov2Layers(imageSize,numClasses,anchorBoxes,network,featureLayer)
lgraph = yolov2Layers(___,'ReorgLayerSource',reorgLayer)

Описание

пример

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

пример

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

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

развернуть все

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

  • Двухэлементный вектор формы [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

Примеры

свернуть все

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

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)

Алгоритмы

Объект YOLOv2Layers генерирует сетевую архитектуру для сети обнаружения объектов YOLO v2, представленной в [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

Для просмотра документации необходимо авторизоваться на сайте