Начало работы с R-CNN, Fast R-CNN и Faster R-CNN

Object detection - процесс нахождения и классификации объектов в изображении. Один подход глубокого обучения, области со сверточными нейронными сетями (R-CNN), объединяет предложения прямоугольных областей с функциями сверточных нейронных сетей. R-CNN является двухэтапным алгоритмом обнаружения. Первый этап идентифицирует подмножество областей в изображении, которое может содержать объект. Второй этап классифицирует объект в каждой области.

Приложения для детекторов объектов R-CNN включают:

  • Автономное управление автомобилем

  • Интеллектуальные системы наблюдения

  • Распознавание лиц

Computer Vision Toolbox™ предоставляет детекторы объектов для алгоритмов R-CNN, Fast R-CNN и Faster R-CNN.

Instance segmentation расширяется при обнаружении объектов, обеспечивая пиксельную сегментацию отдельных обнаруженных объектов. Computer Vision Toolbox предоставляет слои, поддерживающие подход глубокого обучения для сегментации образца под названием Mask R-CNN. Для получения дополнительной информации смотрите Начало работы с Mask R-CNN для сегментации образцов.

Обнаружение объектов с использованием алгоритмов R-CNN

Модели для обнаружения объектов с использованием областей с CNNs основаны на следующих трех процессах:

  • Найдите в изображении области, которые могут содержать объект. Эти области называются region proposals.

  • Извлеките функции CNN из областей.

  • Классифицируйте объекты с помощью извлечённых функций.

Существует три варианта R-CNN. Каждый вариант пытается оптимизировать, ускорить или улучшить результаты одного или нескольких из этих процессов.

R-CNN

Детектор R-CNN [2] сначала генерирует предложения областей с помощью алгоритма, такого как Edge Boxes [1]. Области предложений вырезаются из изображения и изменяются размеры. Затем CNN классифицирует обрезанные и изменённые области. Наконец, ограничительные рамки предложения по региону уточняются машиной опорных векторов (SVM), которая обучается с использованием функций CNN.

Используйте trainRCNNObjectDetector функция для обучения детектора объектов R-CNN. Функция возвращает rcnnObjectDetector объект, который обнаруживает объекты в изображении.

Быстрый R-CNN

Как и в детекторе R-CNN, детектор Fast R-CNN [3] также использует такой алгоритм, как Edge Boxes, чтобы генерировать предложения по областям. В отличие от детектора R-CNN, который выращивает и изменяет размеры областей, детектор Fast R-CNN обрабатывает все изображение. В то время как детектор R-CNN должен классифицировать каждую область, Fast R-CNN объединяет функции CNN, соответствующие каждому предложению области. Быстрый R-CNN эффективнее, чем R-CNN, потому что в детекторе Fast R-CNN расчетов для перекрываемых областей разделяются.

Используйте trainFastRCNNObjectDetector функция для обучения детектора объектов Fast R-CNN. Функция возвращает fastRCNNObjectDetector который обнаруживает объекты из изображения.

Faster R-CNN

Детектор Faster R-CNN [4] добавляет сеть предложений регионов (RPN), чтобы сгенерировать предложения областей непосредственно в сети вместо использования внешнего алгоритма, такого как Edge Boxes. Для обнаружения объектов RPN использует якорные ящики. Генерация предложений областей в сети происходит быстрее и лучше настраивается на ваши данные.

Используйте trainFasterRCNNObjectDetector функция для обучения детектора объектов Faster R-CNN. Функция возвращает fasterRCNNObjectDetector который обнаруживает объекты из изображения.

Сравнение детекторов объектов R-CNN

Это семейство детекторов объектов использует предложения областей для обнаружения объектов в изображениях. Количество предлагаемых регионов диктует время, необходимое для обнаружения объектов в изображении. Детекторы Fast R-CNN и Faster R-CNN предназначены для улучшения эффективности обнаружения с большим числом регионов.

Детектор R-CNNОписание
trainRCNNObjectDetector
  • Медленное обучение и обнаружение

  • Позволяет настраиваемое предложение по области

trainFastRCNNObjectDetector
  • Позволяет настраиваемое предложение по области

trainFasterRCNNObjectDetector
  • Оптимальная эффективность во время выполнения

  • Не поддерживает пользовательское предложение по области

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

Можно использовать предварительно обученную сверточную нейронную сеть (CNN) в качестве базиса для детектора R-CNN, также называемого transfer learning. См. «Предварительно обученные глубокие нейронные сети» (Deep Learning Toolbox). Используйте одну из следующих сетей с trainRCNNObjectDetector, trainFasterRCNNObjectDetector, или trainFastRCNNObjectDetector функций. Чтобы использовать любую из этих сетей, необходимо установить соответствующую модель Deep Learning Toolbox™:

Можно также спроектировать пользовательскую модель на основе предварительно обученной классификации изображений CNN. Смотрите проект an R-CNN, Fast R-CNN, и Faster R-CNN Model и приложение Deep Network Designer (Deep Learning Toolbox).

Проектируйте R-CNN, Fast R-CNN и модель Faster R-CNN

Вы можете проектировать пользовательские модели R-CNN на основе предварительно обученной классификации изображений CNN. Можно также использовать Deep Network Designer (Deep Learning Toolbox) для создания, визуализации и редактирования нейронной сети для глубокого обучения.

  1. Базовая модель R-CNN начинается с предварительно обученной сети. Последние три слоя классификации заменяются новыми слоями, специфичными для классов объектов, которые необходимо обнаружить.

    Пример создания сети обнаружения объектов R-CNN см. в разделе Создание сети обнаружения объектов R-CNN

  2. Модель Fast R-CNN основана на базовой модели R-CNN. Добавляется слой регрессии коробки для улучшения положения объекта в изображении путем изучения набора смещений коробки. Слой объединения ROI вставляется в сеть, чтобы объединить функции CNN для каждого предложения области.

    Пример создания Сети обнаружения объектов Fast R-CNN . см. в разделе Создание Сети обнаружения объектов Fast R-CNN .

  3. Модель Faster R-CNN основана на модели Fast R-CNN. Добавляется сеть области предложений для создания предложений области вместо получения предложений от внешнего алгоритма.

    Пример создания сети обнаружения объектов Faster R-CNN см. в разделе Создание сети обнаружения объектов Faster R-CNN

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

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

Ссылки

[1] Зитник, К. Лоуренс и П. Доллар. «Краевые рамки: определение местоположения предложений объектов с ребер». Computer Vision-ECCV. Springer International Publishing. Страницы 391-4050. 2014.

[2] Гиршик, Р., Дж. Донахью, Т. Даррелл и Дж. Малик. «Богатые иерархии функций для точного обнаружения объектов и семантической сегментации». CVPR '14 Материалы Конференции IEEE 2014 по компьютерному зрению и распознаванию шаблона. Страницы 580-587. 2014

[3] Гиршик, Росс. «Быстрый r-cnn». Материалы Международной конференции IEEE по компьютерному зрению. 2015

[4] Ren, Shaoqing, Kaiming He, Ross Girshick, and Jian Sun. «Faster R-CNN: To Real-Time Обнаружения объектов with Области Opporation Networks». Усовершенствования в системах нейронной обработки информации. Том 28, 2015.

См. также

Приложения

Функции

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

Подробнее о