張澤冰,張冬妍,婁蘊(yùn)祎,崔明迪,王克奇
東北林業(yè)大學(xué) 機(jī)電工程學(xué)院,哈爾濱 150040
野生香菇作為食用菌中的珍品,營養(yǎng)、藥用價(jià)值異常豐富,是一種養(yǎng)生保健的綠色健康食品[1]。野生香菇多生長在野外,存在采摘視線遮擋的情況,環(huán)境復(fù)雜,需要人工深入?yún)擦肿屑?xì)搜尋,采摘難度大,存在一定危險(xiǎn)性。基于視覺檢測(cè)的無人撿拾設(shè)備不僅可以提高采摘效率,還能解決人工采摘的危險(xiǎn)性問題,因此設(shè)計(jì)一種快速視覺檢測(cè)算法具有良好的應(yīng)用價(jià)值。
目前,農(nóng)林業(yè)目標(biāo)檢測(cè)研究已取得一些成果。盧軍等[2]針對(duì)變化光照下柑橘的遮擋問題,利用R-B 色差圖和歸一化RGB 顏色空間方法對(duì)目標(biāo)進(jìn)行初分割,使用自適應(yīng)直線擬合角點(diǎn)檢測(cè)和邊界跟蹤算法進(jìn)行輪廓標(biāo)記,最后用橢圓擬合方法生成柑橘形狀與位置信息。Pérez-Zavala等[3]針對(duì)林間葡萄檢測(cè)使用HOG和LBP獲取形狀和紋理信息,SVM-RBF 分類器獲得葡萄位置信息,檢測(cè)精度和召回率分別達(dá)88.61%和80.34%。Kanwal等[4]利用HS 模型分割生成蘋果斑點(diǎn),通過細(xì)化去噪和Hough 變換精確定位蘋果位置。這些對(duì)農(nóng)林產(chǎn)品檢測(cè)的方法主要是基于顏色、形狀以及紋理特征的傳統(tǒng)方法,由于目標(biāo)背景特征不同,不同目標(biāo)間特征差異較大,此類方法只適用特定場(chǎng)景,泛化能力弱。
深度學(xué)習(xí)算法克服傳統(tǒng)特征提取方法中的特征主觀性,提高模型場(chǎng)景應(yīng)用的泛化能力。其中以Faster R-CNN[5]和Mask-RCNN[6]為代表的雙階段算法首先興起。Stein等[7]使用Faster R-CNN 算法對(duì)522 樹的芒果圖像進(jìn)行三維立體定位和產(chǎn)量估計(jì),誤差率僅為1.36%。熊俊濤等[8]使用Faster R-CNN 對(duì)樹上綠色柑橘進(jìn)行視覺檢測(cè)研究,平均精度為85.49%,結(jié)果優(yōu)于Otsu 分割法。Yu等[9]針對(duì)非結(jié)構(gòu)環(huán)境下草莓的檢測(cè),使用Mask-RCNN,結(jié)合特征金字塔網(wǎng)絡(luò)(FPN)結(jié)構(gòu)進(jìn)行特征提取,具有更好的通用性和魯棒性。雙階段算法雖然檢測(cè)精度高,通用性與魯棒性好,但訓(xùn)練需要大量標(biāo)記樣本,模型參數(shù)量和計(jì)算量龐大,檢測(cè)耗時(shí)過長,不利于工程化應(yīng)用[10],由此誕生了以YOLO系列算法為代表的單階段檢測(cè)算法,相比于雙階段檢測(cè)算法,具有步驟簡(jiǎn)單、計(jì)算效率高的優(yōu)點(diǎn)。為了檢測(cè)果園場(chǎng)景下未成熟芒果,薛月菊等[11]根據(jù)YOLOv2[12],提出以Tiny-yolo-dense 為基礎(chǔ)網(wǎng)絡(luò)的Ⅰ-YOLOv2,檢測(cè)速度明顯優(yōu)于Faster RCNN 方法。雖然YOLOv2 檢測(cè)速度有明顯優(yōu)勢(shì),但由于只有一個(gè)檢測(cè)分支,特征提取能力與檢測(cè)能力不足,所以Zhou等[13]針對(duì)無人機(jī)罌粟圖像檢測(cè),使用FPN結(jié)構(gòu)的YOLOv3[14],并引入MobileNetv2[15]輕量化網(wǎng)絡(luò)、空間金字塔池化(SPP)和GIoU損失,生成SPP-GIOU-YOLOV3-MN 模型,在不降低速度的前提下,精度明顯提升。Zheng 等[16]為準(zhǔn)確檢測(cè)自然環(huán)境中的綠色柑橘,使用精度更高、模型更復(fù)雜的YOLOv4[17]作為基礎(chǔ)網(wǎng)絡(luò),并通過修剪CSPDarknet53 骨干網(wǎng)絡(luò)和提出雙向特征金字塔結(jié)構(gòu)(Bi-PANet),使模型參數(shù)量與速度都有所提升。以上研究均使用YOLO系列算法,發(fā)展至今已進(jìn)化到Y(jié)OLOv4 版本。YOLOv4 相比于其他YOLO算法,具有檢測(cè)精度高、泛化能力強(qiáng)的優(yōu)點(diǎn),但也有參數(shù)量和計(jì)算量更復(fù)雜,檢測(cè)效率較低的缺點(diǎn)。對(duì)于林地環(huán)境下的野生香菇檢測(cè),YOLOv4 滿足精確度要求,但模型復(fù)雜度高,實(shí)時(shí)性差。
以YOLOv4 為框架。為實(shí)現(xiàn)野生菌視覺在線檢測(cè),為采摘提供實(shí)時(shí)指導(dǎo),需提升網(wǎng)絡(luò)搜索速度,對(duì)網(wǎng)絡(luò)進(jìn)行輕量化優(yōu)化。選擇高效的ShuffleNetv2 替代CSPDarknet53,在精度與實(shí)時(shí)性方面取得平衡;采用ASFF 結(jié)構(gòu)代替PANet 結(jié)構(gòu)進(jìn)行特征融合;在預(yù)測(cè)分支中,采用金字塔卷積和深度可分離卷積替代普通卷積,降低計(jì)算復(fù)雜度;模型尾部引入SA 注意力模塊,以少量計(jì)算提高檢測(cè)精度;最后采用Weight DIoU NMS 代替NMS(non maximum suppression),優(yōu)化預(yù)測(cè)框選取,由此實(shí)現(xiàn)模型輕量化與檢測(cè)精度優(yōu)化。
YOLOv4 結(jié)構(gòu)框圖如圖1 所示,網(wǎng)絡(luò)組成模塊如圖2 所示。在數(shù)據(jù)處理中,引入Mosaic 數(shù)據(jù)增強(qiáng)操作,提升模型訓(xùn)練速度和網(wǎng)絡(luò)泛化能力。主干網(wǎng)絡(luò)使用CSPDarknet53[18],采用CSP 結(jié)構(gòu),將特征映射分為兩部分,然后通過跨層次融合結(jié)構(gòu)將之合并,促進(jìn)底層信息融合,特征提取效果更佳,如圖2(e)所示。CSPDarknet53保留經(jīng)典的殘差結(jié)構(gòu),能提取更深層的特征信息,如圖2(c)所示;引入Mish 激活函數(shù),提高網(wǎng)絡(luò)對(duì)非線性特征的提取能力,如圖2(a)所示。在頸部網(wǎng)絡(luò)中,引入SPP模塊[19],將不同尺寸的特征圖轉(zhuǎn)化為特征相同的特征向量,解決輸入特征尺寸不統(tǒng)一的問題,如圖2(b)所示;并將雙向PANet特征融合結(jié)構(gòu)代替單向FPN結(jié)構(gòu),提升網(wǎng)絡(luò)的特征提取能力。頸部網(wǎng)絡(luò)中存在三層、五層卷積塊,起特征通道變換作用,如圖2(d)所示。在網(wǎng)絡(luò)訓(xùn)練中,使用CIoU Loss[20]代替原始MSE Loss。在預(yù)測(cè)輸出端,使用DIoU NMS[20],選擇更合理的預(yù)測(cè)框,提升檢測(cè)精度。

