何進榮 石延新 劉 斌 何東健
(1.延安大學數學與計算機科學學院, 延安 716000; 2.農業農村部農業物聯網重點實驗室, 陜西楊凌 712100;3.陜西省農業信息感知與智能服務重點實驗室, 陜西楊凌 712100)
蘋果分級分選是蘋果產業后整理的關鍵環節,通過蘋果分級包裝、分級貯藏、分級定價和銷售,可解決蘋果優質不優價的難題,進而延伸產業鏈、提升價值鏈,促進蘋果產業轉型升級,讓果農在蘋果全產業鏈上獲益。早期國內普遍采用人工分級,人工分級方法勞動強度大、效率低,且受主觀影響[1]。隨著計算機技術及其在相關領域的發展,越來越多的學者將計算機視覺技術應用于農產品無損檢測中,計算機視覺技術具有精度高、效率高、無需接觸等優點,已成為水果無損檢測的主要方法[2-4]。
現有的蘋果外部品質分級方法有基于蘋果單一外部特征的方法,如顏色、大小、形狀、紋理和可視化缺陷等,也有基于深度學習的蘋果外觀品質分級方法。廖崴等[5]建立了綠色蘋果隨機森林識別模型,對綠色蘋果辨識準確率達到了90%。李蕙蕙等[6]對蘋果表面紋理進行研究,探索紋理與甜度的相關性。趙娟等[7]對蘋果圖像進行提取與分割,采用計算機視覺技術提取蘋果缺陷并與人工辨識結果進行比較,其缺陷檢測準確率達到了92.5%。李龍等[8]通過紋理和梯度特征對蘋果傷痕進行識別,80個樣本的正確率為95%。這些手工提取蘋果單一外部特征的方法,其分級準確率有限,無法全面客觀地對蘋果外部品質進行直觀評價。薛勇等[9]利用GoogLeNet深度遷移模型對蘋果缺陷進行檢測,對測試樣本的識別準確率為91.91%。王丹丹等[10]提出基于區域的全卷積網絡的蘋果目標識別方法,識別準確率為95.1%。張力超等[11]將改進后的LeNet-5用于蘋果種類識別,準確率可達93.7%。武星等[12]使用YOLO v3模型對蘋果進行檢測,平均精度為94.69%。
為提升蘋果無損分級方法的準確率和穩定性,本文提出一種基于深度學習的延安蘋果分級方法。提取傳統卷積神經網絡的卷積塊作為蘋果圖像的特征提取器,對學習到的特征圖分別進行全局最大池化和全局平均池化,將池化后的2個一維向量進行拼接,并輸入以全連接層為主的分類器進行分類。
試驗材料為陜西省延安市2019年11月本地產的富士蘋果,在白天光照充足的環境下使用小米8手機自帶相機拍攝蘋果圖像,攝像頭為索尼IMX363型(1 200萬像素),在延安市超市及周邊果園地區各拍攝3 000幅,拍攝部位包含蘋果頂部、側面以及底面。保證數據來源多樣且分布區域廣,符合真實場景,共采集15 000個蘋果,得到15 000幅圖像作為初始數據集,根據表1中的各項指標[13]將采集到的蘋果圖像分為A、B、C、D、E共5級,每級包含3 000幅圖像。采集到的數據集存在大量噪聲干擾,包含蘋果位于圖像的邊緣位置、圖像中有其他物體干擾或1幅圖像中有多個蘋果。對圖像中占比最大的蘋果進行級別標注。蘋果圖像在采集時受到背景、光照等因素影響,對蘋果外觀分級產生一定的干擾。

