Научная статья на тему 'Выделение структурных признаков распознаваемых символов на основе набора клеточных автоматов'

Выделение структурных признаков распознаваемых символов на основе набора клеточных автоматов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
359
79
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Суясов Дмитрий Игоревич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Выделение структурных признаков распознаваемых символов на основе набора клеточных автоматов»

ВЫДЕЛЕНИЕ СТРУКТУРНЫХ ПРИЗНАКОВ РАСПОЗНАВАЕМЫХ СИМВОЛОВ НА ОСНОВЕ НАБОРА КЛЕТОЧНЫХ АВТОМАТОВ

Д.И. Суясов

Научный руководитель - д.т.н., профессор А.А. Шалыто

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

Введение

Важной задачей современных интеллектуальных систем является задача распознавания текста. Распознавание текста используется в системах анализа документов, при переводе в электронный вид книжных архивов, для анализа анкет результатов при тестировании и во многих других сферах.

Проблемой при распознавании текста является недостаточная точность распознавания. Работы в это области ведутся в основном специальными научными группами и коммерческими компаниями.

Большинство работ по решению задач в области систем распознавания предполагает модульный подход: отдельные модули решают задачи по фильтрации, сегментированию, выделению признаков и классификации изображения. Точность результатов работы каждого модуля, зачастую, в значительной степени сказывается на общем результате распознавания текста [1]. Разработка перспективных методов, лежащих в основе модулей системы распознавания и, в частности, в основе модуля выделения признаков символов из изображений, позволяет повысить общее качество распознавания и найти новые альтернативные пути решения задачи.

Стоит отметить, что к сегодняшнему дню предложены варианты решения задачи по выделению признаков символов. К ним относятся выделение скелетов символов [2, 3], выделение признаков на основе преобразующих функций [4] и другие.

Решение, предложенное в данной работе, определяет способ поиска и идентификации признаков символов из их изображений. Подход на основе клеточных автоматов позволяет использовать простой математический аппарат без операций с плавающей точкой. Введенное в работе понятие клеточного автомата с метками позволяет без модификации исходного изображения выделять признаки символов.

Клеточные автоматы и их польза

Понятие клеточного автомата введено в работах Джона фон Немана (John von Neumann) и Конрада Цузе (Konrad Zuse). В начале 40-х годов XX века они разработали идею универсальной вычислительной среды для построения, анализа и сравнения характеристик алгоритмов [5].

Формально клеточный автомат можно определить как набор: {G, Z, N, f}, где G -метрика поля, на котором действует клеточный автомат; Z - множество состояний каждой клетки; N - окрестность клетки, которая влияет на состояние данной клетки; f -правила клеточного автомата, которые в математическом виде могут быть записаны какZ х Z|N| ^ Z .

Свойствами клеточного автомата являются: локальность правил, однородность системы, конечность множества состояний клетки, одновременность изменений для всех клеток. Более подробно и формально основные свойства классического клеточного автомата приведены в работе [6].

Существует несколько разновидностей клеточных автоматов. Большинство из них приведено в работе Стивена Вольфрама (Stephen Wolfram) «A New Kind of Science» [7]. Выделяют основные типы клеточных автоматов.

(1) Классические клеточные автоматы - автоматы, где клетки поля изменяют состояние в зависимости от состояний соседних клеток.

(2) Мобильные автоматы характеризуются наличием одной или нескольких активных клеток: правила переходов преобразуют только активные клетки.

(3) Тьюринговая машина - это усложнение мобильного автомата, где активная клетка имеет различные состояния.

(4) В системах подстановок автоматы заменяют клетку набором из других клеток.

(5) Цикличные системы характеризуются чередованием применения правил клеточного автомата.

(6) Регистровые машины - это автоматы, выполняющие заданные программы по изменению состояний клеток.

(7) В символьных системах клеточный автомат работает с системами символов.

Наиболее известным приложением клеточных автоматов можно считать игру

«Жизнь» Джона Конвея (John Conway) [5, 8]. Также некоторые работы по применению клеточных автоматов открыты для свободного доступа на сайте кафедры «Технологии программирования» СПбГУ ИТМО [9].

