exponenta event banner

Начало работы с решением SSD Multibox Detection

Однокадровый мультибоксовый детектор (SSD) использует однокаскадную сеть обнаружения объектов, которая объединяет обнаружения, предсказанные из многомасштабных функций. Твердотельный накопитель быстрее двухступенчатых детекторов, таких как более быстрый детектор R-CNN, и может более точно локализовать объекты по сравнению с одномасштабными детекторами, такими как детектор YOLO v2.

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

Прогнозирование объектов на изображении

SSD использует ящики привязки для обнаружения классов объектов в изображении. Дополнительные сведения см. в разделе Ящики привязки для обнаружения объектов. Твердотельный накопитель предсказывает эти два атрибута для каждого опорного ящика.

  • Смещения анкерного ящика (Anchor box offsets) - уточнение положения анкерного ящика.

  • Вероятность класса - предсказать метку класса, назначенную каждому ящику привязки.

На этом рисунке показаны предопределенные рамки привязки (пунктирные линии) в каждом расположении на карте элементов и уточненное расположение после применения смещений. Соответствующие поля с классом имеют синий и оранжевый цвета.

Передача обучения

С помощью обучения передаче можно использовать предварительно обученный CNN в качестве экстрактора функций в сети обнаружения твердотельных накопителей. Используйте ssdLayers создание сети обнаружения SSD из любого предварительно обученного CNN, такого как MobileNet v2. Список предварительно обученных CNN см. в разделе Предварительно обученные нейронные сети (Deep Learning Toolbox).

Можно также создать пользовательскую модель на основе предварительно подготовленной классификации изображений CNN. Дополнительные сведения см. в разделе Проектирование сети обнаружения твердотельных накопителей.

Разработка сети обнаружения твердотельных накопителей

Можно программно разработать пользовательскую модель твердотельного накопителя или использовать приложение Deep Network Designer (Deep Learning Toolbox) для создания сети вручную. Приложение включает функции Computer Vision Toolbox™ SSD.

Чтобы создать сеть обнаружения SSD Multibox, выполните следующие действия.

  1. Запустите модель с помощью сети извлечения элементов, которая может быть инициализирована с предварительно обученного CNN или обучена с нуля.

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

  3. Задание полей привязки к слою прогнозирования путем присоединения anchorBoxLayer к каждому из слоев.

  4. Подключите выходы anchorBoxLayer объектов к ветви классификации и к ветви регрессии. Ветвь классификации имеет по крайней мере один слой свертки, который предсказывает класс для каждого узлового ящика. Ветвь регрессии имеет по меньшей мере один слой свертки, который предсказывает смещения якорей привязки. Можно добавить дополнительные слои в ветви классификации и регрессии, однако конечный слой свертки (перед слоем объединения) должен иметь количество фильтров в соответствии с этой таблицей.

    ОтделениеКоличество фильтров
    КлассификацияКоличество анкерных ящиков + 1 (для фонового класса)
    РегрессЧетырехкратное количество анкерных ящиков

  5. Для всех уровней прогнозирования объедините выходные данные ветвей классификации с помощью ssdMergeLayer объект. Подключите ssdMergeLayer объект в softmaxLayer (Deep Learning Toolbox) объект, за которым следует focalLossLayer объект. Соберите все выходные данные регрессионных ветвей с помощью ssdMergeLayer снова объект. Подключите ssdMergeLayer вывод в rcnnBoxRegressionLayer объект.

Дополнительные сведения о создании сети этого типа см. в разделе Создание сети обнаружения объектов SSD

Обучение детектора объектов и обнаружение объектов с помощью модели SSD

Чтобы узнать, как обучить детектор объектов с помощью метода глубокого обучения SSD, см. пример «Обнаружение объектов с помощью глубокого обучения SSD».

Создание кода

Как создать код CUDA ® с помощью детектора объектов SSD (созданного с помощью ssdObjectDetector объект), см. раздел Создание кода для обнаружения объектов с помощью многооксового детектора одиночного снимка.

Маркировка данных обучения для глубокого обучения

Приложения Image Labeler, Video Labeler или Ground Truth Labeler (Automated Driving Toolbox) можно использовать для интерактивной маркировки пикселей и экспорта данных меток для обучения. Приложения могут также использоваться для маркировки представляющих интерес прямоугольных областей (ROI) для обнаружения объектов, меток сцен для классификации изображений и пикселей для семантической сегментации. Для создания обучающих данных из любого из экспортированных маркировщиками основных объектов истинности можно использовать objectDetectorTrainingData или pixelLabelTrainingData функции. Дополнительные сведения см. в разделе Обучающие данные для обнаружения объектов и семантической сегментации.

Ссылки

[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.

См. также

Приложения

Объекты

Функции

Связанные примеры

Подробнее