Назад
218

Детекторы текста на основе трансформеров

218

Введение

Сегодня мы поговорим о задаче детекции текста в рамках трансформерных моделей. Во время активного использования трансформеров в компьютерном зрении разработчики не смогли пройти мимо и не попробовать применить их для задачи локализации текста.

Возможно, читатель, интересующийся трендами в OCR, спросит: «‎А есть ли смысл в 2024 году рассматривать детекцию в отрыве от распознавания, особенно в плоскости трансформеров?». Ведь эта архитектура позволяет решить задачу OCR в так называемой end-to-end манере, то есть локализовать и распознать текст в один проход и одной моделью. Это называется Text Spotting.

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

Бенчмарки

Рассмотрим три наиболее популярных бенчмарка детекции текста для задачи Scene text detection (STD).

📌Scene text detection (STD) — детекция текста на фотографиях реального мира.

  1. Total-Text — датасет из 1555 картинок с разметкой в виде полигонов вокруг слов на фотографиях реального мира (вывески, дорожные знаки и др.). Его отличает наличие сложных форм текста — например, изогнутых или с различной ориентацией. Язык — английский.
  2. SCUT-CTW1500 — датасет из 1500 изображений с разметкой в виде полигонов текстом или более 10751 кропов отдельных слов, в том числе 3530 из них искривленных. Изображения также представляют собой фотографии реального мира, в частности фотографии из известного датасета Open Images. Язык — английский и китайский.
  3. MSRA-TD500 — самый маленький датасет из 500 фотографий. Разметка построчная — одна размеченная сущность состоит из нескольких слов. Язык — английский и китайский.
Рисунок 1. Виды датасетов для детекции текста

Если посмотреть на бенчмарки с этими датасетами, можно увидеть следующее: на датасетах Total-Text и SCUT-CTW1500 в тройке лидеров оказываются детекторы на базе трансформеров, а именно MixNet, SRFormer, DPText-DETR. На датасете MSRA-TD500 первое место занимает также MixNet.

Рисунок 2. Топ-3 моделей бенчмарков детекции текста: Total-Text, SCUT-CTW1500 и MSRA-TD500

Важно отметить: эти бенчмарки опубликованы на ресурсе paperswithcode.com. Их можно считать актуальными, ведь последние сабмиты датируются 2023 годом, в отличие от бенчмарков ICDAR 2013 и 2015, чей лидерборд хоть более многочисленный, но уже давно не обновлённый. Соответственно, там нет актуальных моделей.

Трансформерные детекторы

Трансформерные детекторы в CV стали набирать популярность после выхода DETR в 2020 году (кстати, на нашем канале есть статья с подробным обзором этой архитектуры 🙂). Но в то же время у DETR-like архитектур, несмотря на их достоинства (отсутствие анкеров и необходимости NMS, Non Maximum Suppression) есть и недостатки, которые не позволили им стать хорошей альтернативой CNN-детекторам:

  • низкое качество детекции мелких объектов (отсутствие FPN в качестве картиночного энкодера);
  • существенно большее время обучения (квадратичная сложность self-attention).

Исследователи оперативно предложили следующие решения проблем:

  • Deformable Attention в Deformable DETR для снижения вычислительной сложности attention-слоя;
  • возвращение к анкерам путём предания геометрического смысла Position Queries в DAB-DETR.

Тем не менее все эти архитектуры больше подходят для классической детекции баундинг боксов вокруг объектов. Одна из ключевых особенностей детекции текста (помимо его мелкого размера относительно масштаба изображения) — сложная форма. Это особенно характерно для Scene Text Detection (см. датасеты ICDAR, Total-Text, SCUT, MSRA). То есть нас интересует не просто левая верхняя координата и высота, ширина бокса, а точки, по которым можно построить полигон вокруг слова сложной формы.

Таким образом, существующие DETR-like модели требуют модификации для решения задачи детекции текста. Один из вариантов такой модификации был предложен в статье Text Spotting Transformers (TESTR). В ней предлагается использовать предсказанные энкодером анкерные боксы для обогащения positional queries и последующей генерации полигонов на выходе декодера. Однако такой подход не позволяет достичь высокой точности полигонов вокруг текста, так как в его основе лежит лишь информация о боксах (выход энкодера), чего недостаточно для точной локализации слов сложной формы.

Другая проблема трансформерных декодеров в задачах детекции текста — анализ изображения в определённом порядке, а именно слева направо и сверху вниз. Действительно, на вход трансформерного энкодера подаётся набор визуальных токенов, представляющих собой патчи изображения (16х16 или 32х32 пикселя), которые растянуты в единую последовательность в порядке, описанном выше. Но что если на изображении есть реверсивный текст? Он, кстати, частенько может встречаться в STD-датасетах. Это, в свою очередь, приводит к снижению метрики на всём тестовом датасете.