圖2 YOLOv4模塊組成Fig.2 Compositions of YOLOv4 module
在YOLOv4基礎(chǔ)上,從模型輕量化和精度優(yōu)化兩方面進(jìn)行結(jié)構(gòu)優(yōu)化設(shè)計(jì)。首先特征提取網(wǎng)絡(luò)采用輕量級(jí)的ShuffleNetv2 以精簡(jiǎn)網(wǎng)絡(luò)參數(shù),減少計(jì)算量。其次在網(wǎng)絡(luò)特征融合和輸出部分,采用ASFF特征融合結(jié)構(gòu)替代原始的PANet 結(jié)構(gòu)以減少網(wǎng)絡(luò)計(jì)算量,檢測(cè)分支1 中普通3×3 卷積替換為金字塔卷積PyConv,檢測(cè)分支3中普通3×3 卷積替換為深度可分離卷積DWConv 以簡(jiǎn)化檢測(cè)分支。最后進(jìn)行精確度優(yōu)化操作,在網(wǎng)絡(luò)模型末端引入SA 輕量級(jí)注意力模塊提高檢測(cè)精度,使用WeightDIoUNMS替代原始NMS選取更合理預(yù)測(cè)框,如圖3所示。

圖3 改進(jìn)YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 Improved YOLOv4 network structure
1.2.1 ShuffleNetv2
ShuffleNetv2[21]在ShuffleNetv1[22]基礎(chǔ)上,引入通道“分流-重組合”的概念,重新設(shè)計(jì)基本結(jié)構(gòu)模塊,分為基本單元與下采樣單元兩種,如圖4所示。其中,ChannelSplit實(shí)現(xiàn)通道分流,使網(wǎng)絡(luò)參數(shù)量和計(jì)算量大大減少;基本單元需分別經(jīng)過同等映射和3 個(gè)連續(xù)卷積組成倒殘差結(jié)構(gòu)進(jìn)行特征提取,下采樣單元與基本單元結(jié)構(gòu)相似,不同的是其在兩條通道路徑中都引入?yún)?shù)stride=2 的DWConv,實(shí)現(xiàn)下采樣操作;Channel Shuffle 進(jìn)行特征重組融合,提高特征提取能力。一言概之,ShuffleNetv2結(jié)合通道分流重組思想和深度可分離卷積,在模型效率上提升明顯。ShuffleNetv2 1×網(wǎng)絡(luò)結(jié)構(gòu)如表1 所示,其中每個(gè)Stage層都是由多個(gè)單元模塊堆疊而成。

