Волновая скелетизация

УДК 519.6

ВОЛНОВАЯ СКЕЛЕТИЗАЦИЯ

Л

© М.Д. Каташевцев1

Иркутский государственный технический университет,

664074, Россия, г. Иркутск, ул. Лермонтова, 83.

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

Ил. 4. Библиогр. 4 назв.

Ключевые слова: волновой алгоритм; растровое бинарное изображение; волна; скелет; скелетизация; графы; итерации; формула Гюйгенса; дуги; логико-эвристический подход.

WAVE SKELETIZATION M.D. Katashevtsev

Irkutsk State Technical University,

83 Lermontov St., Irkutsk, 664074, Russia.

The article deals with the algorithm that allows an efficient transition from bitmapped binary graphics to graph (skeleton). Special attention is paid to the mathimatical rationale of the developed method.The paper considers the application features of the algorithm within a logic-heuristics approach and one of the postprocessing methods for the received skeleton based on the mapping of the graph into the system of arcs and relations between the arcs.

4 figures. 4 sources.

Key words: wave algorithm; bitmapped binary graphics; wave; skeleton; skeletization; graphs; iterations; Huygens formula; arcs; logic-heuristics approach.

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

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

В данной работе предлагается новый алгоритм, переводящий изображение к некоторой новой упро-

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

Для краткости изложения иногда вместо термина растровое изображение будем использовать термин растр.

Предлагаемый алгоритм преобразует растровое изображение в граф. Такое преобразование позволяет абстрагироваться от растрового изображения и рабо-

а) б) в)

Рис. Некоторые подходы в скелетизации изображения: а - исходное; б - Зонга-Суня; в - оконтурирование

1 Каташевцев Михаил Дмитриевич, аспирант, тел.: 89149232463, e-mail: mmailm@mail.ru Katashevtsev Mikhail, Postgraduate, tel.: 89149232463, e-mail: mmailm@mail.ru

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

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

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

Основные определения

Определение 1. Бинарное растровое изображение есть функция

I: XхУ ^ {0,1},X є Ъ,У є Ъ.

Определение 2. Заполненная область есть множество

р = {( х у)\ I (х у) = 1}.

Определение 3. Точку р1 (^, у ) будем называть соседом точки р(х, у) , если \ X - X \< 1 и \ у — у \< 1. Очевидно, что точка р не может иметь более 8 соседей.

Обозначим через Ыр множество всех соседей точки р(х, у) лежащих в заполненной области р, т.е.

У1):| х—х1 \<1л\у—У1 \<1Р1єр}.

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

Ур(x, у)^р1 (х!, у) :\ х — Х1 \<1 л \ у — ух |<1 р, р1є р .

Определение 4. Скелетом изображения / будем называть граф 0(У,Е), интуитивно адекватно отражающий контур исходного изображения.

Определение 5. Волной ж будем называть конечное множество точек {р }.

Будем говорить, что волна w имеет разрыв, если

3^,щ е щ: Зр

В таком случае подмножества щ и щ будем называть подволнами волны щ . Причем, щ ^ щ = щ и щ п щ = 0.

Введем функцию, вычисляющую центр масс точек волны:

!р

Е (щ) = ^

1 щ 1

Алгоритм «волновая скелетизация»

Опишем алгоритм построения скелета изображения f с непустой, связной заполненной областью F . Зададим начальные условия. В качестве начальной волны подойдет любая точка из F :

що0 ={р}р е F

^={щ00}

Fо= F.

Определим п -ый шаг итерации следующим образом - для всякой волны 1 из Wn_1

к.

ж 1 =

где

рєж.^і 1

_ к.

Если щ,...,ит есть подволны волны ж і , тогда

Шгп ={ж+1,...,ж+т},

ж1+і = и ,І = 1, т I \.

і <г

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

жк—1 Ег ={(екі—1, Єї-)}:

еі = & (жі).

Если же волна не имеет разрывов, то

К ={жк };

Ог ={(Єгкі—1, Єкг)}.

Таким образом,

К = К}

V = ^иь ж)}

і

Е. = Е.—1 и{Ег}

р = р \ р

п п-1 \ п-1?

рп-!={р: Р е щ Щ е^-1}

