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

analyzeNetwork(lgraph)

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

свернуть все

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

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

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

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

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

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

Предварительно обученная сверточная нейронная сеть, заданная как LayerGraph (Deep Learning Toolbox), DAGNetwork (Deep Learning Toolbox), или SeriesNetwork (Deep Learning Toolbox) объект. Эта предварительно обученная сверточная нейронная сеть используется в качестве основы для сети обнаружения объектов 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.

Алгоритмы

The 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] Джозеф. Р и Ф. Али. «ЙОЛО 9000: Лучше, Быстрее, Сильнее». В работе Конференции IEEE по компьютерному зрению и распознаванию шаблона (CVPR), стр. 6517-6525. Гонолулу, HI: CVPR, 2017.

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

.
Введенный в R2019a