羅炤茜,陳月芬,占煜輝,厲科迪
(臺州學院電子與信息工程學院, 臺州 318000)
作為一個世界農業大國,我國的水果產量呈逐年上升的趨勢。作為提供人體營養的必需品,水果在人們日常生活中的需求量不斷增加,水果行業市場規模持續增長,并且隨著生活水平的不斷提高,人們對于優質和新鮮的水果需求不斷增長,高品質的水果是當今水果市場競爭成功的首要條件。因此,水果分級是各大水果市場、果汁加工廠以及水果種植戶的重要環節,而我國的水果產量基數龐大,傳統的依靠人工方式進行分類、分級,不僅效率低下、勞動量大,而且容易受到人為因素的影響,存在較大的人工誤差等缺點。物聯網技術和人工智能的興起引領著人們的生活走向智能化,無人超市越來越流行,因此亟需研究水果智能分類分級模型,提高水果識別率和分級準確率,對經濟、農業的發展具有重要的意義。
近年來,機器視覺技術在農產品檢測中得到廣泛的應用,提高了檢測精度和效率,成為農產品自動化檢測與分選技術的重要手段。因此國內外學者圍繞著基于機器視覺的水果自動識別和分級進行了大量的研究[1],如Blanc[2]設計了一種可以對葡萄的重量和顏色均勻度進行分級的系統;Baigvand[3]等設計了一套完整的機器視覺分級系統,實現了對無花果品質的實時檢測,將無花果干成功地分為5 個等級;王干[4]等通過采用三個攝像機對傳輸中的臍橙多面拍照,并基于圖像處理技術實現了臍橙的品質分級。基于機器視覺技術并借助于攝像機代替人眼采集物體圖像,再利用圖像處理技術實現對物體特征的提取,經各種分類器實現識別,其中圖像處理技術在水果圖像特征提取中扮演重要的角色。孫斐[5]通過研究幾何特征實現蘋果的特征提取,最終實現蘋果大小的分級。蔣林權[6]采用灰度共生矩陣提取碭山梨缺陷區域和果梗區域的紋理特征,融合Gabor 提取紋理特征的方法,提高了對碭山梨表面缺陷的識別準確率;肖壯[7]通過Matlab 軟件處理紅提串的彩色圖像,獲得了果肉和果粉區域的像素點坐標值和RGB 值,最終實現了顏色特征的提取。
綜上所述,由于圖像處理技術的發展,當前計算機視覺技術在水果識別和分揀領域得到了廣泛的應用,并取得了一定的研究成果。但已有成果主要存在以下不足:一是當前對水果圖像的特征提取、缺陷檢測等大部分為傳統的圖像處理,該方法主要基于人工經驗對圖像進行特征提取,主要提取水果的幾何、紋理和顏色等特征,這些特征的提取均為人工設計,具有很大的局限性,為了準確對水果進行分類,甚至需要人工進一步的判斷,自動化程度降低;二是應用傳統圖像處理技術進行特征提取對水果圖像質量要求較高,但圖像采集時容易受到噪聲或者光照變化的影響,可靠性較差。
根據以上分析可以看出:傳統的圖像處理技術應用到水果自動分級的局限性很大,而當前在人工智能領域,深度學習在目標識別及分類方面取得了令人矚目的成績,性能上與傳統的識別和分類算法相比,產生了質的飛躍,物體辨別分析能力已經可以媲美人類的辨別能力,甚至在某些領域已經超過了人類的辨別能力。基于此,本文提出了一種基于卷積神經網絡的水果自動分級算法,并以蘋果為例,將深度學習理論應用到蘋果的自動分級,提高蘋果自動分級的準確率,促進自動化。
本文系統的整體設計包括水果圖像的采集和數據增強、卷積神經網絡的設計和訓練以及對測試圖像的精確識別。在設計卷積神經網絡時,考慮到Keras作為Tensorflow 的高端接口,支持GPU 和CPU,具有高度的模塊化,包括了網絡層、損失函數、優化器、激活函數等方法的獨立模塊,結合Tensorflow 作為后端,非常有利于根據需求快速搭建并訓練新的網絡模型[8],因此,本文采用Keras建立卷積神經網絡,系統的設計框圖如圖1所示。

圖1 系統框圖Fig.1 Chart of system
目前,國內外尚未形成統一的用于水果分級的圖像集,本文實驗使用的蘋果圖像集來自超市、菜場等果蔬銷售場合采購的實物拍攝,實驗中收集了一級紅富士圖像600 張、二級紅富士600 張、普通蘋果600 張和爛蘋果300 張,共計2100 張,包含四種級別的蘋果圖像,圖2所示為本文所用的部分樣本示意圖。