表1 ShuffleNetv2結(jié)構(gòu)Table 1 Shufflenetv2 structure

圖4 ShuffleNetv2模塊組成Fig.4 Shufflenetv2 module composition
1.2.2 特征融合結(jié)構(gòu)和檢測(cè)分支輕量化
對(duì)特征融合模塊和檢測(cè)輸出部分進(jìn)行輕量化設(shè)計(jì),即引入ASFF 特征融合模塊,并在檢測(cè)分支中將深度可分離卷積和金字塔卷積替代普通Conv。
PANet結(jié)構(gòu)檢測(cè)效果好,但過量運(yùn)算會(huì)拖累效率,而FPN特征提取效果較差,因此引入ASFF模塊。ASFF[23]是在FPN 基礎(chǔ)上,通過權(quán)重參數(shù)的方式,將不同層的特征圖進(jìn)行融合,以充分利用高層特征的語義信息和底層特征的細(xì)粒度信息。圖5 即為PANet 與ASFF 的對(duì)比,兩者前部分操作一致,均需要2次Concat操作;ASFF后部分只需要各通道之間進(jìn)行求和(Add)操作,特征層數(shù)不變,設(shè)特征層數(shù)為Q,而PANet后部分進(jìn)行拼接(Concat)操作,特征層數(shù)加倍,則為2Q,后續(xù)計(jì)算量遠(yuǎn)遠(yuǎn)大于前者。所以ASFF計(jì)算量明顯小于PANet。

