DETR (Трансформеры для обнаружения объектов)

DETR Трансформеры для обнаружения объектов

Глубокая глотка и понятные объяснения статьи «End to end detection with transformers»

Фото Адитья Вьяс на Unsplash

Примечание: В этой статье мы погружаемся в сложный мир компьютерного зрения, с особым уклоном на трансформеры и механизм внимания. Рекомендуется ознакомиться с основными концепциями из статьи «Внимание – это все, что вам нужно».

Краткий обзор истории

DETR, что означает DEтекция с помощью TRансформеров, заложил новую волну в области обнаружения объектов после его создания Николасом Карионом и командой Facebook AI Research в 2020 году.

Хотя в настоящее время он не является лидером в области обнаружения объектов (SOTA – State Of The Art), инновационная формулировка задачи обнаружения объектов в DETR значительно повлияла на последующие модели, такие как CO-DETR, которая является текущим «State-of-the-Art» в области обнаружения объектов и сегментации экземпляров.

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

Вспомним об обнаружении объектов

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

Сегментация видео Yolo5, источник

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

Разгадываем не-максимальную подавленность (и избавляемся от нее)

Не-максимальная подавленность, Изображение автор

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

NMS решает эту проблему, сохраняя ограничивающий прямоугольник с максимальным предсказанным значением уверенности объекта, одновременно подавляя соседние прямоугольники, которые имеют высокую степень перекрытия, оцениваемую метрикой пересечение над объединением (IoU). Конкретно, при установленном пороге IoU, NMS итеративно выбирает ограничивающий прямоугольник с наивысшим баллом уверенности и устраняет те, чье IoU превышает этот порог, обеспечивая существование одного уверенного предсказания на объект

Несмотря на его всеобщность, DETR (DEtection TRansformer) смело обходит традиционную NMS, переосмысливая обнаружение объектов путем формулирования его как задачи предсказания множества.

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

Погружение в архитектуру DETR

На высоком уровне DETR представляет собой

  • Кодировщик изображения (на самом деле он является двойным кодировщиком изображения, поскольку сначала есть основа CNN, за которой следует кодировщик трансформера для большей выразительности)
  • Декодер трансформатора, который производит ограничивающие рамки по кодированию изображения.
Архитектура DETR, изображение из статьи

Давайте подробнее рассмотрим каждую часть:

  1. Основа:

Мы начинаем с начального изображения с 3 цветовыми каналами:

И это изображение подается на основу, которая является сверточной нейронной сетью

Типичные значения, которые мы используем, – C = 2048 и H = W = H0 = W0 = 32

2. Кодировщик трансформера:

Теоретически кодировщик трансформера необязателен, но он добавляет больше выразительности основе, и исследования доказывают повышенную производительность.

Сначала 1×1 свертка уменьшает размерность канала высокоуровневого активационного отображения f от C до меньшей размерности d.

После свертки

Но, как вы знаете, трансформеры преобразуют входную последовательность векторов в выходную последовательность векторов, поэтому нам нужно свернуть пространственное измерение:

После сжатия пространственного измерения

Теперь мы готовы подать это на кодировщик трансформера.

Важно отметить, что кодировщик трансформера использует только само-внимание механизма.

Вот и все для части кодирования изображения!

Более подробные сведения о декодере, изображение из статьи

3. Декодер трансформера:

Это самая сложная часть для понимания, держитесь, если вы понимаете это, вы понимаете большую часть статьи.

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

Как выглядит прогнозирование рамки?

На самом деле оно состоит из 2 компонентов.

  • Ограничивающая рамка имеет некоторые координаты (x1, y1, x2, y2) для идентификации ограничивающей рамки.
  • Класс (например, чайка, но он также может быть пустым)

Важно отметить, что N является постоянным. Это означает, что DETR всегда точно прогнозирует N ограничивающих рамок. Но некоторые из них могут быть пустыми. Мы просто должны убедиться, что N достаточно большое, чтобы охватить достаточное количество объектов на изображениях.

