Нейросетевой алгоритм аппроксимации векторных объектов кривыми Безье

В.А Чулюков, А.А. Ширма,

кандидат физико-математических наук, Воронежский государственный

доцент, Воронежский государственный педагогический университет

педагогический университет

НЕЙРОСЕТЕВОЙ АЛГОРИТМ АППРОКСИМАЦИИ ВЕКТОРНЫХ

ОБЪЕКТОВ КРИВЫМИ БЕЗЬЕ

APPROXIMATION NEURAL NETWORK ALGORITHM OF VECTOR

OBJECTS BY BEZIER CURVES

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

The problem of determining the coefficients of approximating polynomials on points of the object bitmap contour is considered. The algorithm of decomposition complicated curves and computation coefficients of contours corresponding Bezier curves based on histogram coding is proposed and implemented. The statistical characteristics may to be of such information signs.

Введение

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

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

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

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

имеет простого решения и часто носит итерационный характер, количество итераций которого в сложных случаях доходит до 300 [1, 3].

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

Проблема гистограммного кодирования была рассмотрена Куссулем [4], но с упором не на точную передачу контуров, а на их классификацию.

Постановка задачи и описание алгоритма

В параметрической форме кубическая кривая Безье описывается следующими уравнениями:

х(1)=(1-1)3х0+31(1-1)2х1+312 (1-^х2+^х3,

У(0=(1-03Уо+3 (1—)2у+%2(1-ф2+^у, где 1 е[0,1], (х0,у0) и (х3,у3) - её начало и конец, а (х1 ,у1) и (х2,у2) — управляющие

точки, (х0,у0)(х1 ,у1) — касательная в точке (х0,у0) и (х2,у2) (х3,у3) — касательная в

точке (х, ,уз).

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

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

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

Ошибку, которая связана с каждой точкой (х^,у^), можно измерить расстоянием от этой точки до аппроксимирую щей кривой по нормали к ней и записать следую щей фор мулой:

м

е=Ё1 у- - ^(х )|.

I=1

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

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

кривой, образованной точками кривой, отображающего некоторую неизвестную функцию у(х).

Тогда поиск кривой Безье с коэффициентами н^, которая наилучшим образом аппроксимирует заданную экспериментальную кривую, можно рассматривать как определение её коэффициентов, которые минимизируют значение £(н,у(х)):

наР1 = агБтт £ (н у( х)).

Нейронная сеть является универсальным аппроксиматором и при правильном выборе её структуры может достаточно точно аппроксимировать любую непрерывную функцию.

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

Нейронные сети имеют фиксированное число входов. Причем каждый вход нейронной сети рассматривается как отдельный признак объекта (в идеале — независимый признак). Поэтому для использования в качестве входов нейронной сети коды объектов должны удовлетворять следующим двум условиям:

1) любой код объекта имеет всегда одну и ту же длину;

2) каждый вход сети (элемент кода объекта) всегда отражает одну и ту же характеристику этого объекта.

Кодирование контуров

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

Выпуклая оболочка Н произвольного множества £ есть наименьшее выпуклое множество, содержащее £. Разность множеств Н£ называется дефектом выпуклости Б множества £.

Разбиение границы области осуществляется путём обхода контура £ и пометки точек входа в область дефекта выпуклости и выхода из неё. На рис. 1 круглыми маркерами показано местоположение таких точек, а звёздами — выпуклая оболочка.

Эти точки могут быть найдены исходя из скорости изменения угла, то есть кривизны наклона. Например, точка р может считаться частью почти прямолинейного отрезка границы, если изменение крутизны не превышает 10°, или же угловой, если это изменение более 90°. Однако в общем случае трудно надёжно измерить кривизну в некоторой точке дискретной границы, потому что обычно на таких границах имеются локальные «зазубрины» и её интерпретация зависит от длины отдельных сегментов по отношению к общей длине границы [6].

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

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

На рис. 2, б участок границы представлен в виде одномерной функции g(r) свободной переменной г. Эта функция получается путем соединения отрезком двух крайних точек изображённой на рис. 2, а границы и последующим поворотом его до горизонтального положения. Координаты точек границы поворачиваются на тот же угол.

Будем рассматривать амплитуду функции g как дискретную случайную величину V и построим её гистограмму р(у), I = 0,1,2,..., А-1, где А — число дискретных интервалов, на которые разбить диапазон амплитуд. Учитывая затем, что р (vi) есть оценка вероятности появления значения у , можно записать следующие выражения для центрального момента порядка п случайной величины V:

А-1

т(у)=X(у- т) пр(у ^

i=0

А-1

где т = ^ ур

1=0

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

г

б

Рис. 2. а — участок границы; б — его представление одномерной функцией

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

Таким образом, исходя из задачи, вектор входа выглядит следующим образом:

•=[т, т т ].

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

На рис. 3 штрих- пунктирной линией обозначена аппроксимация кривой Безье, а кружками — её управляющие точки. Площади фигур, ограниченных штрих- пунктирной и сплошной линиями, соответственно равны 0,69113 и 0,68501.

Рис. 3. Аппроксимация сегмента кривой Безье

Заключение

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

ЛИТЕРАТУРА

1. Павлидис Т. Алгоритмы машинной графики и обработки изображений. — М.: Радио и Связь, 1986. — 394 с.

2. Роджерс Д., Адамс Дж. Математические основы машинной графики: пер. с англ. — М.: Мир, 2001. — 604 с.

3. Вишневский В.В., Рысцов !К., Волжева М.В. Итерационный алгоритм построения кривой Безье по заданным точкам // Математические машины и системы. — 2004. — №24. — С. 108—116.

4. Куссуль М.Э. Кодирование контуров, представленных кривыми Безье, в задачах нейросетевой классификации / Куссуль М.Э. // Математические машины и системы. — 2004. — №23.

5. Потемкин В.Г. Нейронные сети. Matlab 6. — М.: Диалог-МИФИ, 2002. —

496 с.

6. Гонсалес Р., Вудс Р. Цифровая обработка изображений. — М.: Техносфера, 2006. — 1072 с.