Сегментация строки на символы является одним из важнейших этапов в процессе оптического распознавания символов (OCR), в частности, при оптическом распознавании изображений документов. Сегментацией строки называется декомпозиция изображения, содержащего последовательность символов, на фрагменты, содержащие отдельные символы.
Важность сегментации обусловлена тем обстоятельством, что в основе большинства современных систем оптического распознавания текста лежат классификаторы (в том числе — нейросетевые) отдельных символов, а не слов или фрагментов текста. В таких системах ошибки неправильного проставления разрезов между символами как правило являются причиной львиной доли ошибок конечного распознавания.
Поиск границ символов усложняется из-за артефактов печати и оцифровки (сканирования) документа, приводящим к “рассыпанию” и “склеиванию” символов. В случае использования стационарных или мобильных малоразмерных видеокамер спектр артефактов оцифровки существенно пополняется: возможны дефокусировка и смазывание, проективные искажения, деформирование и изгибы документа. При съемке камерой в естественных сценах на изображениях часто возникают паразитные перепады яркости (тени, отражения), а также цветовые искажения и цифровой шум в результате низкой освещенности. На рисунке ниже показаны примеры сложных случаев при сегментации полей паспорта РФ.
В этой статье мы расскажем о методе сегментации символов текстовых строк документов, разработанном нами в Smart Engines, основанный на обучении сверточных и рекуррентных нейронных сетей. Основным рассматриваемым в работе документом является паспорт РФ.
«End-to-end» сегментация с помощью методов машинного обучения
Методы машинного обучения широко используются в современных алгоритмах сегментации. Однако, их использование обычно совмещается с дополнительными алгоритмами, такими, как генерация первичных разрезов для обучаемой модели распознавания символов, или динамического программирования на выходных оценках этой модели.
Интерес представляет разработка алгоритма сегментации, применяющего методы машинного обучения для анализа изображения строки практически без дополнительной предварительной и последующей обработки (англ. end-to-end). Такие подходы отличаются тем, что не требуют тонкой ручной настройки под конкретный случай (шрифт, вид поля, тип документа), а требуют репрезентативную размеченную обучающую выборку достаточно большого размера. Это делает возможным упрощение и ускорение создания алгоритмов сегментации для новых типов полей документов, а также повышение точности и устойчивости к различным искажениям, возникающим при съемке.
Оценка качества методов сегментации
При разработке методов сегментации, как и при разработке любых алгоритмов, требуется зафиксировать способ оценки качества их работы. Весьма желательно, чтобы этот способ позволял сравнить разрабатываемый метод с другими алгоритмами. Опишем показатели качества, использованные в данной работе для оценки методов сегментации полей паспорта РФ.
Целью сегментации текста на символы является его последующее распознавание, чем обуславливается популярность использования качества финального распознавания в качестве оценки качества алгоритма сегментации. Оценкой же качества алгоритма распознавания может быть как точность распознавания отдельных символов или слов, так и среднее расстояние Левенштейна. Показателями качества системы распознавания Паспорта РФ в данной работе были положены точности полного распознавания каждого из полей документа (имени, фамилии, места рождения и т.д.) с точностью до символа по причине высокой стоимости единичной ошибки в отдельно взятом поле — ошибка даже в одном символе поля, идентифицирующего личность, является критической.
Однако, в случае оценки качества сегментации через качество распознавания возникает зависимость оценок от конкретной модели распознавания. Это является проблемой при разработке целостной системы, так как теряется взаимозаменяемость различных алгоритмов сегментации и алгоритмов распознавания. Поэтому, при разработке использовались дополнительные метрики качества, основанные только на анализе непосредственных границ между символами, выставленных алгоритмами сегментации, такие, как точность, полнота и F1-мера. Такое становится возможно при наличии “идеальной” разметки не только символов в полях, а еще и разрезов между ними, подготовленной людьми, что было подготовлено в данной работе, но доступно не всегда.
Подготовка и искусственное расширение обучающей выборки
Обучающая выборка содержит изображения выбранных полей паспорта РФ, обрезанных по базовым линиям текста, с размеченными позициями идеальных разрезов между символами. Разметка может проводиться как полностью вручную, так и полуавтоматически — существующий алгоритм сегментации проставляет разрезы, которые впоследствии проверяются и, при надобности, корректируются людьми.
Подготовка выборки паспортов РФ и ее разметка — дорогостоящая операция, причем не только по причине большого объема ручной работы. Документы, удостоверяющие личность, содержат персональную информацию, оборот которой регулируется законодательством, по причине чего открытый доступ к базам данных, содержащих большое количество изображений паспортов РФ, не представляется возможным. Отметим, что создание полностью искусственной выборки также сложно из-за отсутствия открытых спецификаций фоновых защитных элементов паспорта РФ, таких, как гильош, голограммы и т.д.
Таким образом, составление выборки достаточного объема для обучения аппроксиматора высокой точности, устойчивого к условиям съемки и ошибкам наведения полей, проблематично. С целью повышения устойчивости используется искусственное расширение (аугментация) обучающей выборки с помощью преобразования данных. Синтез каждого образца осуществляется путем применения случайного набора преобразований, моделирующих трансформацию реального изображения поля.
Для расширения обучающей выборки полей паспорта РФ были применены: добавление искажений гауссовского шума, проективных искажений для моделирования неидеального нахождения границ документа в условиях съемки с мобильных устройств и гауссовского размытия для моделирования дефокусировки, растяжение символов по высоте и ширине (эти параметры символов могут сильно отличаться у паспортов из различных регионов), и вертикальные и горизонтальные сдвиги (моделируются погрешности реальной системы наведения полей). Также были применены дополнительные методы расширения выборки: перемешивание букв и зеркальные отражения, что не встречается в естественных условия, но эксперименты показали увеличение точности при применении такого расширения. Далее приведены иллюстрации описанных преобразований.
Преобразование | Иллюстрация |
---|---|
Оригинальное изображение | |
Гауссовский шум | |
Проективные искажения | |
Гауссовское размытие | |
Сдвиги | |
Перемешивание букв | |
Отражения | |
Растяжение | |
Комбинация преобразований |
Формат разметки и выходных векторов сети
Вне зависимости от типа используемого универсального аппроксиматора, для его обучения и работы необходимо определить функцию потерь (ошибки), которая будет минимизирована на обучающей выборке на стадии обучения параметров модели.
Среднеквадратичное отклонение (СКО) — классическая функция потерь, удовлетворяющая требованиям к непрерывности и дифференцируемости. Финальные ответы алгоритма сегментации являются списком позиций разрезов, поэтому, теоретически, возможно было бы адаптировать среднеквадратичное отклонение (СКО) между соответствующими выходными разрезами и “идеальными” как среднее расстояние между ними. К сожалению, в наивной реализации такой подход ведет за собой проблемы, особенно при использовании нейронной сети.
Количество разрезов между символами, как и количество самих символов не фиксировано и алгоритм сегментации заранее не знает, сколько разрезов требуется проставить. Тогда, в случае совпадения количества разрезов в разметке и на выходе алгоритма сегментации функция ошибки через расстояние нам подходит. Однако, при различном количестве разрезов возникает проблема подсчета потерь для недостающих или избыточных разрезов, особенно в присутствии разумных требований к функции потерь. Кроме того, количество выходов нейронной сети фиксировано в рамках одной архитектуры и поддержка динамического количества выходов требует неоправданного усложнения и запутывания модели.
Таким образом, требуются такие форматы разметки и выходов сети, которые поддерживают выставление любого допустимого количества разрезов, при этом соответствующая им функция потерь остается пригодной для использовании в обучении нейронной сети градиентными методами. Предлагается использовать следующую модель: вместо списка координат разрезов будем рассматривать вещественные вероятностные оценки нахождения разреза в каждом из столбцов пикселей изображения. Разметка разрезов тогда будет выглядеть так: нули во всех позициях, кроме позиций разрезов, в которых стоят единицы. Среднеквадратичное отклонение в таком случае также подходит в качестве функции потерь, но вычисляется уже между векторами оценок вероятностей. Итоговые позиции разрезов на выходе алгоритма получаются с помощью преобразования выходных вероятностных оценок, которое будет детально описано позже.
Небольшие колебания относительно разрезов из разметки обычно не сильно влияют на качество распознавания, особенно если алгоритм сегментации ставит разрезы не непосредственно на границах символов (так, что между двумя символами стоит два разреза), а в области посередине (между символами стоит один разрез). Предложенная же выше функция потерь в таком случае будет одинаково штрафовать выходные вероятности на позициях, не соответствующих идеальным разрезам, вне зависимости от их удаленности. Поэтому, для смягчения штрафа при небольших колебаниях выхода сети предлагается использовать гауссовское размытие разметки с радиусом, пропорциональным средней ширине символа в данном изображении из тестовой выборки.
Сегментация с помощью сверточных нейронных сетей
Одной из наиболее популярных архитектур нейронных сетей в задачах анализа изображений являются архитектура глубоких сверточных сетей, которая была выбрана для первых содержательных экспериментов в создании нашего обучаемого метода сегментации. Классическая модель сверточной сети состоит из нескольких сверточных (convolutional) слоев, составляющих карты признаков путем применения операции свертки с обучаемым ядром, чередующихся с субдискретизацией (max pooling) с целью уменьшения размерности карты признаков. Последние слои (заканчивающиеся выходным слоем) имеют полносвязную (fully connected) архитектуру.
Для используемых в работе нейронных сетей входными данными (векторами признаков) служат полутоновые растровые изображения полей паспорта РФ, приведенные к фиксированной ширине и высоте, например, 200х20 пикселей. Размер выходного слоя, возвращающего вероятностные оценки наличия разреза в столбцах изображения, соответственно, также фиксирован и составляет 200 пикселей. На следующем изображена схема использованной в работе сверточной нейронной сети.
Скрытая часть нейронной сети состоит из сверточных слоев, за которыми следует два полносвязных слоя. За каждым сверточным слоем следует слой субдискретизации. В качестве функций активации использовался гиперболический тангенс. При обучении использовалась техника случайного выборочного обнуления функций активации (dropout) скрытых слоев.
Дополнительная сегментация с помощью рекуррентных нейронных LSTM-сетей
С целью увеличения точности обученной сегментационной сети описанной архитектуры был применен метод последующей обработки выходов сверточной сети путем подачи их на вход дополнительной двусторонней рекуррентной сети.
Рекуррентные нейронные сети разработаны специально для работы с последовательностями: на вход помимо следующего элемента последовательности они принимают свое некоторое скрытое состояние. В работе были использованы рекуррентные нейронные сети архитектуры долгой краткосрочной памяти (LSTM, Long Short-Term Memory), зарекомендовавшие себя в большом количестве применений анализа последовательностей, таких, как распознавание печатного и рукописного текста, речи и других. Сети LSTM архитектуры способны “запоминать” структуру последовательности; в случае сегментации строки под структурой можно понимать, например, среднюю ширину символов в строке и расстояние между ними.
Используемая двусторонняя рекуррентная LSTM-сеть принимает на вход последовательность, составленную путем приложения скользящего окна фиксированного размера (например, 10) к выходному вектору вероятностных оценок сверточной сети. Таким образом, на i позиции входного вектора рекуррентной сети содержится последние 10 выходов сверточной. Двусторонняя направленность сети заключается в создании двух односторонних сетей, одна из которых обрабатывает последовательность слева направо, а другая — справа налево. Затем, выходные векторы обеих сетей, соответствующие одинаковым позициям исходной последовательности, конкатенируются и передаются на вход полносвязному слою, после которого следует финальный слой, возвращающие аналогичные финальные вероятностные оценки. Важно отметить, что выходы сверточной сети, на которых проводится обучение рекуррентной, вычисляются заранее, таким образом, сверточная сеть не меняется при обучении рекуррентной, что сильно ускоряет обучение. Рисунок ниже содержит схему использованной архитектуры рекуррентной сети на выходах сверточной.
После добавления рекуррентной сети на выходах сверточной, общее финальное качество распознавания значительно повысилось, что будет показано в таблице в конце статьи. Функцией активации в LSTM-сети также был гиперболический тангенс.
Преобразование вероятностных оценок в финальные разрезы
Для получения итоговых позиций разрезов на выходе алгоритма требуется выполнить преобразование вероятностных оценок. Простая пороговая фильтрация в данном случае не подойдет, поскольку выходные оценки сети сконцентрированы в большом количестве вокруг предполагаемых разрезов. Так как нейронная сеть аппроксимировала разметку, подвергнутую гауссовскому размытию вокруг позиций разрезов, довольно устойчивым и простым способом преобразования вероятностей в разрезы может быть фильтрация, оставляющая только локальные максимумы оценок, следующая после порогового отсечения с низким порогом. С целью устранения шумовых срабатываний используется дополнительное гауссовское размытие, которое не меняет позиции сильных максимумов.
Метод фильтрации локальных максимумов является простым и показал хорошие результаты, но мы решили проверить, можно ли полностью избавиться от “инженерного” подхода на этапе преобразования вероятностей. В целях эксперимента была обучена еще одна сеть полносвязной архитектуры с небольшим количеством обучаемых весов, принимающая на вход финальные вероятностные выходы итоговой сети, а на выходе возвращающая аналогичные вероятностные оценки. Отличие состоит в том, что обучается она на оригинальных отметках разрезов, не подвергавшимся гауссовскому размытию. Вероятностные оценки на выходе последней сети уже подвергаются простой пороговой фильтрации без дополнительной обработки для получения финальных позиций разрезов. На следующем рисунке изображены примеры работы описанного обучаемого алгоритма сегментации с выводом промежуточных результатов.
Красным фоном отмечены вероятностные оценки на выходах сверточной сети, желтым — следующей за ней рекуррентной. Зеленый цвет обозначает вероятностные оценки рекуррентной сети, отфильтрованные по фиксированному порогу, и, наконец, синий цвет показывает оставшиеся разрезы — фильтрованные оценки, являющиеся локальными максимумами.
Эксперименты и результаты
Основными полями паспорта РФ в проведенных экспериментах были поля фамилии, имени и отчества. Размер исходной обучающей выборки составил 6000 изображений, после ее расширения с помощью синтеза данных — 150000 изображений. Размер тестовой выборки для оценки сегментации вспомогательными метриками без распознавания — 630 изображений. Тестовая выборка для распознавания полей содержала 1300 изображений паспортов РФ, по одному изображению каждого поля на документе.
При распознавании полей на результатах сегментации использовалась одинаковая система распознавания паспортов РФ, не подвергшаяся изменениям. Важно отметить, что нейронная сеть, предназначенная для распознавания полей, была обучена на символах, подвергнутых обжатию с помощью классических «инженерных» методов сегментации, а разрезы, выставленные обучаемым алгоритмом сегментации, передавались без дополнительной обработки и обжатия в систему распознавания. Следующая таблица содержит экспериментальные результаты точности финального распознавания по полям (доля полностью верно распознанных полей).
Алгоритм сегментации | Фамилия, % | Имя, % | Отчество, % |
---|---|---|---|
Сверточная сеть | 68.53 | 76.00 | 78.30 |
Рекуррентная сеть на выходах сверточной сети | 86.23 | 90.69 | 91.38 |
Из таблицы видно, что добавление рекуррентной сети на выходах сверточной сети в подсистеме сегментации сильно повышает точность распознавания полей. Отметим, что в процесс обработки входит нахождение границ паспорта в естественных условиях при съемке с мобильных устройств, чем объясняется неидеальная точность распознавания — была выбрана наиболее неблагоприятная выборка с точки зрения возникающих при съемке искажений и т.п.
В экспериментах с обучаемыми методами сегментации использовалась реализация нейронных сетей из пакета Lasagne на языке Python. Обученные модели далее конвертировались в наш внутренний формат С++ библиотеки нейронных сетей.
Заключение
В статье был рассмотрен метод сегментации печатных текстовых полей и проведен его экспериментальный анализ на примере модуля сегментации системы распознавания паспорта гражданина Российской Федерации. Метод использует подходы машинного обучения (искусственные нейронные сети) практически на всех стадиях работы, что делает процесс настройки под новые типы полей и документов полностью автоматическим при условии наличия обучающей выборки, чем обуславливается перспективность метода.
В качестве дальнейших исследований метода сегментации, основанного на подходах машинного обучения, планируется проведение экспериментов на других типах полей и документов, анализ и классификация ошибок с целью формирования новых способов расширения обучающей выборки, а также профилирование и оптимизация производительности метода на мобильных устройствах, например, путем снижения количества обучаемых параметров. Также, интерес представляет исследование методов цельного распознавания целых слов или полей без сегментации с помощью рекуррентных нейронных сетей.
Автор: SmartEngines