李子茂,李嘉暉,尹帆,帖軍,吳錢寶
(1. 中南民族大學計算機科學學院,武漢市,430074;2. 農業區塊鏈與智能管理湖北省工程研究中心,武漢市,430074;3. 湖北省制造企業智能管理工程技術研究中心,武漢市,430074)
柑橘是世界貿易第一的水果,產量和種植面積均居水果之首[1]。中國作為柑橘的主要原產地之一,栽培歷史悠久,柑橘資源豐富,由于擁有廣闊的柑橘種植區域和有利于柑橘生長發育的良好自然環境條件,已成為全球柑橘栽培強國[2]。然而,迄今為止,中國柑橘生產和采集工作仍由人工主導、生產自動化水平并不高,生產過程中往往會存在勞動力不足、采集效率低等問題。
隨著深度學習的興起,智慧農業和農業自動化越來越受重視,使用深度學習進行目標檢測已經成為當下的研究熱點,利用計算機視覺技術實現自然環境下的密集柑橘檢測,對尺寸小、數目多、顏色與環境相近、有遮擋重疊的柑橘進行精確的識別與定位成為實現柑橘早期估產的一個重要前提,同時也為采摘機器人提供有效的技術支持。
目前,基于深度學習的目標檢測算法大致可以分為兩種,一種是基于區域建議(Region Proposal)的:如R-CNN[3]、Fast R-CNN[4]、Faster R-CNN[5]、Mask R-CNN[6]等系列算法,主要采用區域建議網絡(Region Proposal Network)產生候選區域,進行分類回歸;一種是基于端到端(End-to-End)的:如YOLO系列[7-10]、SSD[11]等算法,將目標檢測視為單個回歸問題,通過卷積神經網絡同時預測多個目標的類別和位置,其中以YOLO系列算法為代表,在小目標檢測中有良好效果,得到了廣泛應用。
在單類別農作物目標檢測方面,諸多學者提出了不同研究思路。Liang等[12]提出一種在夜間環境檢測荔枝果實、果莖的方法,在YOLO v3的基礎上根據荔枝果實的邊界框確定果莖的ROI區域,實現夜間自然環境中的荔枝果實、果莖檢測。李文婧等[13]提出一種基于改進YOLOv4的植物葉莖交點目標檢測方法,選取4個不同尺度的錨框來獲取更多植物葉莖的交點信息,使得網絡在算法訓練過程中更易于擬合植物葉莖交點目標,實現植物根莖葉交點識別。Tian等[14]提出一種基于果園復雜環境不同生長階段的蘋果檢測方法,為提升蘋果特征提取能力,引入DenseNet網絡替換原始YOLOv3的Darknet主干網絡,使模型可更準確檢測不同生長階段的蘋果。熊俊濤等[15]提出一種改進YOLOv3夜間環境柑橘識別算法,為實現算法多層特征復用及融合,引入了密集連接網絡和殘差網絡,提高算法對柑橘圖像深層特征的提取與選擇能力。劉東等[16]提出一種基于顏色特征的麥穗檢測方法,通過采用彩色直方圖均衡麥穗特征,對麥穗進行骨架交點檢測與計數。以上方法均具有一定的魯棒性和泛化性,但在實際果園環境中,柑橘果株果實密集、尺寸小、數目多,存在一定程度果實粘連、遮擋或重疊等情況,如果僅將用于其他類別農作物或與背景區分度較高的作物檢測方法用于小而密集且背景與顏色相近的綠色柑橘檢測,漏檢誤檢情況會特別嚴重。
因此,本文針對實際果園密集柑橘檢測存在的問題,提出一種適用于密集柑橘檢測的DS-YOLO(Deformable Convolution SimAM YOLO)算法。為使特征提取網絡能自適應地提取柑橘的形狀和位置特征,以增強模型對尺寸變化較大、嚴重重疊遮擋的密集柑橘的檢測能力,算法引入可形變卷積(Deformable Convolution)網絡來代替原YOLOv4中CSPDarkNet53網絡中部分殘差模塊殘差單元的卷積層。此外,為增強模型對于密集柑橘的特征提取能力,在提取到的柑橘特征上加入SimAM注意力機制,為提高自然環境下小而密集柑橘的檢測精度,在特征融合模塊中,采用 K-means 方法重新匹配Anchor坐標,增加104×104的檢測尺度。
為更好進行密集柑橘的檢測研究,試驗樣本采集于桂林市靈川縣九屋鎮,采集對象為自然環境下自然生長的柑橘圖像。在拍攝圖像時,為最大限度模擬自然場景,選擇在晴天、陰天以及不同角度對柑橘植株進行拍攝,采集距離為1.0~2.0 m,不同環境下的柑橘樣本圖像共計2 365張,每張圖像包含50個及以上柑橘,圖像分辨率為4 032像素×3 024像素。
為提高DS-YOLO算法泛化能力,保證密集柑橘樣本圖像的多樣性,對采集到的柑橘圖像進行數據增強操作,包括裁剪、翻轉、亮度調整等操作。通過對采集到的密集柑橘圖片進行整理和分類,按照8∶2比例將柑橘圖像數據集劃分為訓練集和測試集,使用LabelImg圖像標注工具對圖像中的柑橘進行標記,分別標注出柑橘的位置和類別,圖片標注效果如圖1所示,部分圖片進行裁剪、翻轉、亮度調整等操作如圖2所示。柑橘圖像樣本不同情況分布如表1所示。

