?

基于改進YOLO v7的輕量化櫻桃番茄成熟度檢測方法

2023-11-23 05:00苗榮慧李志偉武錦龍
農業機械學報 2023年10期
關鍵詞:成熟度櫻桃番茄

苗榮慧 李志偉 武錦龍

(1.山西農業大學信息科學與工程學院, 太谷 030801; 2.山西農業大學農業工程學院, 太谷 030801)

0 引言

視覺識別系統作為果蔬采摘機器人系統的組成部分,在果蔬目標識別定位、自動采摘和果蔬估產等方面具有至關重要的作用[1]。櫻桃番茄因其營養價值高、風味獨特而被廣泛種植[2]。由于櫻桃番茄果實高度密集、果實小,且葉片遮擋嚴重、果蔬高度不一,采收成為最費時耗力的工作。目前,櫻桃番茄的采摘主要依靠人工,成本高、效率低且不能保證采摘的果實處于最佳采摘時期。對果實成熟期的判定直接決定果實的運輸和貯藏方式,對果實的價格及風味也會造成極大的影響[3]。因此,研究具有高識別率的成熟度自動檢測系統對于確定不同成熟度果實的分布區域,實現櫻桃番茄的自動化采摘具有重要意義。

深度學習技術在目標檢測領域有巨大的優勢,由于其對目標高維特征的高度提取,使復雜情況下不同成熟度的果實識別成為可能。陳鋒軍等[11]提出一種改進的EfficientDet的油橄欖果實成熟度檢測方法,改進的模型不僅具有良好的檢測精度,而且模型占用內存較小,能夠勝任自然條件下推廣應用的實際需求。龍潔花等[12]提出改進Mask R-CNN的溫室環境下不同成熟度番茄果實的分割方法,該方法對綠熟期、半熟期、成熟期番茄果實分割的平均精度均值都較高,可為番茄采摘機器人精準作業提供依據。TIAN等[13]提出了一種改進的YOLO v3模型,用于在不同光照條件、復雜背景以及遮擋等情況下檢測不同成熟度的蘋果。熊俊濤等[14]提出一種輕量化YOLO v5-Lite模型對自然環境下木瓜成熟度進行檢測,該方法對不同拍攝距離、不同遮擋情況以及不同光照情況下的果實均能實現準確識別??梢娋矸e神經網絡在果實成熟度檢測研究中優勢顯著,其中YOLO v7模型具有檢測精度高、速度快、支持高分辨率圖像、支持多種類型目標等優點,已被應用到行人檢測[15]、工業產品缺陷檢測[16]等領域。目前,在每秒傳輸5~160幀圖像范圍內,YOLO v7模型的速度和精度都超過了所有已知的目標檢測模型。因此,選取YOLO v7模型為基礎模型進行櫻桃番茄成熟度的檢測。

目前,基于卷積神經網絡的水果成熟度檢測方法,存在如下問題:大多數檢測精度高的方法,模型計算復雜度高,檢測速度慢;而模型計算復雜度低,檢測速度快的方法,檢測精度卻又不高。對于平衡好檢測速度、檢測精度和模型計算復雜度的櫻桃番茄檢測方法,當前的研究還較少。櫻桃番茄果實具有如下特性:每個花序結果少則一到兩個,多則十幾個,果實之間往往存在遮擋問題;櫻桃番茄果實在生長發育過程中易受光照、環境等因素的影響,同一花序所結果實成熟度不一致且相鄰成熟度特征差異不明顯。這些都會導致YOLO v7模型對相鄰成熟度及遮擋果實的檢測能力較差。針對以上問題,本文提出一種改進的YOLO v7輕量化櫻桃番茄成熟度檢測模型。首先,在數據采集時對具有不同成熟度的部分圖像進行跟蹤采集,對標注數據進行修訂以提高模型對相鄰成熟度果實的檢測能力。然后,將YOLO v7模型的骨干特征提取網絡替換為輕量級的網絡MobileNetV3,大幅降低模型的參數量和計算量。在特征融合模塊引入GAM注意力模塊來加強網絡的特征表達能力,降低因模型參數量少而造成檢測精度下降的影響,提高相鄰成熟度果實和被遮擋果實的檢測精度。最后,通過試驗驗證改進的YOLO v7模型對自然環境下櫻桃番茄果實成熟度的檢測效果以及確定成熟果實的分布區域,為櫻桃番茄果實的自動化采摘提供參考依據。

1 材料與方法

1.1 圖像采集

試驗研究區域選取山西省晉中市太谷區范村鎮象谷村番茄種植基地,該基地主要栽培品種為紅美玉、黑珍珠、迷彩、紅珍珠、黃珍珠等。本文以產量最高的紅珍珠為研究對象,于2023年3—5月使用Oppo Reno5型手機采集溫室條件下的不同植株及不同成熟度的櫻桃番茄圖像。采集時間包括上午、中午和下午,以獲取不同光照條件下的圖像,共獲取3 468像素×4 624像素的櫻桃番茄圖像1 560幅,其中,部分圖像采用跟蹤拍攝方式對櫻桃番茄成熟過程進行采集。采集圖像類型包括單目標圖像、多目標圖像、順光圖像、逆光圖像、有枝葉遮擋圖像、無枝葉遮擋圖像和重果圖像等,如圖1所示。

圖1 櫻桃番茄樣本圖像Fig.1 Sample images of cherry tomato

1.2 果實成熟度等級劃分

國家標準GH/T 1193—2021[17]將番茄成熟度等級根據果皮和果肉顏色變化劃分為6級,即未熟期、綠熟期、變色期、紅熟前期、紅熟中期和紅熟后期。而本文研究的重點是無損檢測掛枝狀態下櫻桃番茄的成熟度,與直接采摘果實通過剖面獲取果肉顏色判斷成熟度相比,掛枝狀態無法獲取果肉顏色變化;與普通番茄相比,櫻桃番茄因其果實尺寸小、生長發育周期短,導致相鄰成熟度差異較小。因此,本文根據櫻桃番茄實際生長發育情況及果皮顏色變化將6級成熟度(表1)合并為5級成熟度。其中,6級成熟度的第1級為未熟期,該時期果實尚未充分生長發育定形,催熟困難不宜采摘,將第1級刪除;6級成熟度的2~6級與5級成熟度的1~4級成熟度完全一致,都是根據果皮顏色的變化進行劃分。因此,將6級成熟度的 2~6 級根據果皮顏色定義為5級,分別為綠熟期、轉色期、初熟期、中熟期和完熟期,如表2所示。從表2可知,不同成熟度的番茄會直接影響其加工、貯藏及運輸方式,采收成熟度因用途的不同而有所差別,適時采摘具有重要意義。

表1 番茄6級成熟度描述Tab.1 Maturity description of tomato at six levels

表2 櫻桃番茄5級成熟度描述Tab.2 Maturity description of cherry tomato at five levels

1.3 數據集構建

由于櫻桃番茄數據集的數據樣本量不足以讓模型在訓練時達到收斂狀態,為了改善網絡訓練模型效果和提高模型泛化能力,采用數據增強方法增加樣本數量,防止網絡因訓練樣本不足導致過擬合問題。本研究采用高斯模糊、水平翻轉、垂直翻轉、非等比例縮放、隨機平移、透視變換和隨機裁剪等數據增強方式隨機組合,對數據集進行擴充,部分數據增強樣本如圖2所示。通過數據增強共獲得8 745幅樣本圖像,按照比例7∶1∶2將數據集劃分為訓練集(6 121幅)、驗證集(875幅)、測試集(1 749幅)。

圖2 櫻桃番茄數據增強圖像Fig.2 Data enhanced images of cherry tomato

本研究訓練的模型為YOLO系列格式的數據集,采用LabelImg軟件對圖像中不同成熟度櫻桃番茄果實進行標注,格式為.txt文檔,標注規則為:①對圖像中果實相互遮擋但不影響人工判斷成熟度等級的果實分別進行標注。②對果實遮擋嚴重,人工難以辨別成熟度等級的果實不予標注。③對于未長大的綠色櫻桃番茄不予標注。由于櫻桃番茄同一花序所結果實成熟度不一致,使得有的圖像涵蓋多個成熟度級別。數據集中不同成熟度櫻桃番茄果實數量如表3所示。

表3 數據集中不同成熟度櫻桃番茄標注數量Tab.3 Annotation number of cherry tomato with different maturities

1.4 櫻桃番茄成熟度檢測模型

櫻桃番茄在生長發育過程中易受光照和環境因素的影響,同一花序所結果實成熟度存在差異,本研究構建的數據集中多數圖像包含多個成熟度級別,且相鄰成熟度特征差異不明顯,同時存在枝葉遮擋及果實遮擋問題,導致準確檢測果實的成熟度較困難?,F有基于深度學習的卷積神經網絡模型雖然檢測精度高,但模型計算復雜度高、檢測速度慢。因此,為了平衡好檢測速度、檢測精度和模型計算復雜度,同時,有效解決影響相鄰成熟度和被遮擋果實的檢測問題,本研究對YOLO v7模型進行了改進。

首先,為了達到模型在有較高檢測精度和檢測速度的同時,模型參數盡可能少的目的,將YOLO v7的骨干特征提取網絡替換為輕量級MobileNetV3網絡。為了提高相鄰成熟度的檢測能力,在特征融合網絡中加入GAM注意力模塊以提高網絡的表達能力,改進后的YOLO v7輕量化櫻桃番茄模型結構如圖3所示。

4.1 PIVAS與住院藥房一體化信息系統的構建,需要有資深藥學技術人員的積極參與[5]。藥學技術人員既要有豐富的藥學專業知識,又要有良好的程序開發理念,這樣才能與程序員做到有效溝通,進而將深奧的藥學需求用信息來實現[6]。

圖3 改進的YOLO v7輕量化網絡模型Fig.3 Lightweight network model of improved YOLO v7

1.4.1MobileNetV3模型

MobileNet網絡是由Google團隊提出的一種輕量級神經網絡模型,使用深度可分離卷積(Depthwise separable convolution)和反向殘差結構的思想構建模型[18]。與傳統卷積神經網絡相比,MobileNet在準確率小幅度降低的前提下大大減少了模型參數量與運算量[19]。MobileNetV3綜合了MobileNetV2和MobileNetV1的特點,在MobileNetV2網絡的基礎上加入了SE(Squeeze and excitation networks)模塊[20],其網絡結構如圖4和表4所示。

表4 MobileNetV3網絡參數Tab.4 Network parameters of MobileNetV3

圖4 MobileNetV3網絡結構Fig.4 Network structure of MobileNetV3

表4中,第1列為每個特征層輸入向量的尺寸;第2列為每個特征層所進行的操作;第3和第4列分別代表了Bottleneck結構中逆殘差結構升維后的通道數和Bottleneck輸出的通道數;SE代表本層是否引入注意力機制SE模塊;NL代表激活函數的類型,其中HS代表hard-swish,RE代表ReLU;最后一列代表Bottleneck結構中卷積的步長。conv2d表示普通卷積,bneck(The inverted residual with linear bottleneck block)表示由線性瓶頸的逆殘差結構組成的特征提取塊,pool表示池化層。MobileNetV3網絡操作過程:首先利用1×1的卷積進行升維,再引入MobileNetV2線性瓶頸的逆殘差結構;然后進行3×3深度可分離卷積,降低網絡的計算量;再通過注意力模型SE-Net,使網絡關注更加有用的通道信息來調整每個通道的權重;最后,使用hard-swish激活函數代替swish函數,減少運算量以提高模型性能。該網絡能夠在保證模型輕量化的基礎上,提高模型精度及運行速度,因此,本文使用MobileNetV3網絡作為YOLO v7模型的骨干網絡實現特征提取。

線性瓶頸的逆殘差結構[21]是一種可以有效減小計算量并且防止細節特征消失的特征提取結構,圖5所示是具有瓶頸結構的深度可分離卷積模塊。特征首先會在卷積塊中通過1×1的卷積進行維度擴張,再使用3×3的卷積進行深度可分離卷積,同時模塊在深度可分離卷積的同時融入了輕量級注意力機制將特征圖進行全局平均池化(Global average pooling,GAP),并經過ReLU和hard-swish激活函數后和特征圖相乘,調整特征圖的每個通道的權重。(圖5中Dwise 3×3表示3×3卷積核的深度可分離卷積,BN表示Batch Normalization,GAP表示全局平均池化,Conv 1×1表示1×1的卷積)。

圖5 線性瓶頸的逆殘差結構塊Fig.5 Inverted residual with linear bottleneck block

1.4.2加入GAM注意力模塊的特征融合網絡

卷積塊注意力模塊(Convolutional block attention module,CBAM)是一種結合了空間注意力模塊和通道注意力的卷積注意力模塊[22],通過學習可以自動獲取每個特征空間和特征通道的重要程度,并根據重要程度分配不同的權重來加強重要特征的提取,抑制其他無關的信息。但由于信息減少及維度分離,該機制只能利用有限的感受野實現視覺表示,缺乏空間和通道的交互作用。GAM是一種可以減少信息縮減并放大全局維度交互特征的注意力機制[23],它采用CBAM中的順序通道-空間注意機制,并對子模塊進行了重新設計,其模型結構如圖6所示。

圖6 GAM注意力模塊Fig.6 GAM attention module

GAM能夠穩定地提高不同架構和深度的卷積神經網絡的性能,具有良好的數據拓展能力和魯棒性。

F2=Mc(F1)?F1

(1)

F3=Ms(F2)?F2

(2)

其中:F1∈RC×H×W為輸入特征圖;Mc和Ms分別為通道和空間注意特征圖;?為矩陣點乘。

通道注意力子模塊采用3D組合保留跨三維度信息,然后采用多層感知機(Multilayer perceptron,MLP)讓特征向量在不同維度間充分交互,使得模型能夠獲取更多非線性特征和組合特征信息,如圖7所示,圖中C、H、W分別為特征圖的通道數、高和寬。其中MLP代表多層感知機(全連接層);Sigmoid為激活函數。

圖7 GAM通道注意力子模塊Fig.7 Channel attention submodule of GAM

為了更多關注空間信息,在空間注意力子模塊中采用2個卷積層對空間信息進行融合。由于最大池化減少了信息量且對模型具有消極影響,該模塊中刪除了池化過程來更好地保留特征圖,如圖8所示。

圖8 GAM空間注意力子模塊Fig.8 Spatial attention submodule of GAM

1.5 試驗環境配置與網絡參數設置

試驗所用操作系統為Windows 10,CPU型號為Intel(R) Core(TM) i7-12700F @2.10 GHz,GPU型號為NVIDIA GeForce RTX 3080,運行內存為32 GB,1 TB機械硬盤,編程語言為Python 3.9,使用的深度學習框架為Pytorch 1.13.0,GPU加速庫為CUDA 11.7、CUDNN 8.4.1。為縮短網絡訓練的時間,采用凍結訓練的方法,凍結骨干網絡訓練時初始學習率設為0.001,批處理量設為16,動量設置為0.9;解凍之后的網絡訓練學習率設為0.000 1,批大小設為8,動量設置為0.9,迭代次數為300次。

1.6 模型評價指標

對櫻桃番茄果實成熟度的檢測過程需要考慮檢測精度和速度。在模型檢測精度方面,選用精確率(Precision,P)、召回率(Recall,R)和平均精度(Average precision,AP)作為評價指標;在模型檢測性能方面,選取平均精度均值(mAP)、平均檢測時間(Average detection time,ADT)和模型內存占用量作為評價指標。

2 實驗結果與分析

2.1 改進YOLO v7模型試驗

為驗證改進YOLO v7模型的性能,對測試集中的1 749幅櫻桃番茄圖像進行測試評價,表5為本文算法在不同成熟度級別的檢測結果。從表5中可知,本文算法的平均精度均值可以達到98.2%,精確率為98.6%,召回率為98.1%,所有成熟度級別檢測結果均在96%以上。部分檢測示例如圖9所示,從圖9中可以看出,本文算法能夠準確檢測出不同成熟度的櫻桃番茄,對于圖9a中掉落在地上的小目標以及距離較遠的小目標本文識別結果也較好。由于果實成熟時間不一致,圖像包含多個成熟度級別,對于剛進入初熟期的果實與進入中熟期的果實特征差異較小,極易發生誤判,改進的算法可以提取果實表型形狀的細粒度特征實現不同成熟度的準確檢測。圖9中櫻桃番茄果實可能受枝葉以及其他果實的遮擋,改進的YOLO v7模型可進一步融合遮擋果實的位置信息以及語義信息,提高對遮擋果實成熟度的檢測能力。綜上所述,改進的YOLO v7模型能夠準確地檢測果實的成熟度,對小目標、多目標、枝葉遮擋、重果、光照影響等都有較好的檢測效果。

表5 本文算法不同成熟度級別檢測結果Tab.5 Detection results with different maturities of proposed algorithm %

圖9 改進后的YOLO v7模型檢測結果Fig.9 Detection results of improved YOLO v7 model

2.2 改進YOLO v7模型消融試驗

為了進一步驗證改進YOLO v7模型的性能,本研究設置了消融試驗驗證4組網絡的性能,分別為在YOLO v7特征融合中加入GAM模塊、替換YOLO v7骨干網絡為MobileNetV3、YOLO v7和本文算法。從定量的角度分析4組網絡的性能,對測試集中的1 749幅櫻桃番茄圖像進行客觀評價,評價指標包括模型檢測精度、平均檢測時間等,評價對比結果如表6所示。從表6可知,改進后模型平均精度均高于其他3組模型。

