Глубокое погружение в R-CNN для обнаружения объектов

Вступление

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

Что такое R-CNN?

R-CNN - это метод обнаружения и локализации объектов. Он нацелен на «поиск» интересующих объектов на изображении и обводит их ограничивающими рамками, а также классифицирует его класс. Название R-CNN означает регионы с функциями CNN (сверточные нейронные сети).

Мотивация R-CNN

Распознавание объектов традиционно осуществляется с помощью функций SIFT и HOG. Эти методы, хотя и очень успешные, не работают, когда есть изображения с другими объектами или значительным шумом вокруг них. Как мы знаем, распознавание в системе зрительной коры головного мозга человека намного сложнее, чем просто определение градиентов и их кластеризация, как это обычно делает HOG. Нам нужен более сложный, иерархический и многоступенчатый процесс, если мы собираемся достичь визуального распознавания на человеческом уровне.

С появлением Deep-Learning и, в частности, CNN, у нас есть хорошая отправная точка для извлечения функций из изображения с использованием аналогичной иерархической архитектуры. Поскольку в 2012 году AlexNet превзошел все остальные модели распознавания изображений, благодаря умному использованию отсевов и активаций ReLU, он быстро стал де-факто стандартом распознавания изображений. Затем животрепещущим вопросом стал: можем ли мы как-то расширить результаты классификации CNN из задачи ImageNet на результаты обнаружения объектов в вызове PASCAL VOC? Эта идея привела к созданию R-CNN или предложения региона с использованием CNN, которое устраняет разрыв между классификацией изображений и обнаружением объектов.

Почему обнаружение и локализация объектов - нетривиальная задача?

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

Строительные блоки и архитектура R-CNN

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

R-CNN имеет следующие основные модули:

  1. Предложения по регионам - для создания 2000 предлагаемых ограничивающих рамок.
  2. Извлечение признаков с использованием CNN - для классификации изображений каждого региона.
  3. Классификация и локализация
  • Распознавание классов с помощью Linear SVM
  • Ограничивающая регрессия для локализации

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

Предложения по регионам

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

Выборочный поиск использует следующие основные шаги для предложения регионов:

  1. Снизу вверх найдите сходство между пикселями изображения на основе
  • Цвет
  • Текстура
  • Размер
  • Совместимость форм

2. Сгруппируйте пиксели вместе, чтобы получить высокий показатель сходства, используя взвешенную сумму вышеупомянутых сходств.

3. Повторяйте до тех пор, пока изменения не исчезнут.

Во время тестирования метод предложения региона R-CNN с использованием выборочного поиска генерирует 2000 предложений региона, не зависящих от категорий. Эти региональные предложения будут фильтроваться по пути, чтобы учитывать только лучшие региональные предложения. Таким образом, основная задача этого модуля - предложить набор областей-кандидатов для следующего модуля, то есть экстрактора функций CNN. Выходные данные этого модуля, представляющие собой список координат {x-координата, y-координата, ширина, высота}, затем передаются в модуль извлечения признаков. Чтобы получить более подробное представление о том, как работает выборочный поиск, перейдите по этой ссылке.

Извлечение функций с помощью CNN

После того, как Крижевский и др. Приобрели популярность AlexNet, CNN стали очень популярны для извлечения функций из изображений. Этот модуль извлекает 4096-мерный вектор признаков для каждого региона, предложенного модулем предложений регионов. Общие шаги для извлечения признаков заключаются в следующем:

  • Измените размер и деформируйте изображение RGB до 227 x 227 и выполните вычитание среднего как часть предварительной обработки. Перед деформацией ограничивающая рамка немного расширена для добавления некоторого контекста, что показало лучшие результаты mAP.
  • Передача, т.е. прямое распространение отдельных областей с измененным размером через предварительно обученную AlexNet, чтобы получить 4096-мерный вектор признаков каждой области с каждым изображением. Наконец, слой классификации длиной 1000 заменяется слоем длины (N + 1), где N - количество классов, а дополнительный - для фона.

Все региональные предложения с долговым обязательством ≥ 0,5, перекрывающиеся с блоком наземной истины, считаются положительными для этого класса блока, а остальные - отрицательными. По сути, вывод для этого модуля будет вектором 2000 x 4096 для каждого изображения.

Классификация и локализация

Классификация объектов выполняется с использованием линейной модели SVM

Когда у нас есть 4096-мерный вектор для каждого объекта-кандидата в каждом изображении, мы можем запустить обученную модель Linear SVM, чтобы отнести этот объект к одному из множества классов.

Во время обучения SVM используется подход жесткого отрицательного интеллектуального анализа, чтобы компенсировать обучающие данные, которые слишком велики для размещения в памяти. Жесткий отрицательный майнинг в основном гарантирует:

  • У нас примерно равное количество положительных и отрицательных примеров. Как? Мы ищем только «жесткие» негативы, а не все негативы. Все негативы, то есть фон, присутствуют на изображении в изобилии, тогда как «жесткие» негативы состоят из объектов, которые закрыты или трудно поддаются классификации.
  • Во время обучения классификатор узнает, на каких объектах следует сосредоточиться, поскольку мы явно фиксируем ложное срабатывание и говорим классификатору рассматривать его как отрицательный пример для следующей эпохи цикла обучения, тем самым повышая надежность классификатора.

В отличие от тонкой настройки с использованием CNN’S, где мы используем долговую расписку не менее 0,5, для обучения SVM мы берем базовые блоки правды только в качестве положительных примеров и помечаем предложения с долговыми обязательствами менее 0,3 как отрицательные, игнорируя все остальное. Этот подход во время тренировки показал, что улучшает оценку MAP.

Регрессия ограничивающего прямоугольника используется для точной локализации объекта на изображении

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

с точными координатами G

путем наложения масштабно-инвариантных преобразований между двумя центрами и пространством журнала по ширине и высоте, как показано здесь.

Цели регрессии t определяются как:

Стандартная регрессионная модель может решить эту проблему оптимизации, используя цель наименьших квадратов.

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

Краткий обзор процесса R-CNN

Вкратце, R-CNN делает следующее:

  1. С помощью метода выборочного поиска генерирует около 2000 предложений регионов, не зависящих от классов, для каждого изображения. Эти предложения объектов имеют разные размеры, поэтому они преобразуются в стандартное изображение 227 x 227, которое затем передается в предварительно обученную архитектуру CNN, такую ​​как AlexNet.
  2. CNN извлекает 4096-мерный вектор каждого объекта в изображении, создавая таким образом матрицу 2000 x 4096.
  3. Этот вектор признаков передается в двоичную SVM, которая обучается для каждого класса отдельно, что дает классификацию объекта.
  4. Точная локализация достигается с помощью регрессионной модели наименьших квадратов, которая минимизирует различия между предложенными координатами и истинными координатами земли путем корректировки значений смещения.

Почему R-CNN нуждается в улучшении?

Хотя R-CNN в свое время была прорывной газетой, у нее было несколько недостатков:

  1. Это очень затратно в вычислительном отношении для реализации
  • Для каждой области в каждом изображении мы должны вычислить характеристики, используя прямой проход в архитектуре CNN, что означает, что будет 2000 прямых проходов для каждого изображения. Это занимает 47 секунд на изображение на графическом процессоре

2. Выборочный поиск не является обучаемой моделью и, следовательно, может генерировать плохих исходных кандидатов.

3. Можно использовать 3 разные модели, что увеличивает архитектурную и временную сложность.

  • Архитектура CNN для извлечения признаков, SVM для распознавания класса объекта и обучаемые параметры для регрессора ограничивающего прямоугольника, все из которых состоят из обучаемых параметров.

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