Что такое R-CNN? Краткий обзор
Узнай о RCNN и его влиянии на обнаружение объектов. Мы рассмотрим его ключевые компоненты, применения и роль в развитии таких методов, как Fast RCNN и YOLO.

Обнаружение объектов — это задача компьютерного зрения, которая позволяет распознавать объекты на изображениях или видео и определять их местоположение для таких приложений, как автономное вождение, видеонаблюдение и медицинская визуализация. Ранние методы обнаружения объектов, такие как детектор Viola–Jones и гистограммы ориентированных градиентов (HOG) с методами опорных векторов (SVM), основывались на признаках, созданных вручную, и скользящих окнах. Эти методы часто испытывали трудности с точным обнаружением объектов в сложных сценах, содержащих множество объектов разных форм и размеров.
Свёрточные нейронные сети на основе областей (R-CNN) изменили подход к обнаружению объектов. Это важная веха в истории компьютерного зрения. Чтобы понять, как появились такие модели, как Ultralytics YOLOv8, сначала нужно разобраться в моделях вроде R-CNN.
Архитектура модели R-CNN, созданная Россом Гиршиком и его командой, генерирует предложения областей, извлекает признаки с помощью предварительно обученной свёрточной нейронной сети (CNN), классифицирует объекты и уточняет ограничивающие рамки. Хотя это может показаться сложным, к концу статьи ты будешь чётко понимать, как работает R-CNN и почему эта модель оказала такое влияние. Давай разберёмся!
Как работает R-CNN?#
Процесс обнаружения объектов в модели R-CNN включает три основных этапа: генерацию предложений областей, извлечение признаков и классификацию объектов с уточнением их ограничивающих рамок. Давай рассмотрим каждый этап.

Рис. 1. Как работает R-CNN.
Предложения областей: основа RCNN#
На первом этапе модель R-CNN сканирует изображение и создаёт множество предложений областей. Предложения областей — это потенциальные области, в которых могут находиться объекты. Такие методы, как Selective Search, анализируют различные характеристики изображения, например цвет, текстуру и форму, разделяя его на разные части. Selective Search начинает с разделения изображения на небольшие части, а затем объединяет похожие части, формируя более крупные области интереса. Процесс продолжается, пока не будет сгенерировано около 2 000 предложений областей.

Рис. 2. Как работает Selective Search.
Эти предложения областей помогают определить все возможные места, где может находиться объект. На следующих этапах модель может эффективно обрабатывать наиболее релевантные области, сосредоточившись на них, а не на всём изображении. Использование предложений областей позволяет сбалансировать полноту анализа и вычислительную эффективность.
Извлечение признаков изображения: фиксация деталей#
Следующий этап процесса обнаружения объектов в модели R-CNN — извлечение признаков из предложений областей. Размер каждого предложения области изменяется до единого размера, ожидаемого CNN (например, 224x224 пикселя). Изменение размера помогает CNN эффективно обрабатывать каждое предложение. Перед преобразованием размер каждого предложения области немного увеличивается, чтобы добавить 16 пикселей контекста вокруг области и предоставить больше окружающей информации для улучшения извлечения признаков.
После изменения размера эти предложения областей передаются в CNN, например AlexNet, которая обычно предварительно обучена на большом наборе данных, таком как ImageNet. CNN обрабатывает каждую область и извлекает многомерные векторы признаков, содержащие важные детали, такие как границы, текстуры и узоры. Эти векторы признаков сжимают основную информацию из областей. Они преобразуют исходные данные изображения в формат, который модель может использовать для дальнейшего анализа. Точная классификация и локализация объектов на следующих этапах зависят от этого важного преобразования визуальной информации в осмысленные данные.

Рис. 3. Извлечение признаков из предложения области с помощью AlexNet.
Классификация объектов: идентификация обнаруженных объектов#
Третий этап — классификация объектов внутри этих областей. Это означает определение категории или класса каждого объекта, найденного в предложениях областей. Затем извлечённые векторы признаков передаются в классификатор машинного обучения.
В случае R-CNN для этой цели обычно используются методы опорных векторов (SVM). Каждый SVM обучается распознавать определённый класс объектов, анализируя векторы признаков и определяя, содержит ли конкретная область экземпляр этого класса. По сути, для каждой категории объектов существует отдельный классификатор, который проверяет каждое предложение области на наличие соответствующего объекта.
Во время обучения классификаторам предоставляются размеченные данные с положительными и отрицательными образцами:
- Положительные образцы: области, содержащие целевой объект.
- Отрицательные образцы: области без объекта.
Классификаторы учатся различать эти образцы. Регрессия ограничивающих рамок дополнительно уточняет положение и размер обнаруженных объектов, корректируя исходные предложенные рамки, чтобы они лучше соответствовали фактическим границам объектов. Объединяя классификацию и регрессию ограничивающих рамок, модель R-CNN может идентифицировать объекты и точно определять их местоположение.

Рис. 4. Пример регрессии ограничивающих рамок. (источник: towardsdatascience.com)
Объединяем всё: уточнение обнаружений с помощью NMS#
После этапов классификации и регрессии ограничивающих рамок модель часто создаёт несколько перекрывающихся рамок для одного и того же объекта. Для уточнения этих обнаружений применяется подавление немаксимумов (NMS), которое сохраняет наиболее точные рамки. С помощью NMS модель устраняет избыточные и перекрывающиеся рамки, оставляя только обнаружения с наиболее высокой уверенностью.
NMS оценивает показатели уверенности всех ограничивающих рамок (они показывают вероятность фактического присутствия обнаруженного объекта) и подавляет рамки, которые значительно перекрываются с рамками с более высокими показателями.

