Начало работы с детектором SSD Multibox

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

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

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

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

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

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

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

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

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

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

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

Вы можете спроектировать пользовательскую модель SSD программно или использовать приложение 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.

Генерация кода

Чтобы узнать, как сгенерировать CUDA® код с помощью детектора объектов SSD (созданный с помощью ssdObjectDetector объект), см. Генерация кода для обнаружения объектов с помощью Single Shot Multibox Detector.

Маркируйте обучающие данные для глубокого обучения

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

Ссылки

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

См. также

Приложения

Объекты

Функции

Похожие примеры

Подробнее о