Обеспечение непрерывного обнаружения объектов

Обнаружение объектов - традиционная задача компьютерного зрения. С 2015 года люди склонны использовать современные методы глубокого обучения для повышения эффективности обнаружения объектов. Хотя точность моделей становится выше, сложность моделей также увеличивается, в основном из-за различных видов динамической маркировки во время обучения и постобработки NMS. Эта сложность не только затрудняет реализацию моделей обнаружения объектов, но и препятствует созданию сквозного стиля проектирования моделей.

Ранние методы (2015 ~ 2019)

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

  1. Извлечение карт глубинных функций с использованием магистральной CNN
  2. Создавайте различные привязки для каждого пикселя карты функций.
  3. Рассчитайте IoU между якорями и наземными блоками истинности, выберите часть из них для обучения
  4. Обучите модель с потерями от регрессии (IoU и L1) и классификации (класс объекта внутри поля)
  5. Постобработка результатов логического вывода с помощью не максимального подавления (NMS) для удаления повторяющихся полей.

В приведенном выше общем процессе единственная разница между одноэтапным и двухэтапным методами заключается в том, динамически ли привязка помечается для предложения региона во время обучения. Например, в Faster-RCNN метка, указывающая положительный или отрицательный, дается привязке в соответствии с IoU между привязкой и наземными истинами. Если IoU достаточно велико, скажем 0,7, привязке дается положительная метка, в противном случае, если IoU достаточно мало, скажем 0,3, дается отрицательная метка. Таким образом, во время логического вывода для обработки обнаружения объекта используются только положительные привязки. В исходной статье этот метод называется сетью предложений регионов (RPN).

В одноэтапных методах, таких как SSD, YOLO и RetinaNet, не существует RPN, поэтому все привязки обрабатываются во время логического вывода. Порог достоверности классификации используется для фильтрации большинства привязок, в то время как только привязки с высокими возможностями классификации зарезервированы для окончательной постобработки.

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

Из-за сложности и низкой скорости двухэтапных методов люди склонны разрабатывать новые одноэтапные методы, которые проще в реализации и более эффективны.

Что такое NMS и зачем это нужно?

В приведенных выше ранних методах якоря используются для сопоставления с наземной истиной. Следовательно, может произойти соответствие многие-к-одному: несколько привязок совпадают с одной базовой истиной. Как обсуждалось выше, как в одноэтапных, так и в двухэтапных методах несколько разных привязок могут иметь большие IoU с та же основная правда. Во время вывода они также могут быть регрессированы к одному и тому же объекту с высокой степенью достоверности классификации. Таким образом, постобработка NMS необходима для удаления дубликатов.

Процесс NMS:

  1. Предсказанные привязки сортируются с уверенностью классификации.
  2. Якорь выбран с наибольшей достоверностью.
  3. Любой якорь, IoU которого с выбранным якорем больше заранее определенного порога, удаляется.
  4. Повторяйте с 1 до тех пор, пока не будет существовать привязка.

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

в котором три привязки прогнозируются для двух объектов A и B. Три привязки пронумерованы цифрами 1, 2, 3 и прогнозируются с классификационной достоверностью 0,8, 0,75, 0,7 соответственно. Здесь два якоря прогнозируются для одного и того же объекта A, поэтому следует удалить один якорь с меньшей достоверностью. В этом случае привязка 2 удаляется, а привязка 1 и 3 используются для окончательного прогнозирования.

Почему это могло произойти? Вспомните сопоставление "многие к одному" во время обучения: привязка 1 и 2 одновременно сопоставляются с объектом A, вычисляя потери и распространяя модель в обратном направлении, сообщая модели, что оба якорь 1 и 2 являются допустимыми кандидатами на объект А. Затем модель просто предсказывает то, чему она обучается.

Следовательно, если мы модифицируем «многие к одному» на «один к одному» и будем использовать только одну привязку для сопоставления с одним наземным объектом истинности во время обучения, будут ли результаты вывода отличаться? Напомним, что в парадигме «многие к одному» для одного объекта выбираются якоря с большими IoU для сопоставления с ним. Подумайте о парадигме «один к одному», в которой для сопоставления выбирается только якорь с наивысшим значением IoU, в то время как все другие якоря являются отрицательными и сопоставляются с фоном. Можем ли мы получить модель, которая способна напрямую прогнозировать все привязки для всех объектов в стиле соответствия один к одному без пост-обработки NMS?