圖5 不同特征融合模塊示意圖Fig.5 Schematic diagrams of different feature fusion modules
其次,求和操作的特征提取能力劣于拼接操作,為解決此問題,ASFF 引入空間權(quán)重系數(shù),通過Softmax 限定幅值范圍,由網(wǎng)絡(luò)自適應(yīng)學(xué)習(xí)得到,以加強(qiáng)重要特征的權(quán)重,提高特征提取能力。
如圖5(b),X1、X2、X3分別是來自經(jīng)過FPN結(jié)構(gòu)3個(gè)特征層的特征,分別通過直連、上采樣和下采樣獲得特征向量X1→l、X2→l、X3→l(l=1,2,3),此時(shí),三個(gè)特征向量大小完全一致,后與空間權(quán)重系數(shù)αl、βl、γl相乘,得到融合特征ASFFl(l=1,2,3),如公式(1)所示:
其中,參數(shù)αl、βl、γl滿足下列條件:
總的來說,ASFF 是將加權(quán)思想與求和操作相融合的特征融合結(jié)構(gòu),在保證精度的前提下,檢測(cè)效率優(yōu)勢(shì)明顯。
傳統(tǒng)Conv 采用固定尺度卷積核,參數(shù)量和計(jì)算量明顯大于深度卷積和分組卷積,而深度可分離卷積[15]由深度卷積和逐點(diǎn)卷積組合而成。設(shè)輸入特征尺寸為H×W×M,卷積核尺寸為K×K×M,輸出特征尺寸為H′×H′×N,標(biāo)準(zhǔn)卷積計(jì)算量為K×K×M×N,而深度可分離卷積計(jì)算量只有K×K×M+M×N,僅為標(biāo)準(zhǔn)卷積的,計(jì)算量明顯減少,如圖6所示。

圖6 普通卷積與深度可分離卷積示意圖Fig.6 Schematic diagrams of normal convolution and depthwise separable convolution
金字塔卷積[24]采用多尺度、多深度的卷積核以提取多尺度特征;其中,大尺寸卷積核捕捉更細(xì)節(jié)的空間信息,特征檢測(cè)能力更強(qiáng),且深度較淺,以避免計(jì)算量激增;同時(shí)以組卷積的形式對(duì)輸入特征進(jìn)行并行卷積運(yùn)算,計(jì)算量和參數(shù)量明顯減少,計(jì)算效率明顯提高,結(jié)構(gòu)如圖7所示。因此引入深度可分離卷積和金字塔卷積。