圖1 圖片標注

(a) 原始圖片

(b) 裁剪

(c) 旋轉

(d) 飽和度

(e) 對比度

(f) 亮度

表1 密集柑橘數據集分布Tab. 1 Distribution of dense citrus datasets
本文針對現階段自然果園環境中的密集柑橘檢測存在的問題,在原YOLOv4模型的基礎上,構建了 DS-YOLO 密集柑橘檢測算法。DS-YOLO算法總體結構如圖3所示,分別由D-CSPDarkNet53、PANet、Head三個部分組成。
1) D-CSPDarkNet53即特征提取網絡,主要包括CBM、DCSP、CBL及SPP結構。其中CBM結構包含1個卷積(Convolution)、1個BN(Batch Normalization)層和1個Mish激活函數層,CBL結構則與CBM結構類似,激活函數為Leaky relu,DCSP結構由CBM、DCBM(卷積替換為可形變卷積)以及一系列D-ResUnit殘差單元(部分卷積替換為可形變卷積)組成,SPP(Spatial Pyramid Pooling)為空間金字塔池化,通過采用1×1、5×5、9×9、13×13四種不同大小的池化核進行最大池化,增大算法中輸入特征圖的感受野。DS-YOLO算法輸入圖片分辨率為416像素×416像素,在每個特征圖輸出前,引入可形變卷積(Deformable Convolution)網絡代替原始YOLOv4中CSPDarkNet53中殘差模塊殘差單元的卷積層,使特征提取網絡能自適應地提取自然環境下密集柑橘的形狀和位置特征。在SPP(Spatial Pyramid Pooling)[17]結構中,把所獲得的柑橘新特征圖和進入網絡前的柑橘特征圖進行堆疊、卷積再輸出到路徑聚合網絡PANet(Path Aggregation Network)[18]中。

圖3 DS-YOLO總體結構
2) 在路徑聚合網絡PANet中,將13×13尺寸的柑橘特征圖融合SimAM注意力機制,通過對柑橘特征的重新擬合和分配,進一步增加較小尺寸柑橘的占比或權重,從而提高DS-YOLO算法對柑橘特征的提取能力。由于本文使用的數據集為密集柑橘數據集,尺寸較小,而在原YOLOv4算法中,僅使用3個檢測尺度進行目標預測,針對密集柑橘容易造成漏檢。因此,本文在原YOLOv4的基礎上,增加了104×104尺寸的特征圖,通過采用K-means聚類算法估計出最適合于本數據集的12個Anchor,分別對應4個檢測尺度,擁有較小檢測尺度的柑橘特征圖負責檢測尺度較大的柑橘目標,而擁有較大檢測尺度的柑橘特征圖負責檢測較小尺寸的柑橘目標。整個模型在改進以后共使用4個檢測尺度進行檢測,通過在更深層次的網絡中獲取柑橘特征,增強在密集柑橘目標下DS-YOLO算法多尺度學習的能力。
3) 最后為Head層,13×13的柑橘特征圖進行一系列上采樣操作,分別與26×26、52×52、104×104的柑橘特征圖堆疊后進行卷積和下采樣操作,充分融合4種不同尺度柑橘特征圖的特征,輸出13×13、26×26、52×52、104×104四個YOLO檢測頭。每個檢測頭包含3組候選框參數,每組候選框參數包含1個置信度參數、1個類別參數和4個調整長寬坐標偏移量的參數。通過這些參數,DS-YOLO算法將生成最終預測框。
一般情況下,由于光照條件、相機視點不同,室外果園采集到的柑橘圖像尺寸多變,柑橘與柑橘、柑橘與葉片之間存在嚴重重疊、遮擋,導致柑橘形狀信息丟失,這為柑橘精準識別帶來了極大困難。因此,本文針對柑橘重疊、遮擋問題,在D-CSPDarkNet53網絡的DCSP模塊中,引入更多具有偏移學習能力的可形變卷積層,使得卷積采樣點可以根據柑橘圖像改變感受野形狀和尺寸?;诳尚巫兙矸e的DCBM模塊結構如圖4所示。

