Обнаружение объектов с помощью R-CNN?

Что на самом деле делает R-CNN? Это похоже на использование функций, извлеченных CNN, для обнаружения классов в указанной области окна? Есть ли реализация тензорного потока для этого?

2 ответа

Решение

R-CNN использует следующий алгоритм:

  1. Получить предложения регионов для обнаружения объектов (используя выборочный поиск).
  2. Для каждой области обрежьте область от изображения и выполните это тщательно CNN, который классифицирует объект.

Существуют более продвинутые алгоритмы, такие как fast-R-CNN и более быстрый R-CNN.

быстро-R-CNN:

  1. Запустите все изображение через CNN
  2. Для каждого региона из предложений региона извлеките область, используя слой "roi polling", и затем классифицируйте объект.

быстрее R-CNN:

  1. Запустите все изображение через CNN
  2. Используя функции, обнаруженные с помощью CNN, найдите предложения региона, используя сеть предложений объектов.
  3. Для каждого предложения объекта извлеките область, используя слой "roi polling", и затем классифицируйте объект.

Существует много имплантаций в тензорном потоке, специально для более быстрого R-CNN, который является самым последним вариантом, просто Google быстрее R-CNN тензорный поток.

Удачи

R-CNN является алгоритмом папочки для всех упомянутых алгоритмов, он действительно дал возможность исследователям построить более сложный и лучший алгоритм на его основе. Я пытаюсь объяснить R-CNN и другие варианты этого.

R-CNN, или региональная сверточная нейронная сеть

R-CNN состоят из 3 простых шагов:

  • Сканирование входного изображения на предмет возможных объектов с использованием алгоритма выборочного поиска, генерирующего ~2000 предложений по регионам
  • Запустите сверточную нейронную сеть (CNN) поверх каждого из этих предложений региона
  • Возьмите выходные данные каждого CNN и подайте его в a) SVM, чтобы классифицировать область и b) линейный регрессор, чтобы сжать ограничивающую рамку объекта, если такой объект существует.

Наглядное описание R-CNN

Быстрый R-CNN:

За быстрым R-CNN сразу последовал R-CNN. Быстрый R-CNN быстрее и лучше благодаря следующим пунктам:

  • Выполнение выделения признаков над изображением перед предложением областей, таким образом, только один CNN по всему изображению вместо 2000 CNN более 2000 перекрывающихся областей
  • Замена SVM слоем softmax, расширяя нейронную сеть для предсказаний вместо создания новой модели.

Наглядное описание Fast R-CNN

Интуитивно понятно, что имеет смысл удалить 2000 слоев конвоя и вместо этого взять один раз Convolution и создать над ним рамки.

Быстрее R-CNN:

Одним из недостатков Fast R-CNN был алгоритм медленного селективного поиска, и в более быстром R-CNN появилась так называемая сеть предложений регионов (RPN).

Вот работа РПН:

На последнем уровне исходного CNN скользящее окно 3x3 перемещается по карте объектов и отображает его в более низкое измерение (например, 256-d). Для каждого местоположения скользящего окна оно генерирует несколько возможных областей на основе k привязки с фиксированным отношением ящики (ограничивающие рамки по умолчанию)

Каждое предложение региона состоит из:

  • Оценка "объектности" для этого региона и
  • 4 координаты, представляющие ограничивающий прямоугольник региона Другими словами, мы смотрим на каждое местоположение на нашей последней карте объектов и рассматриваем k различных прямоугольников, центрированных вокруг него: высокий прямоугольник, широкий прямоугольник, большой прямоугольник и т. Д.

Для каждого из этих блоков мы выводим, считаем ли мы, что он содержит объект, и каковы координаты этого блока. Вот как это выглядит в одном месте с раздвижными окнами:

Сеть региональных предложений

2k баллов представляют вероятность softmax каждого из k ограничивающих прямоугольников, находящихся на "объекте". Обратите внимание, что хотя RPN выводит координаты ограничивающего прямоугольника, он не пытается классифицировать какие-либо потенциальные объекты: его единственная работа по-прежнему заключается в предложении областей объекта. Если якорный ящик имеет показатель "объектности" выше определенного порога, координаты этого ящика передаются как предложение региона.

Как только у нас появятся наши предложения по регионам, мы направим их прямо в то, что по сути является Fast R-CNN. Мы добавили объединяющий слой, несколько полностью связанных слоев и, наконец, слой классификации Softmax и ограничитель-регрессор. В каком-то смысле Быстрее R-CNN = RPN + Быстрый R-CNN.

Быстрее R-CNN

Связывание некоторой реализации Tensorflow:

https://github.com/smallcorgi/Faster-RCNN_TF

https://github.com/CharlesShang/FastMaskRCNN

Вы можете найти много реализации Github.

PS Я позаимствовал много материала из блога Joyce Xu Medium.

Другие вопросы по тегам