圖7 標(biāo)準(zhǔn)卷積與金字塔卷積Fig.7 Standard convolution and pyramid convolution
標(biāo)準(zhǔn)卷積檢測(cè)精度最優(yōu),而計(jì)算量大,檢測(cè)效率較低。對(duì)于深度可分離卷積和金字塔卷積,前者在實(shí)時(shí)性方面提升更明顯,后者則在模型參數(shù)量和檢測(cè)精度兩方面取得平衡,但卷積單元增多,步驟增加,計(jì)算效率有所下降。三種卷積各有優(yōu)劣,可應(yīng)用于不同檢測(cè)分支。
對(duì)于三個(gè)檢測(cè)分支,由于其特征圖尺寸與特征層數(shù)的差別,在目標(biāo)檢測(cè)網(wǎng)絡(luò)中的作用也不一致。檢測(cè)分支1,特征尺寸最大,通道最少,是香菇小目標(biāo)檢測(cè)的主要部分。金字塔卷積會(huì)減少參數(shù)量,且能保證精確度,綜合效能好。故檢測(cè)分支1 中“PCBL5”模塊引入了金字塔卷積,為避免過大卷積核對(duì)計(jì)算效率的不利影響,只引入由3×3卷積和5×5卷積組成的金字塔卷積。檢測(cè)分支2,特征尺寸與通道數(shù)均為中等,也同樣在目標(biāo)檢測(cè)任務(wù)中作用明顯,采用標(biāo)準(zhǔn)卷積最大程度上保證較高水平的精確度,如圖3 中“CBL5”所示。檢測(cè)分支3,特征圖最小,通道最多,在目標(biāo)檢測(cè)任務(wù)中作用最小,故采用計(jì)算效率最高的深度可分離卷積,有效減少參數(shù)量和計(jì)算量,對(duì)檢測(cè)精度影響程度最小。故檢測(cè)分支3 中2 個(gè)“DWBL”引入深度可分離卷積。
輕量化設(shè)計(jì)在一定程度上會(huì)造成檢測(cè)精度下降,引入SA注意力模塊和Weight DIoU NMS后處理算法,以少量計(jì)算代價(jià)提高檢測(cè)準(zhǔn)確率。
輕量化注意力SA[25]結(jié)合SGE-Net[26]中的特征通道分組理念和ShuffleNetv2中用于保證通道信息高效交互的Channel Shuffle模塊,實(shí)現(xiàn)空間注意力與通道注意力的輕量化融合,以少量計(jì)算量提升檢測(cè)精度,結(jié)構(gòu)如圖8所示。由圖8得,SA分三個(gè)部分,分別為特征分組、混合注意力、特征聚合。特征分組將輸入特征圖X∈?C×H×W分為g組子特征(sub feature)(k=1,2,…,g)。混合注意力將子特征Xk依據(jù)通道維度分為兩個(gè)子特征Xk1,(k=1,2,…,g);Xk1進(jìn)行通道注意力操作,Xk2進(jìn)行空間注意力操作。特征聚合先利用Concat對(duì)經(jīng)過注意力特征強(qiáng)化的進(jìn)行拼接操作得到,再利用Channel Shuffle 保證各子特征之間的信息交互,得到最終的注意力特征圖X′。

圖8 SA模塊Fig.8 SA module
SA通過分組操作與Split操作實(shí)現(xiàn)特征流的并行傳遞,參數(shù)少,計(jì)算效率高。同時(shí)SA 屬于復(fù)合注意力機(jī)制,比單一的空間或通道注意力效果更好。
在檢測(cè)算法生成預(yù)測(cè)框之后,通常使用非極大值抑制算法(non maximum suppression,NMS)消除多余檢測(cè)框,但由于作用機(jī)制較為簡(jiǎn)單,易出現(xiàn)目標(biāo)漏檢情況,尤其針對(duì)密集的小目標(biāo)檢測(cè),因此,YOLOv4采用DIoUNMS。DIoU-NMS 在NMS 基礎(chǔ)上,將DIoU 替代IoU,加入距離影響因子,對(duì)漏檢問題有所改善,如公式(3)所示:
其中,Si為預(yù)測(cè)框存在性得分,M為當(dāng)前預(yù)測(cè)得分最高的預(yù)測(cè)框,bi為待處理的預(yù)測(cè)框,Ni為設(shè)定的閾值。DIoU-NMS 雖能緩解NMS 的漏檢問題,但其得分最高框M仍沿用傳統(tǒng)NMS的定義,精度提升有限。
引入Weight NMS[27],冗余框也可能定位準(zhǔn)確,舍棄冗余框剔除機(jī)制,提出坐標(biāo)加權(quán)平均概念,對(duì)得分最大框M重新定義,如公式(4)所示:
其中,權(quán)重wi=Si×IoU(M,bi),表示得分與IoU的乘積。
3.5.2飼料配方小雞階段:玉米58%、豆粕30%、魚粉5%、酵母3%、油脂1%、骨粉1.5%、食鹽0.5%、預(yù)混合飼料1%。中雞階段:玉米62%、豆粕27%、魚粉3%、酵母3%、油脂2%、骨粉1.5%、食鹽0.5%、預(yù)混合飼料1%。大雞階段:玉米65%、豆粕23%、魚粉2%、酵母4%、油脂3%、骨粉1.5%、食鹽0.5%、預(yù)混合飼料1%。
Weight NMS 解決最優(yōu)框M的問題,但并未解決漏檢問題。原始公式中用到IoU 損失,已說明其缺點(diǎn),引入DIoU損失函數(shù),加入距離損失因子,減少漏檢情況發(fā)生,如公式(5)所示:
其中,權(quán)重wi=Si×DIoU(M,bi)。
實(shí)驗(yàn)硬件平臺(tái)為Intel?CoreTMi9-10885@2.40 GHz處理器,內(nèi)存16 GB,NVIDIA Quadro RTX 5000 顯卡,顯存16 GB。軟件平臺(tái)為Win 10 系統(tǒng),Pytorch 框架,Pycharm環(huán)境。
為保證野生香菇環(huán)境的多樣性,使用在線下載的野生香菇圖片數(shù)據(jù),主要是在東北、華北野外叢林里拍攝得到的,包含小尺寸與大尺寸、陰暗光照和正常光照等多種場(chǎng)景,部分圖像如圖9所示。圖片372張,數(shù)據(jù)量較少,為提高圖片數(shù)據(jù)豐富度,增強(qiáng)模型泛化能力,對(duì)圖片數(shù)量進(jìn)行擴(kuò)增。首先將原始數(shù)據(jù)集分為原始訓(xùn)練集和原始測(cè)試集,再使用隨機(jī)顏色(銳度、亮度、對(duì)比度)、隨機(jī)噪聲(高斯、椒鹽)方法分別處理原始訓(xùn)練集和原始測(cè)試集,擴(kuò)增數(shù)據(jù),得到數(shù)量為880 的總訓(xùn)練集和數(shù)量為232的總測(cè)試集,共1 112張數(shù)據(jù)圖片,流程如圖10所示。

