祝詩平 卓佳鑫 黃 華,2 李光林
(1.西南大學工程技術學院,重慶400716;2.堪薩斯州立大學工程學院,曼哈頓KS 66502)
小麥是最重要的糧食作物之一[1],廣泛種植于世界各地,其產量和貿易量在近幾年不斷攀升。在流通過程中,外觀品質是影響小麥價格的重要因素之一。目前,針對小麥外觀品質的檢測主要分為高光譜檢測[2-3]和圖像檢測[4],兩種方法各具優勢。高光譜檢測時間長、消耗大,無法滿足實際檢測需求。在圖像檢測方面,研究人員通過線性判別模型、人工神經網絡、支持向量機等技術在小麥品種識別[5-9]、品質分級[10-11]、不完善粒識別[12]、病害識別[13]等方面進行了研究,識別準確率均在90%以上。但這些模型的實現環境較為嚴苛,首先,圖像數據的采集必須在統一固定的環境下進行;其次,以小麥的形態特征、顏色特征、紋理特征等作為模型的輸入數據,不同的特征數據需要不同的算法提取,計算過程較為繁雜。此類方法已不能滿足實際生產中小麥圖像檢測的需求。
近年來,以卷積神經網絡為代表的深度學習技術發展迅速,已在圖像識別領域得到廣泛應用[14]。相較于傳統的機器學習技術,卷積神經網絡增加了特征學習部分,可以通過組合低層特征形成更加抽象的高層特征,以發現數據的分布式特征表示,從而不再需要其他算法進行特征提取。在農業領域,研究者將卷積神經網絡用于諸多方面[15-21],研究表明,卷積神經網絡能夠提供更好的性能,優于傳統的機器學習技術[22]。
不少研究者將卷積神經網絡應用于小麥研究之中,張領先等[23]研發了基于卷積神經網絡的冬小麥麥穗檢測計數系統,系統對麥穗的識別準確率高達99%;HASAN 等[24]訓練了4 種R-CNN 模型,對田間小麥進行識別并估算其產量,準確率為88% ~94%。在針對小麥籽粒的不完善粒識別中,結合高光譜檢測和卷積神經網絡的研究[25-27]較多,而僅基于圖像檢測的研究較少。因此,本文采用LeNet-5、AlexNet、VGG-16 和ResNet-34 這4 種較為成熟的卷積神經網絡對小麥籽粒的完整性進行識別,并與支持向量機(Support vector machine,SVM)和反向傳播(Back propagation,BP)神經網絡進行對比,分析比較不同模型的性能,最后,基于檢測效果最優的模型設計小麥籽粒完整性圖像檢測系統。
選用由天津糧油批發交易市場提供的白硬麥作為試驗材料,其收獲時間為2014 年8 月,產地為山東,含水率為11.5%。按照國家標準[28]將這批小麥人工分為完整粒和破損粒兩類。
在自然光照條件下,以黑色絨布作為背景,將每批100 粒小麥按照10 ×10 的分布進行隨機擺放,采用華為手機(RNE-AL00 型,攝像頭1 600 萬像素)從20 ~25 cm 的高度垂直拍攝小麥樣本,完整粒和破損粒小麥分別采集3 500 粒,圖1 是部分完整粒和破損粒小麥樣本。
以Python 3.6 為腳本語言對小麥圖像進行預處理,共包含3 部分,如圖2 所示。首先將RGB 圖像轉換為灰度圖像,再通過閾值分割方法將灰度圖像轉換為二值圖像,小麥區域為白色,背景區域為黑色。計算每一個小麥區域的最小外接矩形的頂點坐標,根據該坐標在原始圖像中分割出每一粒小麥,從而得到單粒小麥RGB 圖像。

圖2 圖像預處理Fig.2 Image preprocessing
由于卷積神經網絡的輸入圖像一般為正方形,因此將單粒小麥圖像擴展為正方形,擴展像素點的R、G、B 值為(0,0,0),然后對其做旋轉處理,旋轉角度隨機,7 000 幅小麥圖像擴充為14 000 幅,建立小麥圖像數據庫,接著按照7∶3的比例,將9 800 幅小麥圖像作為訓練集,其余4 200 幅作為驗證集。為滿足卷積神經網絡的輸入圖像尺寸需求,將小麥圖像縮放為224 像素×224 像素或28 像素×28 像素,數據格式轉換為float 32,歸一化處理為

式中 pij——圖像數據中第i 行第j 列像素點的R、G、B 值
Pij——pij歸一化值
采用巴特沃斯高通濾波器對灰度圖像做圖像增強處理,然后轉換為二值圖像,計算小麥的8 個形態特征,分別為面積、周長、密度比、最小外接矩形的長軸長度和短軸長度、長寬比、橢圓離心率及等價直徑,建立小麥的特征數據庫,作為SVM 和BP 神經網絡的輸入數據,對8 個特征數據進行歸一化處理

