Детекторы текста на основе трансформеров
Введение
Сегодня мы поговорим о задаче детекции текста в рамках трансформерных моделей. Во время активного использования трансформеров в компьютерном зрении разработчики не смогли пройти мимо и не попробовать применить их для задачи локализации текста.
Возможно, читатель, интересующийся трендами в OCR, спросит: «А есть ли смысл в 2024 году рассматривать детекцию в отрыве от распознавания, особенно в плоскости трансформеров?». Ведь эта архитектура позволяет решить задачу OCR в так называемой end-to-end манере, то есть локализовать и распознать текст в один проход и одной моделью. Это называется Text Spotting.
Мы рассмотрим её подробнее в следующих частях нашей серии, а сегодня, сохранив историческую последовательность в повествовании о технологиях OCR, остановимся на моделях детекции текста на базе трансформеров. Так мы постепенно познакомимся с подробной информацией обо всех этапах развития задачи распознавания текстовых документов с помощью глубоких нейронных сетей 🙂
Бенчмарки
Рассмотрим три наиболее популярных бенчмарка детекции текста для задачи Scene text detection (STD).
📌Scene text detection (STD) — детекция текста на фотографиях реального мира.
- Total-Text — датасет из 1555 картинок с разметкой в виде полигонов вокруг слов на фотографиях реального мира (вывески, дорожные знаки и др.). Его отличает наличие сложных форм текста — например, изогнутых или с различной ориентацией. Язык — английский.
- SCUT-CTW1500 — датасет из 1500 изображений с разметкой в виде полигонов текстом или более 10751 кропов отдельных слов, в том числе 3530 из них искривленных. Изображения также представляют собой фотографии реального мира, в частности фотографии из известного датасета Open Images. Язык — английский и китайский.
- MSRA-TD500 — самый маленький датасет из 500 фотографий. Разметка построчная — одна размеченная сущность состоит из нескольких слов. Язык — английский и китайский.
Если посмотреть на бенчмарки с этими датасетами, можно увидеть следующее: на датасетах Total-Text и SCUT-CTW1500 в тройке лидеров оказываются детекторы на базе трансформеров, а именно MixNet, SRFormer, DPText-DETR. На датасете MSRA-TD500 первое место занимает также MixNet.
Важно отметить: эти бенчмарки опубликованы на ресурсе 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 решает проблему детекции мелких объектов, поскольку собирает для каждой головы внимания энкодера информацию из разных точек в окрестности референсной. То есть теперь можно собирать информацию с различных уровней карт признаков входного бэкбона и при этом сохранять линейную сложность вычислений.
Итак, вернёмся к архитектуре DPText-DETR (см. рисунок 4). Входное изображение проходит через CNN-бэкбон и далее в виде закодированной последовательности токенов подаётся на вход трансформерного энкодера. Затем после нескольких слоёв Deformable Attention и MLP на выходе энкодера получаем регионы интересов (анкеры) в виде координат баундинг боксов. Видно, что авторы следуют двухстадийной концепции архитектуры декодера.
Полученные анкерные боксы используются для равномерного семплирования контрольных точек с верхней и нижней границ бокса. Такое семплирование необходимо, чтобы на выходе декодера спрогнозировать полигон, а не бокс.
На основе полученных контрольных точек формируются Positional Queries, которые складываются с Content Queries, и в итоге получаются Composite (Object) Queries (см. рисунок 5). Они, в свою очередь, подаются на вход декодера.
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. Модель учится не только локализовать текст, но и определять точку начала чтения (она выделена зелёным цветом).
Результаты экспериментов
На рисунке 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. Также применялись и другие стратегии обучения с иными датасетами.
Если посмотреть на примеры детекции текста на рисунке 8 — в целом, всё выглядит отлично 😊. DPText-DETR хорошо справляется как с прямолинейным, так и с кривым текстом. Могут возникнуть трудности, если текст плотный и расположен по окружности, как в правой нижней картинке ICDAR19.
Заключение
В этой статье мы рассмотрели задачу детекции текста с точки зрения трансформерных моделей, определили особенности и недостатки трансформерных детекторов и познакомились с моделью DPText-DETR. Её архитектура позволяет учитывать специфику детекции сложной по форме текста, а также довольно быстро сходиться при обучении.
В следующей статье мы продолжим рассматривать трансформерные архитектуры детекторов текста и подробно разберём архитектуры MixNet и SRFormer. И, конечно, сравним их, чтобы выявить сильные и слабые стороны моделей. Продолжение следует! 🙂