肖瑞瑩,楊 帆,董正宏
(1.裝備學院 研究生管理大隊,北京 101416;2.裝備學院 信息裝備系,北京 101416)
圖像的邊緣檢測通過在噪聲背景中識別目標物體邊界點與邊界線段,提取出圖像的邊緣輪廓。圖像邊緣廣泛存在于目標物體基本單元之間以及目標物體與圖像背景之間,圖像邊緣的檢測是圖像視覺領域從底層向頂層推理的重要基礎,包含著圖像重要信息與圖像特征。邊緣檢測算法作為圖像視覺領域的研究基礎,在軍事、醫(yī)學、環(huán)境學等領域發(fā)揮著重要作用。
高效的邊緣檢測算法可以提高后續(xù)圖像處理的正確率,基于此許多針對邊緣檢測的算法研究相繼展開[1-4]。實際檢測算法中常用到一階與二階導數算法。Canny算子[5]通過一階梯度算法計算得到梯度變化極大值點,具有高信噪比的檢測特點,但是檢測結果具有較多斷裂的線段,圖像的邊緣不能構成較為完整的輪廓。二階梯度算法如Log算子[6]利用二階導數過零點,進一步檢測出圖像邊緣點。二階算法可以檢測出突變像素點作為邊緣點,便于進行后續(xù)圖像處理,但二階導數算法易受噪聲影響,在檢測中容易損失部分圖像信息[7]。
針對一階導數Canny算子存在較多斷裂點、圖像邊緣不完整的缺點,可以在提取圖像邊緣之后應用邊緣連接方法將不完整的邊緣進行處理,優(yōu)化圖像邊緣,提高邊緣檢測正確率。目前對于已經提取得到的圖像邊緣進行邊緣連接提出的優(yōu)化算法不斷涌現。如基于人類感知的邊緣連接法[8],將人工設定閾值改進為自適應求閾值,通過求得的自適應高低兩個閾值分別得到兩幅閾值圖像,對高閾值圖像的邊緣點進行鄰域搜索,尋找低閾值圖像中是否存在與其相連的像素點,符合判別條件的點都存入最終將輸出的圖像數組中。另外,基于穩(wěn)健擬合的直線邊緣連接法[9],使用卡爾曼濾波器對圖像檢測得到的邊緣點進行搜索,找到部分遺漏的微小信息,再利用穩(wěn)健法代替?zhèn)鹘y(tǒng)的最小二乘法,對圖像邊緣點進行擬合主要針對直線的邊緣線段有著較好的連接效果。然而在實際應用中需要一種具有一般適用性的邊緣連接算法,以提高圖像連通性。
文中設計并實現了一個二維圖像的邊緣檢測系統(tǒng),在Canny算子的基礎上實現了邊緣的優(yōu)化。采用基于廣度優(yōu)先算法[10]的邊緣連接算法減少斷裂點,從而提高邊緣的連續(xù)性和圖像的連通性,并定量分析圖像邊緣查全率和連通分量。
利用Canny算子檢測圖像[11]時,需要首先對圖像進行灰度化處理。對初始彩色圖像進行灰度化處理的方法是將每個像素點的RGB格式像素通過公式轉化為灰度像素:
Gray=0.299R+0.587G+0.114B
(1)
式1考慮到人眼識別圖像的特點,對RGB像素進行了加權平均。
其次對灰度圖像進行高斯平滑濾波,即使用高斯濾波器對初始圖像進行平滑濾波去噪。這里H(χ,y)為高斯平滑函數。
(2)
與待檢測圖像f(χ,y)做卷積可得到平滑圖像G(χ,y)。
G(χ,y)=f(χ,y)*H(χ,y)
(3)
使用一階偏導數計算梯度幅值和方向,得到x和y兩個方向的偏導數矩陣:
(4)
梯度幅值和方向為:
ψ1(m,n)=f(m,n)*H1(m,n)
(5)
ψ2(m,n)=f(m,n)*H2(m,n)
(6)
(7)
(8)
最后對梯度幅值進行極大值抑制,排除非邊緣點像素點。
經過上述處理,篩選所得像素點還需通過非極大值抑制排除非邊緣的像素點。對當前像素點集合進行附近八鄰域像素點比較,如果該點不是九個像素點中梯度幅值最大的點,則從邊緣點集合中剔除。使用該方法遍歷集合中所有點,即可實現非極大值點抑制。
八鄰域點位置如圖1所示。
32140567
圖1 八鄰域點示意圖
為減少檢測圖像的斷裂點,Canny算子本身采用了手動設定的雙閾值檢測與邊緣連接。選取使用高低兩個閾值,并利用兩個閾值對圖像進行閾值分割,可以得到兩幅閾值分割圖。以高閾值分割的圖像噪音少,但邊緣斷點相對多,而以低閾值分割的圖像包括了較多的邊緣信息。由此可利用低閾值分割圖像對高閾值分割圖像進行補充,在高閾值分割圖像的端點處通過八鄰域搜索算法搜索周圍是否存在高于低閾值的點,如果存在,則將兩點相連,并對下一個點繼續(xù)進行搜索,直到搜索結束,再對另一個高閾值圖像中的端點進行新一輪的搜索,最終使得圖像邊緣連接成一個完整的輪廓。
使用Canny算子邊緣檢測算法,檢測結果的圖像對較弱邊緣也可做出較好的響應,但檢測圖片中圖像邊緣仍存在較多斷裂處。Canny算子對邊緣進行連接的效果不理想,圖像邊緣不能構成較為完整的輪廓。
文中采用基于廣度優(yōu)先的邊緣連接算法進行優(yōu)化圖像連通性的設計與實現。該算法首先使用基于人類感知連接法中相同原理判斷像素點是否為端點,之后采取廣度優(yōu)先的搜索算法將圖像端點相連。對檢測圖像中的端點進行連接前,首先應判斷哪些點是端點,這里采取的辦法仍是對邊緣點八鄰域進行搜索,如果鄰域中有一個點與之相連則該點是端點,否則其他情況均不是端點。
一個像素點的八鄰域指圖1所示的0至7八個點。要建立3×3的鄰域拓撲圖。
判斷一個像素點的八鄰域點,相連情況一共有四種:沒有點與其相連則該像素點為孤立點,有一個點相連為端點,有兩個點相連為邊緣線中的一點,有四個點相連為兩條邊緣線交叉點。
在對每一個像素點進行判斷后,將屬于端點的像素點存入端點數組中。然后對端點數組中的像素點進行搜索,搜到同為端點的像素點時將兩者相連完成閉合即可。當滿足停止條件,即搜索長度大于最大閾值或搜索到另一個端點時,標記搜索路徑完成閉合,隨后再從中斷處重新開始掃描。
該算法具體步驟如下:
(1)將每個輪廓像素的鄰域Xi添加一個從0至7的整數標號,如圖1所示。
每個輪廓像素通過編碼方式V分配鄰域配置:
(9)
(2)建立一張查閱表T,查閱表中的每一個元素由V定址。當編碼的配置是一個端點時,將T[V]設置為1。首先確認它的編碼配置V0,然后判斷T[V0]的值是否為1,滿足T[V0]=1的點就可以判定為端點。圖2給出了一幅V=4的典型配置極點示意圖,該標記方塊表明了一個邊界像素,且標號為5、6、7的方塊表明該像素將包括在搜索過程中。
圖2 V=4搜索示意圖
為了建立閉合路徑,需要檢查圖2中選中像素點的3個拓撲鄰域。相對靠近中央區(qū)域的點的鄰域坐標與T[V]連接,一個端點則是樹的一個根節(jié)點,樹的分支代表了所有可能的閉合路徑。每個節(jié)點代表一個像素且被梯度值標號。一條路徑的代價為該路徑所有節(jié)點標號值之和。
使用廣度優(yōu)先算法挑出端點中最佳后繼[12],這里對廣度優(yōu)先算法進行優(yōu)化,最佳后繼點不可同屬于同一連通分量[13],即將搜索到非同一連通分量的端點相連,減少錯邊。將選中點標記為一個輪廓點,則上文所述的過程開始后,就開始建立閉合路徑,直到滿足停止搜索的條件。停止搜索條件為:路徑的長度比給定的最大閾值要大,路徑搜索中得到了可連接的一個端點。
其中,廣度優(yōu)先搜索算法的步驟如下[14]:
(1)把被搜索的像素點作為起點,對起點進行第一層搜索,如搜索到端點則結束,對下一個像素點重復進行搜索;否則進行步驟2。
(2)若步驟1中未搜索到目標點,則進行第二層搜索,第二層為第一層搜索逐個擴展得到的點,重復對每個點進行搜索,如搜索到端點則結束,對下一個像素點進行相同搜索步驟;否則判斷搜索層數是否超過預設的最高搜索閾值,如果超過則本次搜索結束,對下一個像素進行廣度優(yōu)先搜索,如果未超則對第二層像素點繼續(xù)擴展并重復步驟1。
采取基于廣度優(yōu)先的邊緣連接算法對Canny邊緣檢測結果進行邊緣連接,通過對比原圖與連接后的圖像,對基于廣度優(yōu)先的邊緣連接算法的實驗結果進行分析。
2.2.1 邊緣連接圖像展示
如圖3所示,實驗對邊緣連接前后圖像進行上色,連接起來的邊緣點用相同顏色進行標記,相同顏色線條表明其為完整無斷裂的線條。顏色數量越少,圖像斷裂處越少。對比圖像實現邊緣連接前后的邊緣線顏色,可以看到經過廣度優(yōu)先算法優(yōu)化后的邊緣連接圖像取得了較為理想的結果。
圖3 圖像對比
從圖3明顯看出邊緣圖像中顏色顯著減少,即連通在一起的線段大幅增加,觀察到圖像中長頸鹿圖形已經連接成為一個整體。由于廣度優(yōu)先的邊緣連接算法事先定義了一個最大閾值,當對于一個端點的鄰域搜索大于定義閾值時將不再進行搜索,也即該點不再與其他端點相連。因此可以看到圖中距離較遠的線條未被連接,從而保持了邊緣圖像的正確性。最大閾值的設置可嘗試由大至小,低閾值連接范圍小,連接的端點數會少于高閾值結果,但相應地,高閾值連接圖中出現的假邊緣錯邊緣概率也有可能增大。
該算法需要選擇設置較優(yōu)化的閾值,才使得圖像端點既能得以較好連接,同時不會大幅增加假邊錯邊的數量,此外搜索長度超出最大閾值時算法將放棄對該點的邊緣連接,可能使得圖像仍存在小部分斷裂點。在實驗結果中,最大閾值設為5,可以看到這種設定對于文中用到的圖像有較好的效果。
2.2.2 邊緣連接算法評估
為了對邊緣連接算法進行定量的性能分析,需要將邊緣連接前后的邊緣點查全率R(也稱召回率,Recall)[15]與連通分量進行計算與比較。查全率反映了檢測結果的正確率,查全率越高,說明檢測結果正確率越高,連通分量的數值反映了圖像的連通性,連通分量越小,說明圖像的連通性越好。
查全率R定義如下:
(10)
其中,Correctmun為通過Canny算子檢測得到的邊緣點正確個數之和,也即Canny檢測結果中也屬于標準邊緣的像素點個數之和;Edgemun為標準正確邊緣圖像中邊緣點的個數總和。
文中實現查全率檢測的算法步驟如下:
(1)將待評估圖像與正確邊緣圖像分別灰度化,易知不是白色像素點,即灰度值不為255的像素點即為兩圖邊緣點。遍歷每一個像素點,統(tǒng)計得到標準正確邊緣圖像中邊緣點的個數總和Edgemun,同時初始化Correctmun值為0。
(2)對兩圖相同像素位置點進行判斷,若待評估圖像中為邊緣點的像素點同時也為正確圖像中的邊緣點,則Correctmun加1。
(3)遍歷每一個像素點,輸出最終Correctmun值。
(4)使用式10計算出R值。
對連通分量的定義如下:無向圖V中,若兩個頂點相連,則稱兩頂點是連通的,整幅圖像每個點之間都是兩兩相連的則稱其為連通圖,否則稱為非連通圖。一個非連通圖的極大連通子圖就是該圖的一個連通分量。將每一個極大連通子圖分別用不同色彩標記,可直觀判斷出實現邊緣連接算法之后的圖像連通分量的數量是否減少。
文中采用了ETHZ Shape Classes-V1.2數據庫中的圖像及其人工標記出的相應圖像的邊緣作為判別標準。對經過邊緣連接的Canny算法和本節(jié)邊緣連接算法優(yōu)化后的10幅圖像分別計算查全率與聯(lián)通分量,并對結果求平均值,結果如表1所示。
由表1可知,在使用邊緣連接算法后圖像查全率均有所提高,而優(yōu)化后邊緣圖像連通分量均大幅降低。由此可以得出,基于廣度優(yōu)先的邊緣連接算法能夠對Canny算子進行優(yōu)化改進,對提高圖像連通性起到了較為理想的效果。
文中采用基于廣度優(yōu)先的邊緣檢測算法,在Canny算子的基礎上實現了邊緣優(yōu)化,采用基于廣度優(yōu)先的邊緣連接算法,減少斷裂點,從而提高邊緣連續(xù)性和圖像連通性?;趶V度優(yōu)先的邊緣連接算法在優(yōu)化閾值選取時可以針對邊緣圖像斷裂處主動進行邊緣預測,不依賴于圖像梯度和圖像自身,從而成功連接大部分細小的斷裂邊緣。研究結果證明了該算法的有效性。
參考文獻:
[1] ARAGHI L F,ARVAN M R.An implementation image edge and feature detection using neural network[C]//Proceedings of the international multi conference of engineers and computer scientists.[s.l.]:[s.n.],2009:18-20.
[2] 廖劍利.基于小波變換的圖像邊緣檢測方法研究[D].長沙:湖南大學,2005.
[3] KONISHI S,YUILLE A,COUGHLAN J.A statistical approach to multi-scale edge detection[J].Image and Vision Computing,2003,21(1):37-48.
[4] 蔣 偉,陳 輝.基于分數階微分和Sobel算子的邊緣檢測新模型[J].計算機工程與應用,2012,48(4):182-185.
[5] 薛麗霞,李 濤,王佐成.一種自適應的Canny邊緣檢測算法[J].計算機應用研究,2010,27(9):3588-3590.
[6] 賀 強,晏 立.基于LOG和Canny算子的邊緣檢測算法[J].計算機工程,2011,37(3): 210-212.
[7] 譚 艷,王宇俊,李飛龍,等.幾種典型的圖像邊緣檢測算法的分析比較[J].電腦知識與技術,2012,8(3):1604-1608.
[8] 賀賽先,唐 艷.一種基于人類感知的邊緣連接方法[J].紅外技術,2005,27(4):338-342.
[9] 文貢堅,王潤生.一種穩(wěn)健的直線提取算法[J].軟件學報,2001,12(11):1660-1666.
[10] 楊智明.圖的廣度優(yōu)先搜索遍歷算法的分析與實現[J].農業(yè)網絡信息,2009(12):136-137.
[11] 曾 俊.圖像邊緣檢測技術及其應用研究[D].武漢:華中科技大學,2012.
[12] GLIANNAROU S,TANIA S.A novel framework for object recognition under severe occlusion[J].Computational Intelligence,2013,410:235-258.
[13] GEORGIEVA P,MIHAYLOVA L,JAIN L C.Advances in intelligent signal processing and data mining:theory and applications[M].Berlin:Springer,2013.
[14] 張 研,韓 露.用廣度優(yōu)先搜索算法實現路徑搜索[J].電腦編程技巧與維護,2012(19):78-81.
[15] SMEULDERS A W M,SANTINI S,WORRING M,et al.Content based image retrieval at the end of the early years[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(12):1349-1380.