Клеточные автоматы с метками

Расширением понятия клеточного автомата может служить клеточный автомат с метками. Принцип клеточной системы с метками заключается в ассоциации каждой клетки поля с одним или несколькими метками. При этом для клетки может быть введена как одна метка, так и несколько. Они исполняют роль маркеров и используются в правилах клеточного автомата. Пример правила клеточного автомата с метками представлен на рис. 1.

Рис. 1. Пример правила перехода клеточного автомата с метками: правило перекрашивает белую клетку в черный цвет, если четыре соседних клетки содержат метки

Формально клеточный автомат с метками может быть описан следующим образом. Клеточный автомат с метками - это набор {О, М, 2, N /}, где О - конечное дискретное метрическое множество, гарантирующее конечность расстояний между клетками; М - конечное множество меток, определенное для каждой клетки; 2 - конечный набор состояний клеток; N - конечное множество, определяющее окрестность клетки таким образом, что каждый элемент множества позволяет определить соседа для каждой клетки - количество соседних клеток, которые влияют на состояние данной клетки); / - правила клеточного автомата, соответствующие математической функции переходов 2 х С х 2т х Ст ^ 2 х С, С с М .

Стоит отметить, что клеточный автомат с метками может интерпретироваться как расширение понятий мобильного клеточного автомата и клеточного автомата типа «Тьюринговая машина», в котором определена одна активная клетка. Клеточный автомат с метками сводится к данным типам клеточных автоматов введением ограничений

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

Дополнительно можно провести аналогию клеточного автомата с метками с понятием памяти в тьюринговых машинах [10]. Головка тьюринговой машины может хранить некоторое конечное число данных. Правила автомата машины используют эти данные для изменения ленты машины или передвижения ее головки.

Клеточные автоматы с метками могут быть применены в системах со сложной логикой, где клеткам необходимо хранить информацию в процессе работы автомата. В частности, данный тип автоматов применяется при выделении структурных признаков графических изображений символов.

Набор клеточных автоматов

Клеточный автомат является мощным инструментом по выполнению задач моделирования. Четко определив все его составляющие (метрику поля, состояния клеток, количество влияющих на клетку соседей и правила работы автомата), можно решить огромное число задач, многие из которых имеют нетривиальные решения [7].

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

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

(1) Клеточный автомат запускается на выполнение четко заданного количества итераций.

(2) Выполнение клеточного автомата происходит до тех пор, пока к полю применимо хотя бы одно правило автомата.

(3) Автомат выполняется до тех пор, пока на поле происходят изменения клеток.

Кроме правил завершения работы клеточных автоматов, набор может также характеризоваться наличием управляющих элементов - не клеточных автоматов. Такими элементами могут быть условные операторы, операторы переходов, операторы циклов и другие. Операторы, заданные в наборе клеточных автоматов, позволяют расширить применимость понятия набора клеточных автоматов. Сложные системы могут быть разбиты на небольшие подзадачи, решаемые в рамках отдельных клеточных автоматов и объединенные единой логикой управления.

Логика, определяющая правила завершения работы клеточных автоматов и порядок и последовательность их запуска, является идеальным примером возможности внедрения конечного автомата [9, 11].

Схема по выделению признаков

Последовательность клеточных автоматов также применима в таких сложных системах, как системы распознавания символов. Системы OCR (optical character recognition - англ. оптическое распознавание символов) или системы распознавания текста ис-

пользуют разные стратегии работы. Наиболее распространенной стратегией является разбиение процесса распознавания текста на этапы.

(1) фильтрация изображения текста: очистка от шумов и помех;

(2) разбиение изображения на текстовые блоки;

(3) выделение в каждом блоке текстовых строк и отдельных символов;

(4) сбор информации о каждом символе и/или тексте целиком;

(5) классификация символов на основе выделенных признаков.

Каждый этап распознавания очень важен и влияет на качество результата работы системы. В данной статье рассматривается четвертый этап, а именно выделение структурных признаков символов.

