陳繼華,李 響,李 棟
(鄭州大學 物理工程學院,鄭州 450001)
?
一種改進的輪廓曲線角點檢測方法
陳繼華,李響,李棟
(鄭州大學 物理工程學院,鄭州450001)
角點特征檢測方法是圖像處理的重要研究內容,針對傳統的曲率尺度空間角點檢測中,選擇不同尺度會導致角點的漏檢測和誤檢測問題。提出一種改進的輪廓曲線角點檢測方法,先在低尺度下采用較大步長的曲率閾值法剔除小曲率區域上的偽角點,將偽角點集中在曲率較大的圓弧區域,再合并微小圖元剔除圓弧上偽角點,并結合投影高度法判斷圖元屬性,對圖元進行分割和融合,提高了檢測精度。實驗結果表明,改進的檢測算法在處理由直線和圓弧構成的輪廓曲線角點檢測時,可大大提高檢測準確率。
角點檢測;輪廓曲線;曲率尺度空間;圖元分割;自適應閾值
角點作為圖像的一個局部特征,既保留了圖像中目標物體的重要特征信息又有效地減少了數據量,因而成為圖像處理相關領域的研究熱點。角點檢測技術在相機標定、圖像匹配、運動估計、全景拼接、目標檢測與識別領域都有重要的應用。角點檢測算法主要可以分為兩類:第一類是基于圖像灰度的角點檢測算法;第二類是基于輪廓的角點檢測算法。
基于圖像灰度的角點檢測算法主要通過計算像素點各個方向灰度變化來檢測角點。這類方法主要有Moravec算法[1]、Harris算法[2]和SUSAN算法[3]。Moravec算法把角點定義為角點各個方向上灰度變化足夠大的點,該算法簡單快速,但不具備旋轉不變性,而且對邊緣點反應比較強烈。Harris算法是基于Moravec算法的改進方法,通過微分運算和自相關矩陣檢測角點,對于圖像旋轉和光照變換具有很好的效果[4],但是不能在多尺度下檢測角點,提取效果受閾值和高斯窗口的影響較大。SUSAN算法利用圓形模板鄰域的像素灰度與其圓心的相似性計算得到角點響應函數值,設定閾值,把響應函數值的局部極大值點作為角點。該算法不依賴于圖像導數,具有較強的抗噪能力,但是需要人工設定閾值,運算量較大。
基于輪廓的角點檢測方法,主要是由Mokhtarian提出的曲率尺度空間角點檢測算法(CSS)[5]。該算法先在高尺度下得到輪廓上曲率極大值點,再設定閾值得到候選角點,最后通過在低尺度下對得到的角點進行重新定位,得到位置相對準確的角點。一般需要經過以下五個步驟[5,7]:
(1)用Canny算子提取目標圖像邊緣,獲取二值化邊緣圖像。
(2)得到的邊緣圖像不一定連續,還需要填充邊緣線上的間隙,并找到T型節點。
(3)在高尺度下計算輪廓點曲率,得到曲率局部極大值點,當局部極大值大于臨近局部極小值的兩倍,且大于預先設定的閾值時,該點作為候選角點。
(4)在低尺度跟蹤角點,對角點重新定位。
(5)比較T型角點和提取的角點之間的距離,如果兩者距離很小刪除其中一個角點。
從以上步驟可以看出,角點的初步檢測是在高尺度下進行的,輪廓線被過度平滑,導致漏檢真實角點;全局閾值需要人工設定,不能在保留真實角點的同時剔除所有的偽角點。He等人提出在較小尺度下求取輪廓點曲率的局部極大值,并采用局部自適應閾值剔除偽角點[6]。提高了檢測的準確性,但是計算量大,不能剔除邊緣突變形成的偽角點。曾接賢提出一種曲率尺度空間與鏈碼方向統計的角點檢測方法,能很好地剔除直線上邊緣突變造成的偽角點,但是對于圓弧上的突變點沒有進行論證,且不能很好地檢測平滑過渡的角點[4]。
針對CSS角點檢測會漏檢真實角點以及產生錯誤角點的問題,本文在曲率尺度空間的基礎上,提出了一種改進的輪廓曲線角點檢測方法。
傳統的CSS算法在角點檢測過程中常常存在漏檢和誤檢問題。為解決這些問題,首先在較低尺度下對輪廓進行高斯平滑,保證輪廓曲線不會因為過渡平滑而丟失真實角點。其次采用較大步長計算輪廓點曲率,并通過自適應閾值剔除部分偽角點。最后合并微小圖元,采用投影高度法[8]判斷角點之間的圖元屬性,對圖元進行分割和融合[9],進一步剔除偽角點并重新定位角點,從而提高角點檢測的準確性。
1.1較大步長的曲率閾值法篩選角點
在尺度空間下求取輪廓點的曲率,實際上就是先用某個尺度的高斯函數對輪廓線進行濾波,然后再求取濾波后輪廓線上各點的曲率。將原輪廓曲線用弧長參數u表達為:
F(u)=(x(u),y(u))
曲線隨著尺度變化的演化表達式為:
Fσ=(X(u,σ),Y(u,σ))
其中,X(u,σ)=x(u)?g(u,σ);Y(u,σ)=y(u)?g(u,σ);X(u,σ),Y(u,σ)分別為高斯平滑后輪廓線上的點的橫、縱坐標;g為一維高斯模板函數;參數σ代表尺度。
在所有的輪廓點中,角點所占的比例很小,為了減小計算量先剔除部分不可能成為角點的輪廓點。當輪廓上相鄰的三個點共線時,剔除中間的那個點,并將該點的曲率設為0。然后求取其它各點的曲率,曲率求解公式如下:

