王濤
(中航工業洛陽電光設備研究所 河南 洛陽471009)
平顯圖像的抖動將直接影響飛行員的視覺效果。目前,評估平顯成像系統質量一般都是通過人眼對振動情況下平顯圖像的長時間觀察做出判斷,主觀因素較大,容易產生誤判。因此,研究一套實時客觀的平顯圖像振動檢測系統具有重要意義。
運動估計是圖像振動檢測技術的核心,獲得精確的圖像序列幀間偏移向量的方法就是運動估計[1-2]。運動估計的準確性與實時性極大的影響著整個系統的性能。
前后相鄰的兩幅圖像的映射關系是由前一幀圖像和偏移量共同作用的函數,即

其中,Im g(i)表示前一幀圖像,g(d x,d y)表示偏移量,Im g(i+1)表示后一幀圖像。
運動估計算法在振動檢測、電子穩像、視頻壓縮等領域廣泛被使用[3]。關于運動估計的算法有很多,包括塊匹配法、灰度投影法、特性匹配法等[4-5]。
通過對各種運動估計算法的研究與分析,比較它們的優缺點,得到表1。

表1 運動估計算法的比較Tab.1 Comparison of motion estimation algorithm
由表1可知,特征匹配的優越性高,而且對于其缺點可以采取一些算法補救,來提高匹配的精度。所以本文采用基于特征匹配的振動檢測算法。
振動檢測算法的重要思路之一就是“特征匹配”,它的實質就是構造出某種相關的運算機制,然后得到圖像幀與幀間的運動向量。它主要依賴于圖像的某個或某些特征,因此有比較高的精度。這里的特征包括點特征、線特征、面積特征等。點特征是應用范圍最廣的一種特征量,與直線特征相比較,點特征具有易提取、計算量小的優點。可以通過多個特征點來保證算法的穩定性和精確性。特征點匹配算法的原理是分別在參考幀圖像和當前圖像選取一些特征點,然后對特征點進行相關的匹配,最后求出運動向量。
本文是要滿足實時振動檢測的要求,即在實現振動檢測的同時達到很好的實時性,選擇基于特征點匹配,是因為它具有以下的特點:
1)精度高
本系統的目的就是檢測出振動的幅度,檢測出圖像序列間的不規則運動,使觀察者觀察、分析起來更加方便,因此較高的精度是必不可少的。而特征點是個局部的特征,它的匹配對位置的變化相對比較敏感,當選取多個特征點進行匹配時,可大大提高匹配精度。
2)實時性好
實時性好的實質是幀處理率高,即每一幀圖像的處理速度快,這樣在檢測系統中能夠及時反映實際中的變化。圖像的特征點的個數比圖像的整個像素點的個數少很多,因此,可以大大提高匹配時的速度。
一般常用的提取特征點的方法有:基于角點提取,如Susan法、Harris法等;基于興趣點提取,如Moravec操作數、Forstner操作數等;基于邊緣提取,如Log算子、Canny算子等。
2.2.1 基于角點提取算法
圖像中的角點一般指圖像邊界上曲率高 (即曲率變化明顯)的點。基于角點的算法有很多,如Susan法、Harris法、Kitchen法等。Harris算子[6]是1988年C.Harris和M.J.Stephens提出的基于信號強度的點特征提取算子。該算子引入了信號處理中自相關函數理論,將圖像的局部自相關函數與角點檢測緊密的結合在一起,最后是通過對特征值的分析判斷待檢測點是否為角點。該算子計算量相對小,因為它只用到灰度的一階差分以及高斯濾波。由于用到圖像的一階導數,所以當圖像存在旋轉、灰度變化或視點變化時,不影響角點提取的效果,而且Harris算子的穩定性也比較高。利用Harris算子對平顯圖像進行特征點提取結果如圖1所示。
2.2.2 基于興趣點提取算法

圖1 Harris算子提取特征點圖Fig.1 To extract the feature points by Harris
相對于領域表現出某種奇異性的點稱為興趣點,例如一些在局部區域中各個方向上灰度變化最大的像素點。它們容易提取,并且對信號的噪聲、數據采集時參數變化和圖像變換等具有很好的魯棒性。一般常用的算法有Moravec算子、Forstner算子、Hannah算子等。
Moravec在1977年提取利用灰度方差提取特征的方法,隨后這種方法被稱為Moravec算子。該算法是沿著圖像中的每一個像素點的4個方向,即水平、垂直、對角線和反對角線計算其灰度差,選取最小值作為響應值,最后通過局部非極大值抑制檢測出特征點[7]。該算法思想簡單,但是也造成它的局限性,即只利用4個方向計算,這樣導致該算法在方向性上的缺陷。而且該算法對噪聲的抑制性差,容易把一些孤立點和邊緣點當做角點提取出來,準確率不高。基于此算子提取特征點情況如圖2所示。

