馮宇 朱大明 胡琳 張勇



摘 要:隨著無人機在測繪領域的廣泛應用,航攝影像處理已成為國內外關注的熱點。為尋求更適合航攝影像特征點提取的算法,對目前國內外幾種常用特征點提取算法進行對比分析,結果表明,Moravec算子相較于其它算子,原理最為簡單,但圖像處理效果不佳。為此,利用C#工具實現Moravec算子,并通過圖像處理實驗,從計算速度、提取質量、定位精度、抗噪能力等方面對其進行全面分析,得出該算子在提取質量、定位精度與抗噪能力等方面均性能較差,該結論為今后對其優化改進提供了明確的研究方向。
關鍵詞:航攝影像;圖像特征;特征點提取;Moravec算子
DOI:10. 11907/rjdk. 182866 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP312 文獻標識碼:A 文章編號:1672-7800(2019)008-0066-05
Research on Feature Point Extraction Algorithm
Based on Aerial Photography Image
FENG Yu, ZHU Da-ming, HU Lin, ZHANG Yong
(Faculty of Land and Resources Engineering, Kunming University of Science and Technology, Kunming 650093,China)
Abstract:With the wide application of UAV in the field of surveying and mapping, aerial image processing has become a hot topic at home and abroad. In order to find an algorithm suitable for feature extraction of aerial photography features, this paper extracts several common feature points at home and abroad. The algorithm performs in-depth comparative analysis and research. The results show that the Moravec operator algorithm is the simplest compared to other algorithm principles, but the image processing effect is not good. For this reason, for the performance of Moravec operator, the operator implementation is carried out by using C# tool, and the experimental research of image processing is carried out by using this operator. From the aspects of calculation speed, extraction quality, positioning accuracy and anti-noise ability, The analysis shows that the operator has poor performance in terms of extraction quality, positioning accuracy and anti-noise ability. This conclusion provides a clear research direction for the algorithm of optimizing Moravec operator in the future.
Key Words: aerial photography;image feature;feature point extraction;Moravec operator
作者簡介:馮宇(1994-),男,昆明理工大學國土資源工程學院碩士研究生,研究方向為地理信息技術開發與應用;朱大明(1970-),男,博士,昆明理工大學國土資源工程學院副教授,研究方向為地理信息工程、3S集成、土地規劃。本文通訊作者:朱大明。
0 引言
如今,航攝技術已得到了廣泛應用,對航攝圖像的處理技術也不斷更新。圖像處理技術主要分為3類:①傳輸與儲存圖像信息;②改善圖像質量;③提取圖像特征[1]。圖像特征點提取是圖像處理的基本操作,而點特征是圖像最基本的特征。提取點特征的算子稱為興趣算子。近年來,國內外學者研究的提取算法可大致分為兩類:①基于模板匹配的方法,需要設定一系列特征點模板(如角點、交叉點等),根據模板與所有圖像子窗口的相似性,判斷位于窗口中心的像元是否為特征點[2];②基于幾何特征的方法[3],該算法有兩種獲取途徑:一是依據圖像邊界曲率進行提取,二是直接依據圖像灰度信息提取特征點。該方法簡單易行,通常利用興趣算子提取特征點。常用特征點提取算子有:Moravec算子、Forstner算子、Harris算子、SUSAN算子與SIFT算子等。然而,目前關于以上幾種算法的性能比較研究很少。因此,本文對幾種常用算法進行實驗對比與分析,對算子性能進行評估,同時對Moravec算子進行深入分析,從而為算子優化提供方向。
1 圖像特征點提取算子
圖像特征點提取算子是用來提取數字圖像中點特征信息而采用的方法,圖像處理技術發展至今,學者們已提出了Forstner、Moravec、SUSAN等多種算子[4]。這些算子各有優劣,以各自的優勢在圖像處理中發揮著作用,同時也因自身缺陷而影響其使用范圍的拓展。本文將對Forstner、Moravec、SUSAN、Harris 4種算子進行深入研究與分析。
1.1 SUSAN算子
SUSAN的原理是在事先經過灰度化處理的數字圖像上,使用曲率和度檢測圖像特征點[3]。將圓形窗口中心內未被檢測的像素點作為核心點,將窗口中心的像素灰度值與其鄰域內其它像素的灰度值作差,如果差值小于設定閾值,即可認為該點與核心點灰度相同。按照該原理得到以下計算步驟:
(1)首先通過計算灰度值找出與窗口中心像素相近的像素個數[n(x0,y0)]:
[c(x,y)=exp-Ix,y-Ix0,y0T6]
[n(x0,y0)=x,y≠(x0,y0)c(x,y)]? ? (1)
(2)求得角點響應函數以獲得特征點:
[R(x0,y0)=g-n(x0,y0),n(x0,y0) g為閾值,一般為窗口模板大小的3/4,以獲取的特征點為中心,與領域其它點進行比較,保留灰度值最大的點,得出特征點。 1.2 Moravec算子 Moravec算子對像素點沿上下左右及45°斜對角方向共8個方向進行灰度變化的方差計算,具有最小方差的值被作為興趣點,根據興趣值設置的閾值作為判斷特征點的基礎依據,即利用“興趣算子”提取特征點[6],具體步驟如下: (1)計算像元興趣值,假設像素中心(p,q),計算4個方向灰度差的平方和。 [I1=j=-kk=1(gp+j-gp+j+1,q)2I2=j=-kk=1(gp+j,q+j-gp+j+1,q+j+1)2I3=j=-kk=1(gp,q+j-gp,q+j+1)2I4=j=-kk=1(gp+j,q-j-gp+j+1,q-j-1)2] (3) 其中,K=INT(M/2),興趣值取以上值([I1、I2、I3、I4])的最小值。 (2)將小于該閾值的興趣點作為待選點。 (3)選擇待選點中的極值點作為特征點,在設定的窗口模板中,在待選點中去掉非最大興趣值的點,只留下一個最大值,確認該最大值為特征點[7]。 1.3 Harris算子 Harris算子是在Moravec算子基礎上改進的一種算子。Moravec算子可分析圖像上某區域在水平、垂直、正負對角線幾個方向上的位移,并計算每個像素點灰度,Harris算子在此基礎上拓寬了研究思路。 基本方法為:以目標像素點為中心并沿著其周圍“↑↗→↘↓↙←↖”8個方向移動,計算8個方向上的灰度變化,以這些值的最小值作為與閾值比較的對象。具體步驟如下: (1)使用(-1,0,1)(-1,0,1)T算子計算圖像像素點在水平與垂直方向上的梯度Ix、Iy,并獲得自相關矩陣[M1]。 [M1=I2xIyxIyxI2y] (4) (2)求得[M1]中4個元素的值,并獲得自相關矩陣[M2]。 [M2=M1?φxy=I2xIyxIyxI2y?φxy] (5) (3)計算高斯濾波與角點函數值。 [R=Det(M2)-kTr2(M2)] (6) Det([M2])為矩陣[M2]的行列式,tr([M2])為矩陣[M2]的軌跡,k為默認常數,一般取值為0.04~0.06。 (4)采用非極大值抑制法得到的極值點即為特征點。 1.4 Forstner算子 Forstner算子選取角點、圓點等作為特征點,在選擇圖像中盡可能小的點、圓點以及近似圓點作為特征點過程中,需要計算各像素點的羅伯特梯度與灰度協方差矩陣,以及圖像中提取的興趣值,然后抑制局部極小點[8]。具體算法如下: (1)計算差分算子,計算像素(x,y)在左右上下方向的灰度差分絕對值dg1~dg4。 [dg1=gx,y-gx+1,ydg2=gx,y-gx,y+1dg3=gx,y-gx-1,ydg4=gx,y-gx,y-1] (7) (2)將dg1~dg4按從低到高進行排序: [M=mindg1,dg2,dg3,dg4] (8) 根據設定的閾值提取初選點,若M>T,(x,y)則為初選點。 (3)計算“羅伯特梯度”: [Gu=?g∕?uGv=?g∕?v] (9) (4)計算協方差陣: [N=G2uGuGvGuGvG2V] (10) (5)確定初選點: [q=4detN(trN)2w=detNteN] (11) det N表示N的行列式,tr N表示N的軌跡。若q比假設閾值大,則該像素為初選點。最后,選取極值點作為特征點。基于權重ω,選取最大的初選點作為合適大小窗口ω中的特征點[9]。 2 特征點提取方法對比 采用不同算法提取特征點,實驗結果對比得如表1所示。 表1 實驗結果對比 3 Moravec算子程序實現 經過實驗比較,可明顯看出Moravec算子略遜色于其它算子。使用C#程序語言作為工具對該算子進行更深入的研究,以便于之后對其進行優化。 根據Moravec算法實現流程,運用C#程序設計語言,在分析算法原理的基礎上,梳理出程序實現的基本步驟,具體步驟為:創建一個窗體應用程序,對數字圖像獲取像素的三原色值進行灰度計算。利用圖像處理技術中提取像素點法,首先使用GDI+中的GetPixel方法,讀取當前像素顏色,再按照公式[Gray(i,j)=0.299×R(i,j)+0.587×][G(i,j)+0.114×B(i,j)]計算灰度值。灰度化處理可以降低程序運算量。按照Morvaec算子的算法原理,通過計算4個方向的灰度差平方和尋求極值,并求取特征點。Moravec算法實現流程如圖1所示。 關鍵代碼如下: toolStripProgressBar1.Value=0; toolStripProgressBar1.Maximum=10; toolStripProgressBar1.Value=1; double[,]Value2=newdouble[curBitmap.Height,curBitmap.Width]; for(inti=2;i {for(intj=2;j {doubleV1=0; for(intm=0;m<4;m++) {V1=V1+Math.Pow(Value1[i-2+m,j]-Value1[i-1+m,j],2);} //計算V1方向相鄰像素灰度差平方和 Value2[i,j]=Math.Min(Math.Min(Math.Min( V1,V2),V3),V4); toolStripProgressBar1.Value=3; doublesum=0; for(inti=0;i {for(intj=0;j {sum+=Value2[i,j];}} intp=0,Strength=0;u=1100;doublerange; Co=newint[img1.Height*img1.Width/9,2]; double[,]Value3=newdouble[img1.Height,img1.Width]; doubleavg1=sum/((img1.Height-2)*(img1.Width-2)); range=avg1; while(u>1 000||u<1) {if(u>1 000) {Strength++;range=avg1*Strength;} else {range=range*((2*Strength-1)/2*Strength);} for(inti=0;i for(intj=0;j {if(i==0||i==1||i==img1.Height-2||i==img1.Height-1||j==0||j==1||j==img1.Width-2||j==img1.Width-1) {Value3[i,j]=0; continue;} else {if(Value2[i,j]>range) {Value3[i,j]=1;p=p+1;} else Value3[i,j]=0;}//檢索圖像興趣點,存儲5*5模板灰度 if(MAX>0) {Co[u,0]=a;Co[u,1]=b;u=u+1;}}} toolStripProgressBar1.Value=8; Templet=newdouble[u,25]; for(inti=0;i {intt=0; for(intm=0;m<5;m++) {for(intn=0;n<5;n++) {Templet[i,t]=Value1[Co[i,0]-2+m,Co[i,1]-2+n];// t++;} 在上述過程中,通過給定閾值將大于閾值的點篩選出來,并在模板5*5窗口中選取極值點作為特征點;然后利用函數GDI+中的Graphics類將提取的特征點繪制在圖像上,使用三次插值在圖像上繪制特征點,如圖2所示;最后,通過代碼實現同名像點匹配。本文采用相關系數法識別兩幅圖像中的特征點,并通過計算相關系數進行圖像匹配,在此不再贅述[8]。測試運行特征點提取結果與先經過灰度處理再進行圖像匹配的結果如圖3、圖4所示。 圖2 使用三次插值在圖像上繪制特征點效果 圖3 特征點提取結果 圖4 先經過灰度處理再進行圖像匹配結果 4 實驗結果分析 操作菜單下有兩個選項,圖像特征點提取操作與同名點匹配操作。接下來采用建筑樓的航攝影像進行實驗,結果如圖5、圖6所示。 圖5 樓1圖像處理 圖6 樓2圖像處理 由圖5、圖6實驗結果可知,對于采用相關系數法的圖像匹配,特征比較明顯的地方圖像配準度較高,不明顯的地方則匹配不夠準確。 對Forstner、SUSAN、Harris、Moravec 4種算子的優點及不足進行對比分析,對比結果如表2所示。 表2 各種算子對比結果 由以上實驗結果可得,Moravec算子計算過程簡單,但提取的特征點因受到噪聲影響變化很大;其次,閾值大小的設定是影響點提取效果的一個重要因素,圖像本身紋理特征對結果影響也較大。該程序對于較大圖像的處理速度比對比實驗中使用的程序慢得多。 5 結語 圖像特征點提取是數字圖像處理中非常重要的步驟,目前已在遙感、醫學、計算機視覺甚至公安等領域得到了成功應用。隨著現代科技的發展,圖像處理技術應用也更加廣泛,同時也面臨新的挑戰。本文通過對各種特征點提取的算子原理進行學習,然后對航拍影像的特征點提取進行實驗,對各種算子的優點及不足進行對比分析。其中,算法計算方式、閾值設置會對提取效果造成很大影響,其次圖像紋理、旋轉變換等也會影響提取效果。 通過對各算子的對比分析,Forstner、SUSAN、Harris算子在計算速度、提取質量、定位精度、抗噪能力方面各有優勢,但算法也相對復雜;Moravec算子最為簡單,但其在圖像特征點提取質量與抗噪能力方面表現最差。因此,下一步將結合Moravec算子原理簡單的優點,對其圖像特征點提取質量與抗噪能力等進行優化。同時,對幾種算子進行綜合與改進,也是今后的重點研究方向。 參考文獻: [1] 趙春江. C#數字圖像處理算法典型實例[M]. 北京:人民郵電出版社, 2009. [2] 張祖勛,張劍清.? 數字攝影測量學[M].? 武漢:武漢測繪科技大學出版社,1997. [3] 劉陽,鄒崢嶸. 攝影測量中幾種特征點提取算法比較[J]. 測繪與空間地理信息,2012,35(8):219-221. [4] 鮑軍肖. 基于特征點和互信息的醫學圖像配準研究[D]. 秦皇島:燕山大學,2010. [5] 肖飛. 基于圖像特征提取和特征點描述的匹配算法研究及其應用[D]. 成都:電子科技大學,2013. [6] 侯艷杰. 偵察圖像的拼接與地圖匹配技術研究[D]. 南京:南京航空航天大學,2011. [7] 張曉芳. 基于雙目立體視覺非接觸物體測量的研究[D]. 大連:大連理工大學,2009. [8] 潘啟龍. 無源毫米波探測成像系統目標檢測與識別方法[D]. 成都:電子科技大學,2014. [9] 官云蘭,張紅軍,劉向美. 點特征提取算法探討[J]. 東華理工學院學報,2007 (1):42-46. [10] 陳淑蕎. 數字圖像特征點提取及匹配的研究[D]. 西安:西安科技大學,2009. [11] 肖若秀. 圖像匹配方法研究與應用[D]. 昆明:昆明理工大學,2008. [12] 李先怡. 特征點匹配技術在無人機影像匹配中的研究與應用[D]. 西安:西安科技大學,2011. [13] 趙悟. SIFT與Harris算法在圖像特征點提取中的適用性研究[D]. 濟南:山東師范大學,2016. [14] 趙艷麗. 圖像特征提取與匹配算法研究[D]. 成都:電子科技大學,2011. [15] 楊曉暉,寧彥俊,王文娟,等. GD09-069圖像特征點提取角點量閾值自適應選取方法[C]. 第10屆全國光電技術學術交流會論文集,2012:263-263. [16] 王舒鵬,方莉. 利用Moravec算子提取特征點實現過程分析[J]. 電腦知識與技術:學術交流,2006 (9):125-126. [17] 楊曉敏,吳煒,卿粼波,等. 圖像特征點提取及匹配技術[J]. 光學精密工程,2009,17(9):2276-2282. [18] RODRIGUEZ J J, AGGARWAL J K. Matching aerial images to 3-D terrain maps[J].? IEEE Transactions on Pattern Analysis & Machine Intelligence, 1990, 12(12):1138-1149. [17] BROWN L G. A survey of image registration techniques[J].? Acm Computing Surveys, 1992, 24(4):325-376. [18] 柴進. 航空攝影測量特征點提取與匹配算法研究[C]. 第七屆圖像圖形技術與應用學術會議論文集,2012:44-53. (責任編輯:黃 健)