Детекция объектов с помощью R-CNN, Fast R-CNN и Faster R-CNN | Практический буткемп по компьютерн...
Vizuara
0:00 / 0:00
Детекция объектов с помощью R-CNN, Fast R-CNN и Faster R-CNN | Практический буткемп по компьютерн...
14 903 просмотра · 1 год назад
Vizuara
222 тыс. подписчиков
14 903 просмотра · 1 год назад
Если вы хотите стать частью нашей PRO-группы, присоединяйтесь здесь: https://hands-on-cv.vizuara.ai/
В нашей недавней лекции мы проследили эволюцию трех знаковых моделей в области обнаружения объектов — RCNN, Fast RCNN и Faster RCNN. Понимание этих моделей в сравнении друг с другом имеет важное значение для оценки того, как обнаружение объектов эволюционировало от точного, но медленного конвейера к быстрому и практичному подходу глубокого обучения.
RCNN (2014)
Оригинальная RCNN, или региональная сверточная нейронная сеть, стала прорывом, поскольку она первой объединила традиционные методы генерации предложений регионов с извлечением признаков на основе CNN. Конвейер состоял из трех основных шагов:
Генерация ~2000 предложений регионов с использованием селективного поиска (классический алгоритм, не обучаемый).
Запуск CNN отдельно для каждого предложенного региона для извлечения признаков.
Классификация этих признаков с помощью SVM и уточнение координат ограничивающей рамки с помощью слоя регрессии.
RCNN добился значительного скачка в точности по сравнению с традиционными методами, но был мучительно медленным — каждое предложение требовало прямого прохода через CNN, что делало невозможным обнаружение в реальном времени. Процесс обучения также был многоэтапным и ресурсоемким.
Fast RCNN (2015)
Fast RCNN устранил основной недостаток RCNN — повторные вычисления CNN для каждого региона. Вместо обрезки и изменения размера каждого предложения на уровне изображения, Fast RCNN запускал CNN один раз на полном изображении для получения сверточной карты признаков. Затем он применял пулинг RoI (Region of Interest) для извлечения карт признаков фиксированного размера для каждого предложения региона непосредственно из этой общей карты признаков. Эти объединенные признаки проходили через полносвязные слои для получения оценок классификации и регрессии ограничивающих рамок в одной сети.
Это архитектурное изменение устранило необходимость запуска CNN тысячи раз для каждого изображения и объединило классификацию и регрессию в единый процесс обучения. Однако предложения регионов по-прежнему поступали из Selective Search, который оставался медленным. Faster RCNN (2015)
Faster RCNN сделал следующий логический шаг — полностью устранив зависимость от медленного алгоритма Selective Search. Он представил сеть генерации предложений регионов (Region Proposal Network, RPN), небольшую сеть, которая учится генерировать предложения регионов непосредственно из карт сверточных признаков. Это означало, что генерация предложений регионов стала частью самого конвейера глубокого обучения и работала чрезвычайно быстро.
RPN использует общие сверточные признаки с сетью обнаружения, что означает, что весь процесс от предложения до классификации и регрессии ограничивающих рамок происходит в единой, сквозной обучаемой структуре. Такая конструкция позволила Faster RCNN достичь скорости обнаружения, близкой к реальному времени, без ущерба для точности, и стала основой для многих последующих архитектур обнаружения.
Ключевые сходства
Все три следуют одной и той же общей логике: генерация предложений регионов → извлечение признаков → классификация и уточнение ограничивающих рамок.
Все три используют сверточные нейронные сети (CNN) для извлечения признаков и имеют отдельные компоненты регрессии ограничивающих рамок.
Ключевые различия
Предложения регионов: RCNN и Fast RCNN используют селективный поиск (разработанный вручную), Faster RCNN использует обучаемую RPN.
Извлечение признаков: RCNN запускает CNN для каждого предложения, Fast и Faster RCNN запускают CNN один раз для каждого изображения и используют общие признаки.
Обучение: RCNN использует многоэтапное обучение (CNN → SVM → регрессия), Fast и Faster RCNN используют одноэтапный, унифицированный процесс обучения.
Скорость: RCNN — самый медленный, Fast RCNN значительно быстрее, Faster RCNN — самый быстрый при сохранении высокой точности.
Когда вы видите эту последовательность, становится ясно, что каждый шаг был направлен на устранение узкого места — сначала избыточные проходы CNN, затем медленные предложения, созданные вручную. Это прекрасный пример того, как исследования развиваются путем систематического выявления неэффективностей и замены их обучаемыми, интегрированными решениями.