ssdLayers

Сеть обнаружения мультиобъекта поля SSD

Описание

пример

lgraph = ssdLayers(imageSize,numClasses,baseNetwork) создает сеть обнаружения мультиобъекта поля одного детектора выстрела (SSD) на основе baseNetwork, введите размер изображения и количество классов, которые сеть должна быть сконфигурирована, чтобы классифицировать. Сеть возвращена как LayerGraph Объект (Deep Learning Toolbox).

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

lgraph = ssdLayers(___,anchorBoxes,predictorLayerNames) возвращает SSD, который содержит пользовательские поля привязки, заданные anchorBoxes это соединяется со слоями сети в местоположениях, заданных predictorLayerNames. Задайте эти аргументы в дополнение к входному параметру от предыдущего синтаксиса.

Примеры

свернуть все

Задайте основную сеть.

baseNetwork = 'vgg16';

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

imageSize = [300 300 3];

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

numClasses = 2;

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

lgraph = ssdLayers(imageSize,numClasses,baseNetwork);

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

analyzeNetwork(lgraph)

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

свернуть все

Размер входа отображает в виде одного из этих значений.

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

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

Когда вы устанавливаете baseNetwork введите к 'vgg16', 'resnet50', или 'resnet101', imageSize введите должен иметь форму [H W 3].

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

Предварительно обученная сверточная нейронная сеть в виде LayerGraph (Deep Learning Toolbox), DAGNetwork (Deep Learning Toolbox) или SeriesNetwork Объект (Deep Learning Toolbox) или как одно из этих сетевых имен. Чтобы задать одно из этих имен, необходимо загрузить и установить пакеты сетевой поддержки для соответствующих допустимых сетевых имен.

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

Поля привязки в виде 1 M массивом ячеек для количества M слоев предиктора в сети SSD. Каждый слой предиктора содержит K-by-2 матрица, которая задает поля привязки K формы [height width]. Количество привязки окружает каждый элемент, может варьироваться.

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

Имена слоев во входе в виде M - вектор элемента из строк или 1 M массивом ячеек из символьных векторов. Подсети обнаружения SSD присоединены к слоям предиктора, заданным этим входом.

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

свернуть все

Сеть обнаружения мультиобъекта поля SSD, возвращенная как LayerGraph Объект (Deep Learning Toolbox).

Примечание

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

Алгоритмы

ssdLayers функция создает сеть SSD и возвращает lgraph, объект, который представляет сетевую архитектуру для детектора объектов SSD.

trainSSDObjectDetector функция обучает и возвращает детектор объектов SSD, ssdObjectDetector. Используйте detect возразите функции для ssdObjectDetector объект обнаружить объекты с помощью детектора, обученного с архитектурой сети SSD.

bbox = detect(detector,I)

ssdLayers функционируйте использует предварительно обученную нейронную сеть в качестве основной сети, в которую она добавляет подсеть обнаружения, требуемую для создания сети обнаружения объектов SSD. Учитывая основную сеть, ssdLayers удаляет все слои, следующие за слоем функции в основной сети, и добавляет подсеть обнаружения. Подсеть обнаружения состоит из групп последовательно связанной свертки, исправил линейный модуль (ReLU) и слои нормализации партии. Слой слияния SSD, слой регрессии поля и фокальный слой классификации потерь добавляются к подсети обнаружения.

Ссылки

[1] Лю, Вэй, Драгомир Ангуелов, Думитру Эрхэн, Кристиан Сзеджеди, Скотт Рид, Чэнян Фу и Александр К. Берг. "SSD: Один Выстрел Детектор MultiBox". В Компьютерном зрении – ECCV 2016, отредактированный Бастианом Лайбе, Иржи Матасом, Nicu Sebe и Максом Веллингом, 9905:21-37. Хан: Springer International Publishing, 2016. https://doi.org/10.1007/978-3-319-46448-0_2.

[2] Хуан, Джонатан, Vivek Rathod, Чен Сун, Мэньглун Чжу, Anoop Korattikara, Алиреза Фэти, Иэн Фишер, и др. "Компромиссы Скорости/Точности для современных Сверточных Детекторов объектов". На 2 017 Конференциях по IEEE по Компьютерному зрению и Распознаванию образов (CVPR), 3296-97. Гонолулу, HI:IEEE, 2017. https//doi.org/10.1109/CVPR.2017.351.

Введенный в R2020a