Один детектор мультиполя выстрела (SSD) использует одноступенчатую сеть обнаружения объектов, которая объединяет обнаружения, предсказанные от многошкальных функций. SSD быстрее, чем детекторы 2D этапа, таков как детектор Faster R-CNN и может локализовать объекты более точно по сравнению с анализаторами одно шкалы, такими как детектор YOLO v2.
SSD запускает CNN глубокого обучения на входном изображении, чтобы произвести сетевые предсказания из нескольких карт функции. Детектор объектов собирает и декодирует предсказания, чтобы сгенерировать ограничительные рамки.
SSD использует поля привязки, чтобы обнаружить классы объектов в изображении. Для получения дополнительной информации смотрите Поля Привязки для Обнаружения объектов. SSD предсказывает эти два атрибута для каждого поля привязки.
Смещения поля привязки — Совершенствовали положение поля привязки.
Вероятность класса — Предсказывает метку класса, присвоенную каждому полю привязки.
Этот рисунок показывает предопределенные поля привязки (пунктирные линии) в каждом местоположении в карте функции и усовершенствованном местоположении после того, как смещения будут применены. Совпадающие поля с классом находятся в синем и оранжевом цвете.
С передачей обучения можно использовать предварительно обученный CNN в качестве экстрактора функции в сети обнаружения SSD. Используйте ssdLayers
функция, чтобы создать сеть обнаружения SSD из любого предварительно обученного CNN, такого как MobileNet v2
. Для списка предварительно обученного CNNs смотрите Предварительно обученные Глубокие нейронные сети (Deep Learning Toolbox).
Можно также спроектировать пользовательское основанное на модели на предварительно обученном CNN классификации изображений. Для получения дополнительной информации см. Проект Сеть Обнаружения SSD.
Можно спроектировать пользовательскую модель SSD программно или использовать приложение Deep Network Designer (Deep Learning Toolbox), чтобы вручную создать сеть. Приложение включает функции SSD Computer Vision Toolbox™.
Чтобы спроектировать сеть обнаружения Мультиполя SSD, выполните эти шаги.
Начните модель с сети экстрактора функции, которая может быть инициализирована от предварительно обученного CNN или обучена с нуля.
Выберите слои предсказания из сети извлечения признаков. Любой слой от сети извлечения признаков может использоваться в качестве слоя предсказания. Однако, чтобы усилить преимущества использования многошкальных функций для обнаружения объектов, выберите карты функции различных размеров.
Задайте поля привязки к слою предсказания путем присоединения anchorBoxLayer
к каждому из слоев.
Соедините выходные параметры anchorBoxLayer
объекты к классификации переходят и к ветви регрессии. Ветвь классификации имеет по крайней мере один слой свертки, который предсказывает класс для каждого мозаичного поля привязки. Ветвь регрессии имеет по крайней мере один слой свертки, который предсказывает смещения поля привязки. Можно добавить больше слоев в классификации и ветвях регрессии, однако, итоговый слой свертки (перед слоем слияния) должен иметь количество фильтров согласно этой таблице.
Ветвь | Количество фильтров |
---|---|
Классификация | Количество полей привязки + 1 (для фонового класса) |
Регрессия | Четыре раза количество полей привязки |
Для всех слоев предсказания объедините выходные параметры ветвей классификации при помощи ssdMergeLayer
объект. Соедините ssdMergeLayer
возразите против softmaxLayer
Объект (Deep Learning Toolbox), сопровождаемый focalLossLayer
объект. Соберите все выходные параметры ветвей регрессии при помощи ssdMergeLayer
возразите снова. Соедините ssdMergeLayer
выведите к rcnnBoxRegressionLayer
объект.
Для получения дополнительной информации о создании этого типа сети смотрите, Создают Сеть Обнаружения объектов SSD
Чтобы изучить, как обучить детектор объектов при помощи метода глубокого обучения SSD, смотрите, что Обнаружение объектов Использует пример Глубокого обучения SSD.
Изучить, как сгенерировать код CUDA® с помощью детектора объектов SSD (созданное использование ssdObjectDetector
объект), смотрите Генерацию кода для Обнаружения объектов при помощи Одного Детектора Мультиполя Выстрела.
Можно использовать Image Labeler, Video Labeler или Ground Truth Labeler (Automated Driving Toolbox) (доступный в Automated Driving Toolbox™) приложения, чтобы интерактивно помечать пиксели и экспортировать данные о метке для обучения. Приложения могут также использоваться, чтобы пометить прямоугольные видимые области (ROIs) для обнаружения объектов, метки сцены для классификации изображений и пиксели для семантической сегментации.
[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.
ssdLayers
| trainSSDObjectDetector
| analyzeNetwork
(Deep Learning Toolbox)