Автор: Булат Бадамшин
Редактура: Герман Петров
Данная статья является частью цикла статей об OCR и продолжает тему детекции текста с помощью трансформеров, затронутую в этом посте. Рекомендуем ознакомиться с ним перед прочтением статьи.
Все статьи из цикла про OCR:
Есть две основные концепции архитектуры детекторов текста — на базе сегментации или на базе регрессии.
Первые модели устойчивы к сложным формам текста и нестандартным шрифтам. Они хорошо справляются с мелким шрифтом, но требуют сложной постобработки, что сказывается на их скорости. К таким моделям относятся DB, CRAFT, FAST. Модели на базе регрессии (TextBoxes, EAST, DPText-DETR) сразу выдают на выходе координаты баундинг-боксов или точки полигона вокруг слов и не требуют постобработки. Это, в свою очередь, значительно ускоряет процесс детекции и позволяет применять их в приложениях реального времени. Но точность детекции у таких моделей ниже, особенно для текстов сложной формы.
А если мы объединим два этих подхода, добьёмся ли мы лучших результатов как по устойчивости к сложным формам, так и по точности и скорости? Да! Именно так поступили разработчики SRFormer: Text Detection Transformer with Incorporated Segmentation and Regression 🙂
На рисунке 1 представлена архитектура SRFormer. В основе лежит архитектура детектора DETR, но с существенными доработками. Давайте их разберём подробнее.
Рисунок 1. Архитектура SRFormer с CNN-бэкбоном, сегментационной головой и регрессионным выходом
Рисунок 1. Архитектура SRFormer с CNN-бэкбоном, сегментационной головой и регрессионным выходом
В качестве бекбона для получения высокоуровневых картиночных признаков выбрана свёрточная сеть Resnet-50. Полученные признаки вытягиваются в последовательность токенов. Она подаётся на вход трансформерного энкодера. В то же время признаки со всех слоёв входного бекбона подаются на вход Feature Pyramid Network (FPN). Далее выходы трансформерного энкодера объединяются с выходами FPN, формируя визуальные признаки для генерации сегментационной маски детектируемого текста. Эта маска — важный источник информации для обогащения эмбеддингов объектов детекции (Object Query), о которых мы подробно рассказывали в первой части 🙂
Следовательно, SRFormer — двухстадийный детектор. На первом этапе формируются регионы интересов с помощью масочной головы (mask head), а извлечённые таким образом признаки через кросс-внимание обогащают эмбеддинги объектов детекции.
Теперь давайте рассмотрим, как формируется Object Query. В отличие от DETR, здесь $q_d$ обогащается за счёт выходов энкодера:
$$ q_d=q_e[ArgTopK(s_{cls})]+q_p $$
где $q_e$ — эмбеддинг выхода энкодера, соответствующий 16 (авторы эмпирически подобрали это число) контрольным точкам полигона (топ 16 скоров $s_{cls}$, посчитанных на основе эмбеддингов энкодера), а $q_p$ — обучаемый эмбеддинг. Такая комбинация эмбеддингов позволяет фильтровать прогнозы одинаковых инстансов.