Затем механизм перекрестного внимания может обратиться к характеристикам изображения, полученным в результате кодирования (Основа + Кодировщик трансформера).

Если вы не уверены в механизме, этот схема должна прояснить вещи:

Детальный механизм внимания, изображение из статьи

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

Основное нововведение: потери при двудольном сопоставлении

Как уже упоминалось ранее, DETR производит ровно N выходов (bbox + классы). Но каждый выход соответствует только одному истинному значению. Если вы хорошо помните, это весь смысл, мы не хотим применять постобработку для фильтрации перекрывающихся боксов.

Двудольное сопоставление, Изображение автора

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

Как мы определяем эти потери?

1. Потери при сопоставлении (парные потери)

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

В этих потерях нужно учесть 2 компонента:

  • Потери классификации (соответствует ли класс, предсказанный внутри ограничивающего бокса, истинному классу)
  • Потери ограничивающего бокса (насколько близок ограничивающий бокс к истинному)
Потери при сопоставлении

И для компонента ограничивающего бокса есть 2 подкомпонента:

  • Потери пересечения и объединения (IOU)
  • Потери L1 (абсолютная разница между координатами)

2. Общие потери биекции

Для вычисления общих потерь мы просто суммируем по N экземплярам:

Таким образом, наша задача состоит в том, чтобы найти биекцию, минимизирующую общие потери:

Постановка задачи в новой формулировке

Данные о производительности

Производительность DETR по сравнению с Faster RCNN
  • DETR: Относится к исходной модели, которая использует Трансформер для обнаружения объектов и ResNet-50 в качестве основы.
  • DETR-R101: Вариант DETR, который использует ResNet-101 вместо ResNet-50 в качестве основы. Здесь “R101” означает “ResNet-101”.
  • DETR-DC5: Версия DETR, которая использует модифицированный, расширенный этап C5 в своей основе ResNet-50, улучшая производительность модели на малых объектах за счет повышенного разрешения признаков.
  • DETR-DC5-R101: Этот вариант комбинирует оба изменения. Он использует основу ResNet-101 и включает расширенный этап C5, получая преимущества как от более глубокой сети, так и от повышенного разрешения признаков.

DETR значительно превосходит базовые модели на больших объектах, что, вероятно, обеспечивается нелинейными вычислениями, разрешенными трансформатором. Однако интересно то, что DETR демонстрирует более низкую производительность на маленьких объектах.

Почему механизм внимания является настолько мощным в данном случае?

Внимание на перекрывающихся экземплярах, изображение из статьи

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

Механизм внимания на конечностях

Также очень интересно отметить, что внимание сосредоточено на конечностях объектов для создания ограничивающей рамки, что и ожидается.

Итоги

DETR – это не просто модель; это сдвиг парадигмы, превращающий обнаружение объектов из проблемы “один к многим” в проблему предсказания множества, эффективно использующий преимущества архитектуры Transformer.

Усовершенствования продолжают развиваться с момента его появления, и модели, такие как DETR++ и CO-DETR, теперь являются лидерами в задачах сегментации экземпляров и обнаружения объектов на наборе данных COCO.

Спасибо за чтение! Перед тем, как уйти:

GitHub — FrancoisPorcher/awesome-ai-tutorials: The best collection of AI tutorials to make you a…

The best collection of AI tutorials to make you a boss of Data Science! — GitHub …

github.com

Вы должны получать мои статьи в вашем почтовом ящике. Подпишитесь здесь.

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

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

Ссылки

  • “End-to-End Object Detection with Transformers” от Николя Карион, Франсиско Масса, Габриэль Синнаэве, Николя Усуньер, Александра Кириллова и Сергея Загоруйко. Вы можете прочитать его полностью на сайте arXiv.
  • Zong, Z., Song, G., & Liu, Y. (Год публикации). DETRs with Collaborative Hybrid Assignments Training. https://arxiv.org/pdf/2211.12860.pdf.
  • Набор данных COCO