圖4 基于可形變卷積的DCBM模塊
傳統卷積為規則卷積,只能進行固定大小采樣,而可形變卷積(Deformable Convolution)為使感受野可以隨著遮擋、重疊柑橘形狀和尺寸的不同而改變,在傳統卷積的基礎上為卷積核中的每個采樣點增加了一個二維偏移量{Δpn|n=1,…,N},N=|R|。
可形變卷積計算如式(1)所示。
(1)
式中:X——輸入特征圖;
R——大小為3×3的卷積核;
pn——卷積核中的第n個點;
w(pn)——pn點對應權重;
p0——輸入輸出特征圖上的p0點;
Δpn——可形變卷積采樣點的二維偏移量;
X′——輸出特征圖。
在DCSP模塊中,為使可形變卷積能夠在更大范圍的特征層上控制采樣,減少采樣點形變所引入的葉片無關背景干擾信息,保證柑橘特征的準確提取,在原有可形變卷積的基礎上為卷積核中的每個采樣點添加一個權重系數,Δwn∈[0,1],計算如式(2)所示。
(2)
由于采樣點發生了形變,所以提取到的偏移量Δpn通常是小數,不能直接得到像素值的坐標,因此需要通過雙線性插值方法來計算卷積后的輸入特征圖X。

(3)
式中:p——可形變卷積偏移后的位置,p=p0+pn+Δpn;
q——特征圖中所有的點的位置;
G(.,.)——二維雙線性插值核函數,即采樣點對應權重。
在原始YOLOv4的路徑聚合網絡PANet中,添加SimAM注意力機制。SimAM注意力機制結合通道維度和空間維度,定義了統一通道維度和空間維度的三維注意力權重,使得DS-YOLO算法更加關注密集柑橘的深層特征空間信息。

(4)
式中:λ——正則項;
C——通道數;
M——每個通道神經元個數,M=H×W;
i——神經元索引;




(5)
其中,Sigmoid激活函數是為了限制E值過大。SimAM整體結構圖如圖5所示,輸入特征圖在經過SimAM注意力機制后,通過Sigmoid函數進行了權值歸一化,將所求的神經元權值和原始特征圖的特征相乘,從而獲得最終輸出特征圖。

圖5 SimAM注意力機制
本文試驗環境采用64位Linux操作系統,硬件配置為Intel(R)Xeon(R)CPU E5-2630 v4(2.20 GHZ 10核)處理器、NVIDIA Tesla p40顯卡,內存為16 GB,使用Python3.6、Pytorch1.2.0、CUDA11.2實現模型的搭建及訓練工作,所有試驗的訓練和測試圖片分辨率設置為416像素×416像素,訓練過程為100個epoch,Batchsize設為8,學習率初始值設置為0.001。
本文針對單種類的目標檢測,使用平均準確率mAP(Mean Average Precision)、精確率(Precision)、召回率(Recall)、F1分數作為評價指標衡量算法性能,其中mAP為主要評價指標。
(6)
(7)
(8)
(9)
式中:TP——DS-YOLO算法成功識別出來的柑橘目標中被正確識別的數量;
TN——DS-YOLO算法未識別出來的柑橘目標中被正確識別的數量;
FP——DS-YOLO算法未識別出來的柑橘目標中被錯誤識別的數量;
FN——DS-YOLO算法成功識別出來的柑橘目標中被錯誤識別的數量。
為驗證本文所提出的DS-YOLO算法的優越性,將該算法與目前在目標檢測中常用的多種深度學習網絡進行對比,包括Faster RCNN、SSD、YOLOX等。試驗利用本文自制的密集柑橘數據集進行訓練,訓練超參相同,不同網絡模型密集柑橘檢測效果如表2所示。