σ為尺度;k被定義為步長。
在傳統的CSS角點檢測算法中,初步檢測角點時尺度σ的取值比較大,一般取4或8。σ越大輪廓越光滑,雖然減少了噪聲,但是容易丟失真實角點。為避免漏檢真實角點,本文選擇在較低尺度下檢測角點;在傳統的CSS角點檢測中,步長k的取值為1,如圖1所示,圖中黑點代表輪廓上的像素點,a、b、d為直線上的突變點。當k=1時,通過a、b、c、d、e五點的坐標可以計算出點a的曲率值為1,所得結果受突變點的影響很大,難以通過全局閾值剔除,容易誤檢直線上的偽角點。為解決這一問題,參考了11點k近似曲率法[10],適當地增大了步長k,k的取值一般在5到15之間,文中取10。如圖1所示,當k=10時,可以通過a、f、g、h、i五點的坐標計算出點a的曲率值為0.01,遠遠小于通過CSS算法計算出的曲率值,更容易通過全局閾值剔除該偽角點。

圖1 局部輪廓放大圖
通過改進的方法計算出所有輪廓點曲率后,求出局部極大值點,并剔除曲率小于閾值T的點。自適應閾值T的求解方法如下:
其中,K(n)為曲率大于0的輪廓點的曲率;n為曲率大于0的輪廓點的個數。
為了驗證較大步長的曲率閾值法相對CSS算法中步驟(3)的改進效果,分別做了四組對比實驗。圖2是兩種方法對圓盤工件輪廓初步進行角點檢測的結果,輪廓圖像大小為329×325。本文算法中尺度取1.5,高斯模板長度為5,步長k取10。根據文獻[5],將CSS算法中尺度取4,并根據實驗令閾值t取0.35。從初步處理的結果可以看出本文算法保留了所有的真實角點,并把偽角點都集中在曲率較大的圓弧上。而CSS算法是在高尺度下進行,在初步處理時就已經漏檢了部分真實角點。

(a)本文檢測結果 (b)CSS檢測結果
圖3是兩種方法對飛機輪廓初步進行角點檢測的結果,輪廓圖像大小為1026×885。本文算法中尺度取1,高斯模板長度為5,步長k取10。CSS算法中尺度取4,閾值t取0.36。由初步檢測結果可以看出本文算法保留了所有的真實角點,而且產生的偽角點較少,而CSS算法漏檢了部分真實角點。

(a)本文檢測結果 (b)CSS檢測結果
圖4是兩種方法對型材輪廓1初步進行角點檢測的結果,輪廓圖像大小為352×465。本文算法中尺度取1,高斯模板長度為5,步長k取10。CSS算法中尺度取4,閾值t取0.3。從初步檢測結果可以看出本文算法保留了所有的真實角點,并把多數偽角點集中在曲率較大的圓弧上,而CSS算法漏檢了部分真實角點。