表1 蘋果分級標準
15 000幅原始蘋果圖像的30%作為測試樣本、20%作為驗證樣本評價模型訓練狀況,其余7 500幅圖像經數據增強后得到15 000幅圖像作為訓練集,每個數據集中各級別圖像數量相同。
試驗平臺由計算機硬件和開發平臺兩部分組成。計算機配置為英特爾酷睿I7-8750H CPU,16 GB內存,GTX1060顯卡。開發平臺為Windows 10操作系統上的Keras深度學習框架,編程語言為Python。
對采集到的延安蘋果圖像進行數據預處理,預處理完成后的圖像數據輸入到特征提取器中進行學習,使用分類器對學習到的特征圖進行分類并得到分級結果。采用驗證集上的分級準確率曲線、損失函數值曲線以及測試集上的分級準確率和F1作為模型性能的度量標準。
1.2.1數據預處理
深度學習屬于監督學習的范疇,相比傳統計算機視覺方法,可通過數據驅動使模型自動學習特征,省去人工尋找特征的步驟,深度網絡通過數據學習到表達能力更強的特征。因此需要大量樣本訓練神經網絡模型,故對現有圖像進行數據增強成為模型訓練中較為關鍵的一步[14]。擴充數據集可以提高模型的泛化能力,降低過擬合的風險。數據增強采用傳統數字圖像處理方法,具體步驟為:對現有圖像在70°角范圍內旋轉、垂直和水平移動20%、放縮80%~120%、垂直和水平翻轉和沿逆時針方向旋轉20°剪切變換,所有增強方法均以相同的概率隨機進行。將增強完的數據進行規范化得到224像素×224像素的輸入圖像,對5個級別的蘋果同時進行數據增強保證輸入數據保持不變。每一輪數據讀入顯存時,框架會生成32幅增強后的圖像,共64幅圖像進行當前輪的訓練,確保參與訓練的圖像總數為15 000幅。部分增強后的圖像如圖1所示,由圖1可知,完成數據增強后,蘋果的大小和角度等方面發生了明顯變化。本文采用基于像素幾何變換的圖像數據增強方法,在擴充圖像數量的同時,提升深度學習模型的魯棒性。首先,幾何變換不會改變圖像內容,從而保持了圖像場景的真實性;其次,圖像樣本個數的增多可防止深度學習模型過擬合,剪切、旋轉等幾何變換使得模型對圖像拍攝角度具有一定的不變性。因此,這種基于像素幾何變換的圖像數據增強方法并不是單純以復制的形式增加樣本個數,而是增加了圖像數據空間的抽樣覆蓋度,對提升模型的準確率具有重要意義。
1.2.2單模型
首先對VGG16[15]、ResNet50[16]、Inception_V3[17]、DenseNet121[18]、Xception[19]共5種經典卷積神經網絡進行比較。
圖像特征可以根據復雜度和表示能力粗略地分為高、中、低3種,一般越復雜的特征有越強的表征能力。在深度網絡中,各個特征經過線性、非線性的綜合計算,越深的網絡能夠輸出表示能力越強的特征。VGG16的出現引發了卷積神經網絡深度的大幅增加。VGG16采用5個卷積塊提取圖像特征,卷積后使用池化層降低參數量并與下一個卷積塊連接。最后使用全連接層加激活層進行分類,網絡結構如圖2所示。
ResNet解決了VGG16中深度增加帶來的梯度消失和網絡退化的問題。隨著層數的增多,在網絡中反向傳播的梯度會隨著連乘變得不穩定。其次,隨著深度的增加,網絡性能下降,深度網絡反向梯度較難傳導。ResNet50解決了這兩個問題,ResNet的思想是恒等映射即注重學習殘差而非誤差。殘差模塊如圖3所示。
Inception_V3豐富了VGG16中卷積塊的功能,主要以高和寬逐漸減小為主,輸出特征圖的深度隨著網絡層數的增加而增加。減小高和寬有助于減小計算量,而特征圖深度的增加則使每層輸出的可用特征數量增多。Inception_V3引入Inception模塊,采用了分支結構。采用多尺度的卷積核并將大卷積核分解為多個小卷積核,使用了卷積池化并行結構,最終的拼接可使不同尺度特征融合。Inception模塊如圖4所示。
DenseNet121是在ResNet的基礎上實現密集連接機制。構建每層到其他層的連接,即每層都會接受前面所有層輸出的特征圖作為其輸入,并且其輸出的特征圖是后續所有卷積層的輸入。DenseNet121相比傳統卷積神經網絡需要更少的參數,達到特征重用的效果。在參數效率更高的同時,通過提升網絡的信息流動和梯度使訓練神經網絡更加容易,密集連接具有一定的正則化效果,緩解了模型過擬合并減少了特征冗余。Dense模塊結構如圖5所示。
Xception是基于Inception_V3并將Inception模塊進行簡化提出的深度可分離卷積方法。首先對每個通道獨立進行跨空間的卷積,接著使用跨通道的1×1卷積來映射跨通道的關系,大量1×1卷積核可以減少參數量。修改后的Inception模塊如圖6所示。
1.2.3多卷積神經網絡融合
DXNet模型由數據預處理、特征提取器和分類器3部分組成。采用2個卷積塊提取圖像特征,將網絡學習到的特征圖進行匯總,即將2個特征張量按照維度進行拼接,拼接得到的一維向量輸入分類器進行分類后輸出結果。DXNet模型圖像分級過程如圖7所示。
利用數據增強方法對圖像數據進行增強,并輸入到DenseNet121模型和Xception模型中。采用2個網絡的卷積層對蘋果圖像進行學習,將訓練后得到的1 024×7×7特征圖和2 048×7×7特征圖分別進行全局平均池化和全局最大池化替代傳統的全連接方式。全局平均池化將最后一個卷積層輸出的每幅特征圖進行全局的均值池化,即計算所有像素點的平均值。形成一個特征點后將這些特征點組成最后的特征向量,全局最大池化則計算每幅特征圖中所有像素點的最大值。故1 024幅特征圖和2 048幅特征圖池化后可分別得到1 024、2 048個數據點,數據點連接后可分別得到長度為1 024和2 048的一維特征向量。全局平均池化可以使參數量大幅下降[20],減小網絡規模的同時降低特征提取中鄰域大小受限造成的估計值方差偏大的問題。
特征提取完成后,2個特征向量輸入到分類器中。Concatenate層作為分類器的頂部,可產生特征聯合的效果。將兩個卷積特征網絡提取到的特征信息進行融合,圖像自身的特征增加了,而每一特征下的信息未增加,即根據向量的維度將2個一維特征向量拼接,拼接后得到長度為3 072的一維向量,并將此向量輸入到第1個全連接層中。第1個全連接層的節點個數設置為1 024個,并且激活函數采用ReLU。ReLU可使網絡產生一定的稀疏性,并且減少了參數的相互依存關系,緩解了過擬合問題的發生[21]。此全連接層采用L2正則化,進一步增加參數的稀疏性進而降低模型過擬合的風險。
然后連接一個批歸一化層,批歸一化層在每個批次上將前一層的激活值重新標準化,即確保前面全連接層輸出的結果標準差接近1,平均值接近0,在深度神經網絡訓練過程中使得每層神經網絡的輸入盡可能保持相同的分布。可以避免梯度消失的問題,加快模型的訓練速度,提高模型的泛化能力[22]。
將歸一化全連接層參數輸入到包含5個節點的全連接層,設置Softmax函數為多分類任務的激活函數,輸出每個類別對應的分級結果。Softmax函數的計算公式為
(1)
式中si——圖像為第i個級別的概率
ei——圖像為第i個級別的上層函數值
j——級別數
將測試集輸入到訓練好的融合模型中進行分級。為確保測試集圖像的可信度,測試集不再進行數據增強,只將需要分級的圖像進行歸一化,將像素值調整為0~1內的浮點數,即模型引入了非線性元素,加快神經網絡的推理速度。分級后得到的最終結果與單一模型得到的最終結果進行比較并進行分析。DXNet網絡結構如圖8所示。
融合多種卷積網絡模型來提升識別準確率和穩定性的優勢包括:
(1)不同于傳統模型采用全局最大池化或傳統全連接方式,DXNet的全局平均池化操作針對輸入的空間變化可表現出較強的魯棒性,可有效解決數據集中出現的各類噪聲問題。同時DXNet包含全局最大池化,可以較好地保留紋理特征從而提升分級精度。
(2)多個不同尺寸的卷積核可以根據蘋果尺寸提取不同尺度的特征,并且適當增加卷積核個數可使神經網絡提取到更底層的紋理特征,從而提升分類精度。
(3)多個模型可提升網絡整體的穩定性,針對不同的輸入也可保持較好的性能。
1.2.4損失函數
選擇交叉熵損失函數作為模型的損失函數進行優化求解。交叉熵用來評估當前訓練得到的概率分布與真實分布的差異情況,越小越好。交叉熵損失函數計算公式為
(2)
式中Loss——交叉熵損失函數
yj——真實等級
aj——Softmax函數值
1.2.5模型評價指標
使用模型在驗證集和測試集上的分級準確率(Accuracy)和損失函數值(Loss)作為評價模型訓練情況的指標。記錄模型在各類別上的F1值,來衡量模型的精確度,F1值同時兼顧了分類模型的精確率和召回率,是精確率和召回率的一種調和平均[23]。由于試驗為五分類試驗,將五分類的評價拆分成5個二分類的評價,依次將每個類別看作是正類,其余類別看作是負類,于是可以在每個類別上計算F1值,5個F1值的平均值作為所有類的F1值,用于評價模型在各類別上的分類性能。
2.1.1超參數選取
批尺寸設置為32,即每一輪迭代輸入32幅圖像,取批尺寸為2的冪能夠充分利用顯卡的并行計算能力,若設置為64或128等較大數值,會導致模型收斂到最優解時間過長且效率低;若設置為8或16等較小數值,則訓練過程曲線會產生振蕩波動。為保證驗證集和測試集數據的真實性,驗證集和測試集數據不進行數據增強,只對訓練集進行數據增強。學習率作為監督學習和深度學習中重要的超參數,決定損失函數能否收斂到最小值以及何時收斂到最小值。合適的學習率能夠使損失函數在合適的時間內收斂到最小值。模型優化中學習率設置為0.001,編譯器設置為RMSprop,其采用加權平均方式計算梯度,避免某一方向梯度下降過快或過慢即減弱擺動幅度過大的現象,同時自適應學習率,接近最優解時衰減學習率。試驗進行50輪迭代。RMSprop的計算方法為
∑Δw=β∑Δw+(1-β)Δ2w
(3)
式中β——衰減系數 Δw——梯度
2.1.2驗證集試驗結果
試驗為單變量試驗,使用完全一致的數據集和完全一致的超參數在同樣的環境下運行。模型訓練完成后對驗證集和測試集的圖像進行分級,對比不同模型的最終結果。
隨著迭代次數的增大,各模型的分級準確率整體呈上升趨勢。在迭代30輪之后,除VGG16外均保持在90%以上且不再發生顯著變化。DXNet具有較好的性能,準確率曲線在迭代過程中表現穩定。各模型準確率曲線如圖9所示。隨著迭代次數的增大,各模型在驗證集上的損失函數值整體呈下降趨勢。DenseNet121隨著迭代次數的增加,損失值曲線產生振蕩波動。而DXNet自第5輪起,損失值不再發生明顯變化,維持在較低值的同時表現穩定,未發生明顯過擬合情況。各模型損失值曲線如圖10所示。
2.1.3測試集試驗結果
通過模型在測試集上的表現來證明模型的泛化能力與魯棒性,試驗中使用預先劃分好的測試集對模型進行評估。DXNet的準確率為97.84%,損失值為0.055 9,準確率高出其他模型的同時具有較低的損失值,結果較好,表現出了較好的泛化能力與較強的魯棒性。測試集試驗結果如表2所示。

