ssdLayers

Сеть обнаружения объектов SSD multibox

Описание

пример

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

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

lgraph = ssdLayers(___,anchorBoxes,predictorLayerNames) возвращает твердотельный накопитель, содержащий пользовательские якорные рамки, заданные 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 multibox. Для получения дополнительной информации о предварительно обученных сетях в MATLAB®, см. «Предварительно обученные глубокие нейронные сети» (Deep Learning Toolbox).

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

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

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

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

свернуть все

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

Примечание

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

Алгоритмы

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

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

bbox = detect(detector,I)

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

Ссылки

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

[2] Huang, Jonathan, Vivek Rathod, Chen Sun, Menglong Zhu, Anoop Korattikara, Alireza Fathi, Ian Fischer, et al. «Компромиссы скорости/точности для современных сверточных детекторов объектов». В 2017 году IEEE Conference on Компьютерное Зрение and Pattern Recognition (CVPR), 3296-97. Гонолулу, HI: IEEE, 2017. https//doi.org/10.1109/CVPR.2017.351 .

Введенный в R2020a