圖2 部分圖像樣本示意圖Fig.2 Part of image sample diagram
由于數據庫規模比較小,容易在訓練過程中出現“過擬合”現象,即容易將樣本本身的一些特點視為所有潛在樣本都具有的特點,以至于模型的泛化能力較弱,影響測試的正確率。因此,本文采用了圖像的一些幾何變換,包括:(1)將圖像在40°范圍內隨機旋轉;(2)將圖像在水平方向隨機平移,平移程度不超過原寬度的0.2倍;(3)將圖像在垂直方向隨機平移,平移程度不超過原高度的0.2 倍;(4)將圖像進行隨機裁剪。通過上述變換將數據樣本擴充為原來的4 倍,以此來緩解過擬合現象。將所有圖像的尺寸大小調整為256×256×3,并將像素值除以255 進行歸一化處理。對所有樣本進行標注,在存儲時將每類蘋果的標簽值設為0~3,在讀入圖像后轉換為獨熱編碼形式進行模型的訓練和測試,即每類蘋果的標簽值為長度為4 的向量y={a0,a1,a2,a3},其中第i個級別的蘋果標簽值中只有ai= 1,其他值均為0。將標注后的所有樣本按照8∶1∶1的比例劃分為訓練集、驗證集和測試集。
本文建立的卷積神經網絡模型如圖3所示,包括3個卷積層、3 個池化層、2 個全連接層和Softmax 輸出層。輸入圖像為256×256×3 的彩色圖像,三個卷積層的核大小均為3×3,步長為1,通道數分別為16、32、32,填充方式均為“Same”,以便保持卷積前后圖像大小不變,激活函數采用Relu 函數。池化層的目的是通過下采樣減少經過卷積運算之后的數據量,本文網絡結構中的三個池化層均為2×2 的最大池化,輸入圖像經過上述三個卷積層和三次池化之后的輸出大小為32×32×32,經過第一個全連接層(Flatten)轉換為32768 的一維數據,再輸入神經元數目為64 的全連接層,輸出層采用Softmax作為激活函數,計算得到分屬4個級別的概率。網絡中各層輸出大小及所需的權重數目如表1所示。

圖3 卷積神經網絡模型Fig.3 Model of convolutional neural network

表1 卷積神經網絡模型各層參數Tab.1 Parameters of convolutional neural network
卷積神經網絡訓練的目的是根據訓練數據集不斷學習并調整權重參數,從而得到最優的權重值,訓練過程如圖4 所示,首先從訓練集中讀取一批樣本,作為上述網絡結構的輸入信號,經過網絡的前向運算計算預測結果,前向運算時所用的激活函數為Relu函數:f(x)=max(0,x),最后將模型計算的預測值轉換為分屬每一種類別的概率值,由于本文輸出類別共有4 類,因此采用Softmax 函數進行計算,Softmax 函數又稱為歸一化指數函數,它是二分類函數Sigmoid在多分類上的推廣,目的是將多分類的結果以概率的形式呈現,其計算方法如公式(1)所示,其中yk(k= 1,2,…,N) 為模型前向計算的預測值,pi為當前輸入,屬于第i種類別的輸出概率,N為類別數量。

圖4 網絡模型的訓練Fig.4 Training of network models

卷積神經網絡的輸出值與標簽值(真實值)之間存在誤差,神經網絡中不同的權重值將會產生不同的誤差,因此需要引入損失函數來衡量輸出值與標簽值之間的誤差,本文采用交叉熵損失函數,計算方法如公式(2)所示,其中p′i為第i類水果的理想概率值,pi為第i類水果的模型預測輸出概率值,每一輪的損失值為所有樣本損失值的平均值。

將誤差反向傳播用于調整網絡的權重值,尋找模型的最優解,即網絡的優化。常見的優化方法有梯度下降法、動量優化法、自適應學習率優化法,本文采用自適應學習率優化方法中的Adam優化,算法如下[8]:
(1)初始化時間步t=0,一階和二階矩變量s=0,r=0,初始參數為θ;
(2)從訓練集中讀取小批量樣本,設包含m個樣本{x(1),…,x(m)},對應目標為y(i);
(3)計算梯度g←
(4)t←t+ 1
(5)更新有偏一階和二階矩估計:

(7)計算更新:

其中,? 為學習步長,默認為0.001,ρ1和ρ2為矩估計的指數衰減速率,在區間[0,1)內,默認ρ1= 0.9,ρ2=0.999,δ是一個用于數值穩定的小常數,默認δ= 10-8。
本文實驗仿真基于Keras 接口,結合Tensorflow 為后端,以Python 為編程語言,每批數據為32 張隨機讀取的圖像,學習率為0.001,訓練輪數設為30 輪。表2所示為每經過5 輪訓練后訓練集的損失值和正確率以及驗證集的損失值和正確率變化過程。

表2 損失值與正確率Tab.2 Loss and accuracy
將測試數據集的樣本輸入到上述經過30 輪訓練后的模型,得到了整體93.78% 的正確率和91.91% 的召回率,為了進一步分析每一種蘋果級別的預測結果,表3 給出了預測結果的精確率、召回率和分類綜合指標F值。表3 中正確率反映了被預測為第i類樣本的數量中真實樣本(即本來就是第i類樣本)所占的比例,召回率反映了第i類樣本總量中被預測為第i類樣本所占的比例,而F值則是正確率和召回率的加權調和平均,即


表3 測試結果Tab.3 Result of test
從表3 可以看出,卷積神經網絡能夠有效地實現水果的自動分級,圖5 所示為從網絡上下載的一張蘋果圖像,經模型預測后顯示該圖像屬于一級蘋果的概率為0.9710,與人眼直觀判斷結果一致,說明了模型的有效性。

圖5 預測結果示意圖Fig.5 Schematic illustration of predited results
本文設計了一個基于卷積神經網絡的蘋果分級系統,采用Keras+Tensoflow 搭建卷積神經網絡模型,自建了一個小規模的蘋果分級數據集,經過一定的數據擴充后用于訓練神經網絡,經訓練后的模型在測試集上取得很好的測試效果,表明了卷積神經網絡利用多次的卷積運算和池化操作,能夠很好地學習到不同級別蘋果圖像的高層次特征,無需人工特征提取就能很好地完成蘋果的分級,有助于節約人工成本,促進水果銷售的自動化,也有利于無人水果超市的發展。本文將進一步拓展在多種類水果分級領域的研究,包括多種類水果分級數據集構建,面向數據集規模擴充的數據增強技術研究,多任務型深度卷積神經網絡模型參數自適應算法研究等。