邱顯焱,郭士超,王俊杰
(湖南工業大學機械工程學院,湖南株洲 412007)
辣椒是茄科辣椒屬的重要蔬菜,內含眾多營養物質,具有藥用價值和食用價值,在我國廣泛種植[1]。作為人民必需的餐用調味品,常在市場中以干辣椒、辣椒粉等初級加工品的形式流通[2]。而干辣椒是指將新鮮紅辣椒經過人工脫水或自然晾曬等工藝過程而制成的辣椒制品,又稱作辣椒干、干制辣椒。但制作干辣椒時,特別是在自然晾曬干制過程中,辣椒皮和肉的紅色部分經常褪色,變白色和黃色,形成“花殼”、“白殼”、“花皮”干辣椒[3],花殼干辣椒果皮中的類胡蘿卜素的含量較正常紅辣椒顯著降低[4]。鑒于干辣椒的感官品質和商品價值受到嚴重影響,需要干辣椒品質分類,但目前對此分類,大多是靠效率低、消耗成本大的人工完成,急需要研制一種操作方便、分類快速、準確率高、大規模自動分選的干辣椒品質分選機器,將花白殼等品質不好的干辣椒挑選出來,利用什么方法在眾多的干辣椒當中將其選出是分選機器的關鍵。
近年來,計算機視覺技術在果蔬質量檢測方面應用很廣。計算機視覺系統一般由檢測箱、光源、CCD 攝像頭、圖像采集卡(幀捕獲器或數字化儀)、計算機硬件和軟件系統、控制機構等部分組成。電腦硬件和軟件系統相互作用,分析水果和蔬菜的外部品質圖像,給出了檢查對象的最終檢測信息,并最終控制整個檢測系統完成分級和分類任務[5]。張力超[6]提出一種基于計算機視覺的蘋果分類和分級研究方法,通過提取蘋果的外部特征,運用Support Vector Machine(SVM)和Convolution Neural Networks(CNN)方法進行對比,結果表明在有足夠的圖像數據下,CNN 方法在識別蘋果種類和單個蘋果外觀等級的準確率高于SVM 方法。文懷興等[7]提出基于改進深度殘差網絡的紅棗缺陷檢測分類方法,在RGB 彩色圖片中,因G 通道在紅棗的缺陷部分體現出紅棗的正常部位和缺陷部位的反差區別,所以以紅棗的G 分量作為殘差網絡的輸入,通過神經網絡的訓練與測試,此分類方法準確率為96.11%。朱幸輝等[8]在卷積神經網絡的基礎上,利用Single Shot MultiBox Detector(SSD)算法將Region Proposal 和分類統一在一起,針對西紅柿葉片病斑做出識別仿真,得出的Mean Average Precision(mAP)值為0.988。林雯[9]針對芒果外觀品質,提出一種基于計算機視覺和BP神經網絡的分類算法,選取芒果的小波特征、顏色特征、形狀特征、缺陷面積所占比進行提取,作為BP 神經網絡的輸入,實現的3 個等級分類,準確率達到93.3%。余游江等[10]針對新疆紅棗在加工過程中需對不同種類區分的問題,構建了Densenet 121、ResNet 50、VGG 16 三個種類的卷積神經網絡為基礎學習器,邏輯回歸為次級學習器的Stacking 集成學習模型,并進行不同學習器組合的模型對比,結果表明提出的集成模型準確率為92.38%。
對于辣椒的研究,鄭凱等[11]針對青椒質量品相問題,提出了利用卷積神經網絡方法對其識別分類,通過比較不同的卷積層和優化函數對其準確率的影響,分析出運用3 * 3 卷積核的三層CNN 網絡模型和Adaptive Moment Estimation(Adam)優化函數在測試分類的準確率最優,準確率達到97.60%。袁開放[12]針對鮮辣椒大小和病殘問題,提出基于機器視覺的分類方法,利用最小外接矩形算法識別辣椒的大小,準確率為95%,利用RGB 和HIS顏色模型對辣椒病殘進行識別并剔除次品。李碩[3]根據干辣椒外觀品質國家分級標準,基于機器視覺對干辣椒進行品質分級,對干辣椒圖像預處理后,利用最小外接矩形的長寬比鑒定干辣椒是否有柄,有柄為不合格,進一步基于顏色性狀差異區分合格干辣椒與不合格干辣椒,實驗分級準確率為92.15%。本文針對干辣椒外觀品質提出了新的分類方法,研究基于Transformer 模型進行干辣椒外觀品質分級,并進行同模型間訓練是否利用遷移學習對比和不同訓練模型的對比,結果表明:利用遷移學習的Shifted windows Transformer(Swin Transformer)模型準確率最高,最穩定。
本文收集的圖像來自于株洲市本地菜農所賣的干辣椒,當地人稱“辣椒王”。收購后干辣椒制備描述如表1所示,在原始辣椒中摻雜著外觀品相不一的干辣椒,需用人工把品質相同的干辣椒進行挑選出來,為做圖像數據集做準備。本文依據國家對于干辣椒的分級標準[13]和市場需要將其分為3 種干辣椒,即優質干辣椒、合格干辣椒、不合格干辣椒。其中不合格干辣椒品質已經破環,嚴重影響消費者的購買行為。
表1 干辣椒分級描述
本文共拍攝2 115張干辣椒,為提高模型的訓練量以及泛化能力,利用數據增強技術通過旋轉、鏡像方法擴增到6 345張圖片,此方法增強模型的魯棒性。數據分為訓練集4 445 張和測試集1 900 張,劃分比例為7∶3。其中訓練集優質為889張,合格為889張,不合格各小類均為889 張;測試集優質為380 張,合格為380 張,不合格各小類均為380 張。利用Python 將數據圖片像素統一改為224×224。
Swin Transformer 網絡起源于Transformer 模型,而Transformer 模型是谷歌在2017 年提出[14],起初針對于自然語言處理領域,利用自注意力機制代替傳統處理序列數據時采用的循環神經網絡,不僅實現了并行訓練,提升了訓練的效率,同時也在應用中取得不錯的結果。Swin Transformer 網絡是微軟在2021 年在ICCV 上發表文章[15]中提出,這是Transformer 模型在計算機視覺圖像分類方面一次大的發展。
該模型相比之前的VisionTransformer(ViT)[16]做出兩個改進:(1)引入卷積神經網絡常用的層次化構建方式構建層次化Transformer;(2)引入locality 思想,對無重合的windows 區域內進行自注意力機制計算,實際表現與ViT 模型相比,擁有出色的效果。整體結構如圖1所示,輸入224×224×3 尺寸的干辣椒圖像,在Patch Partition 階段,由4×4的滑動窗口將圖片劃分為56×56×48大小的patch。經過stage1階段,Linear Embedding對每個像素的channel 數據做線性變換,將向量的維度變成一個Transformer 可以接受的值,即將shape 為(56,56,48)變成(56,56,C),C為超參數,對于Swin-B 來說,C為128;接著進入Swin Transformer Block,在模塊中,為了減少計算量問題,引入Windows Muti-Head Self-Attention(W-MSA)模塊,為了解決窗口與窗口無法傳遞信息的問題,引入Shifted Windows Muti-Head Self-Attention(SW-MSA)模塊,W-MSA 和SW-MSA 依次進行,成對出現。在分類部分,依次通過Layer Norm 層、全局平均池化層(Global average pooling)、全連接層到分類標簽,維度1×5,對應于干辣椒5個分類類別。
圖1 Swin Transformer模型
激活函數是神經網絡的重要部分,線性神經網絡引入激活函數,會引入非線性,增強模型的學習能力。本文使用高斯誤差線性單元Gaussian Error Linear Unit(GELU),Dan Hendrycks 與Kevin Gimped 使用GELU 激活函數在MNIST和CIFAR-10/100數據集進行評估,準確性要比ELU 和RELU 激活函數高,至此可作為激活函數的可選方案之一。公式如下:
其中,Φ(x)指的x的高斯正態分布的累計分布,該式不能直接計算,近似逼近可表示為:
基于梯度下降法的各種改進算法是目前主流的優化方法,其最基本的思想是如果找到某函數的最小值,最好的方法是沿著負梯度方向查尋。公式如式(3)。在數據集上計算梯度進行參數更新,只要學習率足夠小,每次更新參數時總能使損失函數變小。
式中:x為參數向量;Ir為學習率;dx為梯度。
Adam 近似RMSProp 的動量版,加入了迭代衰減因子,采用指數衰減的方法,只對最近的歷史梯度信息進行累加。Adam 公式如下:t為迭代次數;Ir為學習率;gt為梯度;β1β2為衰減系數,一般用值{0.9,0.99,0.999},取β1= 0.9;β2= 0.999;ε為小常量,防止除數為0,一般10-8與10-4之間,取10-8;f(x)為參數x下的損失函數;初始化參數x0,t= 0,m0= 0(一階矩動量),v0=0(二階矩動量)。對公式(4)~(10)不斷重復,直到xt收斂。本文運用Adam優化方法。具體如下:
評價模型優劣指標包括準確率Acc(Accuracy)、精確率P(Precision)、召回率R(Recall)等。公式如下:
式中:TP為預測與實際均為正類的樣本數量;TN為預測與實際均為負類的樣本數量;FP為預測為正類但實際為負類的樣本數量;FN為預測為負類但實際為正類的樣本數量。
F1-Score 為精確率Precision 和召回率Recall 的調和值,取值范圍(0~1),對單個種類越大越可以表達模型的優秀。公式如下:
本模型對每個分類的F1-Score 取平均值得到MeanF1-Score。
本文針對干辣椒品相分為3 個等級,其中不合格又分為3 個類別,所以深度學習模型將對干辣椒分揀出5個類別。以Swin Transformer 和ViT 模型為基礎,采用隨機初始化學習方式和遷移學習方式在干辣椒數據集上訓練并對比;遷移學習所加載的預訓練權重在數據集ImageNet1000 訓練得到,除了全連接層的所有網絡進行凍結,保留遷移權重,僅對全連接層訓練。模型訓練100 輪,測試集預測的準確率曲線如圖2 和圖3 所示(Pre-Val Acc 為運用遷移學習的測試準確率,ValAcc 為未用遷移學習的測試準確率),不同情況下測試結果如表2所示。從圖中可以看出,采用遷移學習初始化模型比隨機初始化模型預測準確率起點更高,特征提取用時更短,且更快達到收斂,收斂性變得更好。這是因為Image 數據集與分類任務數據集具有相關性,即在Image訓練過的模型可以有效提取干辣椒圖像特征,分類效果會更好。表2 顯示同一模型運用遷移學習方式評估效果會更好,不同模型Swin Transformer 模型則比ViT 模型測試準確率更高,前者準確率達到95.26%,MesanF1-Score為95.26%。
圖2 Swin Transformer 測試準確率曲線
圖3 ViT測試準確率曲線
表2 不同網絡模型測試結果
云服務器實驗平臺參數設置如表3所示。
表3 云服務器實驗平臺參數設置
本文利用Transformer 模型在圖像分類上的優勢,通過改進將其應用到干辣椒分類任務,實驗結果達到較高的識別準確率,證明方法的有效性。實驗通過對比遷移學習初始化權重訓練與隨機初始化權重訓練,證明遷移學習方案可以縮短模型訓練時間,模型準確率曲線更快達到收斂,準確率更高,表現正遷移作用;對比改進的Swin Transformer 模型與ViT 模型,得出Swin Transformer模型特征提取更有效,準確率更高,更穩定,且運用遷移學習方式的Swin Transformer 模型測試準確率為95.26%,可作為辣椒分類算法參考。
本數據集的干辣椒圖像大部分取樣可為其他辣椒檢測或識別任務進一步擴充數據集,也可繼續優化該模型,并將該模型運用到其他果蔬分揀方面。