我國是水果生產與消費大國,我國水果不但品種豐富,而且以水果為原料的食品如罐頭、果凍等加工產業也頗具規模。然而,在水果果料的加工過程中可能會不經意地混入諸如毛發、纖維絲、紙屑、金屬、油漆等異物,從而對產品質量和消費者心理造成不良影響。目前大多數食品生產企業還是采用人工裸眼檢測加工過程中在制品是否沾染異物,存在效率低、漏檢率高、勞動量大等缺點。
人們吃到甚或看到食品中有異物總是很惡心,為此而向銷售、生產商索賠的事件不時發生。生產商為確保食品中無異物,需要在生產中設置多道檢測工位,絕大多數是人工裸眼目檢。人的眼腦手配合具有高度智能和柔性,能夠識別和提出各種異物缺陷,然而視覺疲勞、生理和主觀因素會帶來工作質量的差異和效率低下。利用機器視覺技術來代替人工檢測,是現代化生產的發展趨勢。
隨著提高產品質量的要求和勞動力成本日益升高的形勢,企業迫切希望應用機器視覺技術實現工業生產自動化檢測。但是在農產品質量和食品加工質量方面,國內外原有研究成果主要只針對完整且表面相對干燥的果體進行大小、形狀、成熟度、表面損傷與缺陷等的檢測與分級,而在異物檢測方面,只有針對單一品種果料如桔瓣上的某種異物進行檢測的研究。
本文針對多種水果混合的圖像,利用Matlab軟件,對水果的識別進行研究。根據水果與背景灰度值的差別選取閾值,對去噪、增強對比度后的圖像進行二值化處理。分割出目標后,由于原始圖像中灰度分布不均勻和光照等的影響,可能同一類水果中會出現空洞或個別邊緣處出現斷裂情況等,因此要對圖像進行邊緣檢測。然后標簽化處理圖像,區分水果,再提取不同水果的顏色、形狀、邊界不規則等特征,用多幅圖像訓練BP神經網絡,建立水果特征庫,利于快速識別水果,從而實現對水果的正確分揀。
1 水果圖像的增強和分割
在計算機上,圖像由像素逐點描述,每個像素點具有一個明確的位置和色彩數值。用Matlab軟件讀取圖像,以矩陣的形式存放圖像數據,其掃描規則是從左向右,從上到下。為處理方便,把原始的彩色圖像轉換為灰度圖像,如圖1(a)所示。
采用中值濾波法對灰度圖像進行去噪處理。中值濾波是抑制噪聲的非線性處理方法,本文用中值濾波法處理3×3像素的局域圖像,把9個灰度值按從小到大的順序排序后,以第5個(即中央)序號的灰度值作為目標像素的灰度值。中值濾波對于濾除圖像中的椒鹽噪聲非常有效[5],去噪后的圖像如圖1(b)所示。
為了得到更清晰的圖像,再對圖像進行銳化處理,采用反銳化掩模的方法。反銳化掩模法是一種常用的圖像銳化方法,其算法表達式為:
式中,f(x,y)為處理前的圖像;f′(x,y)為用人為方法將f(x,y)模糊以后得到的圖像;g(x,y)為銳化處理后的圖像;c(c>1)為比例常數,根據具體情況選定。反銳化掩模法有效地提高了高頻成分,使模糊呆板的圖像變得具有清晰感和生動感[6],圖1(c)是銳化后的結果。
經過去噪和對比度增強,就可以對圖像目標進行提取分割。圖像閾值分割是最常用的圖像分割技術,主要利用了圖像中背景與對象之間的灰度差異[6]。只要閾值選取合適,將每個像素與之比較,進行二值化處理,就可以很好地將對象從背景中分離出來。取閾值為0.34,圖2(a)是二值化后的結果。從圖2(a)中可以發現水果中有很多空洞,且水果的邊緣處有斷裂現象,所以采用邊緣提取以彌補斷裂的邊緣部分,然后基于數學形態學算子對圖像進行去除斷邊、圖像填充等必要的后續處理。
索貝爾算子(Sobel operator)是圖像處理中的算子之一,主要用作邊緣檢測。在技術上,它是一離散性差分算子,用來運算圖像亮度函數的梯度之近似值。在圖像的任何一點使用此算子,將會產生對應的梯度矢量或是其法矢量。Sobel算子另一種形式是各向同性Sobel(Isotropic Sobel)算子,也有兩個,一個是檢測水平邊沿的 ,另一個是檢測垂直平邊沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加權系數更為準確,在檢測不同方向的邊沿時梯度的幅度一致。
利用Sobel算子進行邊緣檢測。Sobel算子是一種簡單常用的微分算子,它不僅能檢測邊緣點,而且能進一步抑制噪聲的影響。Sobel算子對數字圖像f(x,y)的每個像素考查其相鄰點像素灰度的加權差,即
利用Sobel算子進行邊緣檢測的結果如圖2(b)所示,水果的邊緣清晰地顯示出來。再利用OR運算結合模糊分割和邊緣信息,去除斷邊如圖2(c)所示;利用數學形態學重新填充一下圖像中的洞,最終處理后的圖像符合本文的要求,其效果如圖2(d)所示。
2 水果的特征提取
經過圖像分割后,水果和背景很明顯地被區分開來,然后需要對每種水果的特征進行提取。先對圖像進行標簽化,所謂圖像的標簽化是指對圖像中互相連通的所有像素賦予同樣的標號,而對于不同的連接成分則給予不同的標號。經過標簽化處理就能把各個連接成分進行分離,從而可以研究它們的特征。
區域分割(標簽化)最基本的方法是區域擴張法。本文采用8鄰域法,由于是二值圖像,因此差值可以定義為“0”。為了能夠看到明顯的效果,程序以不同的顏色來突出顯示標簽化后的圖像,其效果分別如圖3(a)和圖3(b)所示。
本文根據水果在圖像中表現出來的特點,從面積、周長、弧度、顏色四個方面對圖像中的桔子、蘋果、香蕉進行特征提取,最后采用BP神經網絡對目標進行分類識別。
2.1 面積特征
經過標簽化的不同區域像素值分別為1、2、3。所以用物體所包含的像素數量來計算面積,S1對應像素值為1的區域,當從左到右,從上到下地對圖像進行掃描時,發現像素值為1的,則計數器S1就加1, 整幅圖像掃描完畢,即得區域1的面積。類似地,可以求出S2和S3,只是對應的S(n)需要除以n。
2.2 周長特征
計算周長只要計算出物體輪廓線上的像素數,但在斜方向上會產生數字化圖形特有的誤差,故應以其2倍的數量加以補正。當從左到右、從上到下地掃描圖像時,發現像素值為1的,且它的相鄰像素值(8領域)有與它不同的,計數器L1加1,整幅圖像掃描完畢,即得區域1的周長。類似可以求出L2和L3。
2.3 弧度特征
弧度是在面積、周長的基礎上,測量物體形狀的復雜程度的特征量。有弧度計算公式:弧度=4π(面積)/(周長)2。通過對三種弧度的比較,可以將圖中三種水果弧度最小的香蕉識別出來。
2.4 顏色特征
本文采用顏色直方圖法提取水果圖像顏色特征。所謂顏色直方圖是顏色信息的函數,它表示圖像中具有同顏色級別的像素的個數,其橫坐標是顏色級別(各個像素的灰度級),縱坐標是該顏色出現的頻率(像素的個數)。
圖像的顏色有多種表示方式,本文采用RGB顏色模式。對于彩色圖像,可分解為R、G、B三幅單色圖像,因此相應的便有三幅不同通道的直方圖,每幅直方圖中的像素分布情況都代表了這一通道中的特定顏色的程度信息。從肉眼即可分辨出蘋果的紅色含量要比桔子和香蕉豐富得多,所以蘋果紅顏色的信息量在紅、綠、藍三種顏色中所占的比例也應該是三者中最高的,即N紅:N綠:N黃的值也是最大的。所以,本文采用N紅/(N綠+N黃)的算法來比較三種水果各自紅色信息所占比例,從而將蘋果特有的特征量提取出來,達到識別蘋果的目的。
經Matlab軟件編程測試得圖像中三種水果的特征參數如表1所示。
由表1可以看出:
(1)香蕉是周長最長、弧度最小的水果;
(2)在三種水果中,蘋果的R 通道直方圖中固定區域(100~170像素)中像素數量與其G通道和B通道直方圖中固定區域中像素數量和的比值為三者中最大的,即蘋果的紅色信息量(ratio_x)是最多的。利用這種計算像素比值的方法便可以將蘋果與其他兩種紅色信息量相對較少的水果區分出來。
3 基于BP神經網絡的識別
3.1 BP神經網絡簡介
神經網絡是由簡單結構和規則復合而成的高級復雜的非線性系統,它在不同程度和層次上模擬人腦神經系統的信息處理、存儲及檢索功能,具有并行結構和并行處理、自適應性、知識的分布存儲、較強的容錯性、本質的非線性系統等特性[12]。通過網絡訓練,可以建立數據庫信息的非線性模型,并從中提取出相應的規則,能夠實現目前基于計算機理論層次上的模式識別理論無法完成的模式信息處理工作。基于神經網絡的模式識別法相對于其他方法來說,其優勢在于: (1)它要求對問題的了解較少;(2)它可以實現特征空間較復雜的劃分;(3)它宜用高速并行處理系統實現[5]。
BP神經網絡是目前應用最為廣泛的一種神經網絡模型,它采用多層前向網絡的反向傳播算法,具有逼近任意連續函數和非線性映射的能力[12],大量應用在函數逼近、模式識別、故障診斷、智能控制、信號處理等領域。
BP神經網絡的實質是把一組樣本輸入、輸出問題轉化為一個非線性優化問題,并通過梯度算法進行迭代運算求解權值問題。在BP神經網絡結構確定后,就可利用輸入輸出樣本對網絡進行訓練,即對網絡的權值和閾值進行學習和調整,使網絡實現給定的輸入輸出映射關系。其訓練模型如圖4所示。
3.2 基于BP神經網絡的水果識別
多層BP網絡不僅有輸入、輸出節點,而且還有一層或多層隱含節點。本系統采用三層BP神經網絡,即網絡由輸入層、隱含層和輸出層組成[13-15]。對于水果圖例中的桔子、蘋果、香蕉三種水果,本系統需要訓練網絡通過識別弧度、顏色兩個特征量來區分這三種水果,所以共需要2個輸入端,3個輸出端。輸出端分別對應[1 0 0]、[0 1 0]、[0 0 1][16]。
隱含層節點數目的選擇是一個十分復雜的問題,到目前為止,還沒有用數學公式來明確表示應該怎樣確定隱含層的節點數目。事實上,節點數太少,可能訓練不出來,或者訓練出的網絡不強壯,不能識別以前沒有看到過的樣本,容錯性較差;但隱含層節點太多又會使學習訓練時間太長,誤差也不一定最佳[17]。參照經驗公式和實驗測試效果,這里選擇有19個隱含層節點的網絡。
綜上所述,本文所建立的網絡是一個具有2個輸入端、19個隱含節點、3個輸出節點的三層BP神經網絡。其網絡結構如圖5所示。
對于BP網絡的實現,本系統用到了網絡初始化指令init(net)、網絡創建指令newff(PR,[S1 S2…SN],{TF1 TF2…TFN},BTF,BLF,PF)、網絡仿真指令sim(net,p)、網絡訓練指令train(net,p,t)、競爭轉換指令compet(y)。在隱含層確定后,運用傳輸函數sigmoid,把一個取值范圍為無窮大的輸入變量壓縮到一個取值范圍有限的輸出變量中,方便得出輸出層的結果。
將多組圖片采集到的桔子、香蕉和蘋果各自的弧度及顏色數據分別作為訓練樣本和測試樣本,設定目標輸出分別為1、2、3(1表示桔子,2表示香蕉,3表示蘋果)。本實驗中用200幅水果圖像提取水果特征構造訓練樣本和測試樣本,訓練樣本150個,測試樣本50個。經過對BP網絡的初始化、訓練、仿真、競爭、轉換等操作,最終實現其對特征數據的正確識別,從而達到能夠自動識別水果的目的。
4 實驗結果分析
BP網絡的訓練性能曲線如圖6所示,上面的曲線是訓練性能曲線,下面曲線是目標性能曲線,訓練的目標是達到0.001,性能為0.000 903 996。
經150個包含桔子、蘋果、香蕉三種水果的圖像訓練樣本訓練使BP神經網絡的識別正確率達100%,且從圖6中可以看出BP神經網絡收斂,說明訓練成功,將此網絡保存,用來進行樣本測試。
對50個測試樣本經BP神經網絡驗證,香蕉的識別正確率達100%,桔子和蘋果的識別正確率是98%,進一步證明了特征提取和BP神經網絡識別水果的有效性, BP網絡已經能夠正確識別桔子、蘋果、香蕉三種水果各自的特征量并將其準確地區分出來(1表示桔子,2表示香蕉,3表示蘋果)。表2所示為水果識別率統計表,可見水果數據庫建立成功,BP網絡的訓練也達到了比較準確的程度,基本上達到了水果識別的目的。
訓練時BP神經網絡識別正確率能達到100%,但用測試樣本對BP神經網絡測試時,桔子和蘋果的正確率無法達到100%,主要原因有:
(1)由于采集圖片時光線強弱不同,水果的陰影深淺不同,影響了對水果的輪廓識別;
(2)同種水果品質不同使顏色有差異,帶紅色元素較多的桔子和帶黃色元素較多的蘋果放在一起時易造成誤判。
實驗結果表明,基于BP神經網絡的水果識別系統具有較強的適應能力,識別效率高,是一種有效的檢測方法。利用水果自身的特征對水果圖像進行分類識別是計算機視覺技術在農業自動化[18]應用中的重要前提條件。近年來, 隨著計算機視覺技術的發展,圖像分類識別在各行各業的應用愈加廣泛。通過圖像的外觀特征對圖像進行分類識別, 是一種及時便捷、切實有效的方法。本系統對水果的識別正確率高,具有非常重要的經濟和實用價值,其應用前景十分廣闊。
-
matlab
+關注
關注
185文章
2980瀏覽量
230837 -
神經網絡
+關注
關注
42文章
4779瀏覽量
101059 -
機器視覺
+關注
關注
162文章
4405瀏覽量
120592
發布評論請先 登錄
相關推薦
評論