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

Алгоритм распознавания чертежных рукописных символов Текст научной статьи по специальности «Математика»

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

Аннотация научной статьи по математике, автор научной работы — Бурсиан Е. Ю.

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

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

Текст научной работы на тему «Алгоритм распознавания чертежных рукописных символов»

УДК 681.300

Е. Ю. Бурсиан

Петербургский государственный университет путей сообщения АЛГОРИТМ РАСПОЗНАВАНИЯ ЧЕРТЕЖНЫХ РУКОПИСНЫХ СИМВОЛОВ

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

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

В классической теории распознавания образов основным является геометрический подход, при котором физические характеристики объекта преобразуются в вектор информативных признаков а = (а^ ..., ап), аеЯ" где п — число характеристик объекта. Предполагается, что каждый из объектов относится к одному из конечного числа классов Ю; jе Ь, где Ь — множество номеров класса. Векторы одного класса располагаются в Яп внутри его собственной области. В простейшем случае собственные области классов не пересекаются. Задачей распознавания является отнесение вектора а к одному из классов Ю; при этом классификация осуществляется по критерию попадания вектора а в область решения, аппроксимирующую собственную область данного класса. Распознавание в этом случае происходит с помощью решающей функции Да), относящей а к одному из классов Ю; [1]. Известно, что основной проблемой при формализации и решении задач распознавания образов применительно к заданной предметной области становится формирование информативного набора признаков а [1].

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

Рассмотрим алгоритм распознавания символа, состоящий из двух процедур. Первая процедура заключается в построении (создании) скелетного графа распознаваемого символа в целях преобразования его характеристик в вектор информативных признаков. В ходе выполнения второй процедуры осуществляется вычисление решающих функций Да), основанных на комплексных корреляционных функциях, для сравнения распознаваемых образцов с эталонами [3].

Для описания процедуры построения скелетного графа на растре введем следующие обозначения: произвольные точки А1(х1, у1), А2(х2, у2) будем считать соседними по 4-связному растру, если |х1-х2| + |у1-у2| = 1 (рис. 1, а); точки А3(х3, у3), А4(х4, у4) назовем соседними по 8-связному растру, если тах(|х3-х4 |,| у3-у4 |)=1 (рис. 1, б) [4—6]. Связной областью Б в дискретном пространстве будем считать множество точек, связных по 8-связному растру [4, 5]. Точка А называется граничной точкой области Б, если она принадлежит этой области и имеет точки, соседние по 4-связному растру, не принадлежащие области Б. Множество граничных точек будем называть границей области.

а)

А1 А2

Рис. 1

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

Для построения скелетного графа применяется также волновой алгоритм [6]. Входными параметрами волнового алгоритма закраски связной области являются координаты произвольной точки, цвет волны и схема закраски окрестности. Произвольная точка связной области называется точкой генерации волны или начальной точкой ее распространения. Цвет волны соответствует произвольному цвету, задаваемому на растре, при условии, что ни одна точка 8-связной области не закрашена этим же цветом. Цвет волны обычно задается в формате RGB. Схема закраски окрестности определяется множеством точек, которые считаются соседними по отношению к рассматриваемой точке. Точки растра, относящиеся к окрестности некоторой точки N, изображаются на чертежах, которые называются схемами распространения волны. На рис. 2 представлены три типа схем распространения волн. В соответствии со схемой 1 (рис. 2, а) при обработке (закраске) окрестности закрашиваются точки, соседние по 4-связному растру с точкой N. При использовании схемы 2 (см. рис. 2, б), в отличие от схемы 1, закрашиваются точки, соседние по 8-связному растру с точкой N. Схема 3 (см. рис. 2, в) представляет собой комбинацию двух предыдущих схем. В данном случае при обработке окрестности закрашиваются все точки, отмеченные на рисунке серым цветом, если

Рис. 2

центром окрестности является точка, отмеченная черным цветом, т. е. выполняются два шага по 4-связному растру и один шаг по 8-связному растру.

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

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

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

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

Шаг 1. Применить алгоритм обхода границы связной области, при котором каждой граничной точке присвоить один или несколько номеров (не более 4) [5].

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

Шаг 3. Сформировать множество вершин 8, включающее в себя точки А(х, у), удовлетворяющие следующим условиям: 3 А1(х1, у1) А, А1 — точки связной области, соседние по 4-связному растру, причем (х1 < х) | (х1 = х & у1 < у), ё(А, А1)> где ё(А, А1)=|ЛГ(А)-ЛГ(А1)|, Ы(А), ЛГ(А1) — номера цветов точек А(х, у) и А1(х1, у1) соответственно, полученные при обработке связной области на шаге 2 алгоритма, — заранее заданный параметр скелетизации (алгоритма), характеризующий минимальное расстояние на границе связной области между точками, от которых могут прийти волны в точки А1(х1, у1), А(х, у), где А(х, у) е 8.

Шаг 4. Построить нагруженный граф, вершинами которого считать точки множества 8, при этом вершины считать смежными, если им соответствуют связные по 8-связному растру точки.

Шаг 5. Каждую ветвь графа, построенного на шаге 4, аппроксимировать ломаной линией. Полученный граф считать скелетным графом символа.

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

ные символы, а на рис. 3, б — точки множества 8, полученные на шаге 3 рассмотренного алгоритма. По точкам множества £ с применением алгоритмов аппроксимации построены скелетные графы символов (рис. 3, в).

а)

7

Рис. 3

Полученные скелетные графы сравнивались со скелетными графами эталонов, построенных при обработке обучающей выборки. Сравнение графов производилось путем вычисления выборочного коэффициента корреляции [7] между множествами угловых коэффициентов кг и к/ соответствующих ветвей скелетного графа распознаваемого символа и эталона. Символ считался распознанным, если выполнялось условие \г\ > 0,9, где [7]

Z (k - М) ( - Ml')

r = ■

i=i

1

Z (k - Ml)2 (( - Ml )2

i=1

Ml = 1 Zk, Ml = 1 Zk'. l i=1 l i=1

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

СПИСОК ЛИТЕРАТУРЫ

1. Ту Дж., Гонсалес Р. Принципы распознавания образов / Под ред. Ю. И. Журавлева. М: Мир, 1978. С. 50—52.

2. Местецкий Л., Рейер И. Непрерывное скелетное представление изображения с контролируемой точностью // Тр. Междунар. конф. „Графикон—2004". М.: Изд-во МГУ, 2004.

3. Фурман Я. А., Кревецкий А. В. Комлекснозначные и кватернионные сигналы и подходы к их обработке // Изв. вузов. Приборостроение. 2006. Т. 49, № 4. С. 7—18.

4. Котович Н. В., Славин О. А. Распознавание скелетных образов // Методы и средства работы с документами: Сб. трудов Института системного анализа РАН. М.: УРСС, 2000.

5. Шикин Е. В., Боресков А. В. Компьютерная графика. М.: Диалог-МИФИ, 1995.

6. Lam L., Suen C. Y. An evaluation of parallel thinning algorithms for character recognition // IEEE Trans. on Pattern Analysis and Machine Intelligence. 1995. Vol. 17, N 9. P. 914—919.

7. Математическая энциклопедия. М.: Сов. энциклопедия, 1982. Т. 3. С. 658.

Рекомендована кафедрой Поступила в редакцию

математики и моделирования 19.01.07 г.

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