








摘" 要:為實現草莓果實成熟度的精準快速識別,該文提出一種基于改進YOLOv7的草莓目標識別方法。針對實地大棚環境下采集到的草莓數據集,首先使用LabelImg對數據集分類型標注,然后使用改進后的Kmeans聚類算法進行先驗框尺寸的計算,在主干中加入CBAM注意力機制增加模型的識別精度,最后采用分階段的訓練方法對搭建的YOLOv7模型進行模型評估。實驗結果表明,草莓目標檢測的mAP均值達到92.3%,召回率達到85.7%,精確率達到91%,單張圖像的檢測時間為27 ms,該方法能夠快速準確地對復雜環境下草莓果實的成熟度進行檢測,為實現草莓產業智能化發展奠定基礎。
關鍵詞:草莓;目標檢測;YOLOv7;深度學習;注意力機制
中圖分類號:TP391" " " "文獻標志碼:A" " " " " 文章編號:2096-9902(2023)21-0018-06
Abstract: In order to realize the accurate and rapid recognition of strawberry fruit maturity, a strawberry target recognition method based on improved YOLOv7 is proposed in this paper. Aiming at the strawberry data set collected in the field greenhouse, LabelImg is used to label the data set, then the improved Kmeans clustering algorithm is used to calculate the prior frame size, and CBAM attention mechanism is added to the trunk to increase the recognition accuracy of the model. Finally, the stage-by-stage training method is used to model the YOLOv7 model. The experimental results show that the average mAP of strawberry target detection is 92.3%, the recall rate is 85.7%, the accuracy rate is 91%, and the detection time of a single image is 27 ms. This method can quickly and accurately detect the maturity of strawberry fruit in complex environment, laying the foundation for the intelligent development of strawberry industry.
Keywords: strawberry; target detection; YOLOv7; deep learning; attention mechanism
隨著我國設施農業的迅速發展,對草莓進行智能信息監控、實現機械化采收是當前草莓生產中的一個重要課題。草莓目標檢測是草莓智能化監測的關鍵技術,可為草莓生長狀況監測[1-2]、病蟲害監測[3]、產量預測等提供先驗信息。通過對草莓靶標的識別,通過草莓生長過程中的狀態監測、靶標定位等提供先驗信息和技術的基礎,對于實現智能化生產草莓意義重大。
這些年以來,全世界對于精準識別果實等方面的研究取得了顯著的成果。通過這些深度學習技術的應用,研究者們可以實現對果實的快速準確識別和分類,為人們提供更便捷的采摘和管理服務。Zhao等[4]利用閾值分割、邊緣檢測、區域增長和灰度共生矩陣等圖像預處理操作,從不同的復雜情況下提取出水果的外觀特征。李鑫[5]利用CaffeNet神經網絡對草莓對象進行了識別,實驗證明與利用方向梯度直方圖(HOG)特性的支持向量機相比較,該方法不僅耗時短,而且具有較高的識別率。張鐵中等[6]利用冷暖對比色(Luminance and Red Color Difference,LRCD)技術對草莓圖像進行分割,并且對經過分割的結果進行幾何特征的提取,進而對草莓采摘點進行了判斷。高凡[7]通過YOLOv3的改進,實現了對細節信息的有效特征提取,并通過實驗驗證了其對小目標、光強等因素的高適應能力。
目前,草莓物體檢測方面的研究雖已有一些進展,但多處于理論研究階段,而且模型算法大多以成熟草莓為識別對象且對于草莓物體遮擋、重疊等現象的檢測準確率較低。本實驗擬采用YOLOv7的卷積神經網絡模型,在此基礎上,加入了注意力機制,即基于卷積塊的注意機制模塊(Convolution Block Attention Module,CBAM)[8],結合草莓果實的成熟度等級劃分,建立草莓果實特征提取與特征提取的新方法,為草莓生長過程監測分析和成熟果實定位提供一定的技術支持,為草莓產業智能化發展奠定基礎。
1" 材料和方法
1.1" 數據采集及預處理
1.1.1" 數據采集
以深度學習算法為基礎對草莓果實進行檢測,在自然條件下,對各種草莓進行分類,實際圖像會受到土壤、雜草和枝葉等額外的因素干擾。草莓在不同的時期成熟,每株中有1~3種成熟度,分別為紅熟期草莓(red ripening period)、綠熟期草莓(green ripening period)與幼果期草莓(young fruit period)。
本文采集數據集共包含1 377張草莓原始圖像,數據來源有以下部分:吉林市豐滿區大棚草莓采摘園、網絡圖像。其中圖像構成比例見表1。
表1" 草莓數據集采集信息
草莓園實地采集圖像為人工采集,采集時間為上午10時左右,采集圖像包含單果實圖像、多果實重疊圖像、枝葉部分遮擋果實圖像等復雜大棚草莓果實情況。使用的拍攝工具為華為Mate30 5G手機超感光徠卡三攝,包括4 000萬像素超感光攝像頭、1 600萬像素超廣角攝像頭和800萬像素長焦攝像頭,圖像格式為.jpg,圖像示例如圖1(a)所示。網絡圖像收集來自paddlepaddle數據集和網絡爬蟲,圖像示例如圖1(b)所示。
1.1.2" 數據預處理
使用標注工具LabelImg進行手工標注,標注后生成的.txt 類型的文件包含目標對象的二維像素坐標信息。針對大棚草莓數據集圖像的實際情況,本實驗分為紅熟期草莓(red ripening period)、綠熟期草莓(green ripening period)與幼果期草莓(young fruit period)3類,根據《草莓等級規格》中草莓等級的規定標準,將著色面積大于80%標注為紅熟期草莓,著色面積小于0%標注為幼果期草莓,其余標注為綠熟期草莓。標注結果如圖2所示。
訓練網絡模型需要許多數據,數據量少,就會導致模型的過擬合,因此需要對采集到的圖像進行數據增強[9]。圖像銳化可以使圖像更加清晰,其原理是對圖像中顏色變化較大的地方進行相關的處理,從而使處理后的圖像變得更加銳利、輪廓更加明顯。幼果期草莓及綠熟期草莓與草莓枝葉顏色及邊緣分化極其不明顯,且采集的大棚草莓數據集中樣本量不足,故本文采用圖像銳化的方式對幼果期草莓及綠熟期草莓進行數據增強。將擴充后的數據集按照6∶2∶2的比例隨機分為訓練集(1 645張)、測試集(550張)和驗證集(548張)。
1.2" 檢測方法
1.2.1" YOLOv7 網絡模型結構
YOLOv7是目前YOLO[10-12]系列先進的算法,在準確率和速度上超越了以往的YOLO系列。YOLOv7網絡由3個部分組成:輸入(input),主干(backbone)和檢測頭(head),與YOLOv5不同的是,將neck層與head層合稱為head層,但實際功能不發生改變。對各個部分的功能和YOLOv5相同,如backbone用于提取特征,head用于預測。
大多數關于設計高效網絡中,主要考慮的因素是參數量、計算量和計算密度。但從內存訪存的角度出發,還可以分析輸入/輸出信道比、架構的分支數和元素級操作對網絡推理速度的影響。在執行模型縮放時還需考慮激活函數,即更多地考慮卷積層輸出張量中的元素數量。
跨階段局部稠密連接網絡(CSPVoVNet)[13]是稠密連接網絡變體(VoVNet)[14]的一個變體。除了考慮上述幾個設計問題外,CSPVoVNet的體系結構還分析了梯度路徑,使不同層能夠學習更多樣化的特征。
YOLOv7的backbone總共有50層,如圖3所示。首先是經過4層卷積層,如圖4所示,CBS主要是卷積模塊+批歸一化+非線性激活函數(Conv+BN+SiLU)構成,圖中用不同的顏色表示不同的大小(size)和步長(stride), 如(3,2)表示卷積核大小為3,步長為2。經過4個CBS后,特征圖變為160×160×128的矩陣。隨后會經過高效的聚合網格結構(ELAN)[15]模塊,ELAN由多個CBS構成,其輸入輸出特征大小保持不變,通道數在開始的2個CBS會有變化,后面的幾個輸入通道都是和輸出通道保持一致的,經過最后一個CBS輸出為需要的通道。
YOLOv7和YOLOv4[16]、YOLOv5一樣,仍采用具有特征金字塔網絡的路徑聚合網絡(PaFPN)結構。首先,對于backbone最后輸出的32倍降采樣特征圖C5,先使用空間金字塔池化結構(SPP)[17]處理一下。這部分的SPP是由Scaled-YOLOv4提出的空間金字塔池化-跨空間局部模塊(SPP-CSP),在YOLOv5中已經被用到了,沒有變化。經過SPP的處理后,C5的通道數從1 024縮減到512。隨后的過程和YOLOv5是一樣的,依循自上而下(top-down)的路線,先后和C4、C3融合,得到P3、P4和P5;再按照自下而上(bottom-up)的路線,再去和P4、P5做融合。唯一與YOLOv5不同的地方就是,原先YOLOv5使用結合了CSP模塊網絡的瓶頸層(BottleneckCSP)被換成了YOLOv7的ELAN模塊。原先YOLOv5所使用的步長為2的下采樣卷積也換成了上面的YOLOv7設計的下采樣卷積層(DownSample)層。
整個PaFPN的融合過程如圖5所示,圖中標記出了通道的變化,在PaFPN的最后,YOLOv7使用了2層重復卷積(RepConv)去調整最終輸出的P3、P4和P5的通道數。在最后,YOLOv7還是一如既往地使用三層1x1卷積去預測置信度(objectness)、類別預測(class)和邊界框(bbox)3部分。
1.2.2" 注意力模塊(CBAM)
自深度學習快速發展后廣泛應用注意力機制于自然語言處理、統計學習、圖像檢測和語音識別等領域的核心技術[18],例如先關注場景中的一些重點,剩下的不重要的場景可能會被暫時性地忽略,其可以聚焦重要信息,忽略不相關的信息,并且還可以不斷調整,使得在變化的情況下也可以選取重要的信息。Woo等提出的卷積注意力模塊(Convolutional Block Attention Module, CBAM)由2個模塊構成,分別為通道注意力(Channel Attention Module, CAM)和空間注意力模塊(Sqatial Attention Module, SAM)。CAM將輸入的特征矩陣分別當作全局最大池化與全局平均池化得到2個特征向量,其都是1×1×C,然后按其通道維度將合并2個向量,去壓縮權值矩陣,再將通道壓縮權值矩陣與輸入矩陣相乘,最后得到調整后的特征映射。CAM模塊輸出的特征映射被SAM模塊當作本模塊的輸入矩陣,分別使用全局最大池化與全局平均池化得到2個二維向量,再將這2個向量進行卷積操作,生成空間壓縮權值矩陣,再將通道壓縮權值矩陣與特征映射相乘,得到最終的特征映射。CAM與SAM融合深淺層特征。高階特征引導低階特征進行通道注意力獲取的同時,低階特征還能反向指導高階特征進行空間注意力篩選,保證在不增加大量計算量和參數量的基礎上提升網絡結構的特征提取能力,還能夠實現網絡結構的實時檢測性能。
1.2.3" 評價指標
為了驗證模型穩健性和評估模型的性能,本研究采用以下性能評估指標。
mAP(mean Average Precision):平均精度。是一種常用的目標檢測評價指標,用于衡量模型對不同目標類別的識別精度。通常情況下,mAP越高,模型的性能越好。
FPS(Frames Per Second):每秒幀數。用于衡量模型的檢測速度,通常情況下,FPS越高,模型的檢測速度越快。
IoU(Intersection over Union):交并比。用于衡量模型檢測框與實際物體框的重疊程度。通常情況下,IoU越高,模型的檢測精度越高。
Recall/Precision:召回率/精確度。用于衡量模型的檢測效果。通常情況下,召回率越高,模型漏檢的情況越少;精確度越高,模型誤檢的情況越少。
其中,準確率、召回率、平均準確率的計算公式如下
式中:TP為檢測結果為真的正樣本;FN為檢測結果非真的正樣本;FP為檢測結果為真的負樣本;AP是單個類別的準確率。mAP為所有類別準確率的均值。
1.3" 模型訓練
1.3.1" 訓練環境
模型訓練的硬件環境為Intel■CoreTM i5-12 500H CPU中央處理器,16 GB運行內存,4 GB的GeForce RTX 3050顯卡。軟件環境為Windows11系統,配置安裝python3.9、Cuda10.0。
1.3.2" 參數設置
網絡訓練參數設置如下:輸入圖像尺寸為640像素,batch_size參數為4,初始學習率為0.01,并采用Adam優化器更新網絡權重。模型共訓練300輪,迭代1個輪次保存一次模型權重,最終選擇識別精度最高的模型。
2" 結果與分析
對測試集檢測結果進行分析,此模型的平均精度(mAP)評價結果顯示,在分辨率為640的情況下,各項關鍵指標變化曲線如圖6所示,草莓目標檢測的mAP均值達到92.3%,召回率達到85.7%,精確率達到91%,檢測時間平均為27 ms,能夠實現實時對草莓目標進行精準檢測。
模型訓練結束后,將最優訓練參數導入模型中進行識別驗證。實際訓練結束后的訓練集損失為3.845,驗證集目標檢測損失1.482,如圖7所示。
針對草莓目標監測環境的復雜性,本文重點分析了草莓不同大小、成熟度及被遮擋等條件下的檢測效果,識別結果如圖8所示。由圖8可知,所提出的算法模型,可以準確地檢測出不同成熟度的草莓對象。通過對整個測試集合的檢驗,可以看出該模型對于不同成熟程度的草莓對象都有很好的魯棒性。
如圖8(d)所示,該算法模型在遮擋的環境中對草莓對象有良好的適應性。通過對測試集整體檢測效果的分析,可以看出,本文模型對草莓遮擋或者重疊狀況不是極為嚴重的情況下草莓目標能夠實現較為精確的檢測。總之,該方法對于復雜條件下的草莓對象的成熟度識別具有穩健性。
本次研究對比實驗采用了官方提供的3種網絡模型,他們分別是云GPU、邊緣GPU和普通GPU的基本模型,分別稱為YOLOv7-w6、YOLOv7-tiny和YOLOv7。對比識別效果見表2。由表2可以看出,在減少模型復雜度的情況下,本文算法YOLOv7-CBAM在不降低速度和精度的前提下,試驗訓練環境下準確率達到91%,召回率達到85.7%,對比YOLOv7-w6網絡模型不僅準確率、召回率更高,且本文網絡模型體積減小46.1%;YOLOv7-CBAM模型對比YOLOv7模型檢測精度相當,雖然YOLOv7-CBAM模型準確率略低,但體積減少了11.7%;YOLOv7-CBAM模型雖然體積大于YOLOv7-tiny模型,但其在準確率、精度均遠遠優于YOLOv7-tiny模型。由此可見,在保證模型性能的前提下,本文算法模型在目標檢測任務具有先進性。
3" 結論
本文針對草莓果實檢測存在的問題,提出了一種基于改進YOLOv7的檢測方法。通過標注草莓數據目標的位置和成熟度信息,采用改進型Kmeans算法實現先驗框的尺寸計算,然后增加注意力機制,采用遷移學習、兩階段訓練方法實現模型訓練。最終結果表明,該方法對目標檢測的平均精度均值達到91%,能夠實現在復雜環境下草莓目標的快速準確檢測。經實驗,在相同數據集中,YOLOv7-CBAM的模型體積更小,檢測精確度更高,整體效果要優于YOLOv7、YOLOv7-w6、YOLOv7-tiny同時期目標檢測算法。試驗結果表明,在實地復雜環境下,YOLOv7-CBAM的模型在滿足高精度識別草莓果實的同時,計算量會大幅減少,不僅提高了檢測效率和實時性,而且模型較小,有利于在實際生產生活中應用。
由于本研究未置于實際嵌入式設備中進行測試,所以在實際應用中可能存在一定誤差,后續還需要將模型實際部署到移動端設備,進行真實場景下的草莓果實檢測。并且,還需增加更多復雜背景的草莓果實圖像以擴充數據集,進一步加強測試和訓練,提升模型的泛用性,更好地滿足實際的應用需求。
參考文獻:
[1] 韓東,王鵬新,張悅,等.農業干旱衛星遙感監測與預測研究進展[J].智慧農業(中英文),2021,3(2):1-14.
[2] ZHOU M, ZHENG Y, GUAN Y, et al. Efficient and privacy-preserving range-max query in fog-based agricultural IoT[J]. Peer-to-Peer Networking and Applications, 2021,14(4):2156-2170.
[3] WU Q, ZENG J , WU K. Research and application of crop pest monitoring and early warning technology in china[J]. Frontiers of Agricultural Science and Engineering, 2021.
[4] ZHAO Y, GONG L, HUANG Y, et al. A review of key techniques of vision-based control for harvesting robot[J]. Computers and Electronics in Agriculture,2016.
[5] 李鑫.用于機器采摘的高架草莓識別與分級方法的研究[D].南京:東南大學,2018.
[6] 張鐵中,陳利兵,宋健.草莓采摘機器人的研究:Ⅱ.基于圖像的草莓重心位置和采摘點的確定[J].中國農業大學學報,2005(1):48-51.
[7] 高凡.基于深度學習的實例搜索方法研究[D].西安:西安科技大學,2020.
[8] WOO S, PARK J, LEE J-Y, et al. CBAM: Convolution-al block attention module[C]// The European Confer-ence on Computer Vision(ECCV). Berlin, German: Springer,2018:3-19.
[9] 朱逢樂,鄭增威.基于圖像和卷積神經網絡的蝴蝶蘭種苗生長勢評估(英文)[J].農業工程學報,2020,36(9):185-194.
[10] 高友文,周本君,胡曉飛.基于數據增強的卷積神經網絡圖像識別研究[J].計算機技術與發展,2018,28(8):62-65.
[11] REDMON J, FARHADI A .YOLO9000: Better, Faster, Stronger[C]//IEEE Conference on Computer Vision amp; Pattern Recognition.IEEE, 2017:6517-6525.
[12] WANG C Y, BOCHKOVSKIY A, LIAO H Y M. YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2023:7464-7475.
[13] 楊斌,李成華,江小平,等.一種用于提升深度學習分類模型準確率的正則化損失函數[J].中南民族大學學報(自然科學版),2020,39(1):74-78.
[14] LEE Y, HWANG J W, LEE S, et al. An Energy and GPU-Computation Efficient Backbone Network for Real-Time Object Detection[C]//2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW).IEEE, 2019.
[15] REDMON J, DIVVALA S, GIRSHICK R ,et al. You Only Look Once: Unified, Real-Time Object Detection[C]//Computer Vision amp; Pattern Recognition.IEEE, 2016.
[16] BOCHKOVSKIY A, WANG C Y, LIAO H Y M.YOLOv4:Optimal Speed and Accuracy of Object Detection[J].2020.
[17] KAIMING H, XIANGYU Z, SHAOQING R, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence,2015,37(9).
[18] CHAUDHARI S, POLATKAN G, RAMANATH R, et al. An attentive survey of attention models[J].2019.