Последние новые методы (2019 ~ 2020)

К счастью, на поставленный вопрос ответ ДА. В последнее время люди разрабатывают новые одноэтапные методы, которые упрощают обнаружение объектов, чем раньше. Основные идеи двоякие:

  1. Не используйте якоря, вместо этого используйте попиксельное предсказание
  2. Не используйте постобработку NMS, вместо этого используйте индивидуальное обучение

Вместо использования привязок, которые меняются в зависимости от пространственных соотношений и размеров объектов, люди стремятся снизить сложность, используя попиксельное прогнозирование, такое как семантическая сегментация. Типичным методом является FCOS, в котором каждый пиксель в окончательной карте функций прогнозируется с помощью блока объектов, что делает его полностью сверточной сетью (FCN). Стиль обнаружения объектов FCN не только упрощает саму задачу, но и объединяет ее с другими задачами FCN, такими как семантическая сегментация, обнаружение ключевых точек и т. Д. Для многозадачных приложений.

Мы можем видеть, что для каждого пикселя внутри поля истинности земли может быть назначена метка: (l, r, t, b), указывающая расстояния между пикселями слева, справа, сверху и снизу границы истинности земли. коробка. Следовательно, обучение по-прежнему выполняется по принципу «многие к одному», и постобработка NMS все еще необходима для получения окончательных результатов прогнозирования. Хотя FCOS упрощает обнаружение объектов и хорошо работает, он все же не является сквозным.

Чтобы сделать задачи обнаружения объектов сквозными, люди должны думать иначе. С 2020 года, когда преобладают трансформеры, люди стремятся обнаруживать объекты с помощью визуальных трансформеров, и результаты тоже хорошие. Типичный метод - DETR, который в этой статье обсуждаться не будет. Я расскажу о другой параллельной работе: OneNet, которая расширяет FCOS до сквозного FCN для обнаружения объектов.

Как обсуждалось выше, основная причина, по которой необходима NMS, заключается в том, что в обучении используется парадигма «многие к одному», в которой для одного объекта прогнозируется множество блоков с высокой степенью достоверности. Чтобы сделать его сквозным без NMS, вместо этого следует использовать парадигму индивидуального обучения.

Напомним, что в ранних методах предсказания и наземные истины совпадают, и для обратного распространения используются только геометрические потери (IoU и L1) между ними. Таким образом, сопоставление "многие к одному" необходимо для увеличения дисперсии обучающих данных, поскольку можно найти много кандидатов с аналогичными геометрическими потерями и сопоставить их с соответствующей наземной истиной. Кандидат не уникальный! С другой стороны, если мы будем настаивать на однозначном сопоставлении с использованием кандидата с наименьшими геометрическими потерями, модель, возможно, будет переобучена и вообще не сможет обобщать.

Авторы OneNet осознали эту проблему и использовали два вида потерь: геометрическую потерю и потерю классификации, чтобы сопоставить кандидатов с наземными истинами. В отличие от геометрических потерь, потеря классификации в некоторой степени уникальна для соответствующей базовой истины. Например, в высокоуровневых глубоких картах характеристик объекта мы можем найти уникальный пиксель, который наилучшим образом представляет класс объекта. Хотя многие пиксели имеют геометрические потери, похожие на соответствующие наземные истины, пиксель с наилучшими потерями классификации является уникальным. Таким образом, мы можем объединить две потери, чтобы получить единственного кандидата с наименьшими комбинированными потерями для однозначного соответствия в обучении. Как описано в исходном документе, для сопоставления с соответствующим объектом используется только кандидат с минимальными потерями, все остальные - отрицательные и сопоставляются с фоном.

Сравнение результатов прогнозов

Верхняя строка - это результаты прогнозов ранних моделей "многие к одному", а нижняя строка - результаты прогнозирования моделей "один к одному" (OneNet). Мы ясно видим, что в результатах "многие к одному" существует много избыточных блоков прогнозов, а в результатах "один к одному" они исчезают.

Обсуждение

Используя парадигму индивидуального обучения, OneNet в первую очередь реализует сквозное обнаружение объектов. Этот прогресс связан с глубоким пониманием потерь и оптимизации модели, что также помогает улучшить интерпретируемость глубокого обучения.

использованная литература

FCOS: полностью сверточное одноэтапное обнаружение объектов, 2019

Сквозное обнаружение объектов с помощью трансформаторов, 2020

OneNet: на пути к сквозному одноэтапному обнаружению объектов, 2020