圖9 野生香菇示例圖片F(xiàn)ig.9 Sample picture of wild shiitake mushrooms

圖10 數(shù)據(jù)擴(kuò)增示意圖Fig.10 Schematic diagram of data amplification
利用LabelImg 進(jìn)行數(shù)據(jù)標(biāo)注,利用K-means++對(duì)錨框進(jìn)行聚類分析,以獲取更符合蘑菇圖像大小的初始錨框。
1 112 張圖片按照8∶2 的比例劃分訓(xùn)練集和測(cè)試集。使用Adam優(yōu)化器訓(xùn)練模型,啟動(dòng)mosaic數(shù)據(jù)增強(qiáng)操作,標(biāo)簽平滑參數(shù)ls=0.005,圖片輸入尺寸為416×416×3,Batch Size=8,總訓(xùn)練次數(shù)140 Epoch,采用“凍結(jié)-解凍”策略,其中凍結(jié)訓(xùn)練70 Epoch,初始學(xué)習(xí)率lr0=1×10-3;解凍訓(xùn)練70 Epoch,初始學(xué)習(xí)率lr1=5×10-5。考慮到訓(xùn)練過程采用“凍結(jié)-解凍”策略,若采用余弦退火學(xué)習(xí)率會(huì)導(dǎo)致凍結(jié)訓(xùn)練與解凍訓(xùn)練的過渡階段的不穩(wěn)定,故采用隨機(jī)衰減學(xué)習(xí)率。
IoU 指標(biāo)為0.5,選用檢測(cè)精度AP、F1 系數(shù)指標(biāo)、每分鐘檢測(cè)圖片數(shù)FPS 以及模型權(quán)重尺寸4 個(gè)指標(biāo)評(píng)價(jià)模型,計(jì)算如公式(6)~(9)所示。其中P、R 分別是準(zhǔn)確率和召回率,AP為P-R曲線面積,F(xiàn)1表示P和R的均衡性;FPS反映檢測(cè)速度。
其中,NTP是正確地檢測(cè)為正樣本數(shù)量,NFP是錯(cuò)誤地檢測(cè)為正樣本數(shù)量,NFN是錯(cuò)誤地檢測(cè)為負(fù)樣本的數(shù)量。Ci為檢測(cè)種類數(shù),此處只有香菇一類,Ci=1。
如表2 所示設(shè)計(jì)消融實(shí)驗(yàn),組別1 表示YOLOv4 模型,組別2表示主干網(wǎng)絡(luò)使用ShuffleNetv2的網(wǎng)絡(luò)模型,組別3 表示在組別2 的基礎(chǔ)上引入ASFF特征融合結(jié)構(gòu)的網(wǎng)絡(luò)模型,組別4 表示在組別3 的基礎(chǔ)上進(jìn)行分支輕量化改進(jìn)的檢測(cè)網(wǎng)絡(luò),組別5 表示在組別4 的基礎(chǔ)上引入輕量化注意力模塊SA的改進(jìn)網(wǎng)絡(luò),最后,組別6表示在組別5的基礎(chǔ)上使用Weight DIoU NMS的檢測(cè)模型。

