(燕山大學 信息科學與工程學院, 河北 秦皇島 066004)
摘要:針對傳統圖像邊緣檢測方法中出現毛邊、噪邊、邊緣定位不精確等缺點,提出一種神經網絡與模糊算法相結合的檢測方法。根據圖像特征,將圖像分為高頻和低頻部分分別處理,高頻部分適宜用雙層網絡結構,可以很好地減弱噪聲;對于圖像低頻部分,將模糊理論引入到邊緣檢測中,能夠檢測出弱邊。最后對檢測出的兩個圖像邊緣進行融合,實驗結果證明得出的檢測效果較好,比傳統邊緣檢測算子所獲結果有很大改善。
關鍵詞:邊緣檢測; 神經網絡; 模糊算法; 隸屬度函數
中圖分類號:TP391文獻標志碼:A
文章編號:1001-3695(2008)11-3507-02
Image edge detection based on neural network and fuzzy algorithm
JIA Chao, ZOU Qi, YAO Fang, WANG Bei-bei, AI Dong
(College of Information Science Engineering, Yanshan University, Qinhuangdao Hebei 066004, China)
Abstract:Considering the disadvantages in the traditional image edge detection methods, such as rough edge, noise edge and inaccurate edge location,this paper proposed a novel edge detection approach which was the combination of neural network with fuzzy algorithm to solve above problems. First, according to the character of image, the image was divided into high frequency and low frequency, and processed respectively. It applied the method of LVQ (learning vector quantization) double-layer neural network to the high frequency part of image. The noise could be suppressed effectively with this method. Then using the fuzzy algorithm for the low frequency part of image, thus weak edges could be detected with high quality, and the target could be separated from the background clearly. Finally, combined the two images from former methods. The experimental result demonstrates that the effect of the edge detection is greatly improved comparing with the traditional edge detection methods.
Key words:edge detection; neural network; fuzzy algorithm; membership function
邊緣檢測[1,2]是圖像處理和計算機視覺等領域最基本的技術,廣泛用于輪廓抽取、特征檢測和紋理分析。人們在這方面已作了不少研究,且提出一些算法,經典的邊緣檢測算子有Sobel算子、Prewitt算子、Kirsch算子、Roberts算子等[3],這些算法雖然計算簡單,但對噪聲較敏感。本文首先用小波變換對圖像分頻,然后用神經網絡和模糊算法對圖像的不同頻段分別處理。圖像的高頻部分用神經網絡方法檢測,忽略低頻分量包含的部分邊緣信息;而圖像的低頻分量邊緣比較模糊,將模糊集理論引入到圖像邊緣檢測方法中,能夠有效地將目標從背景中分離出來,達到較好效果;然后對分離出的邊緣圖像運用差影法進行融合。兩種方法檢測出的圖像邊緣具有良好的互補性,圖像去噪效果明顯,檢測出的邊緣精確度較高。
1小波變換對圖像分頻
小波變換[4]具有將圖像分成不同頻帶的特性,首先對圖像進行多次變換,每經過一次變換,圖像被分解為四個四分之一的子頻帶區域:LL頻帶,保持了原圖像的內容信息;HL頻帶含有水平方向的高頻邊緣信息;LH頻帶含有豎直方向的高頻邊緣信息;HH頻帶含有對角線方向的高頻邊緣信息。接下來通過高通濾波器將LL頻帶數據全部清零,而HL、LH、HH三個子頻帶的數據保持不變,再經過逆變換即可得到高頻分量圖像。同理,通過低通濾波器保留低頻帶信息,去除圖像中大量邊緣信息,將HL、LH、HH三個子頻帶的數據全部清零,僅保留LL頻帶的內容,再經過反變換即可得到低頻分量圖像。
2高頻分量圖像特征的提取
經過小波變換得到的高頻分量圖像,在頻域內,圖像的邊緣信息和噪聲信息由高頻部分組成,但邊緣含有一些噪聲所沒有的特征,如方向屬性、結構屬性等,這些屬性組成特征向量;然后用神經網絡方法檢測邊緣。
21中值特征向量
設Gi, j為像素點(i, j)的灰度值,C為(i, j)的鄰域,定義點(i, j)的中值特征量為Mi, j=Med{G(i+r),(j+s)(r,s)∈C}。其中Med為取中值運算。其方法為:設有一組數x1,x2,…,xn,將n個數按值的大小順序排列為xi1≤xi2≤…≤xin則有
Med{x1,x2,…,xn}=xi((n+1)/2)n為奇數
(1/2)xi(n/2)+xi((n/2)+1)n為偶數
22方向特征向量
設(i, j)是C域的中心,Lθ是過點(i, j),角度為θ的直線,該線將R域分成Sθ1和Sθ2兩部分。且
fθ1 =(m,n)∈Sθ1X(m,n), fθ2 =(m,n)∈Sθ2X(m,n),dθ=|fθ1-fθ2|
其中:X(m,n)是像素點(m,n)處的灰度值;θ分別取值為0、π/4、π/2、3π/4。設dθmax=max{dθ},dθmin=min{dθ}定義方向特征為Oi, j=dθmax-dθmin。
23Kirsch 算子特征向量
將Kirsch 算子的八個模板(圖1) M0~M7分別與圖像中的一個3×3區域相乘,將最大輸出絕對值與最小輸出絕對值之差記為中心點像素(i, j)的Kirsch算子特征量,記為Ki, j=max{|qk|}-min{|qk|}。其中qk為圖像的3×3區域經過Kirsch算子第k(k=0,1,…,7)個模板處理后得到的值。
3LVQ1神經網絡對圖像的高頻部分邊緣檢測
學習向量量化[5]LVQ1網絡是雙層網絡結構,第一層是無監督的競爭學習層;第二層是有監督學習的直線層。通常第二層神經元比第一層少,通過減少輸入層神經元數,消除冗余信息,進行信息壓縮。上節定義的像素點的特征向量作為輸入向量Pi, j=[Mi, j,Qi, j,Ki, j]T,邊緣點的輸出向量為[1,0]T, 非邊緣點的輸出向量為[0,1]T。神經網絡的學習包括以下幾步:
a)首先指定第一層的每一個神經元為輸出神經元,得到第二層的矩陣W 2為
W 2=1100110010
0011001101
第一層矩陣W 1是一隨機矩陣。
b)每次迭代將Pi, j輸入到網絡,第二層的輸出指出了Pi, j的像素級。
c)如果Pi, j的像素級是正確的,則第一層的i*為勝出神經元,則有
i*W 1(q)=i*W 1(q-1)+α(Pi, j(q)-i*W 1(q-1))
其中:q表示迭代的次數;α為學習率。
d)如果Pi, j的像素級是錯誤的,則有
i*W 1(q)=i*W 1(q-1)-α(Pi, j(q)-i*W 1(q-1))
e)返回到c),驗證每一個Pi, j直到獲得想要的W 1。
4模糊算法對圖像低頻部分邊緣檢測
一般的數字圖像模糊邊緣檢測[6]大多要先進行去噪處理,即濾除高頻噪聲,但已得到圖像的低頻分量,因此可省去去噪部分。在進行模糊邊緣檢測時,首先將待處理的圖像映射為一個模糊矩陣[7],因為從模糊集的概念來看,一幅具有L個灰度級的M×N圖像可看做一個模糊集,集內的每一個元素均具有相對于某個特定灰度級的隸屬度函數[8];因此該模糊集稱為圖像等效模糊集,即圖像的模糊特征平面,對應的模糊矩陣記為I,有I=∪Mm=1∪Nn=1Umn/Xmn。其中:Umn/Xmn表示圖像像素(m,n)的灰度級;Xmn相對于某個特定灰度級Xk的隸屬度,通常Xk為最大灰度級Xmax。
a)為了減少計算量,定義一種簡單而有效的隸屬度函數,定義非線性隸屬度函數為
Uij=G(Xij)=sin πXij/2(L-1)(1)
線性隸屬度函數為
Uij=G(Xij)=Xij/(L-1)(2)
其中:Xi, j是像素點(i, j)的灰度值。這兩種隸屬度函數值分布于[0,1]上,處理后不會造成在原圖中相當多的低灰度值被切削為0,即保存了低灰度值邊緣信息。
b)采用如下形式的模糊增強算子對圖像進行增強處理:
U′ij=T1(Uij)=T1(Tr-1(Uij));r=1,2,3,…
其中:T1(Uij)=U2ij/t;0≤Uij≤t
1-(1-Uij)2/(1-t);t<Uij≤1(3)
式中的r為迭代次數。r取很小的值(如r=1),圖像得不到充分增強,無法突出邊緣信息;r取較大的值(如r≥4),圖像中的某些邊緣可能因過度增強而出現損失。為獲得良好的圖像增強效果,通常將r取為2或3。式(3)中的t為模糊特征閾值,通過對不同圖像進行實驗發現,t取值在0.2~0.5和0.5~08,圖像增強效果較好。
c)對U′ij進行逆變換,得到模糊增強后的圖像x′;x′中的像素(i, j)的灰度值為x′ij。當步驟a)建立的隸屬函數為式(1)時,有公式為
x′ij=G-1(U′ij)=2(L-1)/π arcsin(U′ij)
(4)
當a)建立的隸屬函數為式(2)時,有公式為
x′ij=(L-1)U′ij(5)
在式(4)中,G-1(·)為G(·)的逆運算,L為圖像的最大灰度值。
d)對增強后的空域圖像進行平滑運算,濾除一定的噪聲,以減少噪聲對下一步提取邊緣的影響。
e)提取增強圖像的邊緣,采用Nakagowa和Rosenfeld提出的max或min算子,定義圖像的邊緣矩陣x″ij」M×N為Edges=x″ij」M×N,且
x″ij=|x″ij-minQ(x″ij)|,Q取3×3的窗口。
5差影法對兩幅檢測的圖像融合
差影法實際上是對圖像進行代數運算的一種不同叫法,代數運算是指對兩幅輸入圖像進行點對點的加、減、乘、除計算而得到輸出圖像的運算。使用差影法對兩幅邊緣圖像進行合成[9],采用步驟如下:a)獲取第一幅圖像的首地址以及圖像的高和寬。b)開辟一塊內存緩沖區,并初始化為255。c)選取進行加運算的第二幅圖像的首地址以及圖像的高和寬。d)將兩幅圖像的對應像素點進行加運算,結果大于255,則置255;不大于,則將結果保存下來。e)將內存中的結果復制回第一幅圖像的數據區。
6結束語
本文使用一幅圖像進行計算機模擬,分別用神經網絡和模糊算法對高頻邊緣和低頻邊緣進行檢測,得到的效果圖如圖2所示。
從圖2實驗結果看,神經網絡與模糊算法相結合的檢測方法檢測出的圖像邊緣具有很好的互補性,融合后提取的圖像邊緣信息較細膩,毛邊、噪邊少。與圖3中的Kirsch算子、Prewitt算子、Sobel算子、Roberts算子相比,本文方法得到的邊緣更清晰、完整,效果明顯好于其他算子的檢測結果。
參考文獻:
[1]CANNY J.A computation approach to edge detection[J].IEEE Trans on PAMI,1986,8(6):679-698.
[2]MARR D,HILDRETH E.Theory of edge detection[J].Proc of Roy Soc,1980,207(1167):187-217.
[3]張小琳.圖像邊緣檢測技術綜述[J].高能量密度物理,2007(1):37-40.
[4]趙登峰,許純新.小波分析及其在數字圖像處理中的應用[J].同濟大學學報,2001,29(9):1054-1057.
[5]KOHONEN T.Learning vector quantization[J].Neural Networks,1988,1(1):303-304.
[6]MOLINA J M,MARTIN J M,ISASI M J,et al.A fuzzy reasoning system for boundary detection in radiologicalimages[C]//Proc of IEEE International Conference on Fuzzy Systems.1998:1524-1529.
[7]周德龍,潘泉,張洪才.圖像模糊邊緣檢測的改進算法[J].中國圖象圖形學報,2001,6(4): 353-358.
[8]ZHENG Chun-hong,JIAO Li-cheng,CHEN Xi-ping,et al.A new fast fuzzy processing method for B-scan image[C]// Proc of the 4th World Congress on Intelligent Control and Automation.2002:6-9.
[9]章毓晉.圖像處理和分析基礎[M].北京:高等教育出版社,2002.