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

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

Рис 1. Как работает R-CNN.
Link to this sectionРегиональные предложения: основа R-CNN#
На первом этапе модель R-CNN сканирует изображение, чтобы создать множество региональных предложений. Это потенциальные области, в которых могут находиться объекты. Такие методы, как Selective Search, анализируют различные аспекты изображения, например, цвет, текстуру и форму, разбивая его на части. Selective Search начинает с деления изображения на мелкие сегменты, а затем объединяет похожие, чтобы сформировать более крупные области интереса. Этот процесс продолжается до тех пор, пока не будет сгенерировано около 2000 региональных предложений.

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

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

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

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

Рис 6. Обнаружение опухолей головного мозга с помощью R-CNN.
Модель R-CNN можно применять и для других задач медицинской визуализации помимо обнаружения опухолей. Например, она может выявлять переломы, обнаруживать глазные заболевания на сканах и анализировать снимки легких для выявления таких состояний, как пневмония или COVID-19. Независимо от медицинской проблемы, ранняя диагностика может привести к лучшим результатам лечения пациентов. Применяя точность R-CNN в идентификации и локализации аномалий, медицинские организации могут повысить надежность и скорость диагностики. Благодаря автоматизации процесса обнаружения объектов, пациенты получают доступ к своевременным и точным планам лечения.
Link to this sectionОграничения 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 предлагает повышенную точность и скорость, а также расширенные возможности для множества задач компьютерного зрения.
Link to this sectionОсновные выводы#
R-CNN изменила правила игры в компьютерном зрении, продемонстрировав, как глубокое обучение может преобразить обнаружение объектов. Ее успех вдохновил множество инновационных идей в этой области. Хотя более новые модели, такие как Faster R-CNN и YOLO, устранили недостатки R-CNN, ее вклад остается огромной вехой, о которой важно помнить.
По мере продолжения исследований мы увидим еще более эффективные и быстрые модели обнаружения объектов. Эти достижения не только улучшат то, как машины понимают окружающий мир, но и приведут к прогрессу во многих отраслях. Будущее обнаружения объектов выглядит захватывающе!
Хочешь продолжать изучать ИИ? Становись частью сообщества Ultralytics! Исследуй наш репозиторий GitHub, чтобы увидеть наши последние инновации в области искусственного интеллекта. Ознакомься с нашими решениями в области ИИ, охватывающими различные секторы, такие как сельское хозяйство и производство. Присоединяйся к нам, чтобы учиться и расти!