圖2 Moravec算子提取特征點圖Fig.2 To extract the feature points by Moravec
2.2.3 基于邊緣檢測提取特征點
一幅圖像的邊緣實質上意味一個區域的截止另一個區域的開始,它是以圖像局部特征不連續性的形式出現,故邊緣具體是指與其周圍像素灰度有階躍變化的像素點的集合。邊緣檢測是利用圖像一階導數的極值或二階導數的過零點信息來提供判斷邊緣點的基本依據。因此,選取邊緣點作為特征點,同樣可以保證特征點定位的準確性和魯棒性。
下面對比幾種常見的邊緣檢測算子:
1)Roberts算子
由Roberts提出的一種算子,其原理是在2×2鄰域上計算對角導數作為差分算子尋找邊緣寫成模板為:

由于Robert算子通常會在圖像邊緣附近的區域內產生較寬的響應,故采用上述算子檢測的邊緣圖像常需做細化處理,而且邊緣定位的精度不是很高。所以通過Robert算子圖像處理后結果邊緣不是很平滑。
2)Sobel算子
Sobel提出一種將方向差分運算與局部平均相結合的邊緣檢測方法。Sobel算子的原理是在3×3的鄰域內做灰度加權和差分運算,利用像素點上下左右相鄰點的灰度加權算法,依據在邊緣點處達到極值這一現象進行邊緣檢測。
它采用的模板如下:

Sobel算子利用快速卷積函數使得它具有簡單有效的特點,得到廣泛的應用。但是,Sobel算子并沒有嚴格地區分圖像的背景和主體,即Sobel算子沒有基于圖像灰度進行處理,提取的圖像輪廓有時并不能達到很好的效果。
3)LOG算子
Marr和Hildreth將高斯濾波和拉普拉斯邊緣檢測算法有機結合,提出了拉普拉斯邊緣檢測算子,形成了LOG(Laplacian of Gaussian)算法。之前敘述的算子都是利用邊緣處的梯度最大來進行邊緣檢測,而拉普拉斯邊緣檢測是利用拐點處二階導數為0,也就是尋找邊緣可以通過尋找二階導數的零交叉點來完成。以模板形式表示如下:

由于一階導數對噪音敏感,二階導數對噪音就更敏感,因而不穩定。所以LOG算法就是在用拉普拉斯算子之前,先用高斯濾波器對圖像進行平滑。該算子具有以下特點:
①節省計算時間。其它的微分法,需要計算不同方向的微分,而LOG算法無方向性,不用計算不同方向的微分,因此可以缺省這部分計算量,從而節省計算時間;
②由于LOG算法先對圖像進行平滑,這樣尺度小于σ(高斯分布的均方差)的圖像強度變化可以被消除;
③邊緣連續性好、定位精度高,可以提取對比度較弱的邊緣點。
綜上所述,Robert算子通常會在圖像邊緣附近的區域內產生較寬的響應,由于邊緣定位的精度不是很高,所以通過其對圖像進行處理后結果邊緣不是很平滑;Sobel算子并沒有將圖像的主體與背景嚴格地區分開來,它沒有基于圖像灰度進行處理,故提取的圖像輪廓有時并不能令人滿意;LOG算子在邊緣檢測中是讓圖像與高斯濾波器進行卷積,這樣既對圖像進行了平滑又降低了噪聲,并且LOG算子定位精度高,邊緣連續性好,也可以較好提取對比度較弱的邊緣點。利用3種檢測算子分別對平顯圖像進行邊緣檢測,結果如圖3~5所示。

圖3 Robert算子Fig.3 Robert

圖4 Sobel算子Fig.4 Sobel

圖5 LOG算子Fig.5 LOG
綜上所述,本系統采取LOG算子對圖像進行邊緣檢測。
在對圖像進行邊緣檢測后,將圖像分成互不重疊的r×s大小的區域,在覆蓋的圖像區域中選取灰度最大的點作為特征點。
由于基于角點提取和基于興趣點提取都是對整幅圖像來進行搜索計算,所以算法比較復雜,計算量大,耗時長,不利于系統的實時處理。而基于邊緣檢測提取特征點是在邊緣點中進行選取,這樣無形中提高了特征點提取速度。
另外,當選取LOG算子對圖像進行邊緣檢測還能彌補平顯圖像預處理中利用中值濾波去噪的缺陷。由于中值濾波對高斯噪聲無能為力,但是LOG算子的特點就是對圖像進行高斯濾波然后再邊緣檢測,所以,當平顯圖像中包含高斯噪聲,利用邊緣檢測也能達到去噪的效果。因此,本文選取基于邊緣檢測提取特征點。
但是基于邊緣檢測提取特征點算法在對圖像進行邊緣檢測后,選取圖像區域中灰度最大的點作為特征點,而根據本系統采集的平顯圖像(如圖6所示)特征來看,灰度變化不明顯,而且之前已經對圖像進行二值化處理,整幅圖像只有兩種灰度值(0或255),顯然利用灰度最大提取特征點已經不合理。因此,需對邊緣檢測提取特征點算法加以改進。

