Детекторы текста на основе трансформеров. Часть 2
Пререквизиты
Данная статья является частью цикла статей об OCR и продолжает тему детекции текста с помощью трансформеров, затронутую в этом посте. Рекомендуем ознакомиться с ним перед прочтением статьи.
Все статьи из цикла про OCR:
Введение
Есть две основные концепции архитектуры детекторов текста — на базе сегментации или на базе регрессии.
Первые модели устойчивы к сложным формам текста и нестандартным шрифтам. Они хорошо справляются с мелким шрифтом, но требуют сложной постобработки, что сказывается на их скорости. К таким моделям относятся DB, CRAFT, FAST. Модели на базе регрессии (TextBoxes, EAST, DPText-DETR) сразу выдают на выходе координаты баундинг-боксов или точки полигона вокруг слов и не требуют постобработки. Это, в свою очередь, значительно ускоряет процесс детекции и позволяет применять их в приложениях реального времени. Но точность детекции у таких моделей ниже, особенно для текстов сложной формы.
А если мы объединим два этих подхода, добьёмся ли мы лучших результатов как по устойчивости к сложным формам, так и по точности и скорости? Да! Именно так поступили разработчики SRFormer: Text Detection Transformer with Incorporated Segmentation and Regression 🙂
SRFormer
На рисунке 1 представлена архитектура SRFormer. В основе лежит архитектура детектора DETR, но с существенными доработками. Давайте их разберём подробнее.
В качестве бекбона для получения высокоуровневых картиночных признаков выбрана свёрточная сеть Resnet-50. Полученные признаки вытягиваются в последовательность токенов. Она подаётся на вход трансформерного энкодера. В то же время признаки со всех слоёв входного бекбона подаются на вход Feature Pyramid Network (FPN). Далее выходы трансформерного энкодера объединяются с выходами FPN, формируя визуальные признаки для генерации сегментационной маски детектируемого текста. Эта маска — важный источник информации для обогащения эмбеддингов объектов детекции (Object Query), о которых мы подробно рассказывали в первой части 🙂
Следовательно, SRFormer — двухстадийный детектор. На первом этапе формируются регионы интересов с помощью масочной головы (mask head), а извлечённые таким образом признаки через кросс-внимание обогащают эмбеддинги объектов детекции.
Теперь давайте рассмотрим, как формируется Object Query. В отличие от DETR, здесь \( q_d \) обогащается за счёт выходов энкодера:
где \( q_e \) — эмбеддинг выхода энкодера, соответствующий 16 (авторы эмпирически подобрали это число) контрольным точкам полигона (топ 16 скоров \( s_{cls} \), посчитанных на основе эмбеддингов энкодера), а \( q_p \) — обучаемый эмбеддинг. Такая комбинация эмбеддингов позволяет фильтровать прогнозы одинаковых инстансов.
Дополнительно координаты 16 равномерно распределённых по полигону точек кодируются с помощью синусоидальной функции и 2-х слоёв MLP и используются как позиционные эмбеддинги.
Как мы говорили ранее, сегментационная маска формируется на начальном этапе и выступает в качестве региона интересов (ROI) для обогащения Object Query в декодере. Часть признаков для формирования маски берётся после первых слоёв декодера, что позволяет снизить вычислительные затраты обучения и использования текущей архитектуры. Схема получения маски показана на рисунке 2:
Эмбеддинги контрольных точек полигона, которые формируются на входе декодера проходят через два свёрточных 1D-слоя, складываются со взвешенной суммой этих же эмбеддингов и после пропуска через MLP-слой формируют эмбеддинг маски. Он затем перемножается с выходами FPN-слоя. В итоге получается маска объекта — слова. На её основе рассчитывается анкерная точка — центр масс объекта и смещения относительно неё до 16 контрольных точек полигона вокруг объекта. Оставшиеся слои декодера уточняют эти контрольные точки. Таким образом, в рассматриваемой архитектуре реализовано объединение сегментационного и регрессионного подходов к детекции объекта.
Итак, мы рассмотрели архитектуру детектора SRFormer на базе DETR с дополнительной сегментационной ветвью для уточнения Object Queries. Теперь давайте познакомимся с ещё одной архитектурой и сравним их на различных Scene Text Detection бенчмарках 🙂
MixNet
Архитектура детектора MixNet примечательна тем, что она лидирует в трёх основных современных бенчмарках для задачи Scene Text Detection.
MixNet (см. рисунок 3) состоит из свёрточного бекбона и трансформерного энкодер-декодера. Свёрточный бекбон Feature Shuffle Network (FSNet) перемешивает низкоуровневые и высокоуровневые признаки, что позволяет извлекать более качественные признаки из изображения по сравнению с популярными бекбонами — ResNet и HRNet. Трансформерный блок Central Transformer Block (CTBlock) использует грубую оценку контуров текста, полученную после постпроцессинга выхода FSNet, для прогнозирования центральной линии контура вокруг текста. Подход с прогнозированием центральной линии решает проблему разделения двух строк, когда они находятся близко друг к другу, и их контуры пересекаются.
Как было сказано выше, в архитектуре FSNet перемешиваются признаки высокого и низкого разрешения. Это обусловлено тем, что признаки низкого разрешения (карты признаков с более глубоких слоёв) устойчивее к шумам, чем признаки высокого разрешения. Такое «перемешивание» позволяет сформировать карту признаков, позволяющую получать качественные представления мелких объектов на изображении. Архитектура FSNet похожа на HRNet, но имеет ключевое отличие — модуль перемешивания признаков shuffle layer. Если в HRNet признаки разных разрешений складываются между собой, то в FSNet они пропускаются по разным веткам и периодически перемешиваются в специальном слое. FSNet состоит из трёх основных блоков: convolution block, downsample block и shuffle block (см. рисунок 4).
Давайте подробнее рассмотрим shuffle block. В архитектуре сети используется два таких блока. Первый принимает на вход две карты признаков, второй — три. Чтобы перемешать признаки между собой, внутри блока применяются операции даунсемплинга и апсенмплинга с последующей конкатенацией в новые карты признаков. В отличие от HRNet, shuffle слой в FSNet не является обучаемым, поэтому процесс обучения всей сети происходит быстрее. На выходе FSNet все 4 канала признаков конкатенируются в единую карту.
Популярный подход в задачах детекции текста — выделение опорных точек на предварительном контуре текста, полученном на выходе бекбона. Так, например, делается в DPText-DETR, которую мы рассматривали в прошлой статье. Но проблема в том, что помимо полезной информации вместе с этими контрольными точками может быть захвачена информация о бэкграунде (шум). Трансформерный энкодер-декодер CTBlock позволяет бороться с этим за счёт дополнительного таргета — точки центральной линии контура. Она позволяет отделять две близко стоящие строки текста. Примеры центральных линий контуров вокруг текста показаны на рисунке 5:
Структура CTBlock показана на рисунке 3 справа. Он состоит из двух трансформерных модулей — энкодера и декодера, каждый из которых, в свою очередь, включает три классических трансформерных блока.
Каждый найденный контур текстового инстанса на изображении делится на N равноудаленных частей — N равномерно распределённых по контуру точек. Авторы экспериментальным путём определили N=20. Через энкодер пропускаются извлечённые из этих точек эмбеддинги. На выходе энкодера получаются точки центральной линии контура. По сути это одна из голов сети, которая учит находить центральную линию. Далее полученные центральные точки используются для извлечения соответствующих признаков из карт признаков на выходе бекбона. Признаки центральных точек подаются на вход декодера CTBlock, который, в свою очередь, на выходе выдаёт уже смещения относительно центральной линии для точек по контуру текста. Но основе контрольных точек контура уточняются координаты контура, полученного на выходе FSNet-блока.
Эксперименты
На рисунке 6 приведены результаты моделей MixNet, SRFormer и DPText-DETR на бенчмарке TotalText. О датасете TotalText мы подробнее рассказывали в предыдущей статье про трансформерные детекторы — можно почитать тут. Напомним, что это Scene Text Detection датасет английских слов с разметкой в виде полигонов на фотографиях реального мира. Его отличает наличие сложных форм текста.
Если судить только по бенчмарку TotalText, то MixNet и SRFormer примерно равны по метрикам. Однако у MixNet больше бенчмарков — он подтверждает своё лидерство. В том числе на датасетах MSRA-TD500 и SCUT-CTW1500, которые поддерживают китайский язык.
MixNet демонстрирует устойчивость работы с мелким, нерезким и произвольно ориентированным в пространстве текстом (см. рисунок 7).
Если говорить про скорость работы, то здесь лидером, опять же, является MixNet со своими 21 FPS при варианте бэкбона FSNet — small.
Заключение
Итак, сегодня мы рассмотрели несколько архитектур детекторов текста на базе трансформеров, которые показывают state-of-art результаты на современных Scene Text Detection бенчмарках.
Можно выделить общие черты всех рассмотренных архитектур. В первую очередь, в каждой модели много внимания уделяется бэкбону, поскольку очень важно получить качественные признаки изображения как для высокого, так и для низкого разрешения. Все модели строятся на основе двухстадийного подхода детектора: сначала ищутся приблизительные координаты детектируемых объектов, а затем на второй стадии они уточняются с помощью трансформерных блоков. Также стоит отметить — все архитектуры строятся на базе DETR с различными его улучшениями, учитывающими специфику домена (текст).
При сравнении рассмотренных архитектур важно учитывать тот факт, что бенчмарки, на которых они тестировались, — это фотографии текста в реальном мире. Поэтому в них мало документов. Опыт сравнения трасформерных детекторов текста с классическими DB или CRAFT, показывает — классические модели лучше справляются с задачей детекции чёрно-белых документов. Одной из причин могут быть датасеты, на которых предобучались модели. То есть если брать предобученную модель, то CRAFT и DB, скорее всего, лучше справится с простым текстом в документах, чем трансформерные детекторы, которые требуют предобучения на документах 😎