Открыть сервис

SVTR

SVTR (Single Vision Text Recognizer) — это нейросетевая архитектура для распознавания текста на изображениях, разработанная для обработки текстовых строк произвольной длины и формы. Относится к классу моделей компьютерного зрения, предназначенных для оптического распознавания символов (OCR). Основное отличие SVTR от традиционных подходов заключается в использовании механизма самовнимания (self-attention) для анализа визуальных признаков без предварительного сегментирования изображения на отдельные символы.

История и предпосылки создания

До появления SVTR доминирующим подходом в OCR были модели на основе рекуррентных нейронных сетей (RNN) и сверточных нейронных сетей (CNN), такие как CRNN (Convolutional Recurrent Neural Network). Эти модели требовали предварительного выравнивания изображения текста с последовательностью признаков, что ограничивало их производительность на нестандартных шрифтах, искажённых текстах или изображениях с низким разрешением.

Архитектура SVTR была предложена в 2022 году группой исследователей из компании Baidu (Китай) в статье «SVTR: Scene Text Recognition with a Single Visual Model». Разработка была мотивирована стремлением создать единую модель, способную одновременно обрабатывать как пространственные (визуальные), так и последовательные (текстовые) характеристики текста, минуя сложные этапы предобработки. В отличие от CRNN, SVTR полностью отказалась от рекуррентных слоёв, заменив их механизмом внимания, что позволило ускорить обучение и повысить точность на сложных сценах.

Архитектура и принцип работы

SVTR основана на архитектуре трансформер (transformer), адаптированной для задач компьютерного зрения. В отличие от моделей, использующих отдельные модули для извлечения признаков (CNN) и для моделирования последовательности (RNN), SVTR объединяет эти этапы в единую сеть.

Основные компоненты

  1. Входное представление: Изображение текстовой строки (например, слово или фраза) подаётся на вход модели. Изображение разбивается на патчи (небольшие прямоугольные области), каждый из которых преобразуется в вектор признаков. Этот процесс напоминает подход Vision Transformer (ViT), но адаптирован для одномерной текстовой строки.
  1. Блоки смешанного внимания (Mixed Attention Blocks): Ядро SVTR состоит из нескольких последовательных блоков, каждый из которых включает два типа механизмов внимания:
  • Глобальное внимание (Global Attention): Анализирует взаимосвязи между всеми патчами изображения, позволяя модели учитывать контекст всего текста (например, расположение символов относительно друг друга).
  • Локальное внимание (Local Attention): Фокусируется на соседних патчах, что важно для распознавания мелких деталей, таких как соединения букв или особенности шрифта.
  1. Слияние признаков: После обработки блоками внимания модель объединяет пространственные и последовательные признаки, формируя окончательное представление текстовой строки. Это представление затем декодируется в последовательность символов (букв, цифр, знаков препинания).

Отличия от предшественников

  • Отсутствие рекуррентных слоёв: SVTR не использует RNN или LSTM, что упрощает обучение и уменьшает риск затухания градиентов.
  • Единая модель: В отличие от CRNN, где CNN извлекает признаки, а RNN моделирует последовательность, SVTR выполняет обе задачи одновременно.
  • Параллельная обработка: Механизм внимания позволяет обрабатывать все патчи изображения параллельно, что ускоряет инференс (вывод) по сравнению с последовательными RNN.

Классификация и варианты

SVTR существует в нескольких модификациях, различающихся размером и производительностью:

  • SVTR-Tiny: Лёгкая версия для мобильных устройств и встраиваемых систем. Оптимизирована для быстрого распознавания при ограниченных вычислительных ресурсах.
  • SVTR-Small: Базовая версия с умеренным количеством параметров, подходящая для большинства задач OCR.
  • SVTR-Base: Полноразмерная модель, обеспечивающая максимальную точность, но требующая больше памяти и времени обработки.
  • SVTR-Large: Версия с увеличенным числом параметров для особо сложных случаев (например, рукописный текст или сильно искажённые изображения).

Применение

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

  • Распознавание текста на сценах (Scene Text Recognition): Автоматическое чтение вывесок, номерных знаков, этикеток, рекламных щитов на фотографиях и видео.
  • Оцифровка документов: Преобразование отсканированных страниц, книг и рукописей в машиночитаемый текст.
  • Автоматизация ввода данных: Распознавание текста на банковских чеках, квитанциях, паспортах и других формах.
  • Робототехника и навигация: Чтение указателей, названий улиц и инструкций в системах автономного управления.
  • Мобильные приложения: Функции перевода текста с камеры (например, перевод меню или дорожных знаков).

Преимущества и недостатки

Преимущества

  • Высокая точность: SVTR демонстрирует результаты, сопоставимые или превосходящие современные модели, особенно на сложных сценах с нестандартными шрифтами, наклоном или частичным перекрытием.
  • Скорость обработки: Благодаря параллельной архитектуре, модель работает быстрее многих RNN-аналогов.
  • Универсальность: SVTR эффективно распознаёт как печатный, так и рукописный текст, включая тексты на разных языках (в том числе на кириллице и иероглифических системах).
  • Масштабируемость: Возможность выбора версии модели под конкретные вычислительные ограничения.

Недостатки

  • Высокие требования к ресурсам: Полноразмерные версии (SVTR-Base, SVTR-Large) требуют значительного объёма оперативной памяти и мощного GPU для обучения и инференса.
  • Чувствительность к качеству изображения: При очень низком разрешении или сильном размытии точность распознавания падает.
  • Сложность настройки: Для достижения оптимальной производительности требуется тщательная настройка гиперпараметров и объёмный набор данных для обучения.

Сравнение с другими моделями

МодельТип архитектурыОсновные особенностиТипичная точность на сценах
CRNNCNN + RNNПростота, малый размер, но медленная обработка85–90%
SATRNTransformerИспользование глобального внимания, но сложность обучения88–92%
SVTRTransformerСмешанное внимание, высокая скорость и точность90–95%
TrOCRTransformerПредобучение на больших данных, высокая точность, но ресурсоёмкость92–96%

Развитие и перспективы

После публикации SVTR стала основой для многих последующих исследований в области OCR. Разработчики адаптировали её для распознавания текста на видео, а также для задач, связанных с чтением текста в реальном времени. В 2023–2024 годах появились модификации, интегрирующие SVTR с моделями обработки естественного языка (например, для исправления ошибок после распознавания). В России SVTR используется в некоторых коммерческих OCR-системах, однако её распространение ограничено необходимостью лицензирования (Baidu — китайская компания, не входящая в реестр иностранных агентов в РФ, но её продукты могут подпадать под экспортные ограничения).

Источники

  • Du, Y., Chen, Z., Jia, C., et al. «SVTR: Scene Text Recognition with a Single Visual Model». arXiv:2205.00159, 2022.
  • Baidu Research. «SVTR: A New Architecture for OCR». Официальный блог Baidu, 2022.
  • Shi, B., Bai, X., Yao, C. «An End-to-End Trainable Neural Network for Image-Based Sequence Recognition and Its Application to Scene Text Recognition». IEEE TPAMI, 2017 (описание CRNN).
  • Li, J., et al. «TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models». arXiv:2109.10282, 2021.
Загружаем BFOmetr…