趙 芳 張 驍 楊利斌 杜亞杰
(海軍航空大學(xué) 煙臺 264001)
艦船船體三維變形會導(dǎo)致艦上各個武器系統(tǒng)姿態(tài)失準(zhǔn)、作戰(zhàn)效能下降,十字線檢測是一種常見的實時測量船體三維變形的方法。常見的圖像處理手段中,一般使用霍夫變換快速檢測直線目標(biāo)和十字線目標(biāo)[1~2]?;舴蜃儞Q的優(yōu)勢是可以把畫面中比較困難的全局檢測轉(zhuǎn)化為參數(shù)空間里比較容易實現(xiàn)的局部峰值檢測。標(biāo)準(zhǔn)霍夫變換(SHT)在檢測直線時,直線定義為
其中,x和y是圖像平面的坐標(biāo)軸,ρ和α分別是原點(diǎn)到直線的距離和原點(diǎn)與直線的垂線與x軸方向之間的夾角。通過式(1)可以發(fā)現(xiàn),直線上所有的點(diǎn)包括邊緣均轉(zhuǎn)換到霍夫空間上。所以霍夫空間初始值為0,所有 ρ-α組合由式(1)不斷累積。由于同一條線的每個點(diǎn)都是霍夫空間上一組單獨(dú)的ρ-α,選出最大的那組 ρ-α就可以檢測出直線。當(dāng)圖像中有大量的直線時,通過篩選出局部最大的那些ρ-α,就可以檢測出它們。
大部分文獻(xiàn)對SHT的改進(jìn)都是降低計算復(fù)雜度和內(nèi)存需求[3-6],很少提出新的參數(shù)。Xu在文獻(xiàn)[7]中提出了隨機(jī)霍夫變換(RHT),該方法對像素隨機(jī)采樣大大降低了內(nèi)存消耗和計算量;滕今朝等在文獻(xiàn)[8]提出一種分式查表法,在保證檢測精度的條件下,也能減少霍夫變換的計算量。
線性方程(1)中用于檢測直線的 ρ-α的最優(yōu)佳分辨率很難得到[9~12]。為了解決這個難題,只能把直線的離散方程或者分區(qū)表示用于整數(shù)計算。但是,這些方法用到了量化整數(shù)參數(shù)。本文提出了一種改進(jìn)的離散霍夫變換(DHT)用于十字線檢測。將線段的兩個端點(diǎn)作為參數(shù)表示線段,因此參數(shù)是整數(shù)。除此之外,霍夫空間可以很容易地平滑來用于抑制噪聲和典型線選擇,這是因為它的坐標(biāo)軸可以由相同值求解。
我們把圖像平面線段端點(diǎn)作為DHT的參數(shù)。任意線段都可以延伸到圖像邊界,因此一個從一邊到另一邊沿著圖像平面延長的線段可由兩點(diǎn)表示。
圖1 離散霍夫變換基本原理
基于上述DHT的基本原理,每個點(diǎn)都轉(zhuǎn)換成一條線或者曲線,并在霍夫空間上積累。圖1中,點(diǎn) p1和 p2分別積累成線s1和s2。這個過程可以表達(dá)為比例方程。讓 p(x ,y)作為圖像平面的一點(diǎn),y1和 y2作為y1-y2霍夫空間上的積累對,由于和 p是共線的(也就是有相同的斜率),那么比例方程為
當(dāng)S上所有的點(diǎn)都積累到霍夫空間上,點(diǎn)h的積累值變的最高。在相同條件下,其余的5個霍夫空間的比例方程為
其中這些方程是按照 x2-y1,x2-y2,x1-x2,x1-y1和x1-y2的霍夫空間順序表示的。因為SHT的參數(shù)是角度和距離,兩個坐標(biāo)軸的分辨率不能有任何相關(guān),同時DHT的坐標(biāo)軸是像素距離,因此它們可由相同的因子縮減像素采樣,且能夠由方形窗進(jìn)行平滑來抑制噪聲。
為了檢驗離散霍夫變換在檢測直線以及十字線的精度,分別做了單點(diǎn)DHT、線段DHT、DHT直線檢測和DHT十字線檢測等仿真實驗。
首先在A=B=128的圖像上取一個單像素點(diǎn),通過DHT單點(diǎn)在霍夫空間上轉(zhuǎn)換成直線或者曲線。如圖2所示,任意一點(diǎn)在y1-y2和x1-x2的霍夫空間上都轉(zhuǎn)換成一條直線,在x1-y1,x1-y2,x2-y1和x2-y2的霍夫空間上是一條曲線或者空白。
圖3 線段DHT
同樣地,令A(yù)=B=128。我們要找到某個霍夫空間上最大積累點(diǎn),它是線段通過DHT轉(zhuǎn)換成的。圖3給出了一個在x1-x2霍夫空間上的最大積累點(diǎn),其中最大值表示在每一個霍夫空間上的最佳積累點(diǎn),因為線段從x1延長到x2。
為了證明DHT直線檢測算法可以用方形窗口平滑,在原始圖像中共有4條相近的直線,如圖4所示。通過選擇霍夫空間上局部最大值,選擇其中局部最大值大于45的(τ=45),可以檢測到幾條線。通過選擇高斯平滑的霍夫空間上局部最大值,就會檢測出一條直線。
為了證明DHT可以通過縮減像素采樣來得到平滑,在原始圖像中共有4條相近的直線,如圖5所示。通過選擇縮減像素采樣(64*64像素)的霍夫空間上的局部最大值,也會檢測出一條直線。
圖4 高斯平滑的DHT直線檢測
圖5 縮減像素采樣的DHT直線檢測
為了測試該直線檢測方法的可靠性,我們測試了一些包含大量隨機(jī)黑白相間噪聲的圖像,霍夫空間是高斯平滑的y1-y2霍夫空間。如圖6所示,這個包含很多噪聲像素的圖像經(jīng)過SHT會錯誤地檢測出很多直線(灰色表示),但是這些錯誤直線經(jīng)過高斯平滑霍夫空間會得到消除(深灰色表示),除非有圖6(h)所示的大量重度噪聲。
圖6 噪聲圖像的直線檢測
首先創(chuàng)建仿真十字線變形圖像。在256*256的灰度圖像中心設(shè)置橫線和縱線,經(jīng)過二維空間的低通濾波之后,十字線邊緣分布變緩,引入三維變形角,使圖像產(chǎn)生旋轉(zhuǎn)和位移。十字線創(chuàng)建過程如圖7所示。
圖7 十字線創(chuàng)建過程
接著讀取變形之后的仿真圖像;然后,通過SHT、DHT等直線檢測方法得到十字線相對應(yīng)的兩個直線方程;最后根據(jù)兩個直線方程求解十字線中心,進(jìn)而得到三維變形角。表1對比了SHT和DHT兩種檢測方法的精度。
表1 十字線檢測誤差統(tǒng)計(單位:″)
從表1可以發(fā)現(xiàn),SHT和DHT兩種檢測方法精度均可以達(dá)到角秒量級,其中縱撓角和艏撓角的精度較高,DHT精度好于SHT。該實驗結(jié)果表明,通過改進(jìn)十字線檢測算法可以提高三維變形角的測量精度。
DHT采用由兩個坐標(biāo)系參數(shù)化的兩個端點(diǎn),因此相比于原始的采用直線方程的SHT有很多優(yōu)勢。首先,通過低通濾波或者縮減像素采樣,霍夫空間可以輕松地平滑用于噪聲抑制,這是因為霍夫空間的兩個軸有相同的分辨率。第二,如果直線的角度提前定義了,比如十字線檢測,霍夫空間可以有選擇地使用。最后,累加值與檢測的線段的長度相似。但是,當(dāng)直線角度未知時,DHT采用6個霍夫空間,最壞的情形下計算復(fù)雜度可能會增長到SHT的6倍以上。
本文對常見的直線檢測方法SHT進(jìn)行了改進(jìn),將線段端點(diǎn)作為參數(shù)提出了一種離散霍夫變換十字線檢測算法。仿真結(jié)果表明,該算法降低了確定坐標(biāo)軸最佳分辨率的難度,抑制了噪聲,提高了十字線檢測的精度。但隨之而來的問題是計算變得更加復(fù)雜,這需要在以后的研究中繼續(xù)討論。