表6 改進的YOLO v7模型消融試驗結果Tab.6 Ablation test results of improved YOLO v7 model

2.3 不同目標檢測網絡對比結果分析

為定性評價改進YOLO v7模型的檢測結果,將改進的模型與Faster R-CNN[24]、YOLO v3[25]模型、YOLO v5s[26]模型以及原始YOLO v7模型對測試集中的櫻桃番茄圖像進行算法對比,算法對比結果如圖10所示。

圖10 不同目標檢測網絡對比結果Fig.10 Comparison results of different detection networks

從圖10b可知,該算法在單果目標圖像中能夠識別小目標,但部分結果存在重復識別情況;在多目標圖像中,存在重復識別情況,算法將圖像中部分樹葉誤識別為果實,對重果的識別效果也差,并且存在漏檢情況。從圖10c可知,該算法在單果目標圖像中能夠較好地識別小目標、遠距離目標;在多目標圖像中,重果識別效果較差,部分圖中將樹葉識別為果實,存在誤識別,也存在漏檢情況。從圖10d可知,該算法在單果目標圖像中能夠較好地識別小目標;在多目標圖像中,針對重果、枝葉遮擋、多目標等情況識別效果都較好。從圖10e可知,該算法在單果目標圖像中識別小目標情況較差;在多目標圖像中,綠色多目標和重果識別效果較差,部分圖中將樹葉識別為果實,存在誤識別,也存在漏檢情況。從圖10f可知,該算法在單果目標圖像中能夠較好地識別小目標、遠距離目標;在多目標圖像中,針對重果、枝葉遮擋、多目標等情況識別效果都較好。

為定量比較改進模型的性能,將改進模型與Faster R-CNN、YOLO v3模型、YOLO v5s模型以及原始YOLO v7模型在測試圖像上進行性能比較,如表7所示。從表7中可知,與其他模型相比,改進的YOLO v7櫻桃番茄成熟度檢測模型在精確率、召回率、平均精度指標都是最優的,分別為98.6%、98.1%、98.2%,其平均精度均值mAP與Faster R-CNN、YOLO v3模型、YOLO v5s模型以及原始YOLO v7模型相比分別提升18.7、0.2、0.3、0.1個百分點。本文模型在原始YOLO v7模型的基礎上進行了輕量化改進,改進之后的模型內存占用量也是最少的。

表7 不同檢測模型在測試集中的性能結果Tab.7 Performance of different detection models in test sets

3 結論

(1)提出了一種改進的輕量化YOLO v7網絡模型用于櫻桃番茄成熟度檢測。該網絡將YOLO v7原始模型中骨干網絡替換為輕量型MobileNetV3結構并在特征融合網絡中引入GAM注意力機制,不僅能夠充分并有效利用全局維度的交互特征,還使得網絡能夠平衡運算速度和模型復雜度的問題。

(2)為了驗證改進YOLO v7模型的性能,本文設置了4組網絡進行消融試驗驗證并對試驗結果進行了定量分析,4組網絡分別為在YOLO v7特征融合中加入GAM模塊、替換YOLO v7骨干網絡為MobileNetV3、YOLO v7和本文算法,試驗結果表明改進后的模型在模型檢測精度和平均檢測時間方面均優于其他3組模型。

(3)在相同的試驗條件下,通過與Faster R-CNN、YOLO v3、YOLO v5s、YOLO v7模型對比,改進的模型在櫻桃番茄數據集上取得了較優的效果,平均精度均值mAP分別提升18.7、0.2、0.3、0.1個百分點。試驗充分證明了本文提出的輕量化模型不僅在評價指標上有所提高,同時在視覺上也取得了較好的效果。通過本研究可以將成熟度檢測應用于農產品智能采摘中,為其他農產品智能采摘機器人的視覺識別、目標定位以及分級等后續工作提供依據。

猜你喜歡
成熟度櫻桃番茄
櫻桃肉,讓年味飄香
番茄炒蛋
秋茬番茄“疑難雜癥”如何挽救
產品制造成熟度在型號批生產風險管理中的應用
番茄果實“起棱”怎么辦
整機產品成熟度模型研究與建立
不同成熟度野生水茄果實的種子萌發差異研究
一樹櫻桃帶雨紅
剛好夠吃6天的香蕉
吃不到的櫻桃
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合