exponenta event banner

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 Model for ResNet-50 Network».

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 Model for ResNet-50 Network».

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 добавляются к характерному уровню базовой сети. Уровень реорганизации и уровень конкатенации глубины также добавляются в сеть. Слой reorg YOLO v2 реорганизует размер выходных элементов из activation_47_relu слой. Уровень конкатенации глубины объединяет выходные данные уровня реорганизации с выходными данными более высокого уровня.

analyzeNetwork(lgraph)

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

свернуть все

Размер входного изображения, указанный как одно из следующих значений:

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

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

Число классов объектов, указанное как положительное целое число.

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

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

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

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

Примечание

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

Имя уровня реорганизации, указанное как вектор символов или скаляр строки. Название одного из более глубоких слоев в network используется в качестве входных данных для уровня реорганизации. Вы можете использовать analyzeNetwork Функция (Deep Learning Toolbox) для просмотра имен слоев на входе 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] Иосиф. Р., С. К. Диввала, Р. Б. Гиршик и Ф. Али. «Вы смотрите только один раз: унифицированное обнаружение объектов в реальном времени». В материалах Конференции IEEE по компьютерному зрению и распознаванию образов (CVPR), стр. 779-788. Лас-Вегас, NV: CVPR, 2016.

[2] Иосиф. Р и Ф. Али. «YOLO 9000: лучше, быстрее, сильнее». В материалах Конференции IEEE по компьютерному зрению и распознаванию образов (CVPR), стр. 6517-6525. Гонолулу, HI: CVPR, 2017.

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

.
Представлен в R2019a