(a)本文檢測結果 (b)CSS檢測結果
圖5是兩種方法對型材輪廓2初步進行角點檢測的結果,廓圖像大小為777×583。本文算法中尺度取1.5,高斯模板長度為5,步長k取10。CSS算法中尺度取4,閾值t取0.36。由初步檢測的結果可以看出本文算法保留了所有真實角點,并把多數偽角點集中在曲率較大的圓弧上,而CSS算法漏檢了部分真實角點。

(a)本文檢測結果 (b)CSS檢測結果
通過對以上實驗結果進行分析可以看出,CSS算法在初步檢測時已經開始漏檢真實角點。而文中算法能夠保留所有真實角點,剔除大部分直線上的突變點,并將多數偽角點集中在曲率較大的圓弧上,這些偽角點可以通過后文的方法進行剔除。
1.2合并微小圖元
通過采用較大步長的曲率閾值法對圖像進行處理后,剔除了大量直線上的偽角點。但是圓弧上存在很多偽角點,而且這些偽角點之間像素個數很少,部分呈直線分布,很容易誤判圓弧屬性,難以采用數值計算的方法直接剔除這類偽角點。
針對這個問題,先對輪廓上的微小圖元進行合并,剔除圓弧上的部分偽角點,使得圓弧上角點之間像素個數增加,突出圓弧屬性。合并方法如下:計算所有相鄰角點之間輪廓點的個數Ni,并設定閾值T1,文中T1取15,如果某個角點與前后相鄰的兩個角點之間輪廓點的個數滿足:
那么,把這個角點前后兩個圖元看做微小圖元,合并相鄰圖元,并剔除這個角點。這種方法能夠很好地剔除圖3中圓弧上大多數偽角點,但是同時也可能會剔除圖4中圓弧與直線連接處的真實角點。

圖6 角點分布圖

圖7 角點分布圖
1.3圖元分割與融合
合并微小圖元后,增強了角點之間的圖元屬性,但是也可能會因此丟失真實角點,而且全局自適應閾值的設定可能還會導致一些偽角點未能被剔除掉,采用圖元分割和融合的方法[9]可以很好地解決這個問題。
在進行微小圖元合并后,采用投影高度法[8]能夠更準確地判斷相鄰角點之間的圖元是圓弧還是直線。得到圖元屬性后,通過圖元分割與融合的方法[9]能夠剔除直線和圓弧上的偽角點,增添圖元之間的真實角點,并重新定位角點,檢測結果準確率高。如圖8所示,通過圖元分割和融合,可以剔除直線上的偽角點b、c、d、e和圓弧上的偽角點f、g、h,并增選直線與圓弧連接處的角點j、k。

(a)圖元分割與融合前

(b)圖元分割與融合后
為了驗證本文算法,繼續對1.1節中的四幅圖像進行處理,并與CCS算法處理的最終結果進行對比驗證。在對這四幅圖像進行處理時,本文算法所取參數不變,與1.1節中取值相同,CSS算法中步驟(3)所取參數值不變,步驟(4)中尺度σ取1。圖9是兩種方法對工件輪廓進行角點檢測的結果,表1為對應的數據統計表,本文方法只漏檢了1個角點,且沒有錯誤角點,而CSS檢測方法漏檢和誤檢了多個直線和圓弧連接處的角點,檢測效果明顯不如本文方法;圖10是兩種方法對飛機輪廓進行角點檢測的結果,表2為對應的數據統計表,本文方法沒有漏檢和誤檢真實角點,而CSS方法漏檢了4個角點,誤檢了1個角點;圖11是兩種方法對型材輪廓1進行角點檢測的結果,表3為對應的數據統計表,CSS檢測方法漏檢了直線與圓弧連接處的角點,比本文方法漏檢的角點多2個,錯誤角點也比本文方法多1個;圖12是兩種方法對型材輪廓2進行角點檢測的結果,表4為對應的數據統計表,本文方法沒有漏檢角點,CSS檢測方法漏檢了3個角點,且CSS檢測方法檢測的錯誤角點也比本文方法多1個。

(a)本文方法 (b)CSS檢測方法

(a)本文方法 (b)CSS檢測方法

(a)本文方法 (b)CSS檢測方法

