楊景兵,丁 輝,張樹東
(首都師范大學 信息工程學院,北京 100048)
圖像能夠給人們提供大量的視覺信息,而這些信息的劃分恰恰是基于圖像邊緣的。所謂邊緣是指圖像周圍像素灰度有階躍變化或屋頂狀變化的像素的集合,它存在于目標與背景、目標與目標、區域與區域,基元與基元之間[1]。成功提取的邊緣信息可用于進行圖像分析(例如圖像分割)、圖像濾波以及目標識別(例如人臉識別)等。如何提高圖像邊緣檢測的邊緣提取速度和準確度一直是國內外研究的熱點。早期經典算法主要有傳統邊緣算子法[2-3]、模板匹配法、曲面擬合法、門限化法等。隨著圖像處理技術的不斷發展,以及與人工智能理論學科的不斷結合,基于神經網絡的邊緣檢測法[4-5]出現并走進了研究與應用之中。
神經網絡[6]技術是近年來興起的人工智能技術,它通過模擬人的大腦的工作模式和結構機制來實現機器智能化。它是一個由大量基本單元相互連接而成的非線性系統,具有自組織、自學習和自適應的特點,可以應用在多個領域[7-9],常用于處理非線性問題。鑒于以上特點,可以用它來進行圖像的邊緣檢測。在文獻[10]中,甘玲等利用CP神經網絡提取二值圖像和灰度圖像的邊緣。本文主要是利用了圖像邊緣的基本特點,相鄰點像素的差異性,來構造訓練樣本,并訓練BP神經網絡,再使用1×3的窗口遍歷整個圖像,完成對二值圖像的邊緣檢測;對于灰度圖像,先將其二值化,得到二值圖像,然后再進行邊緣檢測。傳統的緣檢測方法在處理含有弱邊緣的圖像時,因為閾值的設置問題經常出現遺漏弱邊緣或出現偽邊緣現象。實驗結果證明,本文提出的方法實現簡單,檢測速度快,檢測出的邊緣為單像素點邊緣,檢測細致,準確度較,是一種很有效的圖像邊緣檢測方法。
BP神經網絡[11-12]是一種多層前饋型神經網絡,具有廣泛的應用。它一般包括輸入層、隱含層和輸出層。其特點是信號正向前向傳播,誤差反向傳播,不斷地進行網絡各層權值與閾值的調整,從而使網絡的實際輸出不斷地逼近期望輸出。
如圖1所示的是一個典型的3層BP神經網絡結構,中間只有一個隱含層(又叫中間層)。圖中,輸入層、隱含層和輸出層分別有i,j,k個神經元節點,此處輸入層的節點不對信息進行處理,而直接將輸入向量P=(p1,p2,…,pi)T傳送給隱含層,w為相鄰兩個神經元節點之間的權值,b表示神經元的閾值,F表示傳遞函數(又叫激活函數),IO=(io1,io2,…,ioj)T為經隱含層處理的輸出向量,T=(t1,t2,…,tk)T為經輸出層處理的輸出向量。

隱含層各節點的輸入可表示為

隱含層各節點的輸出可表示為

輸出層各節點的信息輸入輸出類似隱含層,也可用式(1)和式(2)來計算。
大家都知道,評價一個訓練好的BP神經網絡性能的好壞,很大程度上取決于訓練所用的樣本集,樣本集直接影響到網絡學習訓練的時間與效果。
對于一幅二值數字圖像,0表示黑,1表示白,那么圖像中的邊緣產生于10或01交界處,根據這種特點,可以構造一個1×3的矩陣窗口A=[p1p2p3],根據圖像中對應于p1,p2,p3的像素值來判斷p2所對應的當前像素點是否為邊界點,例如,輸入的110,則期望輸出的p2的對應像素值應為1。按照這種思想,可以構造8組三維的列向量(00 0)T,(00 1)T,(01 0)T,(01 1)T,(10 0)T,(10 1)T,(11 0)T,(11 1)T作為神經網絡的輸入訓練樣本,樣本矩陣P如式(3)所示,對應每組的期望輸出值組成的輸出矩陣T如式(4)所示