Человек в процессе чтения определяет символ текста на основе целого ряда признаков: это и наклон, и изгибы, и шрифт, и положение, и многие другие. Для качественной работы машины в некоторых случаях достаточно малого количества наиболее характерных признаков. Такими признаками могут быть наличие и положение концов символов, количество петель, положение пересечений отрезков в символе. Для обработки изображений русских букв данных признаков в большинстве случаев достаточно. На рис. 2 указаны признаки для первых четырех букв русского алфавита.

Рис. 2. Выделенные признаки (концы, петли и пересечения) первых четырех букв

русского алфавита

Выделение указанных признаков может быть с успехом выполнено с помощью последовательности клеточных автоматов с метками. Стратегия выделения признаков основана на распространении волны.

От верхнего края символа вдоль точек, составляющих данный символ, пускается волна. Эта волна может разделяться на составляющие, повторяя контур изображения символа. В определенный момент составляющие волны могут встретиться или затухнуть на конце символа. На рис. 3 показано направление движения волны вдоль изображения символа «А» и показаны места старта волны, затухания на концах символа и в месте встречи ее двух составляющих. В процессе распространения волны в момент, когда определяется клетка конца символа или клетка встречи двух составляющих волны, генерируется ответная эхо-волна вдоль уже пройденных клеток. Эхо проходит путь в обратном направлении и отмечает клетки, в которых начальная волна была разделена на составляющие. Это позволяет найти позиции пересечений отрезков, из которых состоят символы.

В понятие волны в данном алгоритме вкладывается несколько составляющих. Фронт волны - точки символа, которые передвигаются от одного конца изображения символа к другому. Шлейф волны - это точки изображения, в которых в предыдущий момент времени находился фронт волны. Точки пройденного пути - это точки изображения, где присутствовал фронт волны, а затем и шлейф волны, в этих точках процесс не возобновляется.

В начальный момент времени все точки символа не помечены метками. Затем первая точка волны помечается, и алгоритм начинает свою работу.

Алгоритм основан на идее, что в процессе прохождения волны в какой-то момент времени фронт волны угаснет, в то время как шлейф все еще будет присутствовать.

Данное событие может случиться только на конце символа либо на месте встречи двух составляющих волны. Позиция шлейфа волны в этот момент запоминается.

Рис. 3. Направление распространения волны вдоль символа «А» с фиксированием позиций концов символов и петель, а также распространение эхо с фиксированием позиции пересечений (1, 2, 3 - шаги распространения волны и эхо)

Дополнительно, событие встречи двух составляющих волны регистрируется на основании факта, что шлейфы двух составляющих волны в момент встречи не связаны между собой. Таким образом, запоминается позиция петли символа.

Роль клеточных автоматов с метками в процессе работы алгоритма заключается в выделении информации без изменения изображения символа. Автоматы работают в качестве сборщиков данных об изображении и никак не влияют на входные данные.

Реализация алгоритма

Для запуска алгоритма и анализа результатов его работы была разработана программа. Программа позволяет создавать отдельные клеточные автоматы, в том числе клеточные автоматы с метками и последовательности клеточных автоматов. Также программа позволяет запускать клеточные автоматы в пошаговом или автоматическом режимах.

На основе разработанной программы был смоделирован алгоритм по выделению концов, петель и пересечений в изображениях символов. Эксперименты с запуском алгоритма для различных вариантов текста, с варьированием шрифта, его размера, наклона, толщины показали работоспособность алгоритма. Характерные результаты представлены ниже.

(1) Позиции и количество выделенных признаков согласуется с теоретически предсказанными значениями.

(2) Результат работы алгоритма не зависит от выбранных размеров и толщины символов.

(3) Наклон символов смещает положение структурных признаков относительно друг друга, что должно учитываться в дальнейших шагах процесса распознавания символов.

(4) Результат работы алгоритма меняется в зависимости от выбранного шрифта. Количество и положение петель, пересечений, концов символов варьируется при обработке изображений символов различных шрифтов.

(5) Скорость работы алгоритма зависит от размеров обрабатываемого изображения. Предполагается использование оптимизационных подходов при увеличении разрешения изображений символов.