(a)本文方法 (b)CSS檢測方法

檢測方法準確角點漏檢角點偽角點正確率/%錯誤率/%本文方法351097.20CSS檢測297574.414.7

表2 飛機輪廓角點檢測結果對比(標準角點36個)

表3 型材輪廓1角點檢測結果對比(標準角點15個)

表4 型材輪廓2角點檢測結果對比(標準角點36個)
由以上四組對比實驗的結果可以看出,本文方法比CSS檢測方法的準確性更高。CCS算法對直線與直線連接處角點的檢測效果較好,但是對于步驟(3)中產生的部分偽角點沒有做出很好地處理,當直線與圓弧連接處很平滑時,角點檢測的效果明顯不如本文算法。
針對CSS角點檢測算法的不足,在低尺度下采用較大步長的曲率閾值法剔除小曲率區域的偽角點,再合并微小圖元剔除圓弧上的偽角點,并結合投影高度法判斷圖元屬性,對圖元進行分割和融合,進而提高了檢測精度。通過實驗驗證了本文算法的有效性,并且角點檢測效果優于CSS算法,本文算法在處理由直線和圓弧構成的輪廓時,角點檢測的準確率高,錯誤率低,在工件截面幾何尺寸測量方面具有一定的應用價值。
[1] 盧瑜,郝興文,王永俊.Moravec和Harris角點檢測方法比較研究[J].計算機技術與發展,2011,21(6):95-97.
[2] Harris C,Stephens M.A combined corner and edge detect-or[C].In Alvey Vision Conference,Manchester,UK,1988:147-151.
[3] Smith S,Brady M.SUSAN-A new approach to low-level im-age processing[J].International Journal of Computer Vision,1997,23(1):45-48.
[4] 曾接賢,李煒燁.曲率尺度空間也鏈碼方向統計的角點檢測[J].中國圖象圖形學報,2014,19(2):234-242.
[5] Mokhtarion F,Suomela R J.Robust image corner detection t-hrough curvature scale space[J].IEEE.Transactions on Pattern Analysis and Machine Intelligence,1998,20(12):1376-1378.
[6] He X C,Yung N H C.Corner detector based on global an-d local curvature properties[J].Optical Engineering,2008,47(5):1-12.
[7] Zhang X H,Lei M,Yang D,et al.Multi-scale curvature scale space[J].Pattern Recognition Letters,2007,28(5):545-554.
[8] 伍濟鋼.薄片零件尺寸機器視覺檢測系統關鍵技術研究[D].武漢:華中科技大學,2008.
[9] Sheu H T,Hu W C.Multiprimitive segmentation of plan-ar curves-A two-level breakpoint classification and tuning a-pproach [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1999,21(8):791-797.
[10] 吳維勇,王英惠, 周晏.平面輪廓識別與分段技術的研究與快速實現[J].工程圖學學報,2003(4):14-19.
(編輯李秀敏)
An Improved Corner Detection Method for Contour Curve
CHEN Ji-hua,LI Xiang, LI Dong
(School of Physical Engineering,Zhengzhou University, Zhengzhou 450001,China)
Corner feature detection is very important in the research field of image processing,the traditional Curvature Scale-space(CSS)corner detection may cause leakage or even fake detection of corner when different scales are selected.In this paper an improved corner detection method of contour curve is proposed to improve the detection accuracy.Firstly the larger step curvature threshold method is applied to remove fake corners in small curvature region in low scale.Then fake corners are concentrated in the arc region with larger curvature,and minimal primitives are merged to remove fake corners on the arc.Lastly,the projection height method is applied in the judgment of the properties of the primitives and the separation and fusion of primitives.The results show that the improved detection algorithm can greatly improve the detection accuracy when dealing with the corner points of contour curve made up by lines and arcs.
corner detection;contour curve;curvature scale space;segmentation;adaptive threshold
1001-2265(2016)07-0114-04DOI:10.13462/j.cnki.mmtamt.2016.07.033
2015-09-01;
2015-10-08
陳繼華(1972 —),男,四川大竹人,鄭州大學副教授,博士,研究方向為大型工業產品尺寸檢測方法及相關計算理論、視覺測量技術,(E-mail)zzucsjl@163.com。
TH165;TG506
A