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

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

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

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

  • Умные системы наблюдения

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

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

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

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

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

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

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

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

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

R-CNN

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

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

Быстрый R-CNN

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

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

Faster R-CNN

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

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

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

Это семейство детекторов объектов использует предложения по области обнаружить объекты в изображениях. Количество предложенных областей диктует время, которое требуется, чтобы обнаружить объекты в изображении. Быстрый 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 классификации изображений. См. Проект R-CNN, Быстрый R-CNN, и раздел Faster R-CNN Model и приложение Deep Network Designer (Deep Learning Toolbox).

Спроектируйте R-CNN, быстрый R-CNN и модель Faster R-CNN

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

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

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

  2. Быстрые сборки модели 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

Маркируйте Training Data for Deep Learning

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

Ссылки

[1] Zitnick, К. Лоуренс и П. Доллэр. "Поля ребра: Определение местоположения объектных предложений от ребер". Компьютерное-зрение-ECCV. Springer International Publishing. Страницы 391-4050. 2014.

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

[3] Girshick, Росс. "Быстрое r-cnn". Продолжения Международной конференции IEEE по вопросам Компьютерного зрения. 2015

[4] Жэнь, Shaoqing, Kaiming он, Росс Джиршик и Цзянь Sun. "Faster R-CNN: к обнаружению объектов в реальном времени с сетями предложения по области". Усовершенствования в нейронных системах обработки информации. Издание 28, 2015.

Смотрите также

Приложения

Функции

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

Больше о