?

基于YOLO-FFD的水果品種和新鮮度識別方法

2024-01-29 11:00陳良艷劉衛華賴華清
食品與機械 2024年1期
關鍵詞:新鮮度輕量化水果

鄢 紫 陳良艷 劉衛華 賴華清 葉 勝

(武漢輕工大學電氣與電子工程學院,湖北 武漢 430023)

水果品質管理問題涉及到人們身體健康和經濟活動,因此對水果的檢測和新鮮度分揀變得非常重要。目前,中國水果分揀主要依賴于人工操作,采用計算機算法進行自動化分級是發展趨勢。對水果的檢測和新鮮度分級主要有傳統機器學習方法以及深度學習方法。

目前大多數研究都圍繞水果識別或多品種分類展開[1-3],傳統的計算機視覺方法解決水果新鮮度分級問題大多通過K-近鄰(KNN)、支持向量機(SVM)、人工神經網絡(ANN)等機器學習方法建立模型。劉禾等[4]利用人工神經網絡來分析檢測蘋果體形并進行分類,達到了80%的識別率。Semary等[5]使用支持向量機和主成分分析(PCA)從HSV和RGB顏色空間的紋理和顏色特征中檢測番茄樣本表面缺陷,達到了92%的準確率。Moallem等[6]使用支持向量機、人工神經網絡和K-近鄰3種機器學習技術分別檢測蘋果的腐爛或感染部分,結果顯示使用SVM分類器的評分結果最高,為92.5%。以上傳統機器學習方法在檢測果蔬等產品的新鮮度方面是有效的,但是這些模型主要基于手工特征提取方法,耗時而且依賴于所研究的對象類型,具有局限性。

基于深度學習的方法近年來在農業領域也得到了更廣泛的應用?;谏疃葘W習的模型可以自動提取相關特征,無需人工干預。Suharjito等[7]在MobileNetV1的基礎上基于相應的標準將油棕分成6個等級,達到了81.1%的精度。Gai等[8]基于YOLOv4網絡引入DenseNet結構檢測不同成熟度櫻桃果實的位置,準確率達到了94.7%。Chen等[9]利用YOLOv5s先識別柑橘再結合該目標的顯著性圖輸送到ResNet34網絡中確定果實成熟度等級,最終成熟度檢測準確率達到了95.07%。Ananthanarayana等[10]提出了一種利用SSD網絡和MobileNetV2網絡進行水果新鮮度分類和檢測的方法,所提出的方法在圖像分類和目標檢測任務中的準確率分別達到97%和62%。盡管上述研究采用深度學習的方法在一定程度上有效解決了水果新鮮度分類的問題,但這些模型大多數都是僅針對單一品種,泛化能力不高,背景單一忽略真實場景下因遮擋重疊因素造成的識別困難,抗噪能力弱。

針對日常復雜場景下,識別多種水果不同新鮮度級別的需求,克服密集場景、遮擋障礙等困難,同時為了便于模型部署在移動端設備和滿足實時檢測任務的速度和精度要求,網絡結構應輕量化。研究擬提出一種水果新鮮度檢測算法YOLO-FFD,設計一種基于深度可分離卷積的輕量化模塊LightweightC3作為主干網絡的基本單元,并引入GSConv和大核卷積塊EnhancedC3改進特征融合網絡,以期為實現日常場景下水果品種及新鮮度識別的精度和速度要求。

1 水果品種和新鮮度識別算法

1.1 YOLO-FFD模型結構

YOLO-FFD模型結構如圖1所示,其以YOLOv5n為基本框架做了三方面的改動。

圖1 YOLO-FFD模型結構圖

(1) 在特征提取網絡中提出LightweightC3模塊作為主干網絡的基本構建模塊,對模型進行輕量化,減少參數量。

(2) 設計EnhancedC3模塊在模型的特征融合部分取代原有的C3模塊,充分利用特征信息,提高模型的特征表達能力,提高檢測精度。

(3) 替換頸部網絡中的普通卷積為GSConv,進一步壓縮模型參數量。

1.2 特征提取網絡的改進

1.2.1 基本單元 一階段目標檢測算法YOLOv5具有運行速度快、檢測效果好的優點。該網絡由輸入端(Input)、主干網絡(Backbone)、頸部網絡(Neck)和檢測端(Head) 四部分組成。目前包含有5個不同版本,即YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x。其中YOLOv5n網絡的深度和寬度最小,而其他網絡則在其基礎上加深和加寬。因此,選用YOLOv5n為基礎框架。

原始YOLOv5n的主干網絡采用普通卷積構成的C3模塊進行特征提取,受MobileNet的啟發,使用深度可分離卷積取代普通卷積,把對輸入進行的濾波組合的連續步驟分解為兩步,降低計算量和模型大小,減少圖像處理所需的內存,并加快目標的檢測速度。因此,采用輕量級的LightweightC3(LC3)模塊作為原始YOLOv5n的主干網絡的基本單元。其結構如圖2所示,將輸入的特征圖分為兩個分支,其中一個分支進行普通卷積后再經過一個由普通卷積和深度可分離卷積組成的殘差結構,與另一個經過普通卷積的分支的結果進行Concat操作,最后經過一個1×1普通卷積后得到輸出的特征圖。

圖2 LightweightC3模塊

深度可分離卷積是由分組卷積和點卷積兩個卷積組成,如圖3所示,首先由分組卷積對輸入特征圖的每個通道分別使用一個卷積核進行卷積,然后將卷積核的輸出進行拼接得到輸出。接著由逐點卷積對分組卷積輸出的特征圖進行通道融合得到最后的輸出特征圖。假設分別使用k×k大小的普通卷積和k×k大小的深度可分離卷積對尺寸大小為Hin×Win×M的輸入特征圖進行運算,最終得到大小為Hout×Wout×N的輸出特征圖,那么普通卷積的計算量QSC如式(1)所示,深度可分離卷積的計算量QDWC如式(2)所示,深度可分離卷積的計算量與普通卷積計算量的比值如式(3)所示。

圖3 深度可分離卷積

QSC=k2×Hout×Wout×M×N,

(1)

QDWC=k2×Hout×Wout×M+M×N×Hout×Wout,

(2)

(3)

式中:

QSC——普通卷積的計算量;

QDWC——深度可分離卷積的計算量;

Hin、Win、M——輸入特征圖的長、寬以及通道數;

Hout、Wout、N——輸出特征圖的長、寬以及通道數;

k——卷積核的大小。

1.2.2 激活函數 由于各品種水果的種內相似度和種間相似度都相對較高,因此在LightweightC3模塊中采用GELU激活函數(gaussian error linear unit,高斯誤差線性單元),以提高模型的泛化能力。GELU激活函數結合了dropout策略和ReLU函數丟棄不重要的激活信息的共性。dropout按照指定的概率值對輸入神經元隨機乘以0,ReLU則按照輸入值的正負對輸入神經元乘以0或1。而GELU激活函數就是將神經元輸入乘以0或1的概率Φ(x)與神經元輸入x本身結合起來,當x變大,Φ(x)隨之變大,x越容易被保留,當x變小,Φ(x)也隨之變小,x越容易被丟棄。這樣操作既保留了概率性也提高了對于神經元輸入值本身的依賴性。GELU激活函數的數學表達式如式(4)所示。

(4)

式中:

Φ(x)——x的高斯正態分布的累積分布。

1.3 特征融合網絡的改進

VGG的出現使得大核卷積逐漸被淘汰,雖然大核卷積帶來的大的感受野獲得了豐富的特征信息,但隨之暴漲的計算量使得其成本是昂貴的,然而最近的研究[11-12]發現通過應用深度可分離卷積可以改善這一情況,在不增加太多參數的情況下有效擴大模型的感受野。因此為了增強網絡的特征提取能力,在模型的特征融合部分針對原有的C3模塊進行改進,設計了一種由大核深度分離卷積構成EnhancedC3(EC3)模塊,如圖4所示,它是由一個3×3的普通卷積和一個5×5的深度可分離卷積取代原始的C3模塊中瓶頸層中的一個1×1的普通卷積和一個3×3的普通卷積,以增加有效感受野,利于對于密集目標的檢測任務場景。