訓練樣本選定后,接著要確定BP神經網絡的結構。結合實際需要,在此筆者采用三層的BP神經網絡,此處的關鍵問題是如何設置合理的隱含層節點數。如果隱含層的節點數過多,容易造成訓練學習時間過長,檢測效果不佳;如果隱含層的節點數過少,網絡輸入輸出的映射關系過于簡單,無法達到訓練要求,致使訓練誤差較大。常見的方法有以下3種[10]:
1)線性關系

式中,j為隱含層神經元的個數,i為輸入層神經元個數。
2)指數關系

式中,i為輸入層神經元個數,k為輸出層神經元個數,a為0到10之間的常數。
3)對數關系

式中,i為輸出層神經元個數。
結合前面所講,已經得知輸入層節點數為3,輸出層節點數為1,根據式(6)可設置隱含層的節點數為3。最后得到BP神經網絡的結構如圖2所示。

首先,應用newff()函數創建一個BP神經網絡,設隱含層和輸出層的傳遞函數均采用logsig。網絡訓練函數的選擇也是個關鍵的問題,它決定了訓練學習的時間和效果。常見的改進的BP神經網絡的訓練算法[11],主要有兩類:一種是啟發式學習算法,主要有附加動量梯度下降法,自適應學習速率的梯度下降法以及動量及自適應學習速率梯度下降法等;另一種是基于數值最優化理論的訓練算法,主要有共軛梯度法,高斯-牛頓法和Leven?berg-Marquardt方法(trainlm)等。
現設置網絡權值與閾值的初始值都為0,訓練要求精度設為0.0001,最大迭代訓練次數設為200。經多次實驗,學習函數選擇基于梯度下降及動量的方法learng?dm,訓練函數選擇trainlm時,它的訓練速度最快,用時不到1 s,性能最好。樣本訓練誤差分析見表1,可見此時的訓練誤差已經非常小了。

表1 訓練誤差分析
經過上面的操作,經訓練好了特定的BP神經網絡,可以用它來完成圖像的邊緣檢測,來觀察網絡性能和檢測的效果。檢測流程如圖3所示。

假設,用函數F(x,y)表示一幅待檢測的數字圖像,圖4展示了圖像中與當前像素點F(x,y)相鄰的8鄰域像素集合模板。可以構造一個1×3的窗口矩陣

作為已訓練好的BP神經網絡的輸入信息,利用P1T完成待檢測的二值圖像水平和垂直方向邊緣的檢測,最后將兩個方向的邊緣檢測結果合并成整幅圖像的邊緣。
設F表示原始圖像,FH表示檢測出的水平邊緣圖像,FV表示檢測出的垂直邊緣圖像,FD表示由FH和FV合成的全邊緣圖像。部分核心代碼如下:

