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

Сегментация символов

Сегментация символов — это этап обработки изображений и распознавания текста, заключающийся в выделении на цифровом изображении отдельных графических элементов (символов, знаков, букв, цифр) из общего потока текстовой информации. Сегментация является промежуточным звеном между предварительной обработкой изображения (бинаризация, фильтрация, устранение шумов) и непосредственно распознаванием каждого символа (например, с помощью оптического распознавания символов, OCR). Цель сегментации — разбить строку текста на отдельные знаки, чтобы каждый из них мог быть передан на вход классификатора. Качество сегментации напрямую влияет на точность всего процесса распознавания: ошибки на этом этапе (слипание символов или их разрыв) приводят к неверному распознаванию.

История развития

Задача сегментации символов возникла одновременно с появлением первых систем оптического распознавания символов (OCR) в середине XX века. Ранние системы (1950–1960-е годы) работали с моноширинными шрифтами и печатными текстами, где символы имели фиксированную ширину и чёткие границы. Сегментация в таких системах сводилась к простому разрезанию изображения по вертикальным линиям на равные интервалы.

В 1970–1980-е годы, с развитием методов цифровой обработки изображений, появились алгоритмы, основанные на анализе проекций (гистограмм) пикселей. Наиболее распространённым стал метод вертикальной проекции: для бинарного изображения строки строится гистограмма количества чёрных пикселей в каждом столбце; локальные минимумы этой гистограммы соответствуют границам между символами. Этот метод эффективен для печатных текстов с равномерным межсимвольным расстоянием, но даёт сбои при соприкосновении символов (например, в курсивных шрифтах или при плохом качестве печати).

В 1990-е годы, с ростом вычислительных мощностей, стали применяться более сложные методы: анализ связных компонентов (выделение отдельных объектов по связности пикселей), морфологическая обработка (эрозия, дилатация) для разделения слипшихся символов, а также методы, основанные на анализе контуров и скелетизации. Для рукописного текста, где символы могут сильно перекрываться и иметь переменную ширину, были разработаны эвристические алгоритмы, использующие знания о возможных формах букв и их сочетаниях.

С начала 2000-х годов, с внедрением методов машинного обучения, сегментация стала рассматриваться как задача классификации на уровне пикселей или областей. Сверточные нейронные сети (CNN) и рекуррентные нейронные сети (RNN) позволили обучать модели, которые одновременно выполняют сегментацию и распознавание, минуя этап явного разделения символов. Этот подход, известный как «сквозное распознавание» (end-to-end), особенно эффективен для рукописного текста и сложных шрифтов.

Классификация методов сегментации

Методы сегментации символов можно разделить на несколько основных категорий в зависимости от подхода к выделению границ.

По уровню анализа

  • Сегментация строки — выделение отдельных строк текста на изображении страницы или документа. Обычно выполняется с помощью горизонтальной проекции: строка считается участком с высокой плотностью пикселей, а межстрочные интервалы — с низкой.
  • Сегментация словаразделение строки на отдельные слова. Основана на анализе пробелов (вертикальных проекций с нулевым количеством пикселей).
  • Сегментация символа — выделение каждого отдельного знака внутри слова. Наиболее сложный этап, особенно для рукописного текста и декоративных шрифтов.

По алгоритмическому подходу

  • Методы на основе проекций — используют вертикальные или горизонтальные гистограммы пикселей. Просты и быстры, но чувствительны к шумам, наклону текста и слипанию символов.
  • Методы на основе связных компонентов — выделяют все связные области (пиксели, соединённые по 4- или 8-соседству). Каждый компонент потенциально является символом. Проблема: один символ может состоять из нескольких компонентов (например, буква «ё» или «i»), а несколько слипшихся символов — образовывать один компонент.
  • Методы на основе анализа контуров — выделяют контуры объектов и анализируют их форму, кривизну, вогнутости и выпуклости. Позволяют разделять слипшиеся символы по точкам перегиба контура.
  • Методы на основе машинного обучения — используют нейронные сети для классификации каждого пикселя или группы пикселей как принадлежащих к определённому символу или к фону. Примеры: U-Net, Mask R-CNN, CRNN (Convolutional Recurrent Neural Network).
  • Гибридные методы — комбинируют несколько подходов, например, сначала выделяют связные компоненты, затем применяют проекционный анализ для разделения слипшихся компонентов.

