Обнаружение объектов, несомненно, является одной из самых серьезных проблем в области компьютерного зрения. Одним из методов для этой работы является R-CNN, который был представлен Россом Гиршиком, Джеффом Донахью, Тревором Дарреллом и Джитендрой Маликом в «Богатые иерархии признаков для точного распознавания объектов и семантической сегментации». Этот алгоритм будет рассмотрен в этом разделе.

Необходимое условие

Выборочный поиск для обнаружения объектов

Локализация объекта является наиболее сложным аспектом обнаружения объектов. Чтобы найти элементы на изображении, можно использовать скользящие окна различных размеров. Этот подход называется исчерпывающим поиском. Этот подход очень затратен в вычислительном отношении, поскольку нам нужно искать объект в тысячах окон даже для небольшого размера изображения. Была проведена некоторая оптимизация, например, использование разных коэффициентов ширины окна (вместо увеличения на несколько пикселей). Однако из-за большого количества окон он по-прежнему неэффективен.
В данной статье рассматривается алгоритм выборочного поиска, использующий как исчерпывающий, так и сегментированный методы поиска (метод разделения объектов разной формы на изображении путем присвоения им разных цвета).

Шаги алгоритма:

1- Создайте начальную подсегментацию входного изображения, используя подход, описанный Felzenszwalb et al. в их статье «Эффективная сегментация изображения на основе графа».

2- Рекурсивно объединить меньшие похожие области в более крупные. Мы используем жадный алгоритм, чтобы объединить похожие регионы для создания более крупных регионов. Алгоритм написан ниже.

I) From set of regions, choose two that are most similar.
II) Combine them into a single, larger region.
III) Repeat the above steps for multiple iterations.

Р-Си-Эн-Эн

Здесь мы можем увидеть каждый шаг R-CNN:

  1. Во-первых, R-CNN принимает входное изображение.
  2. Во-вторых, он извлекает предложения регионов. Каждое предложение региона представляет собой группу небольших сегментов с использованием метода выборочного поиска, о котором мы говорили ранее.
  3. В-третьих, модель извлекает признаки из каждого из этих 2000 предложений регионов с помощью предварительно обученной сверточной нейронной сети. И в этом случае используется сетевая архитектура Alex.
  4. Классифицировать регионы

Мы настраиваем размеры изображения, чтобы они соответствовали входным размерам сети Alex, чтобы адаптировать каждое предложение области, чтобы оно соответствовало входным данным R-CNN. Они известны как деформированные области.

Для классификации регионов R-CNN использует машины опорных векторов, а не плотные слои.

Давайте проверим шаги алгоритма на примере. Рассмотрим изображение ниже. R-CNN начнет с определения крошечных областей интереса на изображении с помощью выборочного поиска.

Затем мы объединим эти меньшие области в зависимости от того, что внутри них, таких как цветовое сходство, текстура, размер, форма и другие факторы, чтобы создать меньше больших областей, которые будут служить окончательными предложениями области.

Сверточные слои Alex Net приводят их к ожидаемому размеру. Они вводятся в них для извлечения признаков, а затем в слой классификации, который в этом методе представляет собой масштабированную векторную машину или SVM для получения меток изображений и регрессию для получения ограничивающих рамок для интересующих областей.

Недостатки R-CNN

Одним из недостатков оригинального R-CNN является то, что он медленный. Нахождение регионов с помощью выборочного поиска может занять много времени, а прохождение каждой из 2000 областей интереса через CNN может потребовать много времени и больших вычислительных ресурсов. Первоначальной архитектуре R-CNN не хватало скорости и сквозной обучаемости, среди прочих факторов. Еще одной серьезной проблемой была потребность в памяти, которая возникла из-за необходимости использования многочисленных классификаторов для каждого типа объекта.

Быстрее R-CNN

Чтобы улучшить оригинальный R-CNN, Росс Гиршик предложил новую архитектуру, получившую название Fast R-CNN.

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

Давайте проверим архитектуру Fast R-CNN.

Следует отметить различие между Fast R-CNN и оригинальным R-CNN. Вместо того, чтобы использовать выборочный поиск для создания нескольких предложений региона для каждого изображения, Fast R-CNN принимает их в качестве входных данных и не генерирует их. CNN анализирует изображение и создает карту функций, которая представляет собой набор функций.

Следующим шагом является использование предложений входных регионов для извлечения интересующей области из этой карты объектов и построения карты объектов предложений регионов для каждого предлагаемого региона. Проекция области интереса — название этого метода. Исходная карта объектов предназначена для всего изображения, тогда как карта объектов предложения региона предназначена для конкретных подразделов предлагаемой области изображения.

Затем мы будем использовать слой объединения областей интереса, чтобы уменьшить эту карту объектов, чтобы создать карту объектов фиксированной длины с постоянной высотой и шириной. Затем мы можем сгладить карту объектов фиксированного размера в одномерный вектор, который мы назовем вектором объектов интересующей области, и сгенерировать этот вектор объектов интересующей области с несколькими полностью связанными слоями, чтобы сделать эту карту полезной.

Затем вектор признаков области интереса можно использовать для создания двух выходных данных. Для категоризации изображения первый вывод использует полносвязный слой, за которым следует Softmax. Второй вывод определяет размер и положение ограничивающей рамки для идентифицированных элементов с использованием полносвязного слоя и результатов нерегулярной регрессии.

В этом случае нет выборочного поиска, чтобы найти интересующие области.

Вместо этого используется ConvNet с фильтрами, определяющими, какие области интереса представляют интерес.

Полное изображение передается вместо подмножеств, что экономит деньги на штампе выборочного поиска. ConvNet для поиска признаков может затем сгенерировать карту признаков изображения.

Быстрее R-CNN

Faster R-CNN — это вариант нашей CNN, который включает в себя сеть предложений по регионам, чтобы предлагать интересующие регионы на карте функций предложений по регионам.

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

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

Центр блока привязки определяется координатами скользящего окна, а границы блока определяются RPN, что дает оценку, указывающую, что границы блока лучше соответствуют объектам. Внутренняя работа RPN немного выходит за рамки этого курса.