Открыть сервис

R-CNN

R-CNN (Region-based Convolutional Neural Network) — это архитектура свёрточной нейронной сети, предназначенная для решения задачи обнаружения объектов на изображениях. R-CNN стала одной из первых успешных попыток применения глубокого обучения для локализации и классификации объектов, объединив метод выделения регионов-кандидатов (region proposals) с классификацией на основе свёрточных нейросетей. Алгоритм был предложен в 2014 году группой исследователей из Калифорнийского университета в Беркли (Росс Гиршик, Джефф Донхью, Тревор Даррелл и Цзянь Дэн) и заложил основу для целого семейства методов, включая Fast R-CNN и Faster R-CNN.

История развития

До появления R-CNN задачи компьютерного зрения, такие как классификация и обнаружение объектов, решались преимущественно с помощью методов, основанных на ручном выделении признаков (например, HOG, SIFT) и классических алгоритмах машинного обучения (SVM, AdaBoost). Прорыв в классификации изображений, связанный с победой сети AlexNet на конкурсе ImageNet в 2012 году, продемонстрировал потенциал глубоких свёрточных нейронных сетей (CNN). Однако прямое применение CNN к задаче обнаружения объектов было затруднено, так как объекты могут находиться в любой части изображения и иметь разный размер.

Алгоритм R-CNN, предложенный в 2014 году, решил эту проблему, введя двухэтапный подход:

  1. Выделение регионов-кандидатов с помощью селективного поиска (Selective Search).
  2. Классификация каждого региона с помощью предварительно обученной CNN (например, AlexNet) и линейного классификатора SVM.

В 2015 году те же авторы представили улучшенную версию — Fast R-CNN, которая объединила обучение CNN и классификатора в единый процесс, а также ввела слой Region of Interest (RoI) Pooling, что значительно ускорило работу. В 2016 году была предложена Faster R-CNN, где этап выделения регионов-кандидатов был заменён на отдельную нейронную сеть — Region Proposal Network (RPN), что сделало процесс полностью обучаемым и ещё более быстрым.

Принцип работы

R-CNN работает в три основных этапа:

1. Генерация регионов-кандидатов

На вход подаётся цветное изображение произвольного размера. С помощью алгоритма селективного поиска (Selective Search) генерируется от 2000 до 3000 потенциальных прямоугольных областей, которые с высокой вероятностью содержат объекты. Селективный поиск группирует пиксели на основе цветовой, текстурной и пространственной близости, что позволяет получать регионы разного масштаба и соотношения сторон.

2. Извлечение признаков

Каждый выделенный регион масштабируется (warp) до фиксированного размера, необходимого для работы CNN (например, 227×227 пикселей для AlexNet). Затем каждый регион независимо пропускается через свёрточную нейронную сеть, которая преобразует его в вектор признаков фиксированной длины (например, 4096-мерный вектор для AlexNet). Важно, что CNN предварительно обучена на большом наборе данных (ImageNet) для задачи классификации, а затем дообучается (fine-tuning) на задаче обнаружения объектов.

3. Классификация и регрессия

Полученные векторы признаков для каждого региона подаются на два параллельных полносвязных слоя:

  • Классификатор: набор бинарных SVM-классификаторов (по одному на каждый класс объектов). Каждый SVM определяет, принадлежит ли регион к данному классу.
  • Регрессор ограничивающих рамок (Bounding Box Regressor): корректирует координаты исходного региона, чтобы точнее совпадать с границами объекта. Регрессор обучается предсказывать смещения (offsets) относительно исходного прямоугольника.

После классификации применяется подавление немаксимумов (Non-Maximum Suppression, NMS), чтобы удалить дублирующиеся и перекрывающиеся предсказания для одного и того же объекта.

Ключевые особенности

  • Двухэтапная архитектура: разделение на генерацию регионов и классификацию.
  • Использование предварительного обучения: CNN дообучается на задаче обнаружения, что позволяет использовать знания, полученные на больших наборах данных.
  • Независимая обработка регионов: каждый регион обрабатывается CNN отдельно, что приводит к высокой вычислительной нагрузке.
  • Раздельное обучение компонентов: CNN, SVM и регрессор обучаются отдельно, что усложняет процесс и требует тонкой настройки.

Преимущества и недостатки

Преимущества

  • Высокая точность: на момент появления R-CNN показывала лучшие результаты на эталонных наборах данных (PASCAL VOC, ImageNet Detection).
  • Простота концепции: интуитивно понятный двухэтапный подход, который легко модифицировать.
  • Основа для последующих методов: заложила принципы, используемые в Fast R-CNN и Faster R-CNN.

Недостатки

  • Низкая скорость работы: обработка каждого из 2000 регионов через CNN занимает много времени (около 47 секунд на изображение на GPU того времени). Это делает R-CNN непригодной для реального времени.
  • Сложность обучения: требуется обучение трёх отдельных моделей (CNN, SVM, регрессор), что требует большого объёма дискового пространства для хранения признаков.
  • Избыточность вычислений: многие регионы перекрываются, и их признаки вычисляются повторно.
  • Масштабирование регионов: принудительное изменение размера регионов до фиксированного размера может искажать геометрию объектов.

Варианты и развитие

Fast R-CNN

Улучшила R-CNN, обрабатывая всё изображение один раз через CNN, а затем извлекая признаки для каждого региона с помощью слоя RoI Pooling. Это позволило объединить обучение CNN и классификатора в единый процесс, увеличив скорость в 25 раз (до 2 секунд на изображение) и повысив точность.

Faster R-CNN

Заменила селективный поиск на Region Proposal Network (RPN) — небольшую свёрточную сеть, которая предсказывает регионы-кандидаты непосредственно на карте признаков. Это сделало процесс полностью сквозным (end-to-end) и увеличило скорость до 0,2 секунды на изображение, что приблизилось к требованиям реального времени.

Mask R-CNN

Расширение Faster R-CNN, добавляющее ветвь для сегментации объектов (предсказание маски для каждого объекта). Используется в задачах instance segmentation.

Применение

R-CNN и её производные нашли широкое применение в различных областях компьютерного зрения:

Критика и ограничения

Хотя R-CNN стала важным шагом в развитии компьютерного зрения, она подвергалась критике за:

  • Вычислительную неэффективность: из-за независимой обработки каждого региона.
  • Сложность развёртывания: необходимость хранения и управления несколькими моделями.
  • Чувствительность к параметрам: селективный поиск требует настройки гиперпараметров, которые могут влиять на качество.

Современные методы обнаружения объектов, такие как YOLO (You Only Look Once) и SSD (Single Shot Detector), используют одноэтапные архитектуры, которые жертвуют небольшой точностью ради значительного прироста скорости. Однако R-CNN и её улучшенные версии (Faster R-CNN) остаются эталоном точности во многих задачах, где скорость не является критическим фактором.

Источники

  • Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR).
  • Girshick, R. (2015). Fast R-CNN. Proceedings of the IEEE International Conference on Computer Vision (ICCV).
  • Ren, S., He, K., Girshick, R., & Sun, J. (2016). Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. IEEE Transactions on Pattern Analysis and Machine Intelligence.
  • Uijlings, J. R. R., van de Sande, K. E. A., Gevers, T., & Smeulders, A. W. M. (2013). Selective Search for Object Recognition. International Journal of Computer Vision.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →