莊昊龍 ,周嘉灝 ,林毓翰 ,彭海深 ,林宏宇
(1.華南農業大學數學與信息學院、軟件學院,廣東 廣州 510642;2.華南農業大學電子工程學院(人工智能學院),廣東 廣州 510642;3.華南農業大學工程學院,廣東 廣州 510642)
社會的發展越來越趨向于智能化與自動化,農業機械化也成為當前發展的主要趨勢,科學利用計算機視覺輔助技術來實現對農作物的農情檢測及精確識別,有助于更好地預測農作物產量。柑橘作為我國南方的常見水果,年產量一直在穩步上升。為實現對柑橘果實產量的精準預測,研究柑橘果實的識別算法和計數算法就顯得尤為重要。
傳統的水果檢測識別技術通常是對水果的紋理、顏色、形狀等外表特征進行提取和識別[1],這些方法通常具有一定的環境適應缺陷性和主觀性。而深度學習算法具有較好的適應性及較高的識別率,正在不斷成為主要的檢測技術。許多研究者陸續研究出了如R-CNN算法[2]、Faster R-CNN算法[3]、SSD算法[4]、YOLO 系列算法[5]等。在計數方面,DeepSort 算法[6]是目前較為成熟的目標計數算法,其相比于傳統的Sort 目標計數算法[7],具有提升目標被環境等其他因素遮擋情況下的計數效果的優點[8]。因此,項目組采用YOLO系列的YOLOv5算法作為檢測器,并在其中加入了SE 注意力機制對其進行改進,使其對柑橘果實具有更好的識別效果。同時,再結合DeepSort算法就可對柑橘果實進行計數,結果顯示,其平均識別準確率為93.712%、平均多目標跟蹤準確率為88.465%。
YOLOv5 是目前主流的一階段目標檢測算法,按模型量級可分成YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。其中,YOLOv5x 模型的量級最大,所需要卷積的網絡深度最大,速度最慢。基于實際場景需求及配置,最終采用YOLOv5s 模型來對柑橘果實進行識別。YOLOv5s 主要由輸入(Input)、主干(Backbone)、頸部(Neck)和輸出(Output)四個部分組成,其結構框圖如圖1 所示。

圖1 YOLOv5s結構框圖
1)對于輸入(Input)部分,其主要是將圖片統一調整為640×640 三通道格式,并將調整后的圖片送入主干(Backbone)部分中。
2)對于主干(Backbone)部分,其主要包括Focus結構、Conv 結構、CSP 結構、SPP 結構和Res 結構。Focus 結構主要對圖片進行了切片操作,從而將通道數擴展了4 倍,其可在保證圖片信息不丟失的同時提高后續的計算速度。Conv 結構主要對圖片進行卷積的操作,并結合非線性的激活函數將激活的特征信息引入到更深的網絡中,從而提高網絡的表達能力。CSP 結構主要對圖片進行殘差卷積的操作,其可以避免在網絡加深時出現梯度消失的現象,并且也可以更好地提取目標的特征信息。SPP 結構主要通過四個池化核來分別進行池化處理,最后將池化結果進行相加以實現多尺度融合,從而可得到更多尺度的特征信息。而Res 結構主要包括Conv 結構和CSP 結構兩個部分,從而實現多次卷積操作。
3)對于頸部(Neck)部分,其主要包括Conv 結構、Up_S 結構、Down_S 結構和Con_CSP 結構。Up_S 結構主要實現上采樣的操作,Down_S 結構主要實現下采樣的操作,Con_CSP 結構主要實現相加與殘差卷積相結合的操作。頸部(Neck)部分整體可看作是FPN+PAN 結構,其可更為精準地傳遞目標的特征信息。在FPN 結構中,其主要實現將特征信息從高維度向低維度傳遞;在PAN 結構中,其主要實現將特征信息從低維度向高維度傳遞。所以結合FPN 結構與PAN 結構就可更清楚地定位大目標與小目標的相關特征[9]。
4)對于輸出(Output)部分,其主要分為3 個Head 結構。Head 結構主要通過損失函數與非極大抑制的計數,從而在圖片中輸出各目標的類別及其置信度得分,同時輸出各目標預測邊框的對應位置。
1.2.1 SE注意力機制介紹
SE 注意力機制是一種輕量級的注意力檢測機制,其主要通過在原特征網絡中加入SE 模塊從而使模型更聚焦于重要的特征信息,即主要為提高模型的專注度,從而起到特征信息加強的作用[10]。
SE 注意力機制主要分為壓縮(Squeeze)、激勵(Excitation)和估算(Scale)三個步驟,如圖2 所示。壓縮(Squeeze)步驟主要通過全局平均池化對特征圖的高度信息和寬度信息進行壓縮,從而使各通道數據凝集為一個數值;激勵(Excitation)步驟主要通過FC全連接層來判斷每個通道的重要程度,并給每個通道賦予其對應的權重;估算(Scale)步驟則通過將通道的權重與原特征圖相乘,從而在不改變維度的情況下凸顯更多的特征信息。

圖2 SE注意力機制
1.2.2 YOLOv5主干部分改進
在YOLOv5 算法中,為了捕獲到更多的特征信息,本研究通過將S E 注意力機制添加到主干(Backbone)部分最后的CSP 層與SPP 層的中間,如圖3 所示,從而在主干部分即可獲得更多重要的特征并傳入后續的網絡中進行進一步的處理。

圖3 主干部分改進
D e e p S o r t 算法是主要用于進行多目標跟蹤(Multiple Object Tracking, MOT)的算法。DeepSort算法是Sort 算法的改進版本,即在Sort 算法的基礎上增加了級聯匹配和狀態的確定,從而可以實現對目標進行比較穩定的追蹤。DeepSort 算法核心部分為卡爾曼濾波、匈牙利算法[11],卡爾曼濾波的主要作用是預測下一幀時目標框所在的新位置,匈牙利算法的主要作用是實現將卡爾曼濾波得到的新目標框與目標檢測得到的新預測框進行級聯匹配和IOU匹配,從而實現對每個目標的追蹤,并且每個目標都會有一個對應的ID編號。
本研究采用DeepSort 算法結合改進YOLOv5 算法的方式,主要實現改進YOLOv5 算法對目標進行檢測,而DeepSort 算法則對改進YOLOv5 算法檢測到的結果進行追蹤及計數,具體步驟如下。
1)把視頻按幀數進行分解后,將每一幀的圖像送入YOLOv5 算法中對所需要檢測的目標進行識別并輸出其對應預測框的信息。
2)將該預測框的信息送入DeepSort 算法中以實現在原圖像中將每個目標裁剪出來,從而提取其表觀特征和運動特征。
3)將相鄰兩幀的目標進行匹配,從而給每個目標一個單獨的ID編號。
本研究所采用的數據集是在柑橘種植園從多場景拍攝的圖片,共有7 272 張圖片,其可真實反映柑橘果實存在的大小不一致及部分被樹葉遮擋的情況,同時也有涉及在不同光線下對柑橘果實進行拍攝的相關圖片。將該數據集進行劃分,選取5 926 張圖片作為訓練集,738 張圖片作為驗證集,608 張圖片作為測試集。
同時,選用LabelImg 軟件對該數據集進行標注,設定柑橘果實的標簽名字為“Orange”,設定標簽的格式為YOLO 格式,從而在標注后可直接生成后綴為.txt的標注文件。
實驗設備搭載了NVIDIA GeForce RTX 3060-6G顯卡以進行GPU 加速,并主要利用Anaconda 創建Python 版本為3.7.13 的虛擬環境,在激活環境后安裝CUDA 11.1.1 版本、cuDNN v8.1.1 版本和torch 1.7.1版本,同時進行相關依賴庫的安裝。
在實驗中選用精確度(P r e c i s i o n)、召回率(Recall)和平均識別準確率(Average Precision, AP)作為YOLOv5 的評價指標。選用多目標跟蹤準確率(Multiple Object Tracking Accuracy, MOTA)作為DeepSort的評價指標。
精確度(Precision)和召回率(Recall)的公式可表示為:
其中,TP表示被正確檢測出來的樣本數,FP表示被錯誤檢測出來的樣本數,FN表示沒有被檢測出來的樣本數。同時結合只有柑橘果實一種類別,所以平均識別準確率(AP)和多目標跟蹤準確率(MOTA)的公式可表示為:
其中,IDSW表示已計數的目標的ID 發生變化的個數,n表示總幀數,i表示當前的幀數。
本次實驗中,統一將訓練YOLOv5 模型時輸入的圖片大小設置為640×640,初始學習率設置為0.01,在通過300 次迭代后,選取平均識別準確率最佳的權重文件作為最優權重,最終得到柑橘果實的平均識別準確率為93.712%。同時,通過測試集對比改進前后YOLOv5 算法的檢測效果,可得到在加入SE 注意力機制后可以更好地檢測出較隱蔽或重疊率較高的柑橘果實,如圖4 和圖5 所示,說明該改進后的算法可較適應在真實柑橘種植園中對柑橘果實進行識別。

圖4 改進前檢測效果圖

圖5 改進后檢測效果圖
將改進前后YOLOv5 算法訓練后得到的評價指標進行對比,得到的結果如表1 所示。

表1 改進前后YOLOv5評價指標對比
由表1 可知,改進后的YOLOv5 算法相比改進前的平均識別準確率提升了1.354 個百分點,并且精確度和召回率也有一定程度的提升,說明改進后的YOLOv5算法對柑橘果實的識別效果更好。
同時,將該改進后的YOLOv5 算法與CenterNet算法、EfficientDet 算法、SSD 算法、YOLOv4 算法、YOLOX 算法進行對比,得到其平均識別準確率的對比結果,如圖6所示。

圖6 不同算法對柑橘果實的平均識別準確率
從圖6 中可看出,改進后的YOLOv5 算法相比其他幾種算法在對柑橘果實的平均識別準確率上有較好的表現,可體現出該改進后的YOLOv5 算法可較好地運用于對柑橘果實的識別。
將該改進后的YOLOv5 算法檢測出的柑橘果實信息送入DeepSort 算法中,即可實現對柑橘果實的計數,如圖7所示。

圖7 計數效果圖
從圖7 中可看出,DeepSort 算法可較好地實現對柑橘果實的計數,其可在圖像中顯示出當前幀每個柑橘果實對應的ID 號,從而最終可得出在整段視頻中柑橘的數量。為研究該算法的穩定性,在10 段視頻中分別通過DeepSort 算法對柑橘果實進行計數,并將得到的評價指標進行對比,結果如表2 所示。

表2 DeepSort評價指標對比
從表2 中可計算得,在10 段視頻中的平均多目標跟蹤準確率為88.465%,說明DeepSort 算法對柑橘果實的計數效果較好。
通過采用改進YOLOv5 算法和DeepSort 算法相結合的方式,實現了對柑橘果實的識別及計數。在柑橘果實識別部分,主要基于YOLOv5 算法,通過在主干部分加入SE 注意力機制以實現對算法的改進,從而提高對柑橘果實的識別效果。在柑橘果實計數部分,主要采用DeepSort 算法給予每個柑橘果實單獨的ID 編號以實現對柑橘果實的計數。最終得到改進后的YOLOv5 算法對柑橘果實的平均識別準確率為93.712%,相比改進前提升了1.354 個百分點,說明改進后的算法對柑橘果實的識別效果較好。同時,再結合DeepSort 算法即可得到對柑橘果實的平均多目標跟蹤準確率為88.465%,說明其可較準確地實現對柑橘果實的計數。