圖6 原始圖像Fig.6 Original image
由于不能在已經進行閾值分割的圖像中選取灰度值最大的點作為特征點進行提取,也就意味著不能從灰度變化這個方面對平顯圖像進行特征點提取。所以,需選取基于角點的原理提取特征點。具體方法是在對圖像進行邊緣檢測處理后,利用基于角點提取特征點的方法對圖像進行特征點提取,這樣做不僅能克服不能直接利用邊緣檢測提取特征點,還能縮短基于角點提取特征點的時間,因為這里的角點都是在圖像邊緣上選取。具體計算過程如下:
1)LOG邊緣檢測。利用LOG算子進行邊緣檢測步驟:
①在一定范圍內對圖像做平滑濾波處理;
②利用差分算子檢測在相應尺度上的圖像邊緣。使用的差分算子是各向同性的拉普拉斯二階差分算子。常用5×5的LOG算子模板為:

圖像與上述模板進行進行卷積后,提取邊緣如圖7所示。
2)角點提取。角點提取特征點的步驟:
①計算圖像在邊緣點上的梯度,也就是在水平X方向和垂直Y方向的差分Ix和Iy;
②構造一個與自相關函數相聯系的矩陣C^,該矩陣的特征值λ1,λ2是自相關函數的一階曲率,其公式為:


圖7 LOG算子邊緣檢測Fig.7 Edge detection by LOG
其中Ix為x方向的差分,Iy為y方向的差分,I^表示為對I做高斯濾波,式(2)表示對操作的圖像中的像素點,計算其在橫向和縱向的差分,以及二者的乘積,這樣得到的新的圖像上的像素對應的值就是和IxIy,然后再對其進行高斯濾波。
③ 提取特征點:如果特征值 λ1,λ2是極大值,即兩個一階曲率值都高,那么該點就被認為是特征點。計算公式如下

式(4)中 λ1,λ2為自相關矩陣C^的兩個特征值。 det(C^)代表求矩陣行列式,trace(C^)代表求矩陣的跡,K是常數。其中k的經驗取值范圍為0.04至0.06。K·trace2(C^)是修正,目的是為了抑制邊緣點的誤檢。
計算完后,將圖像分成互不重疊的r×s個區域Ak,在Ak覆蓋的圖像區域中選取H最大的點作為特征點。選取結果如圖8所示。

圖8 改進算法后提取特征點圖Fig.8 To extract the feature points by Improved algorithm
利用角點檢測法對邊緣進行特征點提取具有較高的魯棒性和穩定性,能夠在圖像旋轉、噪聲干擾等情況下準確的檢測特征點,具有較低的誤檢率。
本文首先對運動估計算法進行研究并對其進行比較,并研究了3種特征點提取算法,針對平顯圖像的特點,對基于邊緣檢測提取特征點算法進行改進,并在VC6.0環境下對其做了實驗,分別計算了改進前和改進后提取特征點的時間,試驗結果驗證了改進算法的優越性。利用該算法提取圖像序列的特征點后并進行特征點匹配,根據特征點對位移量計算圖像序列的振動量,完成圖像的振動檢測。
[1]趙紅穎,金宏,熊經武.電子穩像技術概述[J].光電精密工程,2001,9(4):353-358.ZHAO Hong-ying,JIN Hong,XIONG Jing-wu?.Overview of the electronic image stabilization technology[J].Optics and Precision Engineering,2001,9(4):353-358.
[2]周同.基于改進Canny邊緣檢測算子的電子穩像算法研究[D].蘇州:蘇州大學,2010.
[3]高曉明.電子穩像系統主要算法的研究 [D].西安:西安科技大學,2008.
[4]Pourreza H R,Rahmatt M,Behazin F.An electronic digital image stabilizer based on stationary wavelet transform(SWT)[J].ICIP 2003(2):383-386.
[5]Erturk S Dennis T J.Image sequence stabilization based on DFT filtering.IEEE Proc.On Image Vision and Signal Processing,2000(127):95-102.
[6]劉宇斌.一種分階段的高精度亞像素特征點提取方法[J].南華大學學報:自然科學版,2006,20(2):54-57.LIU Yu-bin.A method of extracting highly accurateSubpixel Features by stages[J].Journal o fN anhuaUn iversity(Sc ience and Technology),2006.06,20(2):54-57.
[7]郭飛飛.基于特征點的圖像配準方法及其應用 [D].重慶:重慶大學,2010.