卷積神經網絡是深度學習中應用最廣泛的網絡模型之一。在圖像分類領域,由于圖像的數據量非常大,如果使用傳統的神經網絡,會造成網絡參數量過多,降低網絡的擬合能力,而卷積神經網絡具有參數降維的功能,即通過卷積和池化操作減少網絡訓練時需要計算的參數數量,進而提高網絡的訓練速度。典型的卷積神經網絡主要包含卷積層、池化層和全連接層,如圖3 所示,該網絡是經過修改后適用于本試驗的AlexNet 網絡,網絡輸出層的神經元個數修改為2,分別為小麥籽粒完整和破損類別的概率。

圖3 AlexNet 網絡架構Fig.3 Architecture of AlexNet
采用4 種典型卷積神經網絡,分別為LeNet-5、AlexNet、VGG-16 以及ResNet-34,4 種網絡的輸出層神經元個數均修改為2 個。針對LeNet-5、AlexNet和VGG-16,在全連接層之后加入Dropout 層,每次迭代過程中,Dropout 層按一定比率將全連接層中的神經元隨機設置為0,即這部分神經元不參與訓練,有效防止訓練過擬合,從而提升網絡的擬合效果。
這4 種網絡均采用softmax 函數計算類別概率,以實現分類,計算式為

式中 yim——第i 個樣本屬于第m 類的預測概率
K——類別數
zim——第i 個樣本的輸出向量與第m 類參數向量的乘積
zik——第i 個樣本的輸出向量與第k 類參數向量的乘積
以分類交叉熵(Categorical cross entropy)作為損失函數,計算式為

式中 n——批尺寸 L——損失函數
采用SVM 和結構為8-15-2(輸入層8 個神經元,隱含層15 個神經元,輸出層2 個神經元)的BP神經網絡作為對比試驗模型,其輸入數據為小麥特征數據庫中的8 個形態特征數據。
使用準確率R 評價模型效果,計算式為

式中 nall——所有樣本數量
nright——正確識別的樣本數量
針對SVM,選擇高斯核函數作為核函數;針對BP 神經網絡和4 種卷積神經網絡,采用動量為0.5、學習率衰減值為1 ×10-6的隨機梯度下降法(SGD)作為優化算法,并設置3 組初始學習率(0.01、0.005、0.001);針 對LeNet-5、AlexNet 和VGG-16 設置3 組Dropout 值(0.4、0.5、0.6),共進行34 組試驗。訓練和驗證的批尺寸(batchsize)設為32,卷積神經網絡的迭代(epoch)次數設為100,BP 神經網絡的迭代次數設為200。
采用Tensorflow 為后端運行的Keras 深度學習框架,以Python 3.6 作為編程語言,在PyCharm 平臺搭建模型。Keras 是一個高級神經網絡API,提供多種神經網絡層、損失函數、優化器、激活函數和初始化方法等,支持快速構建任意的神經網絡架構,操作簡便,易于調試和擴展。
卷積神經網絡的參數量和訓練集龐大,僅通過CPU 執行訓練會耗費大量時間,因此需要GPU 加速訓練過程,然而性能優異的GPU 價格昂貴,增加了研發成本,為解決這一問題,本文選用提供免費GPU 的Google Colab 作為開發環境。Google Colab是Google 公司開發的一個免費的Jupyter 筆記本環境,該環境綁定了一個Ubuntu 虛擬機,提供雙核處理器Intel Xeon CPU,主頻2.20 GHz,運行內存12.72 GB,GPU 為NVIDIA Tesla K80。
將程序(.py 文件)和圖像數據(. npy 文件)上傳至谷歌云盤(Google Drive),在Google Colab 執行該程序,訓練網絡模型,輸出訓練結果并保存模型,以便后期測試。
各組訓練和驗證的結果如表1 所示,其中迭代次數指驗證集準確率達到穩定時的迭代次數,訓練時間指一次迭代所花費的時間,試驗1 ~4 的訓練時間包含圖像預處理步驟中計算形態特征的時間。試驗結果顯示,SVM 和BP 神經網絡的訓練速度普遍優于卷積神經網絡,但其準確率不高于93.61%,卷積神經網絡的準確率大多高于96%,優于SVM 和BP 神經網絡。
在4 種卷積神經網絡中,LeNet-5 的訓練速度最快,僅0.5 次/s,但其識別準確率較低,驗證集準確率最高為97.90%,因為其輸入圖像尺寸為28 像素×28 像素,導致圖像的部分特征丟失。AlexNet、VGG-16 和ResNet-34 的輸入圖像為224 像素×224像素,其訓練集準確率都不低于99.81%,其中AlexNet 的訓練速度最快,一次迭代用時為30 s,VGG-16 最慢,為162 s。ResNet-34 的驗證集準確率最高,為99.29%,但其訓練時間比AlexNet 長,為141 s。綜合觀察34 組試驗結果,試驗19 和試驗32訓練得到的AlexNet 和ResNet-34 具有更好的識別效果,這兩個模型在訓練集和驗證集上的準確率及損失值(loss)隨迭代次數變化的曲線如圖4 和圖5所示。從圖中可以看出,兩個模型的訓練集曲線都較為平滑,波動小,但AlexNet 的驗證集曲線的波動性比ResNet-34 大,尤其是在前15 次迭代中。兩者分別在迭代37 次和20 次后趨于穩定。
從試驗材料中另外采集2 574 個完整粒小麥和1 036 個破損粒小麥圖像作為測試集,分別計算兩個模型的混淆矩陣及識別性能。從表2 可見,兩種網絡模型對完整粒的識別準確率高于破損粒,均達到99%以上,ResNet-34 的平均識別準確率較高,為98.57%,但其對單粒小麥的識別時間為5 ms,約為AlexNet 識別速率的1/6。綜合考慮兩個模型的平均識別準確率及識別速率,選擇試驗19 的AlexNet作為識別小麥籽粒完整性的實際應用模型。
由本實驗室自主設計的小麥籽粒完整性圖像檢測系統包含檢測裝置和識別軟件兩部分,其中,檢測裝置如圖6 所示。小麥籽粒從入料口進入檢測裝置,經進料裝置落到傳送帶上,再經過分離板到達USB 工業攝像頭的拍攝范圍,最后落入物料盒。LED 燈帶提供背景光源,使圖像清晰。播種機使小麥籽粒小批量地進入傳送帶,避免全部籽粒一次性落入傳送帶。
分離板如圖7 所示,可使緊挨的兩粒或多粒小麥分隔開,增大小麥籽粒之間的間隙,避免籽粒緊挨導致后期圖像分割錯誤而降低識別準確率。
觸控計算機控制USB 工業攝像頭以2 s 的周期垂直拍攝傳送帶上的小麥籽粒,得到1 920 像素×1 080 像素的圖像并存儲,如圖8 所示,紅色方框內為目標圖像區域。
小麥籽粒完整性識別軟件對采集到的多幅目標圖像進行拼接,然后對拼接后的圖像進行邊緣檢測、圖像分割以及尺寸調整,得到尺寸為224 像素×224 像素的單粒小麥籽粒圖像,最后使用表1 中試驗19 訓練得到的AlexNet 網絡模型進行識別,并統計完整粒和破損粒的數量及所占比例。