(6) Выделенные признаки символов представлены в виде меток в клетках изображения. Исходное изображение символа не изменяется.

Результаты работы и развитие идеи

Разработанный алгоритм выделения признаков символов из их изображений на основе последовательности клеточных автоматов с метками показал стойкость к различным вариантам начертания символов и зависимость от выбранного шрифта. Дополнительно стоит отметить, что результат алгоритма чувствителен к помехам на изображении символа. Сильными сторонами алгоритма являются:

(1) простота вычислений;

(2) отсутствие операций с плавающей точкой;

(3) возможность одновременной обработки всех символов;

(4) возможность распараллеливания процесса выполнения клеточных автоматов;

(5) устойчивость к размерам и толщине символов.

Относительно невысокие скоростные характеристики работы моделирующей программы могут быть компенсированы внедрением оптимизационных методов (введение обобщенных координат, исключение из обработки неиспользуемых частей полей, объединения точек изображения) и распараллеливанием процесса обработки всех символов текста. Алгоритм может использоваться в модульных системах по распознаванию текста в качестве системы по выделению характерных признаков символов. Выделенные признаки могут использоваться в нейронных сетях, статистических методах как входные параметры.

Дальнейшие исследования в области применимости клеточных автоматов в процессе распознавания текста заключаются в оптимизации моделирования работы клеточных автоматов, распараллеливании процесса обработки нескольких символов текста, исследовании методов классификации признаков на основе клеточных автоматов.

Заключение

Задача выделения структурных признаков символов в системах распознавания текстов поставлена давно. Повышение качества и выделение характерных признаков символов - на сегодняшний день все еще актуальная проблема. Существующие работы не решают задачу полностью, и появление новых методов и механизмов выделения признаков способствует развитию OCR области.

Алгоритм выделения структурных признаков символов из их изображений на основе набора клеточных автоматов позволяет по новому подойти к решению данной задачи и предоставляет инструментарий для дальнейших исследований.

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

Литература

1. Бондаренко А.В., Галактионов В.А., Горемычкин В.И., Ермаков А.В., Желтов С.Ю. Исследование подходов к построению систем автоматического считывания символьной информации - М.: ИПМ им. М.В.Келдыша РАН, 2003.

2. Фролов А.Б., Четрафилов И.Д. О некоторых подходах к распознаванию оптических образов текстов // Интеллектуальные системы. - 1997. - Т. 2. - Вып. 1-4. - С.189-200.

3. Zhang T.Y., Suen C.Y. A Fast Parallel Algorithm for Thinning Digital Patterns. Image Processing and Computer Vision // Communications of the ACM. - March 1984. - Volume 27. - № 3. - Р. 236-239.

4. Вершок Д.А. Алгоритмические средства обработки и анализа изображений на основе преобразования Хафа. Автореф. дис. ... канд. техн. наук. - Минск, 2002. - 22 с.

5. Астафьев Г.Б., Короновский А.А., Храмов А.Е. Клеточные автоматы. Учебное пособие. - Саратов: изд-во ГосУНЦ «Колледж», 2003. - 25 с.

6. Наумов Л.А. Разработка среды и библиотеки CAME&L для решения задач с использованием клеточных автоматов. - СПб, СПб ГУ ИТМО, 2003. - Режим доступа: http://is.ifmo.ru/papers/camel/

7. Wolfram S. A New Kind of Science. Wolfram Media, Inc., 2002.

8. Gardner M. The Fantastic Combinations of John Conway's New Solitaire Game "Life"// Scientific American. -1970. - №223. - Р. 120-123.

9. Сайт по автоматному программированию и мотивации к творчеству. Кафедра «Технологии программирования» Санкт-Петербургского государственного университета информационных технологий, механики и оптики [Электронный ресурс]; ред. Ша-лыто А.А.; web-master Царев М. - Режим доступа: http://is.ifmo.ru/ свободный. -Загл. с экрана. - Яз. рус., англ.

10. Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений. - М.: Вильямс, 2002.

11. Шалыто А. А. Switch-технология. Алгоритмизация и программирование задач логического управления. - СПб: Наука, 1998. - 628 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.