logo
МИРЭА / Методичка_2010 / Методичка_2010

*Различные способы параметризации прямых

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

Рассмотрим естественное множество прямых линий, порождаемое целочисленной решеткой NN точек, содержащей N2 элементов. Считая, что любые две различные точки решетки определяют прямую, мы увидим, что размер этого множества составит N2(N2-1), т.е. O(N4) линий. Однако многие линии будут определены несколько раз своими различными отрезками, если на них лежит более двух точек исходной решетки. Таким образом, представление натурального множества прямых в виде четырех параметрического массива [(x1,y1),(x2,y2)] концевых точек размерности O[N4] является явно избыточным.

Естественное множество прямых, порождает также и естественное множество углов (a), которое можно описать как tg a=i/j , где {i,j}={0,1,...,N-1}

Учитывая симметрию, 0 < tg  a є1, причем эти углы повторяются во всех четырех квадрантах:

tg =[tg (90-)]-1=-[tg(90+)]-1 =-[tg (180-)]

Все возможные углы 0  a 1, могут быть получены геометрически с использованием N(N-1)/2 линий, так что число уникальных углов Na должно быть 2N(N-1) (в четырех квадрантах). Однако и здесь мы увидим избыточность; некоторые отношения i/j являются кратными (например, 3/12=2/8=1/4). Вероятность того, что два целых числа соотносятся заданным образом, равна 6/2 . Это означает, что размер неизбыточного множества углов на решетке равен

Na=(6/2)2N(N-1)=1.216 N (N-1).

Аналогично для множества прямых :

NL0.23N2(N2-1).

Перейдем к параметризации преобразования Хафа. Хотелось бы ввести такие параметры, которые бы не только обеспечивали вычислительные выгоды, но и имели бы простую и интуитивно понятную интерпретацию. Кроме того, существует проблема "запрещенных областей", т.е. таких областей решетки параметров, которые никогда не будут заполнены при "голосовании" точек исходного пространства. В традиционном (,)-пространстве такие области занимают до 10% общей площади для изображений на квадратных дискретных решетках N*N. Эта память неизбежно пропадает при программной реализации. Кроме того, тратится лишнее время на опрос этих заведомо пустых областей при определении пиков аккумуляторной функции. Еще одним важным соображением при выборе параметров является конечность их значений. Например, параметр k в уравнении Y=kX+b, как известно, является неограниченным (при =90, k=+). Исходя из выше изложенного, можно предложить следующие варианты параметризации:

Точки периметра (m,n)

Будем описывать прямые парой концевых точек, лежащих на периметре решетки N*N. Очевидно это состовляет 4N точек или ( с учетом симметрии) 1/2(4N*4N)=8N2 линий. Так как четверть из этих точек лежит на одной прямой ( стороне квадрата), окончательный размер массива параметров составит 6N2 . Это лишь небольшое подмножество натурального множества с 0 [N4] элементов.

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

Точка периметра и угол (a,n)

Здесь мы используем одну точку пересечения данной пряиой с периметром n(0|n|<N) и угол, определяемый прямой, проходящей через центр решетки и точку периметра a(-N+1aN-1). Массив аккумулятора содержит здесь, очевидно, 4N2 элементов. Эта параметризация не создает "запрещенных областей". Многие свойства пространства (a,n) можно рассмотреть на примере описываемого ниже пространства (a,d).

Наклон и смещение (a,d)

Эта параметризация содержит параметр a, т.е.угол, определяемый направлением из центра к некоторой точке на периметре квадратной решетки, однако, смещение линии по вертикали или горизонтали из центра теперь фиксируется при помощи расстояния d из центра до пересечения прямой с осью y или x.Эта параметризация на решетке N*N порождает 3N2 или 4N2 элементов аккумулятора. Легко увидеть, что (a,d) - параметризация тесно и непосредственно связана с (,) - параметризацией и наиболее естественна поэтому для использования в преобразовании Хафа.

Также связана она и с параметрами уравнения y=mx+c, где a интерпретируется не как угол, а как наклон прямой. Для линий с наклоном меньше 45 d отсчитывается от центра до пересечения прямой с вертикальной осью y, а для наклона больше 45 d

измеряется вдоль горизонтальной оси x. Чтобы сохранить непрерывность отображения необходимо также поменять знак d для углов 45 < a 90 .

Отображение (x,y) на (a,d):

d=y-(2ax)(N-1) для 0|a| (N-1)/2

d=-[x-2y+2ay/(N-1)] для (N-1)/2<aN-1

d=[x+y+ay/(N-1)] для (-N+1) a<-(N-1)/2

позволяет определить преобразование Хафа с параметрами (a,d).

Основание нормали

Рассмотрим еще один известный способ параметризации прямых, называемый "основание нормали" (foot-of--normal). Суть этого метода заключается в следующем. Пусть используется традиционная параметризация (,) для обнаружения прямых в нормальных координатах. Тогда для вычисления образа любой точки (x,y) в пространстве (,) необходимо вычисление арктангенса, чрезвычайно дорогое в плане трудоемкости. Метод "основания нормали" этого не требует. В этом методе прямая характеризуется координатами (x0 ,y0) точки основания нормали (перпендикуляра), опущеной на эту прямую из начала координат или другой выбраной опорной точки.

Дэвисом [141] было предложено следующее остроумное использование этой параметризации. Применим к исходному изображению в плоскости (x,y) дифференциальный градиентный оператор Собела, для получения в каждой интересующей нас конутрной точке компонент локального градиента (gx,gy). Определим теперь точку (x0 ,y0) как "основание нормали" прямой (,), проходящей через голосующую точку (x,y). Тогда справедливы соотношения

gy/gx= y0/x0,

(x-x0)x0+(y-y0)y0=0

Разрешив их относительно x0 и y0 получим

x0=Vgx, y0=Vgy,

где V=(xgx +ygy )/(g2x +g2y).

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

x = x0 +Wgy

y = y0 -Wgx,

где W=(xgy-ygx)/(g2x +g2y).

Проанализируем возможные ошибки этого метода. Пусть вследствие угловой ошибки e в направлении определяемой прямой, мы получили значение (x1,y1) вместо (x0,y0) для основания нормали. Первое приближение ошибки дает оценку:

=S, S=-,

где S = (x-x2) +(y-y2).

Как видно, ошибка при одном и том же e тем больше, чем дальше точка (x0y0) от начала координат. Так, при помещении начала координат O в центр квадратного изображения размера N*N пиксел верхняя граница ошибки составляет  N/2 .

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

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

Вторая проблема связана с падением точности определения направления прямой в методе "основания нормали" вблизи значения (x0y0)=(0,0). В самом деле, при нахождении (x0,y0) в начале координат, основание нормали перестает определять однозначно какую-либо прямую, а определяет все семейство прямых, проходящих через начало координат. Чаще всего, этим эффектом можно пренебречь, однако в каждом конкретном случае об этом необходимо помнить и анализировать вероятность ошибок. Корректным способом решения этой проблемы является перенесение начала координат для точек (x0,y0) с малым  в какую-либо другую, заранее определенную точку. Однако это связано с усложнением вычислений.