exponenta event banner

ssdLayers

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

Описание

пример

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

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

  • vgg16 (инструментарий для глубокого обучения)

  • resnet50 (инструментарий для глубокого обучения)

  • resnet101 (инструментарий для глубокого обучения)

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

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

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

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

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

свернуть все

Сеть обнаружения объектов SSD multibox, возвращенная как LayerGraph(Панель инструментов глубокого обучения).

Примечание

Значение по умолчанию для 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: однокадровый мультибоксовый детектор». В «Computer Vision - ECCV 2016» под редакцией Бастиана Лейбе, Иржи Матаса, Нику Себе, и Макса Веллинга, 9905: 21-37. Cham: Springer International Publishing, 2016. https://doi.org/10.1007/978-3-319-46448-0_2.

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

Представлен в R2020a