表2 不同模型在測試集上的試驗結果
各模型在5個類別蘋果圖像上的F1值如表3所示。融合模型在每個類別的分級中都表現較好,達到了較高的F1值,表明DXNet的精確度和召回率都較高。

表3 各模型在5個類別蘋果圖像上的F1值
網絡需要優化的參數量與網絡深度是影響網絡整體效率的主要因素。通過對比各模型需要優化的參數、網絡拓撲結構中的層數、模型迭代一輪需要的時間以及測試集完成分級需要的時間,比較融合模型與經典卷積神經網絡的效率。DXNet需要優化的參數以及網絡層數較多。訓練一輪的時間較長,這是由于參數在2個卷積塊之間傳遞導致的。但DXNet完成測試集分級時間與其他表現較好的模型相比仍在可接受范圍內,時間控制在兩位數,效果較好且滿足實際需求。DenseNet121效率高于DXNet,但DenseNet121的精確率低于DXNet,且易產生震蕩,魯棒性較差。各模型效率對比如表4所示。

表4 各模型效率對比
針對富士蘋果后處理中的外部品質分級問題,本文綜合考慮影響蘋果外部品質的多種指標,提出基于深度學習的蘋果外觀分級方法,該方法可提取出更加底層的紋理特征,且穩定性及準確率均有顯著提升,端到端的建模策略可融入人工評分的先驗知識,顯著提高了蘋果外部品質分級精度。在對比分析經典卷積神經網絡模型結構基礎上,提取網絡結構中的有效模塊進行組合設計,對經典卷積神經網絡模型進行改進。試驗結果表明,DXNet在測試集上的準確率達到97.84%,分級效果較好,且魯棒性強,滿足智能選果生產線的應用需求。