表1 模型訓練與驗證的準確率Tab.1 Accuracy of model in training and validating

圖4 AlexNet(試驗19)的準確率與損失值曲線Fig.4 Accuracy and loss curves of AlexNet(No.19)

圖5 ResNet-34(試驗32)的準確率與損失值曲線Fig.5 Accuracy and loss curves of ResNet-34(No.32)

表2 AlexNet 和ResNet-34 在測試集的識別性能比較Tab.2 Recognition performance comparison of AlexNet and ResNet-34 on test datasets

圖6 小麥籽粒完整性圖像檢測裝置Fig.6 Wheat grain integrity detection device

圖7 分離板Fig.7 Separating plate

圖8 USB 工業攝像頭拍攝的小麥圖像Fig.8 Wheat image by USB industrial camera
利用上述系統對3 批小麥(100 粒完整粒、100 粒破損粒、70 粒完整粒+ 30 粒破損粒)進行3 組測試。測試結果顯示,3 批小麥的識別準確率分別為97%、96%、97%,平均識別準確率為96.67%,低于表2 中測試集的識別準確率,因為傳送帶的反光會導致分割出的部分單粒小麥圖像具有較亮的背景,對識別過程產生一定的干擾,除此之外,極少部分圖像中存在緊挨的兩粒小麥,模型對此類圖像無法做出正確識別。該系統操作簡單,識別效果較穩定,具有較好的魯棒性,采集100 粒小麥籽粒圖像的平均時間為21.2 s,圖像處理與識別的平均時間為5.1 s,總共用時為26.3 s,能夠滿足實際檢測需求。
(1)針對小麥籽粒完整性圖像識別的問題,將4種典型卷積神經網絡與傳統的SVM 和BP 神經網絡進行比較,結果表明,卷積神經網絡的識別準確率明顯優于后兩種傳統模型,驗證集準確率最高可達99.29%。根據網絡的結構復雜度,網絡的訓練時間具有顯著差異,其中AlexNet 網絡訓練一次時間為30 s,驗證集準確率最高為98.79%。盡管卷積神經網絡的訓練時間遠大于傳統的機器學習技術,但顯著提高了小麥籽粒完整性的識別準確度。
(2)選擇識別準確率最高的試驗19 的AlexNet和試驗32 的ResNet-34,進行識別性能比較,結果表明,試驗19 的AlexNet 識別速度更快,單粒小麥識別時間0.827 ms,識別準確率與ResNet-34 相近,前者為98.02%,后者為98.57%,因此選擇AlexNet 作為小麥籽粒完整性檢測系統的識別模型。
(3)基于AlexNet 模型設計了小麥籽粒完整性圖像檢測系統,對3 組100 粒小麥籽粒進行檢測,圖像采集、處理及識別共用時26.3 s,平均識別準確率為96.67%。