圖4 像素模板
%獲得原始圖像F的大小%
[x,y]=size(F);
%檢測水平方向的邊緣%
for m=2∶1∶x-1
for n=1∶1∶y
P1=[F(m-1,n)F(m,n)F(m+1,n)];
FH(m,n)=round(sim(net,P1));
end
end
%檢測垂直方向的邊緣%
for m=1∶1∶x
for n=2∶1∶y-1
P1=[F(m,n-1)F(m,n)F(m,n+1)];
FV(m,n)=round(sim(net,P1));
end
end
%合成全邊緣%
FD=FH+FV;
對于簡單的彩色圖像的邊緣檢測,可以先將其轉換為灰度圖像,對于灰度圖像的邊緣檢測,可以利用函數im2bw()先將待檢測的灰度圖像二值化(注意閾值的選擇較重要),然后,按照處理二值圖像的邊緣檢測方法對其進行處理。
本論文的實驗實現部分基于MATLAB開發平臺,通過實驗我們得到檢測效果如圖5所示。圖5a是原始圖像,圖5b是通過方法檢測出的垂直邊緣,圖5c是通過該方法檢測出的水平邊緣,圖5d是最終的全邊緣效果圖,圖5e~5i是利用傳統邊緣檢測[13]方法(Sobel算子,Roberts算子,Prewitt算子,Log算子以及Canny算子)檢測出來的效果圖。可以看出,同其他傳統的邊緣檢測算子檢測出的邊緣相比,本論文所設計的檢測方法能夠很好地檢測出圖像的邊緣,尤其是對弱邊緣以及角點出邊緣檢測效果較好,檢測精度較高,且邊緣的連接性較好。正因邊緣檢測的細致,致使是對噪聲較敏感,通過濾波方法,去澡后再進行邊緣檢測處理,效果很好,如圖5j和圖5k所示。

在現代的圖像理論研究中,邊緣檢測的重要性越來越明顯,能夠找到一種更好的檢測方法是許多研究者所期待的。神經網絡自身具有自組織、自學習和自適應的特點,常用于處理復雜的非線性問題。本論文主要提出了一種基于圖像邊緣的特征和BP神經網絡相結合的思想,針對二值圖像提取了圖像邊緣的特征向量,作為訓練樣本,同時采用了基于梯度下降動量的學習函數和Leven?berg-Marquardt訓練函數對構造的BP神經網絡進行訓練,訓練好的網絡能夠很好地完成圖像的邊緣檢測。最后,通過和傳統檢測算子做比較,得出該方法檢測速度快,對弱邊緣和角點有很好的檢測效果。另外,該網絡的不足之處是對噪聲點較敏感,可以先對原始圖像進行除噪,然后再利用該網絡進行邊緣檢測。圖像邊緣檢測往往要幾種方法相結合才能得出最佳效果,沒有一種方法是萬能的。希望本文的檢測方法能夠給研究者們提供一定的幫助。
[1]張小琳.圖像邊緣檢測技術綜述[J].高能量密度物理,2007,3(1):37-40.
[2]TORRE V,POGGIO T.On edge detection[J].IEEE.Transactions Pattern Analysis and Machine Intelligence,1986,8(2):147-163.
[3]VINCENT O R,FOLORUNSO O.A descriptive algorithm for sobel image edge detection[C]//Proceedings of Informing Science&IT Education Conference(InSITE).Georgia:[s.n.],2009(6):97-107.
[4]肖鋒.基于BP神經網絡的數字圖像邊緣檢測算法的研究[J].西安科技大學學報,2005,25(3):372-375.
[5]彭明星.基于遺傳神經網絡的圖像邊緣檢測[D].武漢:武漢理工大學,2009.
[6]史忠植.神經網絡[M].北京:高等教育出版社,2009.
[7]MOGHADAS R K,GHOLIZADEH S.A new wavelet back propagation neural networks for structural dynamic analysis[J].Engineering Letters,2008,16(1):12-17.
[8]錢博,金林.基于神經網絡集成的SAR圖像目標識別[J].現代雷達,2010,32(4):31-34.
[9]張玲,張鳴明,何偉.基于BP神經網絡算法的車牌字符識別系統設計[J].電視技術,2008,32(S1):140-142.
[10]甘玲,李濤,趙輝,等.CP神經網絡在圖像邊緣檢測中的應用[J].四川大學學報:工程科學版,2003,35(3):93-96.
[11]董長虹.Matlab神經網絡與應用[M].2版.北京:國防工業出版社,2007.
[12]張德豐.MATLAB神經網絡應用設計[M].北京:機械工業出版社,2009.
[13]鄭靜,梁少華,王騰.基于MATLAB仿真的邊緣檢測算子研究[J].電腦知識與技術,2010,6(5):1189-1190.