№4(22)2009
С. А. Запрягаев, А. И. Сорокин
Распознавание простых линий на изображении
В работе анализируются методы обнаружения примитивов на изображении и определения их параметров: метод интегральных преобразований пространства изображения в пространство параметров объекта, метод инверсии изображения, метод анализа инвариантов алгебраических кривых. Рассматриваются математические модели и алгоритмическая реализация методов.
Введение
Проблема распознавания объектов на плоском изображении имеет чрезвычайно важное практическое значение. По сути, не найдется ни одной сферы человеческой деятельности, для которой ее решение оказалось бы бесполезным. Такое разнообразие вариантов обуславливается широким кругом объектов для распознавания и множеством приемов и методов, которые позволяют найти решение какой-то конкретной задачи.
В общем случае объекты, подлежащие распознаванию, представляют собой сложные графические структуры с нечетко выраженными характеристиками, в целом не имеющие определенных специфических инвариантов или иных характеристик, которые могли бы служить ключевыми данными. Однако очень большое число сложных графических изображений можно разумными алгоритмами разложить на более простые графические объекты, которые в контексте данного сообщения будут называться примитивами. К ним относятся прямые линии, отрезки прямых линий, окружности, эллипсы, иные хорошо определенные простые линии. Учитывая дискретные особенности цифрового формирования изображения, ниже под примитивами понимаются не только строго определенные математические линии на плоскости (х,у), но и дискретный аналог этих объектов или цифровые объекты, в определенном смысле близкие перечисленным выше структурам.
Так как реальное изображение может содержать многоцветные объекты, а формирую-
76 >
щие их цифровые линии могут быть различной «толщины», задача распознавания может включать в себя подготовку изображения для сведения его к определенным нормированным условиям. В настоящей работе используется принцип сведения изображения к монохромной структуре с однопиксельным заданием линий, формирующих объект изображения. Алгоритмы, обеспечивающие такой тип [1], в данной работе не рассматриваются в силу самостоятельности этой задачи. Практическая цель работы состоит в формировании алгоритмов выделения значимых признаков примитивов и построении программного комплекса для численного моделирования процесса распознавания объектов различными методами.
Проблема выделения и классификации значимых признаков изображения связана, в частности, и с нахождением формы объектов, содержащихся на изображении. Например, для автоматического распознавания лиц необходимо выделить глаза, рот, брови и т. д. Используя в этом случае начальное приближение глаз эллипсом, бровей — отрезками прямых, можно получить оценку аналитических параметров данных примитивов, что применяется при создании целевых баз данных. Кроме того, найденные параметры могут быть использованы как самостоятельные индикаторы характерных особенностей изображения, таки в качестве промежуточного элемента для выделения более сложных признаков.
Обнаружение аналитических параметров таких примитивов, как прямая, окружность, эллипс, участок гиперболической кривой и т. п.
№4(22)2009
подразумевает нахождение их положения и размера, а также инвариантных по отношению к операциям вращения и сдвига параметров (например, длины большой и малой полуосей эллипса и т. п.).
В настоящей работе рассмотрены следующие методы обнаружения примитивов на изображении и нахождения их параметров:
• интегрального преобразования пространства изображения в пространство параметров объекта (преобразование Радона [2,3,4]);
• инверсии изображения;
• алгебраических кривых произвольного порядка.
1. Преобразование Радона
Преобразование Радона [1] — это хорошо известное интегральное преобразование, сопоставляющее функции f в исходном пространстве функцию на множестве плоскостей, задаваемую интегралами от f вдоль этих плоскостей. Преобразование Радона нашло широкое применение в сейсмологии, астрофизике, томографии, радиолокации и т. п. Известны многочисленные варианты интегральных преобразований, являющиеся модификациями или обобщениями данного подхода [3,5,6].
Существует несколько тождественных определений преобразования Радона. Вот простейшее из них. Если в пространстве двух переменных задана функция /(х, у), то интегральное преобразование Радона вдоль прямой линии у = кх+ Ь имеет вид:
ад (к ,Ь) = / /( х, кх+Ь)6х-
(1)
/ / /( х, у)6( у - кх-Ь)ёхёу.
Здесь 8(х) — дельта-функция Дирака, а параметры линии Ь и к образуют пространство данного интегрального преобразования. Установлены многочисленные полезные свойства преобразования (1), связанные с преобразованиями сдвига, поворота, масштабирования переменных системы координат, а также связь преобразования Радона с преобразова-
нием Фурье. Подробное исследование этих свойств и ряд их приложений в томографии приведено в [5].
1.1. Обнаружение прямых на изображении
Прежде всего, преобразование Радона используют для обнаружения прямых линий на изображении. Возможность такого применения связана с двойственностью пространства изображения, точки которого заданы координатами (х, у), и пространства параметров прямой (к, Ь), в соответствии с (1). Двойственность преобразования заключается в том, что каждой точке пространства изображения (хьу,) соответствует прямая Ь=-х1 к + у1 пространства параметров (к, Ь). Верно и обратное утверждение, что каждой прямой у=к0х+Ь0 пространства изображения (х, у) соответствует единственная точка пространства параметров (к, Ь)—(к0, Ь0).
Для моделирования данного утверждения выберем в качестве математической модели «изображения» точки с координатами (х1,у1) на плоскости (х,у) сингулярную функцию вида:
/( х, у)=6( х - х1 ж у - у 1 ).
При этом условимся изображать значение модельной сингулярности в точке ^х;,уп) черной точкой на плоскости (х,у). В соответствии с (1) преобразование Радона для выбранной функции /(х,у) есть
ад (к ,Ь)=6( у1 - кх1 -Ь).
На основании принятой условности изображения сингулярности в пространстве параметров преобразования (к, Ь) совокупность сингулярных точек8(у1 - кх1 - Ь) образуют прямую линию Ь=-х1 к + у1. Таким образом, модельное изображение точки в плоскости (х, у) преобразуется в «модельное изображение» линии. Аналогично рассматриваем преобразование Радона для линии у=к0х+Ь0, заданной в пространстве. В соответствии с методом изображения сингулярности данную линию можно моделировать функцией /( х, у)=8( у - к0 х-Ь0). В результате, используя преобразование Радона (1), находим:
то
^[/1 (к ,Ь) = /б(( к - к 0) х+Ь - Ь0)ёх.
«т
<3
I
77
№4(22)2009
Данный интеграл равен сингулярному значению только при условии к = к0,Ь=Ь0. Таким образом, преобразование Радона для линии у=к0 х+Ь0 приводит в пространстве параметров (Ь, к) кточке к=к0, Ь=Ь0.
Из представленных выше рассуждений следует, что если рассматривать линию в пространстве изображений (х,у) как совокупность точек, то, используя преобразования Радона для всех точек исходной линии, в пространстве параметров преобразования Радона получим набор прямых, имеющих единственную точку пересечения к=к0, Ь=Ь0 (рис. 1).
5
-2 Г -У / 2
а а
I
£
0
3
а
1
>а з
I §
о &
ш
3 §
«о а х
Рис. 1. Преобразования Радона для точек, лежащих на прямой у=2х+3{к0 =2, Ь0 =3)
Двойственность формул преобразования Радона для точки и прямой указывает на возможность создания практически эквивалентных алгоритмов поиска прямой на изображении. Варианты таких алгоритмов обсуждаются в [5] и [16].
1.2. Алгоритм поиска прямых на изображении
Для построения алгоритма поиска прямой на изображении рассмотрим элементарное изображение размером 5x7 пикселей, представленное на рис. 2. Пронумеруем черные точки изображения от 1 до 10. Каждой черной точке в пространстве параметров преобразования Радона (Ь, к) соответствует прямая, заданная уравнением Ь= -ук + х. Всего имеется N = 10 прямых в пространстве (Ь, к).
1 2 3 4 5 X Точка Уравнение
1 —► 1 Ь = -к+ 2
2 2 Ь = -2к+3
3 3 ¿> = -3*+4
4 а 4 6 = —4Аг Ч- 5
» 5 Ь = -5*+4
« б Ь = -6к+3
7 Ь = -7к+2
Л г 8 b=-^k+^
9 b=-6k+^
10 Ь = -5к+1
Рис. 2. Пространство точек исходного изображения и уравнения прямых двойственного пространства
Найдем все точки пересечения данных прямых. Всего таких точек NN - 7): 2 = 45. Координаты точек пересечения /-й и}-й кривой в плоскости (Ь, к) при заданном выборе системы координат (х—у) определяются из выражений:
кг.
^; Ьг
У,х/ -У/Х,
У г - У; У г - У>
Подсчитаем число одинаковых точек пересечения. В результате найдем шесть повторений точки пересечения (к = 1,Ь = 1), шесть повторений точки (к = -1,Ь = 9), три повторения точки (к = 0, Ь = 1). Остальные тридцать точек встретятся по одному разу. Шесть точек пересечения к = 1, Ь = 1 соответствуют прямой линии х = у + 1, проходящей через точки 1,2,3,4 на плоскости (х—у). Шесть точек пересечения к = -1, Ь = 9 соответствуют прямой линии х = -к + 9, проходящей через точки 4,5,6,7. Наконец, три повторения точки (к = 0,Ь = 7) соответствуют линии х = 7, проходящей через точки 8,9,10. Таким образом, точки с числом пересечений больше двух однозначно определяют три прямые линии на исходном изображении (вернее, их дискретные аналоги). Остальные точки пересечения соответствуют виртуальным прямым, на исходном изображении, т. е. таким прямым, которые могут быть проведены через две точки на плоскости (х—у), для которых определена точка пересечения изображений в результате преобразований Ра-
78
№4(22)2009
дона, однако реально такая линия на исходном изображении отсутствует. Например, точка k = 0, b = 3 соответствует виртуальной прямой, которую можно провести через точки 2 и 6, однако на исходном изображении такой линии нет.
В соответствии с представленным элементарным примером можно сформулировать общий алгоритм поиска прямых линий на изображении.
Пусть W — ширина изображения в точках, H — его высота, тогда может быть записан в псевдокоде следующий алгоритм поиска прямых.
Инициализировать список найденных точек на изображении:
PointList := {0};
Инициализировать таблицу соответствия между точками пересечения двойственных прямых в пространстве параметров прямых и их числом:
Par:= Map[Point, Count];
For x := 0 to W - 1 do
For y := 0 to H - 1 do
if (точка (x, y) — «черная») then
for (x0, y0) £ PointList do
Найти точку пересечения прямых:
•(bo,kо)
b= — yk + x
b= — y о k+ x о
Увеличить счетчик:
:= Par[(b0,k0
1;
Par[(b0,k0) end for; end if; end for; end for
Параметры прямых (Ь0, к0), для которых значение счетчика Рагат [(Ь0, к0)] максимальны, принимаются за параметры обнаруженных на изображении прямых, среди которых могут быть параметры виртуальных пря-
мых, что требует дополнительной проверки, не представляющей трудности.
1.3. Преобразование Радона в нормальной форме
Интегральное преобразование (1) имеетог-раничение, связанное с поиском прямых на изображении,угол наклона которых равен или близок 90o, т. е. прямых, параллельных или «почти» параллельных оси Oy. Данное обстоятельство связано с бесконечно большим значением параметра k. Для того чтобы избавиться отданной проблемы, можно определить более общее преобразование, которое имеет три параметра [3]:
то то
R[f](ki,k2,k3) = / /f(x,y)g(kiy + k2x + k3)dxdy.
— то —то
Очевидно, что задание трех параметров является излишним в случае прямой линии. Поэтому всегда можно установить какую-либо связь между этими параметрами, сведя параметризацию к двумерной. В литературе по использованию преобразований Радона наиболее употребительными являются два способа задания параметров преобразований. Первый способ описан в предыдущем разделе и означает следующий выбор параметров: k1 =1, k2 =—k,k3 =—b. Другой выбор параметров основан на задании линии в так называемой нормальной форме (рис. 3): ф = р — xcos9—ysin9=0.
Рис. 3. Нормальная параметризация прямой
В этом случае параметры преобразования Радона определяются следующим образом:
k1 =—sin9, k2 =—cos 9, k3 =р.
Преобразование Радона (1) принимает вид:
тото
R[f] (р, 9) = / / f( x, y)g( ф)dxdy.
—то—то
79
«т
<з
I
№4(22)2009
Выполняя тождественные преобразования и замену переменных x=pcos9 — ssin9, с учетом свойств дельта-функции, последнее выражение можно представить в эквивалентной форме:
R[f] (p, 9)= / f(í, v)ds,
где ^=pcos9 — ssin9и r| = psin9+ scos9.
Представленная форма преобразования Радона означает выполнение интегрирован ия по линии, проходящей через точку A (x=pcos 9, y =psin9), перпендикулярно линии OA, где О — начало координат.
По аналогии с рассуждениями, приведенными выше, преобразование Радона в нормальной форме для точки (x0, y0), где x0 =p0 cos90, y0 =p0 sin90, задание изображения которой определяется сингулярной функцией вида f (x, y)=6( x — x 0 )8( y — y 0), соответствует отрезку синусоиды p0cos(9 — 90) — p=0 в пространстве параметров (p, 9). В свою очередь, преобразованию изображения прямой на плоскости (x,y), моделируемой функцией f (x, y)=6( x cos 9 0 + y sin 9 0 — p 0), соответствует точка p=p0 и 9=90 в пространстве параметров (p, 9).
На рис. 4 представлено изображение двух точек, координаты которых на плоскости (x,y) равны (p0 =5,90 =тс/6) и и(p0 = 7,90 =тс/3). Данным точкам в пространстве параметров преобразования Радона (p, 9) соответствуют две синусоиды p, = 5cos(9 —тс/6) и p2 =7cos(9 —тс/3)
р2 = 7соб(9—тс/3) (рис. 4). Точка пересечения данных синусоид определяется координатами
тс ,
---Ъ arctq
6
70 121
50 тс —cos— 121 6
или 9х « 0,2289... и, соответственно, рх = р, (9х) = = р2 (9х) ~ 4,784.... Данным значениям координат точки пересечения синусоид в плоскости (х, у) соответствует прямая линия, проходящая через исходные точки изображения, уравнение которой есть
у=-Лд( 9 х) х+-
5т( 9 х)
или у «(4,291...)х + 21,081.... Таким образом, точки, лежащие на одной прямой, имеют одну общую точку пересечения синусоид, соответствующих им в пространстве параметров (р,9).
Имеется ясно выраженная специфика для точек, лежащих на прямой линии, проходящей через начало координат. Например, две точки (р0 =5,90 =тс/3) и (р0 =7,90 =тс/3) в пространстве параметров преобразования Радона (р,9) приводят к двум синусоидам р, = 5соб(9 —тс/3) и р2 =7соб(9—тс/3). Точки пересечения этих синусоид лежат на оси р=0, т. е. рх =0, 9х =—тс/6. В этом случае в пространстве (х,у) определяется прямая, проходящая через две точки, уравнение которой имеет вид: у=хС:д(тс/6). Аналогично, если две точки лежат на осих (р0 =5,90 =0) и (р0 = 5,90 = 0), точка пересечения соответствующих синусоид равна рх =0, 9х =тс/2.Уравнение прямой в плоскости (х,у) бу-
S
а
I
£
0
3
а
1 >а з
I §
о &
О! 3
is
«о а х
^ у=4,291 *+21,081 \
а б
Рис. 4. Пространство параметров преобразования Радона в нормальной форме (а) и точки исходного изображение (6)
80
x
№4(22)2009
дет иметь вид у=xctg(^/2)=0. Наконец, если две точки лежат на оси y (р0 =5,90 = тс/2) и (р0 =7,90 =тс/2), то точка пересечения соответствующих синусоид равна рx =0, 9x =0, что приводит к идентификации уравнения y sin9 x =— x cos 9 x =0или x = 0.
С учетом изложенного выше, алгоритм поиска прямых линий на изображении на основе преобразования Радона в нормальной форме можно сформулировать следующим образом. Пусть бинарное изображение размером mxn точек задано значением функции gi,j в каждой точке i=0..m — 1, j=0..n — 1, причемg, j =1,если точка с координатами (i, j) является «черной», в противном случае gLj =0. В этом случае область изменения параметра р лежит в диапазо-
не от
0до^
m2 + п2, а параметра 9 — в диапазоне от0 до 2х
Введем дискретное представление параметров преобразования для 9:
9, =9о + /Д9,i = 0..l-1,Д9 = (9max -9о )//, для р:
р / =р о + /Др, i =0.. k-1, Др = ( р max -р 0 V k.
Введем двумерный массив A[i,j] размером kxl, первый индекс которого соответствует дискретному значению параметра р, а второй — дискретному значению параметра 9. В этом случае алгоритм поиска прямой линии можно представить в псевдокоде следующим образом.
Инициализировать массив Анулями
for x:= 0 to m-1 do for y:= 0 to n-1 do if (g[x,y]=1) then for j:= 0 to l-1 do i:= [(x cos 9j + y sin 9j — р0)/Др] if (0 <=i and i < k) then
A[i,j]:= A[i,j] + 1; end if; end for; end if; end for; end for;
Найти такие /0 иг0, для которых значения А[/0,г0] максимальны.
Параметры прямой:
р * = р 0 + / 0 Др, 9 * =9 0 + г 0 Д9 принимаются за параметры искомой прямой.
1.4. Обнаружение окружностей на изображении
Преобразование Радона вдоль прямой линии допускает естественное обобщение на случай интегрирования по произвольной кривой, заданной параметрически [3,4], где ,...,£т) — вектор параметров кривой. В этом случае обобщение (1) имеет вид:
№ (С)=7 7 г (х, у)б(^(х. у. 1)^у.
— то —то
Данное преобразование содержит ряд особенностей, отличающих его от свойств преобразований Радона вдоль линии [2, 3, 4], однако оно также может служить инструментом для построения алгоритмов распознавания примитивов на изображении. Рассмотрим в качестве примера преобразование Радона, выполняемое по окружности. В этом случае
■Ф( х. y. !)=р 0
X - X 0 )2 + (y - y 0 )2,
р 0 -V(x * - X0 )2 +( y' - y 0)
с вершиной в точке (х *, y * ,0).
0
81
«т
<з
I
а параметрами кривой, вдоль которой осуществляется интегрирование, являются радиус окружности р0 и координаты центра окружности X 0, y 0.
Преобразование Радона по окружности для изображения точки с координатами (х *, y * ^заданной сингулярной функцией:
f (х, y)=8( х - х * )6( y - y *),
представляет собой в пространстве параметров окружности (х0,y0,р0) сингулярную функцию, на поверхности конуса:
№4(22)2009
а а
I
0
3
а
1
>а з
I §
о &
ш
3 §
«о
а
х
5
Если в плоскости (х,у) задана окружность с центром в точке (0, 0), {(х, у)=6(р * — ^х2 + у2), преобразование Радона по окружности определяет бесконечный скачок только в случае, когда х0 =0, у0 =0, р0 = р*, т. е., когда параметры преобразования Радона совпадают с параметрами искомой окружности.
Полученный вывод позволяет сформулировать следующий алгоритм поиска окружности на изображении, реализованный в программном комплексе [7]. Пусть в плоскости (х,у) изображена окружность с радиусом И и центром в точке (х*,у*). Каждой точке изображения в пространстве параметров (х0,у0,р0) преобразования Радона по окружности соответствует коническая поверхность. Алгоритм поиска реальных параметров окружности может основываться на нахождении максимального числа одинаковых точек пересечения конических поверхностей для любой тройки из пары координат точек изображения (х,,у,), \ € 1,2,3. Для определения общей точки пересечения трех конических поверхностей в пространстве преобразований Радона необходимо решить систему трех уравнений
р 0 =4 (х, — х 0)2 + (у, — у 0)2,
где , € 1,2, 3,
(х 0, у 0, р 0!
относительно
переменных
Решение данной системы имеет простой аналитический вид [4]. В результате, после сканирования плоскости изображения, точки пересечения всех возможных конусов в пространстве параметров преобразования Радона от троек координат точек, имеющие максимальное число одинаковых координат, однозначно идентифицируют окружности, имеющиеся на изображении. Порог отсечения виртуальных окружностей, найденных таким алгоритмом, обсуждается в [4].
Аналогичные алгоритмы, соответствующие преобразованиям Радона по заданным кривым, позволяют сформулировать программы поиска соответствующих кривых на плоскости. Детальные исследования такого подхода для обнаружения окружностей и иных кривых показали, что он является достаточно «дорогим»
сточки зрения вычислительных затрат. В связи с этим далее описаны более эффективные способы нахождения параметров кривых.
2. Метод инверсии изображения
Метод инверсии изображения является одним из самыхудобныхдля эффективного определения аналитических параметров окружностей, заданных на изображении. Будем рассматривать плоскость изображения как совокупность комплексных точек г = х+¡у. Если ввести комплексную функцию
ш = f (г) = и( х, у) + х, у),
то точки на г-плоскости будут отображаться на ш-плоскости. Рассмотрим в качестве функции преобразования функцию вида ш = 1/г (инверсия координат). Связь действительной и мнимой частей ш с переменными плоскости г имеет вид
и=
х
-; V =
у
х2 + у2 х2 + у2 Соответственно, обратные преобразова-
ния есть:
; у =
В соответствии с операцией инверсии окружность в г-плоскости с центром в начале координат, определенная уравнением х2+ у2 =И2,
преобразуется в окружность и2
= 1/И2
в ш-плоскости. Однако горизонтальная линия у=с, заданная в г-плоскости, преобразуется в окружность с радиусом И = 1/(2с) в ш-плоско-сти с координатами центра окружности, равными и = 0; V = 1/(2с) (рис. 5). И наоборот, точки окружности, касающейся начальной точки системы координат, как видно на рисунке, преобразуются в точки линии при инверсии. Используя операции сдвига и поворота системы координат, нетрудно установить связь и при произвольном расположении окружности на плоскости изображения.
Этапы алгоритма поиска параметров окружности для случая, изображенного на рис. 5: • после сканирования изображения найти его верхнюю точку;
82
и
V
х
№4(22)2009
0,35" 0,30"
0,25
0,20"
0,15"
1*
1
.Si
«т
<3
I
"О
Рис. 5. Исходное изображение (а) и его инверсия (6)
• принять данную точку за начало координат г-плоскости;
• для всех черных точек изображения провести инверсию координат, записав инвертированные координаты ш-плоскости в массив А;
• к координатам массива А применить алгоритм поиска прямых, изложенный в предыдущем разделе;
• найденная точка определяет радиус окружности;
• обратные преобразования определяют аналитические параметры окружности в исходном изображении.
Описанный метод распространяется и на ряд иных конформных преобразований, известных в теории функций комплексных переменных, но здесь для краткости не приводятся.
тической кривой второго порядка, то точки изображения (с точностью до ошибки дискретизации) должны удовлетворять общему алгебраическому уравнению кривой второго порядка:
aii x2 + 2ai2 xy+
+ a22 у2 + 2ai3 x+2a23 у=—a33.
(2)
Задача распознавания кривой в этом случае равносильна задаче определения коэффициентов a,j уравнения (2). Кривая второго порядка вполне определяется пятью своими точками, никакие четыре из которых не лежат на одной прямой [8]. Для определения a,j подставим координаты точек кривой, имеющихся на изображении, в уравнение (2):
an x 2 + 2ai2 x,y, + (3)
+ a22 у2 + 2ai3 x, + 2a23 уi =—a33, где i e 1,..., N.
3. Метод на основе алгебраических кривых
Рассмотрим инструмент, предоставляющий возможность распознавания и классификации кривых на простейшем примере кривых второго порядка. Пусть задано монохромное изображение, содержащее часть некоторой кривой второго порядка. Изображение этой кривой будет представлено парами целочисленных координат: (х,,у,),'/ е 1,..,N, где N — число точек на изображении. Если предположить возможность описания точек изображения анали-
На практике количество точек N>>5, в этом случае система линейных относительно a,jалгебраических уравнений (3) переопределена. В общем случае решение уравнения (3) может быть найдено методом наименьших квадратов. Для уменьшения погрешности решения свободный член a33 в уравнении (3) удобно положить равным: max(x2, у2,2x¡у,), i e 1,..., N. Найденные приближенные значения коэффициентов aj позволяют провести дальнейший анализ кривой изображения на основе хорошо известных инвариантов уравнений второго порядка для определения типа кривой.
83
№4(22)2009
Для уравнения второго порядка (6) известно, что следующие величины являются инвариантами относительно переноса и поворота осей координат [8] :1=аи + а22,О=аиа22 — а12а21,
3
А = ^ аиа2]а3 к е ¡¡к, ,,} ,к=1
здесь ац = а,, е,цк — символ Леви—Чевита. Хорошо известно также, что в случае центральных кривых (О^0) центр гиперболы и эллипса (х0,у0) определяется через коэффициенты ац уравнения (2) следующим образом [8, 9].
al2 a23 — al3 a22
D
-, y o = (ai3 a2i - Он a23 )D. (4)
Соответственно, угол ф между положительным направлением оси Ох и каждым из двух главных направлений кривой определяется по формуле:
^2ф =
2О12
(5)
а а
I
£
0
3
а
1 >а з
I §
о &
О!
3 §
«о а х
аи — а22
В случае окружности аи = а22 иугол ф не определен.
Преобразование уравнения(2) к каноническому виду в случае центральных кривых проводится в два этапа [9].
1. Параллельным переносом системы координат Оху в точку (х0,у0) находится система О'х'у', в которой уравнение (2) примет вид:
аи х '2 + 2 а'2 х 'у' + а^ у '2 + а^ = 0, где а' = ап, а2'2 = а22, а'2 = а12, а3'3 = А/О.
2. Поворотом осей системы координат О'х'у на угол ф (5) осуществляется переход к новой системе О'х"у", в которой уравнение имеет вид:
a/Í x "2 + a22 y "2 + Оз'З =0.
(6)
Здесь коэффициенты определены равенствами:
а" = а'' 5т2ф + а(—) соб2ф+ а(+),
а (±) = а11 ± а22 2 ,
а'' =— а{2 51п2ф — а(—) соб2ф + а(+); а3'3' = а3'3.
В случае О >0 кривая, заданная уравнением (6), является кривой эллиптического типа, и ес-
ли A/I < 0, кривая представляет собой эллипс с полуосями V-A/Da/Í и -7—A/Da2'2. В случае D < 0 кривая, определяемая уравнением (12), является кривой гиперболического типа.
На основании изложенного можно сформулировать алгоритм сведения кривой на изображении к алгебраической кривой и дальнейшей классификации типа центральной кривой второго порядка следующим образом:
1) по точкам изображения кривой, построить переопределенную систему (3); приближенное решение данной системы определяет коэффициенты a¡j уравнения (2);
2) вычислить инварианты I, A, D;
3) в случае D^0 вычислить центр кривой (4), в противном случае кривая не является центральной;
4) если a11 ^a22, вычислить угол поворота Ф (5), иначе положить ф=0.
5) найти значения коэффициентов a/Í и a22 в системе О'Х'У (6);
6) определить тип кривой второго порядка и вычислить канонические параметры этой кривой.
Основные вычислительные затраты данного алгоритма связаны с необходимостью решения переопределенной системы (3). Рассмотрим сложность решения в случае применения QR-разложения [10]. Представим (3) в виде: Xa=b, где XеRNx5 — матрица коэффициентов системы, а a = (an, a12,a22,a13, a23 )Tе R5 — искомые параметры кривой, bеRN, bi =—a33,
1 е 1,..., N. Для нахождения решения необходимо выполнить следующие операции:
1) получить разложениеX=0^где QеRNx5 и RеR5x5; вычислительная сложность порядка
2 -52 • N операций;
2) сформировать векторb=QTb, сложность 2 5 • N операций;
3) решить систему уравнений Ra=b обратной подстановкой; сложность 52 операций.
В результате сложность нахождения решения такой системы может быть оценена как О(2-52 N + 2-5• N + 52) =О(N). Эта же оценка справедлива и для сложности всего описанного выше алгоритма.
В работе [17] предложен подход для получения коэффициентов кривой (3), получивший называние 3Ь-метод, так как для «зашумлен-
84
x
0
№4(22)2009
ных» изображений решение системы уравнений (3) может оказаться численно неустойчивым. В связи с этим для достижения устойчивости решения строится оценка градиента G(x,,yi) к плоской кривой в точках (x,,y, )=pi. В этом случае соответствующая задача оптимизации имеет вид:
Е (f2 (Pi )+||Vf (Pi)-^(р,)||2 min,
где f(x,y) — алгебраическое уравнение кривой.
Для решения сформулированной задачи оптимизации в ЗЬметоде вводятся в рассмотрение внешние Г+ и внутренние Г_ границы объекта по следующему определению:
Г±={р, ± с • G(pi)} ;=1,
где с — некоторая заранее заданная константа.
В результате, в [17] показано, что система (3) заменяется следующей системой уравнений, которая решается методом наименьших квадратов:
f(P+)=c
f (P, )=0
f( р- ) = —с, i €1.....N,
где р+ =( x+, y+) € Г+, р— =( x—, у—) €Г—.
Пример
ВЫЧИСЛИТЕЛЬНЫЙ ЭКСПЕРИМЕНТ
Рассмотрим уравнение:
x2 — xy + y2 —20x — 20y — 40=0. (7)
Инварианты для данной кривой второго порядка равны: I=2, D = 3/4, A =—330. Так как инвариант D>0 и AI<0, кривая, определяемая уравнением (7), представляет собой центральную кривую — действительный эллипс. При этом координаты центра эллипса x0 =20, y0 =20. Осуществляя параллельный перенос системы координат Oxy в точку (x0,y0) = (20,20), получим систему O'x'y', в которой уравнение примет вид:
х'y' + y'2 - 440=0.
(8)
Поворот системы координат ОУу' на угол ф, равный ф = тс/4 + k/2: k e Z, приводит уравнение к каноническому виду:
x " 2/ a2 + у "21b2 =1,
что соответствуетэллипсу с полуосями, равными a = 4л/55 и 29,664, и b = 4л/165/3 и 17,127.
Для демонстрации метода нахождения кривой на изображении допустим, что имеется графическое изображение эллипса (7). Подставим набор точек изображения данной кривой в систему (3). Решив систему (3), получим: au = au =—34,3297, 2a12 = 35,1664, a33 =1936б 2a13 =2a23 =663,9787. Соответственно, сведение полученного уравнения к каноническому виду дает следующий результат: центр эллипса имеет координаты (20,20); а полуоси эллипса равны a = 30,03; b = 17,05; угол поворота оси эллипса phi = -0,79 рад. (рис. 6), что практически точно соответствует аналитическому заданию кривой.
«т
<3
I
.10-" 20
Рис.6. «Распознанная»кривая
В принципе, рассмотренный выше метод для определения кривых второго порядка мо-
85
№4(22)2009
а а
I
0
3
а
1
>а з
I §
о &
О!
3 §
«о
а
х
5
жет быть использован и в случае кривых более высокого порядка. Однако изложение общих алгоритмов решения такой задачи является значительно более громоздким (в связи со сложными свойствами кривых старших порядков) и здесь не приводится. Кроме того, задачей настоящего сообщения является изложение методов поиска именно простейших примитивов (сложное изображение всегда можно декомпозировать на ряд таких простейших составляющих).
Заключение
Исследование метода обнаружения примитивов на изображении (метод интегральных преобразований) и методов извлечения параметров обнаруженного примитива (метод инверсии и метод анализа инвариантов) позволяет решать широкий круг практических задач [12,13,14], в том числе и задачу распознавания off-line рукописного текста, что было проверено авторами настоящей статьи в рамках спроектированной программной оболочки. В случае многочисленного «наложения» объектов друг на друга, взаимного пересечения прямых, окружностей необходимо выполнять предварительную обработку изображения, состоящую из выделения достаточно «гладкой» кривой с точки зрения доступных оценок градиента [15]. Однако подробное обсуждение проблемы в настоящем сообщении не приводится, так как является самостоятельным объектом исследования.
В заключение необходимо отметить также, что скорость работы метода инверсий и метода основанного на использовании алгебраических уравнений произвольного порядка значительно превосходит производительность алгоритмов интегральных преобразований, особенно в случае поиска сложных примитивов (не являющихся прямыми линиями).
СПИСОК ЛИТЕРАТУРЫ
1. CouprieM. Note on fifteen 2D parallel thinning algorithms / IGM2006-01. Universite de Marne-la-Vallee, 2006.
2. ХвлгасонС. Преобразование Радона. M.: Мир, 1983.
3. Toft P. The Radon Transform / Ph.D. Thesis. 1996.
4. ЗапрягаввС.А.,СорокинА.И. Программная оболочка для поиска примитивов на изображении / Вестник Воронежского государственного университета. Сер. Системный анализ и информационные технологии. 2008. № 2. С. 37-47.
5. Hough P. V. C. Method and means for recognizing complex patterns / US Patent 3,069,654.
6. КотлярВ.В., КовалввА.А. Кольцевое преобразование Радона / Компьютерная оптика. 2003. № 25. С. 126-133.
7. Сорокин А. И., ЗапрягаввС.А. Распознавание примитивов на изображении / Свидетельство об официальной регистрации программы для ЭВМ № 2008 612 938 от 18 июня 2008 г.
8. Корн Г., Корн Т. Справочник по математике (для научных работников и инженеров). Определения, теоремы, формулы. 6-е изд., стер. СПб.: ЛАНЬ,
2003.
9. Ильин В. А., ПознякЭ. Г. Аналитическая геометрия: учебник для вузов. 7-е изд., стер. М.: ФИЗМАТЛИТ,
2004.
10. Бахвалов Н. С., Жидков Н. П., Кобвльков Г.М. Численные методы: учебник для вузов. 5-е изд. М.: БИНОМ. 2007.
11. ГвльфандИ. М., ГраввМ.И, ВилвнкинН.Я. Интегральная геометрия и связанные с ней вопросы теории представлений. М., ФИЗМАТЛИТ, 1962.
12. Nixon M., AguadoA. Feature Extraction and Image Processing. Oxford: Newnes, 2002.
13. Ballard D. Computer Vision. Englewood Cliffs: Prentice-Hall, 1982.
14. DudaR., Hart P. Use of the Hough Transformation to Detect Lines and Curves in Pictures/Comm. ACM 15. New York, 1972. P. 11-15.
15. Сорокин А. И. Программа обнаружения кривых на монохромном изображении /Труды Восьмой Международной научно-методической конференции (7-8 февраля 2008 г.) / Информатика: проблемы, методология, технологии: материалы. Т. 2. Воронеж, 2008. С. 286-289.
16. GinkelM., Hendriks C., VlietL. A short introduction to the Radon and Hough transforms and how they relate to each other. Technical Report QI-2004-01. Delft University of Technology, 2004.
17. LeiZ., Blane M. M., Cooper D.B. 3L Fitting of Higher Degree Implicit Polynomials / Proceeding 3rd IEEE Workshop on Applications of Computer Vision. Sarasota, 1996. P. 148-153.
86