殷素峰,陳洵凜
(東莞理工學院城市學院 智能制造學院,廣東 東莞 523419)
隨著我國經濟發展戰略結構的調整,農業發展逐漸開始向規模化、自動化的方向轉變。水果消費隨著經濟的發展與人民生活水平的提高,在整個食物消費中的比重逐步上升。但水果依靠人工分級,作業效率低下,隨著國家經濟結構的調整,農業勞動力正在逐步減少,農業勞動力不足將會影響水果的分揀效率,而利用機器視覺技術取代傳統的人工水果分級方式能有效地解決這一問題。目前國內外有關機器視覺技術的水果分級研究都是針對蘋果、柑桔等大型水果,且設備還限于機械分級階段,主要進行大小、重量的分級。由于技術投入不夠,存在局限性多、不靈活、設置困難、易產生錯誤、無法適應現代的質量控制和統計流程控制等方面的弊端。而水果分級是在上市銷售之前的一個操作環節,對水果的銷售價格和種植前景有著重要的影響[1-2]。
因此,國內外學者對這一問題進行了廣泛的理論研究與實踐。Rizon等[3]利用隨機Hough變換的方法從二值圖像中識別芒果對其進行分級,Hough變換涉及到圖像空間到參數空間的轉換,并依據投票機制進行累積,計算耗時,無法應用于實時處理。彭紅星等[4]提出了一種改進的SSD深度學習水果檢測模型,實現了自然環境下多類水果的精準檢測。Unay等[5]提出了通過提取蘋果的幾何特征,使用統計分類器訓練的方式進行蘋果的識別分級。莊路路[6]提出了基于SURF算法和BP神經網絡的水果識別方法,該方法可對各種各樣的水果進行有效的識別分類。雖然這些方法的識別率能達到很高,但對分類器的訓練需要消耗較多的時間。談文藝[7]采用了高光譜成像技術對蘋果的外部損傷進行早期識別與分級。王利平等[8]提出了基于紅外熱波無損傷檢測技術的水果分級方法,有效地提高了水果分級效率。這些方法雖然大大提高了分級效率,但卻引進了紅外遙感設備,增加了硬件成本。
基于此,本文提出了一種基于顏色空間的分割識別與基于BP神經網絡分級相結合的水果識別分級方法,該方法事先提取成熟水果的顏色分量值作為參照值,依據該參照值在眾多水果中識別出所期望的成熟水果,再結合BP神經網絡進行分級,從而有效地避免了上述方法的不足。
1.1.1 成熟水果的篩選
首先,對采集到的水果樣本圖像進行中值濾波預處理,以消除樣本圖像中孤立的噪聲點,同時保留圖像的邊緣細節,本文算法設置中值濾波的濾波模板尺寸為(5×5)像素;并對預處理后的樣本圖像進行通道轉換,將樣本圖像轉換成RGB三個單通道圖像,以便于根據成熟水果的特有顏色特征對應于相似的單通道圖像上進行顏色分割,如圖1所示。

圖1 樣本圖像轉換成RGB三個單通道圖像
然后,將成熟水果顏色特征對應于相似的單通道圖像進行二值化,本文中實驗水果的成熟顏色特征相似于R通道圖像,因此二值化后以成熟水果的顏色范圍灰度值作為參照值進行顏色空間分割,排除掉未成熟和過成熟的水果,篩選出成熟水果的顏色特征區域,再對其進行形態學開運算處理,以消除與成熟水果顏色特征相似的小雜物的干擾。本文算法設置開運算的內核類型為MORPH_ELLIPSE(橢圓形),且定義內核大小為(13×13)像素進行開運算操作處理。將開運算的結果圖像與樣本圖像進行區域相交運算,從而篩選出樣本圖像中的成熟水果。圖2為篩選出的成熟水果。