圖4 EnhancedC3模塊

當特征映射到達模型的頸部時,特征的通道尺度達到最大值,寬度和高度達到最小值,因此在此處使用GSConv[13]可以減少冗余信息,處理連接的特征映射,減少推理時間和降低檢測的計算復雜度,進一步對模型進行精簡。GSConv (Ghost-shuffle convolution)是由普通卷積和深度可分離卷積拼接組成的卷積。如圖5所示,對輸入的特征圖進行卷積后通過深度可分離卷積得到另一個特征張量。根據通道數將兩個特征張量連接起來。最后,利用通道混洗操作(shuffle)將生成的信息滲透到特征張量的各個部分。通道混洗操作是一種均勻混合策略,這種方法可以在不增加計算量的情況下完成通道間的信息融合。經過混洗操作使來自普通卷積的信息完全混合到深度可分離卷積的輸出中,在不同的通道上均勻地交換本地特征信息,實現通道之間信息的流通。

圖5 GSConv結構圖

2 試驗與結果分析

2.1 試驗環境及數據集

試驗環境的處理器型號為Intel(R) Core(TM) i9-12900K CPU@3.20 GHz,內存為128 GB,顯卡型號為NVIDIA GeForce RTX 3090(24 G顯存),開發語言使用Python 3.8.13,深度學習框架為Pytorch 1.11.0,CUDA 11.3,CUDNN 8.2.0。

由于水果目標檢測領域缺乏可供研究的完善的開源數據集,數據集采用kaggle網站開源圖片以及百度圖庫網絡爬蟲所得圖片構建??紤]到水果種類繁多且根據地域分布,數據集中選取具有代表性的3種常見水果蘋果、香蕉和柑橘,圖片標簽分為六類,分別是新鮮蘋果(fresh_apple)、不新鮮蘋果(stale_apple)、新鮮香蕉(fresh_banana)、不新鮮香蕉(stale_banana)、新鮮柑橘(fresh_orange)以及不新鮮柑橘(stale_orange)。為了避免數據集中圖片有效信息不充足對于模型訓練的影響,也為了更貼合實際生活場景中水果檢測的環境,該數據集中既包含實驗室中單調背景下拍攝的單一水果圖片,也包括日常生活場景下的同品種多數量水果和多品種的圖片。數據集共包括15 372張圖片,其中含蘋果5 496張、香蕉5 170張、柑橘4 261張以及多品種水果圖片445張,按照7∶3的比例將其劃分為訓練集和測試集。

2.2 網絡訓練與評價指標

選用平均精度均值(mAP)、參數量、計算量和每秒處理幀數(FPS)作為模型的評價指標。mAP是衡量模型對各個類別整體檢測效果的常用指標,是所有類別平均精度(AP)的平均值,而AP是以召回率(R)為橫坐標,精度(P)為縱坐標的PR曲線下的面積,模型的召回率是預測正確結果在所有正樣本中的比例,即“查全率”,精度是模型預測的所有結果中,預測正確的比例,即“查準率”。參數量是模型的所有參數的數量,計算量是模型的總浮點運算次數,這兩者都是用來反映模型的輕量化程度。FPS是模型每秒處理的幀數,FPS越大則說明模型處理圖片的速度越快,實時性越好。具體的計算公式:

(5)

(6)

(7)

(8)

式中:

P——模型所有結果中預測正確的比例,%;

TP——檢測為正樣本的正樣本(真實正樣本);

FP——檢測為正樣本的負樣本(虛假正樣本);

FN——檢測為負樣本的正樣本(虛假負樣本);

R——模型正樣本中預測正確的比例,%;