Если | р |= 0, то алгоритм прекращает цикл итераций, а граф

О =

является скелетом исходного изображения /

Оценка

Сложность работы алгоритма волновой скелете-зации порядка о(п2) , где п - мощность заполненной области Р. Вторая степень является следствием необходимости проверять целостность волны на каждой итерации. И хотя добиться линейной скорости не получится, можно существенно сократить время работы алгоритма, если выполнять проверку целостности только на тех участках области Р, где волна достаточно резко меняет свою мощность (таким образом можно обнаруживать, не проходит ли волна в данный момент по участку «разветвления»).

Если на каждой итерации брать в качестве множества N

N Р =

= {рА,У1) :| х -X < 1л 1 У -У1|<1Р1 е р},

то будет получаться квадратная волна (рис. 2).

Если же рассматривать множество как

Щ ={Р1(х1?У1):| х-х1| +| у-У1|= 1,Р1 ер} , то мы получим ромбовидную волну (рис. 3).

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

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

а) б) в)

Рис. 2. Способы «волновой скелетизации»: а - ромбовидная; б - квадратная; в - сферическая

Рис. 3. Результат работы алгоритма: а - первые 20 итераций; б - полностью пройденная область с линией столкновения двух волн (в левом нижнем углу буквы); в - заполненная область с наложенным на нее полученным

скелетом

Постобработка и область применения

Одной из важных областей применения является задача распознавания контурных изображений (букв, символов и т.д.) [3]. В рамках логико-эвристического подхода [4] такие задачи требуют построения так называемого «дерева образцов». Правильно построенное дерево является залогом эффективности распознавания. Очевидно, что если в качестве «дерева образцов» брать граф, образованный путем объединения графов, полученных на основе выше приведенного алгоритма, то очень быстро мы получим «тяжеловесную» структуру, которая будет мало пригодна и для обработки, и для хранения.

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

2. Результатом п. 2 является множество подпутей, каждый из которых переводится в дугу. Градусная мера дуги вычисляется с использованием формулы Гюйгенса. Определив наиболее удаленную точку пути от хорды, стягивающей путь, и вычислив её положение относительно хорды, направленной от начала к концу пути, мы определяем направление обхода. Если точка слева, то обход ведется по часовой стрелке, если точка справа - обход ведется против часовой стрелки, если же точка лежит на прямой - верны оба утверждения.

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

Одним из важных достоинств данного представления изображения является его независимость от размера и поворота изображения.

Рис. 4. Разбиение графа на простые пути особыми точками

ниже алгоритма.

1. Для каждого простого пути выполняется:

1.1. Разбиение пути по точкам смены направления обхода.

1.2. Для каждого разбиения точками смены направления выполнятся:

1.2.1. Разбиение спиралей. Чтобы определить, закручен ли путь по спирали, надо проверить, пересекает ли путь хорда. Если пересечение есть, то необходимо разбить путь точками пересечения.

1.2.2. Для каждого разбиения точками пересечения выполняется:

1.2.2.1. Разбиение по резкости перегиба. Резкость перегиба рассчитывается как величина отклонения угла соединения двух дуг от идеального соединения. Угол у идеального соединения двух дуг градусной

меры а и 3:

у = 2ж- (а + 3).

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

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

Библиографический список

1. Theo E. Schout, Inhoud coiiege [Электронный ресурс] // Image Processing: [сайт]. URL: http://www.cs.ru.ni/~ths/rt2/coi/h9/9gebiedENG.htmi

2. Применение волнового алгоритма для нахождения скелета растрового изображения [Электронный ресурс]. URL: http://ocrai.narod.ru/vectory.htmi (дата обращения:

01.04.2012)

3. Каташевцев М.Д., Мартьянов В.И. Логико-эвристические

методы анализа плоских изображений // Вестник ИГУ: материалы ежегодн. науч.-теорет. конф. аспирантов и студентов. Иркутск, 2010. С. 175-177.

4. Мартьянов В.И., Архипов В.В., Каташевцев М.Д., Пахомов Д.В. Обзор приложений логико-эвристических методов решения комбинаторных задач высокой сложности // Современные технологии. Системный анализ. Моделирование. Иркутск: ИрГУПС. 2010. № 4(28). С. 61-67.