圖2 篩選出的成熟水果
1.1.2 基于BP神經網絡的成熟水果等級分級
典型的BP神經網絡包括輸入層、隱含層和輸出層,各層之間通過傳遞函數連接,通過一定的學習算法來訓練網絡。
輸入層:對篩選出的成熟水果進行基于BP神經網絡等級分級,首先將成熟水果圖像由RGB格式轉換成HIS格式,由于H通道表示圖像的色度信息,通過求取H通道圖像中水果目標的色度均值μH和色度均方差σH,將這兩個水果色彩特征參數作為神經網絡的輸入特征變量。
輸出層:根據GB/T26906-2011,櫻桃等級可分為特級、一級和二級,因此設計3個輸出層節點,表示3個不同等級的櫻桃。其中00代表特級,01代表一級,10代表二級。
隱含層設計與網絡訓練:本文選擇單一隱層,隱含層神經元節點數可通過公式(1)來確定[9]:
(1)
其中:N為隱含層節點數;n為輸入層維數;m為輸出層維數;k為一個常數,取值[1,10]。
由本文中BP神經網絡輸入與輸出層可知,n=2,m=3,因此由公式(1)計算可得N的取值為4~13。隱含層節點數N的具體取值可根據訓練的結果來確定。 本文中BP神經網絡輸入層到隱含層的傳遞函數使用tansig函數,隱含層到輸出層采用純線性purelin函數。由于SCG算法具有相對較快的處理速度[10],因此本文采用SCG算法的訓練函數trainscg對BP神經網絡進行訓練。實驗選擇60個含有特級、一級和二級三個等級的櫻桃作為訓練樣本。訓練函數的參數設置如下:迭代次數10 000,誤差性能目標值為0.008。在訓練集相同的情況下,改變隱含層節點數進行訓練,并記錄訓練結果如表1所示。

表1 BP神經網絡在不同隱含層節點數下的訓練結果
根據表1可知,只有隱含層節點數為7、8、10時才能達到誤差性能目標值,綜合考慮網絡的收斂速度和訓練誤差,當選取8個隱含層節點數時,訓練網絡收斂速度最快。
基于顏色空間的分割識別與BP神經網絡分級相結合的水果識別分級算法流程如圖3所示。

圖3 水果識別分級算法流程
為了驗證算法的實用性,對獲取的20幅樣本圖像進行了實驗。實驗的硬件環境為:Lenovo筆記本電腦,處理器為Intel(R)Pentium(R)CPU 2.16GHz,內存為8 GB。實驗的軟件環境為:Visual Studio 2010和OpenCV。顏色空間分割識別成熟水果的實驗結果如圖4所示。

圖4 顏色空間分割識別成熟水果實驗結果
對20幅樣本圖像進行實驗,分別記錄其成熟櫻桃的識別量及識別率見表2;并從篩選出的成熟櫻桃中人工挑選出含有特級20個、一級20個和二級20個等三個等級共60個櫻桃作為測試樣本,按照上文方法提取色度均值和均方差輸入到訓練好的BP神經網絡進行分級測試,記錄分級結果見表3。

表2 實驗測試數據

表3 分級實驗測試結果
由表2的實驗結果可以看出,本文所提出的基于顏色空間的分割識別與水果輪廓特征大小相結合的水果識別分級算法對成熟水果的識別率能達到93.16%。對于未能識別出的成熟水果,主要原因在于定義成熟水果的顏色特征值范圍相對比較狹窄,若定義成熟水果的顏色特征值范圍寬松,則識別率能達93.16%以上。而從表3的分級實驗測試結果中可知,基于BP神經網絡對成熟櫻桃分級,特級品分級,正確率是100%,一級品與二級品分級的正確率都是90%,因此平均分級正確率為93.3%,總耗時為2.66 s。
為了對小型水果進行快速、準確的自動識別分級,本文提出了一種快速識別分級算法。算法包括對成熟水果的顏色分割以篩選出成熟水果和基于BP神經網絡的成熟水果分級兩個主要部分。并以小型水果櫻桃為例進行了實驗驗證,從算法對成熟水果的識別率、分級正確率和實時性來看,本算法能滿足自動化裝置作業時的準確率和實時性要求。