Основные проблемы и вызовы

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

  • Слипание символов — наиболее частая проблема. Возникает при плохом качестве печати, низком разрешении, использовании курсивных или декоративных шрифтов, а также в рукописном тексте. Слипшиеся символы образуют один связный компонент, который необходимо разделить. Для этого используются методы поиска точек разрыва по контуру (например, по вогнутостям) или анализ ширины символов.
  • Разрыв символов — символ может быть разбит на несколько фрагментов из-за низкого качества изображения, шумов или особенностей шрифта (например, буква «м» может выглядеть как два отдельных штриха). В этом случае необходимо объединить фрагменты в один символ, используя анализ расстояний и формы.
  • Переменная ширина символов — в пропорциональных шрифтах и рукописном тексте ширина символов варьируется, что делает невозможным использование фиксированного шага сегментации.
  • Наклон текста — если текст на изображении имеет наклон (скос), вертикальная проекция даёт размытые минимумы. Требуется предварительное выравнивание (дескев) или использование методов, устойчивых к наклону.
  • Шумы и артефакты — пыль, царапины, неравномерное освещение, тени могут создавать ложные связные компоненты или искажать границы символов.

Применение

Сегментация символов является ключевым этапом в различных системах автоматического распознавания текста.

  • Оптическое распознавание символов (OCR) — в системах распознавания печатного текста (например, ABBYY FineReader, Tesseract) сегментация выполняется на ранних стадиях для подачи отдельных символов на классификатор.
  • Распознавание рукописного текста (HTR) — в системах распознавания рукописных документов (например, в исторических архивах, медицинских рецептах) сегментация особенно сложна из-за вариативности почерка. Современные системы всё чаще используют сквозные нейросетевые модели, которые не требуют явной сегментации.
  • Распознавание номерных знаков (LPR) — в системах автоматического распознавания автомобильных номеров сегментация символов на номерной пластине является стандартным этапом. Обычно используются методы на основе проекций и анализа пропорций.
  • Распознавание текста на естественных сценах (Scene Text Recognition) — в задачах компьютерного зрения, таких как распознавание вывесок, уличных указателей, текста на фотографиях. Сегментация здесь осложняется разнообразием шрифтов, углов обзора, освещения и фона.
  • Верификация документов — в системах проверки подлинности паспортов, водительских удостоверений, банковских чеков сегментация используется для извлечения отдельных полей (серия, номер, дата).

Современные тенденции

В современных системах распознавания текста, особенно основанных на глубоком обучении, наблюдается отход от явной сегментации символов. Вместо этого используются модели, которые работают с изображением целиком и выдают последовательность символов без предварительного выделения границ. Например, архитектура CRNN (Convolutional Recurrent Neural Network) с механизмом внимания (attention) или Connectionist Temporal Classification (CTC) позволяет распознавать текст любой длины, не требуя посимвольной разметки на этапе обучения. Однако для некоторых задач, где требуется высокая точность и контроль над каждым символом (например, в паспортных системах), классическая сегментация остаётся востребованной.

Интересные факты

  • В ранних системах OCR (1960-е годы) сегментация выполнялась аппаратно с помощью фотоэлементов и масок, а не программно.
  • Одна из самых сложных задач сегментации — распознавание арабской вязи, где символы могут соединяться внутри слова и менять свою форму в зависимости от позиции.
  • В системах распознавания рукописного текста, обученных на сотнях тысяч образцов, ошибка сегментации может быть снижена до уровня менее 1%, но только для стандартизированных почерков.

Источники

  • Гонсалес Р., Вудс Р. Цифровая обработка изображений. — М.: Техносфера, 2012.
  • Шапиро Л., Стокман Дж. Компьютерное зрение. — М.: Бином. Лаборатория знаний, 2006.
  • Plamondon R., Srihari S. N. On-line and off-line handwriting recognition: a comprehensive survey // IEEE Transactions on Pattern Analysis and Machine Intelligence. — 2000. — Vol. 22, No. 1. — P. 63–84.
  • Smith R. An Overview of the Tesseract OCR Engine // Proceedings of the Ninth International Conference on Document Analysis and Recognition (ICDAR). — 2007. — P. 629–633.
  • 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 Transactions on Pattern Analysis and Machine Intelligence. — 2017. — Vol. 39, No. 11. — P. 2298–2304.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →