鄭義姚,鄭力新
(福建華僑大學工學院,泉州362000)
中國是一個人口大國,在這樣一個人口眾多的國家,糧食問題已經(jīng)成為一個更值得關(guān)注的問題,因此中國特別重視農(nóng)業(yè)生產(chǎn)。金針菇是現(xiàn)在最常見的一種菌類食品,好吃又有營養(yǎng)。此外,金針菇具有寒性、咸味,有益肝、益胃腸、增智、抗癌、抗癌的作用。因此,我國對金針菇的需求量在不斷增加,但據(jù)中國食用菌協(xié)會統(tǒng)計[1]:2017 年食用菌總產(chǎn)量3712 萬噸,2016 年超過3596.66 萬噸,增長3.21%。通過統(tǒng)計得出,前7 種菌類分別為:香菇(986.51 萬噸)、黑木耳(751.85 萬噸)、蠔菇(546.39 萬噸)、雙孢蘑菇(289.52 萬噸)、金針菇(247.92 萬噸),2017 年毛霉菌(168.64 萬噸)、杏菇(159.71 萬噸)產(chǎn)量較2016 年下降7.12%??梢钥闯?,在上述蘑菇分類中,金針菇的總產(chǎn)量排在第五位,并且有下降的趨勢。造成這種情況的緣由有兩個:一是栽培的產(chǎn)出率,二是人工分類效率低。在金針菇分類中,工人首先要根據(jù)工人自身的經(jīng)驗分析頭部和根部是否符合工廠的標準,然后進行分類,這需要處理大量的數(shù)據(jù)。因此,在分級階段,用機械操作代替人工分級將是金針菇生產(chǎn)的一大進步。
在對金針菇進行分類的過程中,工作人員首先分析金針菇的特性,然后判斷其是否符合要求。這樣的工作流程恰巧類似于當今發(fā)展迅速的深度學習。深度學習不同于傳統(tǒng)的方法,通過自動獲取大數(shù)據(jù)來反映數(shù)據(jù)差異的特點,其分層處理方法類似于人類的視覺機制。卷積神經(jīng)網(wǎng)絡(luò)是模擬人腦的工作機制[2]。2012 年,Hinton 團隊通過構(gòu)建CNN 網(wǎng)絡(luò)AlexNet 獲得ImageNet冠軍,該網(wǎng)絡(luò)結(jié)構(gòu)相對簡單,擅長小數(shù)據(jù)集[3]。然后,經(jīng)過幾代人的改進和創(chuàng)新,出現(xiàn)了ZFNet、VGGNet、GoogleNet 和ResNet 等優(yōu)秀的神經(jīng)網(wǎng)絡(luò),VGG-16[4]率先證明了神經(jīng)網(wǎng)絡(luò)的深度對大規(guī)模數(shù)據(jù)精度的影響,而后續(xù)的神經(jīng)網(wǎng)絡(luò)大多是基于VGG-16 來去除或添加其他層。ResNet 提出了一個新的模塊,稱為“殘差塊”[5],它將網(wǎng)絡(luò)的深度提升到了一個新的高度,并且在網(wǎng)絡(luò)層數(shù)的加深上沒有過度擬合。接著,出現(xiàn)了許多目標檢測模型,從R-CNN、Faster R-CNN、SSD、直到Y(jié)OLOv3、YOLOv4。
通過查詢發(fā)現(xiàn),Andreas Kamilaris 在《農(nóng)業(yè)的深度學習:一項調(diào)查》中發(fā)現(xiàn),深度學習在農(nóng)業(yè)中的研究中有40 多種,并取得了良好的效果。如Jihen Amara 等人用CNN[6]對香蕉葉實行分類,準確率達98.67%。Josef Haupt 使用ResNet-50 和2 個DenseNet201 網(wǎng)絡(luò)對大型植物進行分類[7],Inkyu Sa 通過深度神經(jīng)網(wǎng)絡(luò)實現(xiàn)了對水果的測試[8]。雖然CNN 在很多方面都做得很好,但本文對金針菇的研究還存在幾個難點:①金針菇屬于自然生長,形式多樣。一張金針菇圖像上可能存在幾十個金針菇頭,需要對金針菇頭部圖像進行合適的特征提取。②數(shù)據(jù)集的收集。數(shù)據(jù)集對最終結(jié)果至關(guān)重要,需要收集數(shù)據(jù)集,但沒有公開的金針菇數(shù)據(jù)集。本文基于深度學習的方法上,采用數(shù)據(jù)增強和遷移學習的方法來防止小數(shù)據(jù)集中可能出現(xiàn)過擬合的情況。在對圖像進行預處理時,對所有數(shù)據(jù)進行歸一化處理,以防止仿射變換的影響,減小幾何變換的影響,同時加快梯度下降來求解最優(yōu)解。
圖1 金針菇菇頭示意圖
金針菇工廠采用4096×2160 像素的工業(yè)相機拍攝金針菇的頭部,并在背景上添加一張黑色的卡紙以消除其他背景因素的影響,省去了后期圖像處理部分對背景影響的考慮。將采集好的數(shù)據(jù)集按8:2 的比例分成訓練集和測試集。如圖1 所示,金針菇菇頭大小差別較大,且水菇較多。
收集到的圖像尺寸為4096×2160,像素在0~255之間。對這些圖像進行歸一化處理,將像素范圍轉(zhuǎn)換為0-1 之間。采用max 和min 值的方法對圖像實現(xiàn)規(guī)范化,轉(zhuǎn)化的公式如(1)所示:
在公式中,像素Y 代表經(jīng)過變換后的像素,像素X代表原始像素值,像素M 和L 分別是樣本像素的最大值和最小值。這種分配的目的是將多維表達式轉(zhuǎn)換成無量綱,以避免不同物理意義和維數(shù)的輸入變量的不平等使用和大數(shù)據(jù)對小數(shù)據(jù)的覆蓋。
為了得到更好的模型,需要進行大量的訓練以獲得足夠的訓練參數(shù),從而提高模型的規(guī)范化程度。為此,本文采用數(shù)據(jù)增強[9],通過對訓練圖像進行隨機剪裁,得到4134 幅訓練圖像,并將其像素放大到256×256,以解決數(shù)據(jù)集不足導致的過擬合問題。
進行預處理并且打好標簽的數(shù)據(jù)集,分別放入YOLOv3[10]和YOLOv4[11]進行訓練,得到訓練好的模型,使用測試集在模型上進行測試,得到如表所示指標,可以看出YOLOv4 的準確率比YOLOv3 的準確率高2.1%,在檢測速度上快了0.3s,更適用于工業(yè)使用。YOLOv4 檢測的效果圖如圖2 所示,將大部分菇頭的都檢測出來,效果明顯。
表1 四個評價指標對比
圖2 檢測效果圖
如圖3 所示是根據(jù)檢測結(jié)果繪制的PR 圖,可以看出YOLOv4 在本數(shù)據(jù)集之下的檢測穩(wěn)定性和準確性要高于YOLOv4,也進一步證明了,YOLOv4 在金針菇頭部的檢測中的實用性。
圖3 YOLOv3和YOLOv4網(wǎng)絡(luò)Precision-Recall曲線
目前,將深度學習在應(yīng)用到農(nóng)產(chǎn)品中的實例較少,原因之一是大部分農(nóng)產(chǎn)品是在多種自然條件下生長的,因此很難提取出有效的特征。另一個原因是數(shù)據(jù)集很難去收集,目前可用于農(nóng)產(chǎn)品的數(shù)據(jù)集較少,大部分需要根據(jù)具體要求進行收集。本文根據(jù)對金針菇頭部的標定,發(fā)現(xiàn)在YOLOv3 網(wǎng)絡(luò)上檢測的精度和速度優(yōu)秀一些,通過這樣的方法,可以實現(xiàn)金針菇頭部的檢測,但由于對其他優(yōu)化算法的研究還不多,因此結(jié)果仍有很大的改進空間。