表2 不同網絡模型密集柑橘檢測效果對比Tab. 2 Comparison of dense citrus detection results with different network models
由表2可知,在密集柑橘數據集上,本文所提出的DS-YOLO模型的平均準確率為86.86%、精確率為92.90%、召回率為76.07%、F1分數為0.84,相比于Faster RCNN、YOLOv4、YOLOX網絡模型,mAP值分別提升23.97%、8.75%、4.1%,均優于其他檢測算法。但由于本文所提出的DS-YOLO模型引入了可形變卷積模塊及增加了新的檢測尺度,檢測速度相較于其他模型有所下降。模型訓練完成后,使用未進行數據預處理的密集柑橘測試集進行效果驗證,由于柑橘較小,為有效觀察模型檢測結果,本文截取了各類算法檢測結果圖像的一部分,DS-YOLO算法實際檢測效果如圖6所示,結果顯示,在相同訓練超參下,本文提出的DS-YOLO算法能更準確對密集場景下的柑橘進行檢測定位,而原YOLOv4算法則存在一定程度的漏檢誤檢,驗證了DS-YOLO算法可提高自然環境下密集柑橘的檢測精度。
更進一步的,為驗證本文提出的DS-YOLO密集柑橘算法中各改進模塊對自然環境下密集柑橘的檢測效果影響,將改進后的DS-YOLO算法與改進前的YOLOv4算法進行試驗對比,模型訓練過程對比曲線如圖7所示,具體試驗內容及檢測結果如表3所示。其中,“√”表示使用了對應方法,Deformable conv表示算法引入可形變卷積網絡,SimAM表示算法引入SimAM注意力,FPN+表示算法進行多尺度結構改進。
從表3可以看出,相較于原YOLOv4算法,引入可形變卷積后算法平均準確率提高了7.04個百分點。為更好分析DS-YOLO算法特征提取網絡的特征提取效果,如圖8所示。對DS-YOLO算法改進前的CSPDarkNet53特征提取網絡和改進后D-CSPDarkNet53特征提取網絡所獲取的特征圖進行可視化,發現引入可形變卷積后的D-CSPDarkNet53網絡所提取的柑橘圖像特征更為抽象,并更為關注高級語義特征,進而證明了可形變卷積在密集柑橘檢測中的有效性,說明引入可形變卷積,可以提高DS-YOLO算法對密集柑橘的特征獲取能力。

(a) 原始圖片

(b) SSD


(d) YOLOv4

(e) DS-YOLO

圖7 訓練過程模型準確率對比曲線
在此基礎上,算法采用改進后的多尺度檢測結構并融合SimAM注意力機制,算法整體平均準確率在可形變卷積基礎上提升了1.71個百分點。為驗證改進后多尺度結構與SimAM注意力對DS-YOLO算法具有積極影響,對改進后四個檢測尺度所提取的特征信息進行可視化,由于本文試驗采用的柑橘圖像,柑橘較小,因而對原始圖像進行了裁剪操作??梢暬Y果如圖9所示。

表3 基于YOLOv4網絡模型改進后效果對比Tab. 3 Comparison of the improved effects based on YOLOv4 network model

(a) 原始圖片

(b) CSPDarkNet53特征圖

(c) D-CSPDarkNet53特征圖

(a) 原始圖片

(b) 26×26尺寸熱力圖

(c) 52×52尺寸熱力圖

(d) 104×104尺寸熱力圖
根據圖9(b)中26×26檢測尺度的可視化結果,可以明顯發現,原YOLOv4的13×13、26×26尺寸的檢測頭更適用于檢測大尺寸柑橘及中等尺寸柑橘,小尺寸柑橘檢測效果較差。本文所使用的色度圖模式為COLORMAP_JET,顏色越藍表示灰度值越低,顏色越紅表示灰度值越高,算法越關注,圖9(c)和圖9(d)中52×52、104×104檢測尺度則更關注小尺寸柑橘及極小尺寸柑橘。試驗表明,DS-YOLO算法對密集柑橘檢測精度的提升具有積極影響。
本文針對自然環境下果園柑橘密集、目標小、數目多、易遮擋重疊等特點,提出一種DS-YOLO密集柑橘檢測算法實現自然環境下的密集柑橘檢測,并通過試驗驗證提出算法的有效性。
1) 為使特征提取網絡能自適應地提取自然環境下密集柑橘的形狀和位置特征,在原始YOLOv4算法的CSPDarkNet53模塊中引入可形變卷積(Deformable Convolution)網絡,用于代替部分殘差模塊殘差單元的卷積層,提高算法對密集、遮擋柑橘的特征提取能力。
2) 在路徑聚合網絡中,添加SimAM注意力機制,并在原YOLOv4的基礎上,增加104×104尺寸的特征圖,通過K-means聚類算法估計出最適用于密集柑橘數據集的Anchor,并且通過對柑橘特征的重新擬合和分配,進一步增加較小尺寸柑橘的占比或權重,從而提高模型對柑橘特征的提取能力。
3) 改進后的DS-YOLO算法平均準確率為86.86%、精確率為92.9%、召回率為76.07%、F1分數為0.84,相較于原YOLOv4算法平均準確率提高了8.75%,具有一定的魯棒性和泛化性,相比于Faster RCNN、YOLOX等網絡模型,本文所提出的DS-YOLO算法平均準確率分別提升了23.97%、4.1%,為柑橘早期估產及采摘機器人運作提供了新的研究思路。
改進后的DS-YOLO算法,能夠提升自然環境下遮擋、重疊柑橘的檢測精度,但在精度提升的同時,模型檢測速度也有所下降,因此,在未來工作中,仍需考慮如何對DS-YOLO算法進行進一步優化,使用更輕量網絡的同時保證檢測精度,提高其泛化能力,為自然環境下密集水果識別提供新的檢測方法。