Рис. 5. Пример подавления немаксимумов. (источник: towardsdatascience.com)
Рассмотрим этапы работы NMS:
- Сортировка: ограничивающие рамки сортируются по показателям уверенности в порядке убывания.
- Выбор: выбирается рамка с наивысшим показателем, а все рамки, которые значительно перекрываются с ней (на основе пересечения по объединению, IoU), удаляются.
- Итерация: этот процесс повторяется для следующей рамки с наивысшим показателем и продолжается, пока не будут обработаны все рамки.
Итак, модель R-CNN обнаруживает объекты, генерируя предложения областей, извлекая признаки с помощью CNN, классифицируя объекты и уточняя их положение с помощью регрессии ограничивающих рамок, а также используя подавление немаксимумов (NMS), чтобы оставить только наиболее точные обнаружения.
R-CNN — важная веха в обнаружении объектов#
R-CNN — знаковая модель в истории обнаружения объектов, поскольку она представила новый подход, значительно повысивший точность и производительность. До появления R-CNN модели обнаружения объектов испытывали трудности с балансом между скоростью и точностью. Метод R-CNN, основанный на генерации предложений областей и использовании CNN для извлечения признаков, обеспечивает точную локализацию и идентификацию объектов на изображениях.
R-CNN проложила путь таким моделям, как Fast R-CNN, Faster R-CNN и Mask R-CNN, которые дополнительно повысили эффективность и точность. Объединив глубокое обучение с анализом областей, R-CNN установила новый стандарт в этой области и открыла возможности для различных приложений в реальном мире.
Преобразование медицинской визуализации с помощью R-CNN#
Интересный вариант применения R-CNN — медицинская визуализация. Модели R-CNN использовались для обнаружения и классификации разных типов опухолей, например опухолей мозга, на медицинских снимках, таких как МРТ и КТ. Использование модели R-CNN в медицинской визуализации повышает точность диагностики и помогает рентгенологам выявлять злокачественные образования на ранней стадии. Способность R-CNN обнаруживать даже небольшие опухоли на ранних стадиях может существенно повлиять на лечение и прогноз таких заболеваний, как рак.

Рис. 6. Обнаружение опухолей мозга с помощью RCNN.
Модель R-CNN можно применять и для других задач медицинской визуализации, помимо обнаружения опухолей. Например, она может выявлять переломы, обнаруживать заболевания сетчатки на снимках глаз и анализировать изображения лёгких на наличие таких состояний, как пневмония и COVID-19. Независимо от медицинской проблемы раннее обнаружение может привести к улучшению результатов лечения пациентов. Применяя точность R-CNN для идентификации и локализации аномалий, медицинские учреждения могут повысить надёжность и скорость медицинской диагностики. Благодаря тому, что обнаружение объектов упрощает процесс постановки диагноза, пациенты могут получать своевременные и точные планы лечения.
Ограничения R-CNN и её преемники#
Несмотря на впечатляющие результаты, у R-CNN есть определённые недостатки, такие как высокая вычислительная сложность и низкая скорость вывода. Из-за этих недостатков модель R-CNN не подходит для приложений реального времени. Разделение генерации предложений областей и классификации на отдельные этапы может снижать эффективность.
За прошедшие годы появились различные модели обнаружения объектов, устранившие эти недостатки. Fast R-CNN объединяет генерацию предложений областей и извлечение признаков CNN в один этап, ускоряя процесс. Faster R-CNN использует сеть предложений областей (RPN) для оптимизации генерации предложений, а Mask R-CNN добавляет сегментацию на уровне пикселей для более детальных обнаружений.

Рис. 7. Сравнение R-CNN, Fast R-CNN, Faster R-CNN и Mask R-CNN.
Примерно в то же время, когда появилась Faster R-CNN, серия YOLO (You Only Look Once) начала развивать обнаружение объектов в реальном времени. Модели YOLO предсказывают ограничивающие рамки и вероятности классов за один проход через сеть. Например, Ultralytics YOLOv8 обеспечивает повышенные точность и скорость благодаря современным функциям для множества задач компьютерного зрения.
Основные выводы#
RCNN изменила подход к компьютерному зрению, показав, как глубокое обучение может преобразовать обнаружение объектов. Её успех вдохновил множество новых идей в этой области. Хотя более новые модели, такие как Faster R-CNN и YOLO, появились для устранения недостатков RCNN, её вклад остаётся важной вехой, о которой не стоит забывать.
По мере продолжения исследований мы увидим ещё более точные и быстрые модели обнаружения объектов. Эти достижения не только улучшат способность машин понимать окружающий мир, но и будут способствовать развитию многих отраслей. Будущее обнаружения объектов выглядит многообещающе!
Хочешь продолжить изучать ИИ? Присоединяйся к сообществу Ultralytics! Загляни в наш репозиторий на GitHub, чтобы узнать о последних инновациях в области искусственного интеллекта. Ознакомься с нашими решениями на основе ИИ для различных отраслей, таких как сельское хозяйство и производство. Присоединяйся к нам, чтобы учиться и развиваться!