AP——平均精度均值,%;

mAP——所有類別的平均精度的均值,%;

c——類別數;

AP,i——第i個類別的AP值。

圖6展示了訓練過程中損失值下降過程。隨著訓練次數的遞增,模型在前25輪次急速下降,迭代至75輪時趨于平緩,最終穩定在0.015附近。兩組數據分別是采用SiLU和GELU作為主干網絡激活函數時的損失變化曲線。由此可得,在相同輪次下,采用GELU時的損失值更小,它提高了模型損失值下降的速度,使模型更快收斂。

圖6 損失下降曲線圖

2.3 試驗結果及分析

2.3.1 輕量化試驗 YOLOv5雖然檢測精度高,運行速度快,但它復雜的網絡結構和較大的參數量使其不易在移動端設備上部署。為了降低模型參數量和運算量,現將YOLOv5模型的主干特征提取網絡替換為輕量級網絡。為了進行正確有效的模型輕量化,將研究提出的YOLO-FFD模型與目前已有的經典輕量級網絡MobileNetV3[14]、ShuffleNetV2[15]、GhostNet[16]、PP-LCNet,替換原YOLOv5中的主干網絡CSPDarknet進行對比試驗。

如表1所示,采用輕量級主干網絡后,其模型計算量基本都得到了大幅度減少。5組試驗中,ShuffleNetV2作為主干網絡時雖然得到了較好的輕量化表現,但精度損失較大;MobileNetV3和PP-LCNet精度稍微高一些但比原始網絡仍有損失;GhostNet作為主干網絡損失的精度最少但輕量化程度也是最低的。以上模型都因為輕量化處理損失了檢測精度,而使用LightweightC3模塊替換主干網絡中的C3模塊時,提高檢測速度的同時并未帶來性能損失,不僅模型計算量降低了26%,精度還提高了0.79%,FPS也上漲到120。因此選用LightweightC3模塊搭建模型的主干特征提取網絡。

表1 不同骨干網絡的試驗結果

2.3.2 消融試驗 為了驗證各種改進方法的有效性,進行了一系列消融試驗。以原始YOLOv5n模型為基準,在顯卡為RTX3090的PC平臺和嵌入式設備Jetson TX2平臺上使用相同的數據集和相同的超參數分別進行5組消融試驗,結果如表2所示。將原始的C3模塊改為LightweightC3模塊之后,計算量減少了26%,模型得到進一步輕量化的同時精度增加了1.39%,mAP增加了0.79%。在原始網絡中的頸部使用EnhancedC3模塊時,精度和mAP分別上漲了2.14%和1.3%。EnhancedC3的引入使模型中不同通道的特征信息得到了充分的流通與融合,提高了模型的檢測精度。同時加入LightweightC3和EnhancedC3模塊時,模型減少了24%的計算量,mAP上漲1.77%。采用LightweightC3 模塊、在頸部引入EnhancedC3模塊和GSConv時,改進后的模型比較改進前模型,模型的精度增加了1.81%,mAP增加了2.21%,模型計算量減少了26%的同時在RTX 3090上速度為原來的3倍,在嵌入式設備Jetson TX2上速度達到了20幀/s,整體性能得到提升。

表2 消融試驗結果?

2.3.3 與其他算法對比試驗 為了驗證所提YOLO-FFD模型的性能與優勢,與目前經典的輕量化目標檢測算法分別在RTX3090平臺和嵌入式設備Jetson TX2平臺上進行對比試驗,選擇的目標檢測算法包括SSD[17]、YOLOv3-Tiny[18]、YOLOv4-Tiny[19]、YOLOv5-Lite。如表3所示,相較于YOLOv3-Tiny、YOLOv4-Tiny、YOLOv5-Lite,研究提出的模型的運行速度和檢測精度最高,浮點運算量僅次于YOLOv5-Lite。說明研究所提出YOLO-FFD模型明顯改善了輕量化模型所帶來的精度損失,減少了檢測時的漏檢問題,在運行速度和檢測精度上都有一定的提升,提高了在移動端設備上部署模型的可行性。

