柳 赟,鄭蕊蕊,吳艷軍,徐寶翠,吳寶春
(大連民族學(xué)院信息與通信工程學(xué)院,116600)
圖像邊緣檢測是數(shù)字圖像處理的主要研究內(nèi)容,BP人工神經(jīng)網(wǎng)絡(luò)具有學(xué)習(xí)功能強大和良好的容錯性能。采用BP人工神經(jīng)網(wǎng)絡(luò)進行彩色圖像的邊緣檢測,通過對選取的圖像樣本的訓(xùn)練,不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,完成函數(shù)的逼近,使得對于輸入的圖像樣本處理結(jié)果能夠達到預(yù)期的效果。本文主要研究基于改進學(xué)習(xí)算法的BP神經(jīng)網(wǎng)絡(luò)在彩色圖片的邊緣檢測中的應(yīng)用。
為了增加圖像的對比度,使得圖像的邊緣更加清晰,首先需要對圖像做二值化處理。二值化圖像的方法如下:假設(shè)一幅圖的像素值為,閾值為。則:
即當像素值大于閾值時灰度級為1,當像素值小于閾值時灰度級為0。圖1為此次用于訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)的原灰度圖像、教師圖像和灰度圖的二值化圖像。
在網(wǎng)絡(luò)訓(xùn)練中,把整幅圖像作為樣本,會使樣本集比較龐大,增大訓(xùn)練的迭代次數(shù),使得訓(xùn)練時間變長,算法也不易收斂。因此在將圖像矩陣數(shù)據(jù)輸入網(wǎng)絡(luò)前必須進行圖像的分塊操作。先將圖像調(diào)整為300*300,然后劃分為10000個3*3的小塊,將每個小塊合并為一個列向量。在輸入輸出端對原始圖像和教師圖像進行分塊操作,將輸入輸出對應(yīng)的列向量輸入網(wǎng)絡(luò),開始進行網(wǎng)絡(luò)的訓(xùn)練。如果模板過大,網(wǎng)絡(luò)訓(xùn)練所要處理的數(shù)據(jù)量過大,使得網(wǎng)絡(luò)的整體誤差增大,3*3模板是經(jīng)過多次實驗后比較適合本次研究的。圖2為圖像塊劃分流程圖。
圖1 訓(xùn)練樣本的選取和二值化處理
圖2 圖像塊劃分流程圖
BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)的選取影響邊緣檢測的精度。原則上,包含一個中間隱含層的3層BP神經(jīng)網(wǎng)絡(luò)能夠逼近任何的非線性映射,因此本文采用3層BP神經(jīng)網(wǎng)絡(luò)來提取灰度圖像的邊緣。
由于算法輸入的數(shù)據(jù)是分割后的1*9列向量,所以輸入層與輸出層的節(jié)點數(shù)應(yīng)為9。目前,學(xué)術(shù)界對于隱含層節(jié)點數(shù)的選擇并沒有確定的準則,所以隱含層節(jié)點數(shù)的選擇只能參照經(jīng)驗公式:
其中N為隱含層神經(jīng)元個數(shù),m為輸入神經(jīng)元個數(shù),n為神經(jīng)元個數(shù),為1~10之間的一個整數(shù)。進過多次實驗N取15時,可以很好的完成網(wǎng)絡(luò)的訓(xùn)練,且效果最佳。
由于標準BP神經(jīng)網(wǎng)絡(luò)算法存在的一些缺陷,為了避免算法陷入局部極小值。研究采用有動量的梯度下降法作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練函數(shù)。動量法能夠有效的降低網(wǎng)絡(luò)對于誤差細節(jié)的敏感性。通過加入動量因子,相當于加入了阻尼項,減小了訓(xùn)練曲線局部的阻尼震蕩,從而使算法更易于收斂。動量梯度下降法的訓(xùn)練的過程如圖3所示,當訓(xùn)練次數(shù)達到400次左右時,曲線已經(jīng)趨于平緩。
圖3 訓(xùn)練過程圖
對于輸入的彩色圖片,要將其轉(zhuǎn)化為灰度圖,然后灰度圖尺寸調(diào)整成300*300,以便于后續(xù)圖像的分塊操作。分塊操作將圖像分割成為9*10000的矩陣,輸入訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)。在輸出端使用逆分割函數(shù)恢復(fù)出處理完成的圖像。處理過程如圖4所示。
圖4 BP神經(jīng)網(wǎng)絡(luò)的圖像邊緣檢測圖
圖5(a)是一幅待檢測的彩色花瓶圖像,圖像背景顏色是比較復(fù)雜的漸變色,花瓶的顏色與背景顏色較接近。首先采用傳統(tǒng)的邊緣檢測方法,再使用本文研究的BP人工神經(jīng)網(wǎng)絡(luò)來檢測圖像邊緣,邊緣提取效果下圖所示。可以看出,采用sobel和prewitt算法提取的邊緣類型有限,檢測出的邊緣容易發(fā)生斷裂。而采用BP人工神經(jīng)網(wǎng)絡(luò)提取的邊緣則較為完整。
圖5 原始圖與邊緣檢測圖像
為了通過交互方式對圖像邊緣進行快速準確的提取,采用MATLAB設(shè)計了友好的圖形用戶界面。該界面具有良好的人機交互功能。圖7為本文設(shè)計的GUI運行效果圖。除了可以比較幾種不同邊緣檢測算法的實際效果外,在完成彩色圖像邊緣檢測后,還可以保存處理后的圖像。
圖7 運行效果圖
本文研究BP人工神經(jīng)網(wǎng)絡(luò)檢測彩色圖像的邊緣。在樣本圖像的預(yù)處理階段采用了分塊思想,降低了網(wǎng)絡(luò)訓(xùn)練的樣本集。在網(wǎng)絡(luò)的訓(xùn)練過程中采用動量梯度下降算法提高了學(xué)習(xí)速度。最后設(shè)計了功能完善界面友好的用戶圖形界面(GUI)。基于BP神經(jīng)網(wǎng)絡(luò)的圖像邊緣檢測算法在圖像的弱邊緣檢測上有比較好的效果。
[1]岡薩雷斯.數(shù)字圖像處理(MATLAB版)[M].北京:電子工業(yè)出版社,2005,9.
[2]張習(xí)民,賈克斌,卓東風(fēng).BP神經(jīng)網(wǎng)絡(luò)在圖像邊緣檢測中的應(yīng)用.計算機工程與設(shè)計,2011.
[3]肖鋒.基于BP神經(jīng)網(wǎng)絡(luò)的數(shù)字圖像邊緣檢測算法的研究[J]. 西安科技大學(xué)學(xué)報,2005,25(3):372-375.
[4]張烈平,周德儉,牛秦洲.基于BP 神經(jīng)網(wǎng)絡(luò)的預(yù)測建模系統(tǒng)的研究與實現(xiàn)[J].計算機仿真,2004, 21(9):48.
[5]曾希君,于博 基于改進BP神經(jīng)網(wǎng)絡(luò)圖像邊緣檢測的研究[J].微電子學(xué)與計算機,Vol.26 No.8 August 2009
[6]于萬波.基于MATLAB的圖像處理[M].清華大學(xué)出版社,2008.3