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 для сегментации образцов.
Модели для обнаружения объектов с использованием областей с CNNs основаны на следующих трех процессах:
Найдите в изображении области, которые могут содержать объект. Эти области называются region proposals.
Извлеките функции CNN из областей.
Классифицируйте объекты с помощью извлечённых функций.
Существует три варианта R-CNN. Каждый вариант пытается оптимизировать, ускорить или улучшить результаты одного или нескольких из этих процессов.
Детектор R-CNN [2] сначала генерирует предложения областей с помощью алгоритма, такого как Edge Boxes [1]. Области предложений вырезаются из изображения и изменяются размеры. Затем CNN классифицирует обрезанные и изменённые области. Наконец, ограничительные рамки предложения по региону уточняются машиной опорных векторов (SVM), которая обучается с использованием функций CNN.
Используйте trainRCNNObjectDetector
функция для обучения детектора объектов R-CNN. Функция возвращает rcnnObjectDetector
объект, который обнаруживает объекты в изображении.
Как и в детекторе 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 [4] добавляет сеть предложений регионов (RPN), чтобы сгенерировать предложения областей непосредственно в сети вместо использования внешнего алгоритма, такого как Edge Boxes. Для обнаружения объектов RPN использует якорные ящики. Генерация предложений областей в сети происходит быстрее и лучше настраивается на ваши данные.
Используйте trainFasterRCNNObjectDetector
функция для обучения детектора объектов Faster R-CNN. Функция возвращает fasterRCNNObjectDetector
который обнаруживает объекты из изображения.
Это семейство детекторов объектов использует предложения областей для обнаружения объектов в изображениях. Количество предлагаемых регионов диктует время, необходимое для обнаружения объектов в изображении. Детекторы 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™:
'alexnet
(Deep Learning Toolbox) '
'vgg16
(Deep Learning Toolbox) '
'vgg19
(Deep Learning Toolbox) '
'resnet50
(Deep Learning Toolbox) '
'resnet101
(Deep Learning Toolbox) '
'inceptionv3
(Deep Learning Toolbox) '
'googlenet
(Deep Learning Toolbox) '
'inceptionresnetv2
(Deep Learning Toolbox) '
'squeezenet
(Deep Learning Toolbox) '
Можно также спроектировать пользовательскую модель на основе предварительно обученной классификации изображений CNN. Смотрите проект an R-CNN, Fast R-CNN, и Faster R-CNN Model и приложение Deep Network Designer (Deep Learning Toolbox).
Вы можете проектировать пользовательские модели R-CNN на основе предварительно обученной классификации изображений CNN. Можно также использовать Deep Network Designer (Deep Learning Toolbox) для создания, визуализации и редактирования нейронной сети для глубокого обучения.
Базовая модель R-CNN начинается с предварительно обученной сети. Последние три слоя классификации заменяются новыми слоями, специфичными для классов объектов, которые необходимо обнаружить.
Пример создания сети обнаружения объектов R-CNN см. в разделе Создание сети обнаружения объектов R-CNN
Модель Fast R-CNN основана на базовой модели R-CNN. Добавляется слой регрессии коробки для улучшения положения объекта в изображении путем изучения набора смещений коробки. Слой объединения ROI вставляется в сеть, чтобы объединить функции CNN для каждого предложения области.
Пример создания Сети обнаружения объектов Fast R-CNN . см. в разделе Создание Сети обнаружения объектов Fast R-CNN .
Модель 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.
fasterRCNNObjectDetector
| fastRCNNObjectDetector
| rcnnObjectDetector
| trainFasterRCNNObjectDetector
| trainFastRCNNObjectDetector
| trainRCNNObjectDetector