吳思妃
(浙江農(nóng)林大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,浙江 杭州 311300)
茶葉產(chǎn)業(yè)在中國(guó)的經(jīng)濟(jì)中占有重要地位,據(jù)統(tǒng)計(jì),2022年全國(guó)茶園面積達(dá)4995.40萬畝,同比增加99.31萬畝,增幅2.03%;全國(guó)干毛茶總產(chǎn)量為318.10萬噸,同比增長(zhǎng)10.8萬噸,增幅3.85%;全國(guó)干毛茶總產(chǎn)值再創(chuàng)歷史新高,達(dá)到3180.68億元,同比增加252.42億元,增幅8.62%。茶葉產(chǎn)業(yè)為中國(guó)提供了大量的就業(yè)機(jī)會(huì)和財(cái)政收入。茶芽作為制作茶葉的重要原料之一,其產(chǎn)量對(duì)茶葉產(chǎn)業(yè)的影響是非常重大的。當(dāng)前茶芽的采摘主要依靠人工,費(fèi)時(shí)費(fèi)力,且效率較低,更無法實(shí)現(xiàn)準(zhǔn)確的產(chǎn)量估計(jì)與管理。自動(dòng)化采茶無需人工操作,能夠有效解決人工采茶勞動(dòng)強(qiáng)度大、效率低等問題,在大幅提高生產(chǎn)效率的同時(shí),能夠?qū)崿F(xiàn)信息集成和共享,及時(shí)準(zhǔn)確的為決策與管理服務(wù),保證茶園的優(yōu)化配置和高效運(yùn)轉(zhuǎn)。因此,實(shí)現(xiàn)茶芽采摘的自動(dòng)化和智能化對(duì)于提高茶葉產(chǎn)量有重要意義[1]。而茶芽檢測(cè)是實(shí)現(xiàn)茶芽采摘自動(dòng)化和智能化的基礎(chǔ)。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,其在智慧農(nóng)業(yè),尤其是自動(dòng)化、智能化產(chǎn)業(yè)上得到了廣泛的應(yīng)用。通過使用深度學(xué)習(xí)算法,可以進(jìn)行茶芽的自動(dòng)檢測(cè),提高檢測(cè)精度和效率,為實(shí)現(xiàn)茶葉茶芽的自動(dòng)化采摘提供技術(shù)支持。YOLO系列算法作為當(dāng)前主流的深度學(xué)習(xí)目標(biāo)檢測(cè)算法之一,在識(shí)別小目標(biāo)圖像上已被證明具有較高的準(zhǔn)確性與可靠性。其中,YOLOv5算法運(yùn)算速度快、精度高、模型小,在嵌入式設(shè)備上的應(yīng)用前景非常廣泛。
因此,本文提出了一種基于改進(jìn)YOLOv5模型的茶芽識(shí)別算法,旨在提高茶芽識(shí)別的準(zhǔn)確性,實(shí)現(xiàn)對(duì)茶芽的快速高效檢測(cè),為將來在嵌入式設(shè)備上實(shí)現(xiàn)茶芽識(shí)別、自動(dòng)采摘提供參考。
YOLOv5是YOLO系列目標(biāo)檢測(cè)模型較穩(wěn)健的版本,具有非??斓膱D像推理速度,可以達(dá)到0.007秒,即每秒可處理140張圖像,滿足圖像實(shí)時(shí)檢測(cè)需求。與YOLOv4、YOLOv3等相比,YOLOv5使用了更深層次的網(wǎng)絡(luò)結(jié)構(gòu)和自適應(yīng)數(shù)據(jù)增強(qiáng)等技術(shù),從而提高了模型檢測(cè)精度。此外,YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)里的所占權(quán)重?cái)?shù)據(jù)文件內(nèi)存大小僅為27 MB,網(wǎng)絡(luò)體量大大減小。網(wǎng)絡(luò)結(jié)構(gòu)方面,其輸入部分使用Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算和自適應(yīng)圖像縮放,對(duì)小目標(biāo)檢測(cè)效果更好;主干部分引入了Focus結(jié)構(gòu)執(zhí)行切片操作降低計(jì)算復(fù)雜度,提高了檢測(cè)速度[2]。
綜上所述,YOLOv5具有檢測(cè)速度快、準(zhǔn)確率高、易于訓(xùn)練和部署等優(yōu)點(diǎn),可以實(shí)現(xiàn)定制化的檢測(cè)任務(wù)。相比于YOLOv4等,YOLOv5引入了更深的網(wǎng)絡(luò)結(jié)構(gòu)、自適應(yīng)數(shù)據(jù)增強(qiáng)等技術(shù),進(jìn)一步提高了模型的性能。
注意力機(jī)制是一種讓模型更加關(guān)注輸入信息中重要部分的技術(shù)[3][4],可以分為通道域、空間域和混合域,它們關(guān)注圖像中的目標(biāo)和上下文信息,從而提升小目標(biāo)檢測(cè)的效果,可以提高模型的性能和效率。坐標(biāo)注意力機(jī)制是一種同時(shí)考慮了空間和通道維度的注意力機(jī)制,本研究提出了在YOLOv5算法的頸部網(wǎng)絡(luò)施加坐標(biāo)注意力機(jī)制的方法,增強(qiáng)對(duì)目標(biāo)對(duì)象的識(shí)別能力。
坐標(biāo)注意力機(jī)制通過一個(gè)二維卷積層來生成兩個(gè)不同方向的坐標(biāo)向量,并將它們相乘得到最終的權(quán)重矩陣,使得位置信息可以被保存下來,增強(qiáng)模型的性能。其具體操作可以分為坐標(biāo)信息嵌入和坐標(biāo)注意力生成兩個(gè)步驟。為了克服全局池化在保留位置信息方面的不足,坐標(biāo)嵌入部分采用了一種并行的一維特征編碼方法,即沿著水平和豎直方向分別對(duì)每個(gè)通道進(jìn)行(H,1)和(1,W)的池化核編碼,從而得到輸出表示如公式(1)和公式(2)所示:
坐標(biāo)注意力生成的過程是通過坐標(biāo)信息嵌入操作,將全局感受野和精確位置信息融合到特征表示中,從而形成注意力圖。具體而言,該步驟將坐標(biāo)嵌入操作輸出的兩個(gè)特征圖沿空間維度串接起來,然后通過一個(gè)共享的1×1卷積層得到公式(3)所示的輸出:
其中,[zh,zw]表示空間維度上的拼接操作,F(xiàn)1表示1×1卷積層,fh∈RC/r×(H+W)為水平和豎直方向編碼空間信息的中間特征圖。將f沿著空間維度切分成fh∈RC/r×(H+W)和fw∈RC/r×(H+W),此處,r是用于控制塊大小的縮放比例。再利用兩個(gè)1×1卷積Fh和Fw分別將fh和fw變換為與輸入的通道數(shù)相同,服從公式(4)和公式(5):
gh和gw分別展開并作為注意力權(quán)重使用。最后的輸出可以寫成:
RepVGG Block是一種簡(jiǎn)化的網(wǎng)絡(luò)結(jié)構(gòu),它將VGGNet和ResNet的思想結(jié)合起來,通過一種結(jié)構(gòu)重參數(shù)化的方法,在訓(xùn)練時(shí)使用多分支模塊,而在推理時(shí)使用單分支模塊,從而提高效率和精度。
VGGNet和ResNet是卷積神經(jīng)網(wǎng)絡(luò)中的兩個(gè)經(jīng)典模型。VGGNet探索了卷積神經(jīng)網(wǎng)絡(luò)的深度與其性能之間的關(guān)系,證明了增加網(wǎng)絡(luò)的深度能夠在一定程度上影響網(wǎng)絡(luò)最終的性能,使錯(cuò)誤率大幅下降。其使用的全部都是3x3的小卷積核和2x2的池化核,通過不斷加深網(wǎng)絡(luò)來提升性能,特點(diǎn)是網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,但是參數(shù)量大,訓(xùn)練時(shí)間長(zhǎng)。ResNet通過殘差學(xué)習(xí)解決了深度卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中的梯度消失問題。其通過引入跨層連接(shortcut connection)實(shí)現(xiàn)了讓輸入直接跨過若干層傳到后面的層,以給非線性的卷積層增加直連邊的方式來提高信息的傳播效率,使得網(wǎng)絡(luò)可以更深,性能也更好。相比之下,VGGNet的優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單易懂,缺點(diǎn)是參數(shù)量大;ResNet的優(yōu)點(diǎn)是可以訓(xùn)練非常深的網(wǎng)絡(luò),缺點(diǎn)是網(wǎng)絡(luò)結(jié)構(gòu)比較復(fù)雜。
而RepVGG作為VGGNet和ResNet的結(jié)合,是一種由三個(gè)分支組成的卷積塊,其中一個(gè)分支是3×3的標(biāo)準(zhǔn)卷積,另一個(gè)分支是1×1的卷積,還有一個(gè)分支是恒等映射(identity mapping)。在訓(xùn)練階段,這三個(gè)分支都會(huì)參與計(jì)算,并且通過加法操作進(jìn)行融合。在推理階段,這三個(gè)分支會(huì)被轉(zhuǎn)化為一個(gè)等價(jià)的3×3卷積,從而減少計(jì)算量和參數(shù)量。YOLOv5s是一種輕量級(jí)的目標(biāo)檢測(cè)模型,它使用了多尺度特征金字塔(FPN)和深度可分離卷積(Depthwise Separable Convolution)來提高效率 。使用RepVGG Block替換YOLOv5s的卷積塊可以讓YOLOv5s在保持原有精度的同時(shí)能夠提速。具體來說,就是將YOLOv5s中所有的3×3卷積替換為RepVGG Block,并且在訓(xùn)練結(jié)束后對(duì)RepVGG Block進(jìn)行重參數(shù)化,將旁支的1×1卷積融合到3×3的卷積中。在訓(xùn)練時(shí),該方法的實(shí)現(xiàn)方式是為每一個(gè)3x3卷積層添加平行的1x1卷積分支和恒等映射分支,構(gòu)成一個(gè)RepVGG Block。集成坐標(biāo)注意力機(jī)制和RepVGG Block后的整體主干網(wǎng)絡(luò)結(jié)構(gòu)框圖如圖1所示。
圖1 改進(jìn)算法的主干網(wǎng)絡(luò)結(jié)構(gòu)
本文網(wǎng)絡(luò)訓(xùn)練使用的硬件環(huán)境為騰訊云服務(wù)器,配置為Intel Xeon Cascade Lake 8255C(2.5 GHz),10核vCPU,40GB內(nèi)存和1顆Tesla V100-NVLINK-32。操作系統(tǒng)為Ubuntu20.04,使用Python3.8 為計(jì)算機(jī)語言,并以Pytorch1.10.2作為深度學(xué)習(xí)框架。訓(xùn)練時(shí)的批量大小設(shè)置為64,初始學(xué)習(xí)率設(shè)置為0.01,訓(xùn)練輪次300輪。
本文實(shí)驗(yàn)所用數(shù)據(jù)集均由實(shí)地拍攝獲得,包含大小為1008×1512像素的JPEG圖像245張,如圖2。為了提高檢測(cè)的泛化能力,采用平移、鏡像、拼接、灰度化等方法對(duì)數(shù)據(jù)進(jìn)行增強(qiáng)處理。最終獲得增強(qiáng)后的圖像980張。使用labelImg圖像標(biāo)注軟件對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注,存儲(chǔ)為YOLO格式。由于本文的研究對(duì)象為茶芽,將每張圖像中的茶芽標(biāo)簽設(shè)置為“shoot”。
圖2 部分茶芽數(shù)據(jù)集例子
本文采用mAP、精確率(P)、召回率(R)這三個(gè)指標(biāo)來評(píng)估模型的精度,采用參數(shù)量與模型大小來評(píng)估模型的輕量化效果,對(duì)比分析改進(jìn)前后的YOLOv5算法在茶芽上的識(shí)別性能。由于本文只有“shoot”一個(gè)標(biāo)簽,本實(shí)驗(yàn)中的mAP等于AP。相關(guān)公式如下:
其中,TP表示預(yù)測(cè)為茶芽實(shí)際也是茶芽的樣本數(shù)量,F(xiàn)N表示預(yù)測(cè)為茶芽實(shí)際不是茶芽的樣本數(shù)量,F(xiàn)N表示預(yù)測(cè)不是茶芽實(shí)際也不是茶芽的樣本數(shù)量。
本文將改進(jìn)后的算法稱為YOLOv5-CARV,改進(jìn)前后的實(shí)驗(yàn)結(jié)果如下表。
由表1可知,改進(jìn)后的YOLOv5算法相較改進(jìn)前mAP提升了4.22%,召回率提升了8.07%,盡管精確率降低了1.94%,但參數(shù)量由7062718大幅降低至5500541,模型大小由14.5MB降低至11.3MB。本文算法之所以能取得更高的檢測(cè)精度,得益于坐標(biāo)注意力機(jī)制的引入,使網(wǎng)絡(luò)的關(guān)注點(diǎn)更集中于未被遮擋的小目標(biāo)上。同時(shí),由于使用RepVGG Block替換原網(wǎng)絡(luò)中的卷積塊,并且在訓(xùn)練結(jié)束后對(duì)RepVGG Block進(jìn)行重參數(shù)化,將旁支的1×1卷積融合到3×3的卷積中,大大減少了計(jì)算量和參數(shù)量,實(shí)現(xiàn)模型參數(shù)量降低至原模型77.88%,模型大小也較原模型減少了22.06%。綜上所述,本文的改進(jìn)方式在有效提升模型準(zhǔn)確性的同時(shí),大幅降低了計(jì)算量,達(dá)到了較好的輕量化效果,較好地實(shí)現(xiàn)了本文的研究目標(biāo),能夠?yàn)閷碓谇度胧皆O(shè)備上實(shí)現(xiàn)茶芽識(shí)別、自動(dòng)采摘提供有效參考。
表1 YOLOv5算法改進(jìn)前后對(duì)茶芽檢測(cè)結(jié)果
本文以YOLOv5算法作為茶芽檢測(cè)的框架,在其頸部網(wǎng)絡(luò)引入坐標(biāo)注意力機(jī)制,并將卷積塊替換為RepVGG,使模型能夠更加關(guān)注到復(fù)雜背景下的小目標(biāo)并大大減少了計(jì)算量。本文提出的YOLOv5-CARV算法在茶芽檢測(cè)上表現(xiàn)更加出色,有著更高的識(shí)別精度、更小的模型體積和更少的計(jì)算量。本文方法因?yàn)榫哂袑?duì)硬件設(shè)備要求低和計(jì)算量小的特點(diǎn),更適合嵌入式設(shè)備末端部署。如何在嵌入式設(shè)備部署本文方法是今后研究的重點(diǎn)。