表3 不同模型在研究數據集的對比試驗

2.3.4 檢測效果展示 為了直觀對比改進模塊對于原始模型的有效性,現對不同環境背景條件下水果圖片作為測試對象進行新鮮度檢測。圖7(a)為YOLOv5n模型誤將背景物檢測為目標,而YOLO-FFD模型檢測結果正常;圖7(b)為密集場景下測試結果,原始模型不僅漏檢了許多目標,而且檢測到的目標也出現錯檢情況,而YOLO-FFD模型準確地分辨出了目標的新鮮程度,漏檢情況也得到了極大改善;圖7(c)為出現遮擋物時檢測結果,YOLOv5n模型無法識別目標,而YOLO-FFD模型識別出目標,雖然存在漏檢情況但相比原始模型結果得到改善;圖7(d)為多種類水果混合的場景,YOLOv5n模型誤將背景中帶花紋的黃色木板錯檢為香蕉,多個被遮擋住的目標也未能識別,而YOLO-FFD模型未出現錯檢,漏檢情況也得到改善;圖7(e)為對研究選取的3種水果按新鮮與否分成的6類對象的檢測情況,YOLOv5n模型未能完全識別出所有種類的對象,存在一處漏檢和一處錯檢情況,此外,被遮擋的不新鮮香蕉被重復識別,出現了兩個檢測框,而YOLO-FFD模型對各個類別的目標均能準確識別,置信度也明顯提高。

左圖為YOLOv5n模型檢測效果,右圖為YOLO-FFD模型檢測效果

改進后模型的主干網絡中由于LightweightC3模塊的添加,增強了目標的位置信息,過濾掉復雜背景帶來的冗余信息或沖突信息,只保留特征的關鍵信息,提高模型對于重要目標位置的關注度,因此模型對于目標的錯檢減少。同時,在模型的特征融合網絡中引入了EnhancedC3模塊和GSConv,豐富了模型的感受野,保留了更多融合后的目標特征信息,其對于密集目標的檢測能力大大提高,改進后模型在漏檢方面表現優于改進前模型。試驗結果表明,提出的YOLO-FFD模型對于水果新鮮度檢測精度有明顯提升,對不同種類及不同新鮮程度水果在不同場景下的錯檢、漏檢情況有明顯改善。

3 結論

為了滿足日常密集場景下水果品種及新鮮度識別的需求,研究提出了一種輕量化的水果目標檢測與新鮮度分類模型YOLO-FFD。網絡基于YOLOv5n網絡框架,將特征提取網絡基本單元替換為由深度可分離卷積構成的輕量化模塊LightweightC3可以使模型參數量和運算量大幅減少,采用基于大核深度可分離卷積的EnhancedC3替換特征融合網絡中的C3模塊可以提高模型的特征融合能力,彌補因模型參數量減少而造成的精度損失;引入的GSConv替換特征融合網絡中原來的普通卷積可以對模型進行進一步輕量化處理,提高模型的檢測精度。YOLO-FFD模型平均精度均值達到了96.12%,在RTX 3090上的檢測速度達到了172幀/s,在Jetson TX2上的檢測速度達到了20幀/s,相較于原始模型平均精度均值提高了2.21%,模型計算量減少了26.1%,在RTX 3090上的檢測速度增加了2倍,在嵌入式設備Jetson TX2上的速度增加了1倍,提升了部署在嵌入式設備端實時檢測的可行性。

猜你喜歡
新鮮度輕量化水果
汽車輕量化集成制造專題主編
一種輕量化自卸半掛車結構設計
一種輕量化自卸半掛車結構設計
四月里該吃什么水果
瞄準掛車輕量化 鑼響掛車正式掛牌成立
水果篇之Cherry
用戶:輕量化掛車的使用體驗
水果暢想曲
基于TTI的冷鮮羊肉新鮮度研究
不同新鮮度金槍魚肉蒸煮品質的研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合