柳 赟,鄭蕊蕊,吳艷軍,徐寶翠,吳寶春
(大連民族學院信息與通信工程學院,116600)
圖像邊緣檢測是數字圖像處理的主要研究內容,BP人工神經網絡具有學習功能強大和良好的容錯性能。采用BP人工神經網絡進行彩色圖像的邊緣檢測,通過對選取的圖像樣本的訓練,不斷調整網絡的權值和閾值,完成函數的逼近,使得對于輸入的圖像樣本處理結果能夠達到預期的效果。本文主要研究基于改進學習算法的BP神經網絡在彩色圖片的邊緣檢測中的應用。
為了增加圖像的對比度,使得圖像的邊緣更加清晰,首先需要對圖像做二值化處理。二值化圖像的方法如下:假設一幅圖的像素值為,閾值為。則:

即當像素值大于閾值時灰度級為1,當像素值小于閾值時灰度級為0。圖1為此次用于訓練BP神經網絡的原灰度圖像、教師圖像和灰度圖的二值化圖像。
在網絡訓練中,把整幅圖像作為樣本,會使樣本集比較龐大,增大訓練的迭代次數,使得訓練時間變長,算法也不易收斂。因此在將圖像矩陣數據輸入網絡前必須進行圖像的分塊操作。先將圖像調整為300*300,然后劃分為10000個3*3的小塊,將每個小塊合并為一個列向量。在輸入輸出端對原始圖像和教師圖像進行分塊操作,將輸入輸出對應的列向量輸入網絡,開始進行網絡的訓練。如果模板過大,網絡訓練所要處理的數據量過大,使得網絡的整體誤差增大,3*3模板是經過多次實驗后比較適合本次研究的。圖2為圖像塊劃分流程圖。

圖1 訓練樣本的選取和二值化處理

圖2 圖像塊劃分流程圖
BP神經網絡結構參數的選取影響邊緣檢測的精度。原則上,包含一個中間隱含層的3層BP神經網絡能夠逼近任何的非線性映射,因此本文采用3層BP神經網絡來提取灰度圖像的邊緣。
由于算法輸入的數據是分割后的1*9列向量,所以輸入層與輸出層的節點數應為9。目前,學術界對于隱含層節點數的選擇并沒有確定的準則,所以隱含層節點數的選擇只能參照經驗公式:

其中N為隱含層神經元個數,m為輸入神經元個數,n為神經元個數,為1~10之間的一個整數。進過多次實驗N取15時,可以很好的完成網絡的訓練,且效果最佳。
由于標準BP神經網絡算法存在的一些缺陷,為了避免算法陷入局部極小值。研究采用有動量的梯度下降法作為神經網絡的訓練函數。動量法能夠有效的降低網絡對于誤差細節的敏感性。通過加入動量因子,相當于加入了阻尼項,減小了訓練曲線局部的阻尼震蕩,從而使算法更易于收斂。動量梯度下降法的訓練的過程如圖3所示,當訓練次數達到400次左右時,曲線已經趨于平緩。

圖3 訓練過程圖
對于輸入的彩色圖片,要將其轉化為灰度圖,然后灰度圖尺寸調整成300*300,以便于后續圖像的分塊操作。分塊操作將圖像分割成為9*10000的矩陣,輸入訓練好的BP神經網絡。在輸出端使用逆分割函數恢復出處理完成的圖像。處理過程如圖4所示。

圖4 BP神經網絡的圖像邊緣檢測圖
圖5(a)是一幅待檢測的彩色花瓶圖像,圖像背景顏色是比較復雜的漸變色,花瓶的顏色與背景顏色較接近。首先采用傳統的邊緣檢測方法,再使用本文研究的BP人工神經網絡來檢測圖像邊緣,邊緣提取效果下圖所示。可以看出,采用sobel和prewitt算法提取的邊緣類型有限,檢測出的邊緣容易發生斷裂。而采用BP人工神經網絡提取的邊緣則較為完整。

圖5 原始圖與邊緣檢測圖像
為了通過交互方式對圖像邊緣進行快速準確的提取,采用MATLAB設計了友好的圖形用戶界面。該界面具有良好的人機交互功能。圖7為本文設計的GUI運行效果圖。除了可以比較幾種不同邊緣檢測算法的實際效果外,在完成彩色圖像邊緣檢測后,還可以保存處理后的圖像。

圖7 運行效果圖
本文研究BP人工神經網絡檢測彩色圖像的邊緣。在樣本圖像的預處理階段采用了分塊思想,降低了網絡訓練的樣本集。在網絡的訓練過程中采用動量梯度下降算法提高了學習速度。最后設計了功能完善界面友好的用戶圖形界面(GUI)。基于BP神經網絡的圖像邊緣檢測算法在圖像的弱邊緣檢測上有比較好的效果。
[1]岡薩雷斯.數字圖像處理(MATLAB版)[M].北京:電子工業出版社,2005,9.
[2]張習民,賈克斌,卓東風.BP神經網絡在圖像邊緣檢測中的應用.計算機工程與設計,2011.
[3]肖鋒.基于BP神經網絡的數字圖像邊緣檢測算法的研究[J]. 西安科技大學學報,2005,25(3):372-375.
[4]張烈平,周德儉,牛秦洲.基于BP 神經網絡的預測建模系統的研究與實現[J].計算機仿真,2004, 21(9):48.
[5]曾希君,于博 基于改進BP神經網絡圖像邊緣檢測的研究[J].微電子學與計算機,Vol.26 No.8 August 2009
[6]于萬波.基于MATLAB的圖像處理[M].清華大學出版社,2008.3