表2 消融實(shí)驗(yàn)設(shè)計(jì)Table 2 Design of ablation experiments
由表3 得,組別2 相較于組別1,AP、F1 值有輕微下降,F(xiàn)PS和模型權(quán)重尺寸大幅度改善,說明ShuffleNetv2主干網(wǎng)絡(luò)對(duì)精確度影響較小,而檢測(cè)速度與模型權(quán)重尺寸改善明顯。組別3 相比于組別2,AP、F1 略有波動(dòng),F(xiàn)PS 由60.06 提升至67.82,說明ASFF 輕量化提升效果也較為明顯。組別4相比于組別3,AP和F1下降幅度為0.01~0.02,F(xiàn)PS變化幅度小,模型權(quán)重尺寸由100.93 MB縮減為52.27 MB,說明第一檢測(cè)分支引入金字塔卷積,第三檢測(cè)分支引入深度可分離卷積的操作對(duì)模型權(quán)重尺寸的改善效果明顯。組別5相比于組別4,AP和F1大約都提高0.02,F(xiàn)PS 和模型權(quán)重尺寸幾乎不變,說明SA注意力模塊在保持模型檢測(cè)速率和尺寸的前提下,能有效提升檢測(cè)精度。組別6相比于組別5,AP和F1大約都提高0.01,F(xiàn)PS 和模型權(quán)重尺寸同樣變化幅度較小,說明Weight DIoU NMS也對(duì)精度有一定的提升效果。最終組別6相比于組別1,檢測(cè)精度下降幅度小,檢測(cè)速度和模型權(quán)重尺寸改善明顯:AP僅下降2.74個(gè)百分點(diǎn),F(xiàn)1下降0.032,F(xiàn)PS 提升幅度達(dá)82.9%,模型權(quán)重尺寸下降78.6%。為方便表達(dá),將組別6命名為改進(jìn)YOLOv4。

表3 消融實(shí)驗(yàn)結(jié)果Table 3 Results of ablation experiments
為直觀比較改進(jìn)YOLOv4 相比于YOLOv4 精度的變化以及數(shù)據(jù)擴(kuò)增對(duì)檢測(cè)精度的影響,統(tǒng)計(jì)訓(xùn)練過程中損失函數(shù)Loss和精度指標(biāo)AP的變化,如圖11所示。由圖11 得,改進(jìn)YOLOv4 相比于YOLOv4,Loss 較高,AP較低,但差距較小,與上文統(tǒng)計(jì)數(shù)據(jù)相互印證,分析原因可能是引入深度可分離卷積和減小模型深度的操作不利于特征提取,進(jìn)而影響檢測(cè)精度,但影響程度小。

圖11 訓(xùn)練過程中的Loss和APFig.11 Loss and AP during training
在訓(xùn)練前期,數(shù)據(jù)擴(kuò)增后的模型Loss 值更低,模型擬合度更高;在訓(xùn)練后期,盡管兩者Loss幾近相等,但數(shù)據(jù)擴(kuò)增后,模型在測(cè)試集中檢測(cè)精度更高,泛化性更好。由此可見,數(shù)據(jù)擴(kuò)增對(duì)模型性能提升有積極作用。
為檢驗(yàn)改進(jìn)YOLOv4 的性能,將其與主流算法EfficientDet、YOLOv4-tiny、EN0-YOLOv3和MN3-YOLOv4-lite 網(wǎng)絡(luò)進(jìn)行比較,圖12 是5 種方法部分測(cè)試圖像的檢測(cè)結(jié)果,表4是進(jìn)一步對(duì)5種方法各性能參數(shù)的結(jié)果統(tǒng)計(jì)。