Исходя из описанных выше проблем, мы приходим к запросу на доработку DETR-like архитектуры специально под задачу детекции текста. Один из способов — архитектура DPText-DETR. Давайте сейчас её и рассмотрим 😊

DPText-DETR

Архитектура DPText-DETR построена на базе Deformable DETR. Здесь также используется Deformable Attention и двухстадийный подход к детекции.

Но прежде, чем погрузиться в особенности архитектур трансформерных детекторов, введём несколько определений:

📌Composite (Object) Query — представления (эмбеддинги) объекта детекции. По сути аналог анкера из классического детектора, который формируется в процессе обучения модели. Состоит из positional и content query.

Positional Query — составляющая Object Query, которая содержит в себе пространственную информацию. Это обучаемое представление.

Content Query — составляющая Object Query, которая формируется в декодере и отвечает за сбор визуальной информации о текущем объекте.

Deformable Attention — способ борьбы с квадратичной сложностью классического self–attention, применяемого в DETR (более подробно об этом можно почитать в нашей статье про RT-DETR). Его идея заключается в следующем — теперь внимание считается относительно не всех пикселей изображения, а только определённых точек в окрестности референсной точки на изображении. Координаты референсной точки получаются на основе эмбеддинга positional queries, пропущенных через линейный слой и сигмоиду.

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

Рисунок 3. Архитектура Deformable DETR

Итак, вернёмся к архитектуре DPText-DETR (см. рисунок 4). Входное изображение проходит через CNN-бэкбон и далее в виде закодированной последовательности токенов подаётся на вход трансформерного энкодера. Затем после нескольких слоёв Deformable Attention и MLP на выходе энкодера получаем регионы интересов (анкеры) в виде координат баундинг боксов. Видно, что авторы следуют двухстадийной концепции архитектуры декодера.

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

Рисунок 4. Архитектура DPText-DETR

На основе полученных контрольных точек формируются Positional Queries, которые складываются с Content Queries, и в итоге получаются Composite (Object) Queries (см. рисунок 5). Они, в свою очередь, подаются на вход декодера.

Рисунок 5. Механизм формирования Positional Queries в DPText-DETR

Composite Queries сначала проходят через слой Enhanced Factorized Self-Attention (EFSA).

📌Enhanced Factorized Self-Attention (EFSA)Factorized Self-Attention слой, к которому добавили циклическую свёртку, или Circular convolution (свёрточный слой с периодической функцией свёртки), для обработки контрольных точек, описывающих полигон вокруг детектируемого объекта.

Далее идет Deformable Cross-Attention слой, который использует полученные на выходе энкодера контрольные точки в качестве референсных. Они обновляются на каждом слое декодера для лучшей адаптации под текст произвольной формы. И, наконец, выходная голова декодера предсказывает уверенность детекции объекта и N точек полигона.

Важно отметить особую разметку данных, которую используют для обучения DPText-DETR. Как мы отмечали ранее, классические детекторы объектов на изображении «‎учатся»‎ читать текст слева направо и сверху вниз. Разработчики DPText-DETR предложили вносить информацию о направлении чтения слова в разметку, как это показано на рисунке 6. Модель учится не только локализовать текст, но и определять точку начала чтения (она выделена зелёным цветом).

Рисунок 6. Позиционный способ разметки

Результаты экспериментов

На рисунке 7 приведены результаты сравнения DPText-DETR с другими детекторами — известными моделями на базе CNN (CRAFT, DB) и трансформерными решениями (TESTR, SwinTextSpotter). DPText-DETR показывает максимальные значения F-меры (F) среди всех представленных в таблице моделей.

Результаты были получены для архитектуры с бэкбоном ResNet-50: 6 слоёв в энкодере и декодере, для каждой референсной точки семплировалось по 4 точки для вычисления attention, число Composite (Object) равнялось 100, а число предсказываемых контрольных точек полигона вокруг слов — 16. Модель обучалась на 120 000 размеченных слов из Total-Text. Также применялись и другие стратегии обучения с иными датасетами.

Рисунок 7. DPText-DETR vs другие модели на трёх бенчмарках детекции текста

Если посмотреть на примеры детекции текста на рисунке 8 — в целом, всё выглядит отлично 😊. DPText-DETR хорошо справляется как с прямолинейным, так и с кривым текстом. Могут возникнуть трудности, если текст плотный и расположен по окружности, как в правой нижней картинке ICDAR19.

Рисунок 8. Результаты детекции DPText-DETR

Заключение

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

В следующей статье мы продолжим рассматривать трансформерные архитектуры детекторов текста и подробно разберём архитектуры MixNet и SRFormer. И, конечно, сравним их, чтобы выявить сильные и слабые стороны моделей. Продолжение следует! 🙂

Телеграм-канал

DeepSchool

Короткие посты по теории ML/DL, полезные
библиотеки и фреймворки, вопросы с собеседований
и советы, которые помогут в работе

Открыть Телеграм

Увидели ошибку?

Напишите нам в Telegram!