表4 比較實(shí)驗(yàn)結(jié)果Table 4 Results of compared experiments

圖12 不同網(wǎng)絡(luò)模型檢測(cè)結(jié)果Fig.12 Detection results of different network models
由圖12 得,5 種模型誤檢率都很低,但漏檢率差距較大。對(duì)于近距離的蘑菇目標(biāo)而言,5種檢測(cè)方法都有較高的檢測(cè)準(zhǔn)確率與召回率,其中,改進(jìn)YOLOv4 漏檢更少,檢測(cè)精度略占優(yōu)勢(shì)。而對(duì)于遠(yuǎn)距離蘑菇目標(biāo)而言,5 種方法檢測(cè)精度差距較大,YOLOv4-tiny 與MN3-YOLOv4-lite 檢測(cè)效果漏檢率最高,檢測(cè)精度最低,EfficientDet 與EN-YOLOv3 漏檢更少,檢測(cè)精度相對(duì)較高,改進(jìn)YOLOv4 誤檢率最少,檢測(cè)精度最高。總體而言,改進(jìn)YOLOv4檢測(cè)效果占優(yōu)。
由表4 得,EfficientDet 檢測(cè)精度較低,F(xiàn)PS 指標(biāo)較低,而模型權(quán)重尺寸小,分析原因可能是EfficientDet調(diào)用的BIFPN 結(jié)構(gòu)有5 層特征層,特征流為串行傳遞方式,相比于常用的3層特征結(jié)構(gòu)計(jì)算效率更低。由此可見,檢測(cè)速率不僅僅與模型參數(shù)有關(guān),還受多方面因素的影響。YOLOv4-tiny同樣參數(shù)量較少,且檢測(cè)速度最快,但檢測(cè)精度最差,不符合實(shí)際要求。剩余的3 個(gè)模型權(quán)重尺寸位于50~60 MB,且EN0-YOLOv3 與MN3-YOLOv4 的FPS 都約為57,而改進(jìn)YOLOv4 速度指標(biāo)FPS 約為68,明顯優(yōu)于前兩者;EN0-YOLOv3 與MN3-YOLOv4-lite檢測(cè)精度明顯劣于改進(jìn)YOLOv4。綜上所述,本文的改進(jìn)YOLOv4 模型實(shí)現(xiàn)了在檢測(cè)精度、運(yùn)算速率與參數(shù)尺寸三方面的平衡,滿足實(shí)際應(yīng)用的要求。
為滿足野生蘑菇檢測(cè)的實(shí)時(shí)性和準(zhǔn)確度要求,提出改進(jìn)YOLOv4 檢測(cè)模型。在YOLOv4 基礎(chǔ)上進(jìn)行輕量化改進(jìn):引入高效ShuffleNetv2作為主干網(wǎng)絡(luò),將PANet替換為高效的ASFF 進(jìn)行特征融合,并使用深度可分離卷積DWConv 和金字塔卷積PyConv 分別替換第三、第一檢測(cè)分支中普通卷積。在輕量化改進(jìn)基礎(chǔ)上進(jìn)行檢測(cè)精度的優(yōu)化:引入SA注意力模塊,以少量計(jì)算代價(jià)提高檢測(cè)準(zhǔn)確率;使用改進(jìn)的WeightDIoU NMS替代原始NMS,預(yù)測(cè)框選擇更加合理。
改進(jìn)YOLOv4 模型AP 為88.76%,F(xiàn)1 為0.858,F(xiàn)PS為67.93,模型權(quán)重尺寸為52.28 MB,相較于YOLOv4,檢測(cè)精度基本不變,實(shí)時(shí)性得到大幅度提升,模型權(quán)重尺寸急劇減小,且相較于其他主流模型,綜合性能更優(yōu),有利于無人撿拾設(shè)備的部署運(yùn)行。