陳國防,陳兆英,王玉亮,王金星,范國強,李漢卿
(1. 山東農業大學機械與電子工程學院,山東泰安,271018;2. 山東省園藝機械與裝備重點實驗室,山東泰安,271018)
蘋果產業,是我國極為重要的果業品種之一,對我國的果業經濟、進出口創匯等有著重要影響。蘋果花的開花強度(生長早期果園的花朵數量)與果實數量和果實品質之間有著很大的關系[1],適當的疏花可提升果實的產量和品質。但目前在自動疏花方面的研究進展還有限,通常是隨機選取果園內的果樹,通過人工觀察進行開花強度估值。因此,將現在較為先進的計算機視覺技術應用于蘋果花的檢測,不僅對促進疏花機器人的發展具有重要意義,而且可以提高疏花效率和果農的經濟效益[2-3]。
近年來,隨著深度學習技術的深入研究,卷積神經網絡在農業領域圖像識別中的應用不斷深入。Kapach等[4]研究分析了在水果采摘機器人視覺領域的各種方法的優劣性。張星等[5]研究了基于YOLOv3的菠蘿拾撿識別方法。李龍等[6]研究了基于紋理和梯度特征的蘋果傷痕與果梗/花萼在線識別方法。Dias等[7]提出一種稱為CNN+SVM的蘋果花識別檢測方法。王丹丹等[8]研究了基于R-FCN深度卷積神經網絡的機器人蔬果前蘋果目標檢測方法。Yu等[9]使用Mask R-CNN進行草莓檢測以及成熟度估計。熊俊濤等[10]提出了一種Des-YOLOv3算法,可實現夜間成熟柑橘的識別與檢測。
以上研究大部分都集中在成熟水果的檢測與識別上,但很少有針對結果之前蘋果花檢測的研究應用。針對這些問題,深度學習可以更好的提取蘋果花的識別特征,結合數據增強的方法,能有效解決蘋果花識別困難的問題。基于此本研究提出基于數據增強深度學習的蘋果花識別檢測方法,使用在線數據增強與離線數據增強等方式,針對YOLOv4網絡模型進行研究和提升,為果園的化學疏花與機械疏花提供有益的理論基礎與參考。
試驗所用的蘋果花圖像在(國家蘋果工程技術研究中心)山東省果樹研究所天平湖試驗示范基地蘋果園采集。試驗區中心經度和緯度分別為東經117°1′33″和北緯36°13′1″。該試驗區主要種植富士與王林兩個品種的蘋果,種植方式均為矮砧密植型。
圖像采集設備為佳能CanonEOS80D相機,相機有效像素為2 420萬。拍攝試驗數據為盛開的蘋果花的正面、側面和遮擋等圖像,拍攝于2021年3月29日—4月13日。為了取得更全面的蘋果花圖像,選取拍攝時間為每天的8:30~9:30、11:00~12:00、15:00~16:00三個時間段,連續隨機拍攝試驗區內的蘋果花。拍攝時分為遠景和近景,遠景、近景相機鏡頭分別距離蘋果花拍攝目標100~150 cm和30~50 cm,按行間兩側不同方向進行拍攝。
為驗證本文提出方法的有效性,本試驗基于Windows10x64操作系統,深度學習庫采用Tensorflow搭建,編程語言使用Python,軟件平臺為Windows10+tensorflow2.4.1+CUDA11.0+ cuDNN8.0.5 + VS2019+PyCharm。硬件平臺為Intel(R)Core(TM)i7-10700F2.9 GHzCPU+32 GB內存+一個NVIDIAGeForceRTX3060 12 GB GPU和1.5 TB的存儲容量。數據集標注軟件使用LabelImg。
試驗中,由于果園中每棵蘋果樹所包含的蘋果花圖像的特征信息不一致,因此在果園中隨機選取了60棵樹,通過在行間兩側拍攝與遠近景拍攝的方式,實地拍攝蘋果花圖像共974幅,如圖1所示。




(a) 近景蘋果花圖像1 (b) 近景蘋果花圖像2 (c) 遠景蘋果花圖像1 (d) 遠景蘋果花圖像2圖1 蘋果花圖像示例Fig. 1 Apple flower image example
然后對蘋果花圖像進行人工標注,圖像標記使用LabelImg軟件完成。通過包含蘋果花的最小矩形框進行標注,標記為XML文件存儲格式,并以PASCAL VOC數據集格式進行存儲。
2.1.1 YOLOv3網絡模型
YOLOv3[11]是YOLO的第3個版本,它通過結合淺層和深層特征來提取有利的特征。隨著輸出特征圖的數量和比例的變化,邊界框的比例也會相應調整。YOLOv3采用多個scale融合的方式做預測,使用K-means聚類算法來獲得9個尺度的Bounding Box,為每個向下擴展的尺度設置3個Bounding Box預測。13×13的featuremap(特征圖)具有最大的感受野,相應的最大預測框適用于檢測較大的物體。26×26的featuremap具有中等感受野,相應的中等預測框適用于檢測中等大小的物體。52×52的featuremap感受野最小,對應的最小預測框適用于檢測最小尺寸的物體。YOLOv3的網絡結構,如圖2所示。

圖2 YOLOv3網絡結構Fig. 2 YOLOv3 network structure
2.1.2 YOLOv4網絡模型
在本研究中,采用的YOLOv4網絡與YOLOv3網絡相比,本方法在數據處理中引入了Mosaic數據增強。同時,在骨干網絡中加入了CSP[12]網絡,在Darknet53的殘差單元上均加入了CSP,以提高網絡的深度學習能力。此外,對網絡訓練、激活函數和損失函數進行了優化,使YOLOv4更快,實現了準確性和速度之間的最佳平衡。YOLOv4網絡結構如圖3所示,YOLOv4網絡利用神經網絡框架CSPDarknet53作為訓練和提取圖像特征的主干網絡,然后將PANet(路徑聚合網絡)用在三個有效特征層上,實現對提取特征的更好融合[12]。

圖3 YOLOv4網絡結構Fig. 3 YOLOv4 network structure
本算法使用CSPDarknet53作為其骨干網絡,主要由DBM模塊和CSPResNet模塊構成,DBM模塊由卷積層(Conv)、批歸一化層(Batch Normolization,BN)和Mish激活功能組成。本算法將以往殘差塊的堆疊拆分成兩部分,為CSP Net結構形式:主干部分進行傳統的殘差塊堆疊操作,另一部分幾乎不經過計算,像一個殘差邊一樣與主干部分計算后的結果進行拼接[12]。通過對兩部分的跨級拼接與通道整合,增強卷積神經網絡的學習能力。CSP結構如圖4所示,其中part1部分與YOLOv3的網絡結構相同,part2部分則幾乎不經過計算與part1計算后的結果進行拼接。CSPResnet相比Resnet提高了計算速度。

圖4 CSPResNe(X)t網絡結構圖Fig. 4 CSPResNe(X)t network structure diagram
另外,本算法在檢測部分使用了空間金字塔池化層SPP模塊,解決輸入圖像尺寸不統一的問題。在邊界框的預測方式上利用K-means聚類生成不同尺度的先驗框,并在不同層級的特征圖上進行預測,同時采用PANet對不同層級的特征進行融合。
2.2.1 優化邊框回歸損失函數
在YOLOv4網絡模型的基礎上,選用損失函數CIOU代替MSE,改進損失函數,提高目標框回歸的穩定性。損失函數主要分為三大部分:邊框回歸損失、置信度損失以及分類損失,YOLOv3的損失函數[13]如式(1)所示。
(1)
式中:λobj——當前網格是否存在物體,取值為0或1;
tω——真實框的寬度;
th——真實框的高度;
tr——真實坐標損失;
pr——預測坐標損失;
tclass——真實分類;
pclassr——預測分類;
tconf——真實置信度;
pconf——預測置信度。
YOLOv3目標檢測模型進行邊框回歸時,MSE(均方誤差)損失函數直接根據預測框和真實框的中心點坐標和寬度、高度信息進行設置。本試驗中選用損失函數CIOU代替MSE,其他兩個部分不做實質改變。幾種典型的損失函數分別定義如下。
1)IOU損失。IOU[14]損失定義為1與預測框A和真實框B之間交并比的差值。
LIOU=1-IOU(A,B)
(2)
IOU損失函數在bounding box沒有重疊時不提供滑動梯度,只在它們重疊的時候才有效。
2)GIOU損失。GIOU[15]在原來的IOU損失的基礎上增加一個懲罰項,以緩解IOU損失在檢測框不重疊時出現的梯度問題,如式(3)所示。
(3)
式中:A——預測框;
B——真實框;
C——A和B的最小包圍框。
A,B,C的關系,如圖5(a)所示,懲罰項的含義為圖5(b)中黃色區域與C的面積的比值。

(a) bounding box關系圖

(b) 懲罰項圖5 GIOU邊框回歸損失Fig. 5 GIOU loss for bounding box regression
3)DIOU損失函數。DIOU在GIOU的基礎上考慮了中心點的距離。GIOU是通過增大和移動預測框,直到預測框與真實框有重疊然后才能進行式(3)中IOU(A,B)的計算。這將消耗大量的時間在預測框嘗試與真實框接觸上,影響損失的收斂速度。為此DIOU損失也多出一個懲罰項,增加了對中心點距離的考慮,如式(4)所示。
RDIOU=ρ2(Actr,Bctr)/c2
(4)
式中:Actr——預測框中心點坐標;
Bctr——真實框中心點坐標;
ρ——歐式距離;
c——A,B最小包圍框的對角線長度。
所以兩個框距離越遠,DIOU越接近2;距離越近,DIOU越接近0。
4)CIOU損失函數。本文使用CIOU作為邊框回歸損失函數,CIOU考慮到anchor之間的重疊面積、中心點距離、長寬比三個幾何因素,使得目標框回歸變得更加穩定。CIOU的公式如式(5)、式(6)所示。
(5)
(6)
式中:α——權重系數;
υ——長寬相似比衡量參數。
CIOU邊框回歸損失示意圖如圖6所示,d=ρ(Actr,Bctr)為中心點坐標的歐氏距離,c為最小包圍框的對角線距離。

圖6 CIOU邊框回歸損失Fig. 6 CIOU loss for bounding box regression
α和υ的公式如式(7)、式(8)。
(7)
(8)
式中:ω——預測邊界框的寬;
h——預測邊界框的高;
ωgt——真實邊界框的寬;
hgt——真實邊界框的高。
1-CIOU即為對應的Loss函數,如式(9)所示。
(9)
當ω和ωgt、h和hgt一致時,懲罰項便不發揮作用,此時υ為0。所以CIOU的懲罰項可以使ω和ωgt、h和hgt快速擬合。
2.2.2 改進數據增強
為豐富和平衡蘋果花圖像的訓練集數據,以更好的提取蘋果花的特征,泛化模型,同時可以減少人工標注的工作量,進行離線和在線數據增強的YOLOv4方法。
本文使用Python程序對標注好的蘋果花圖像數據集進行離線數據增強。由于受光照影響,拍攝的圖像差別較大,使得蘋果花圖像數據不均衡。所以對圖像增強處理,進行旋轉圖像、裁剪圖像、平移圖像、鏡像圖像和加噪聲等預處理方式擴充數據集,增強到2 458張數據集圖像,并按8∶2劃分訓練集和測試集。數據增強示例如圖7所示。
圖7中,右側為原數據集圖像,圖7(a)對原圖進行水平或垂直鏡像;圖7(b)對原圖進行角度變換;圖7(c)為平移圖像;圖7(d)對原圖進行隨機裁剪;圖7(a)~圖7(d)并未改變圖像內部信息。圖7(e)對原圖添加噪聲;圖7(f)對原圖進行亮度增加或降低;圖7(e)、圖7(f)需要改變圖像內部信息。同時對各種增強方式進行了隨機疊加以增強數據集的泛化性,且進行裁剪、平移、鏡像和旋轉時,同時要對bbox進行對應調整。

圖7 蘋果花數據增強示例Fig. 7 Apple flower data enhancement example
同時,在訓練過程中使用在線的Mosaic數據增強,代替傳統的CutMix[16]數據增強方式。CutMix數據增強方法是將兩張圖片拼接,選擇一張蘋果花數據集圖像剪切掉一部分像素,然后再隨機選擇另一張圖片的同樣大小部分的像素,將第二張圖像的部分區域添加到第一張圖像中,如圖8所示。

圖8 CutMix數據增強結果Fig. 8 CutMix data enhancement results
Mosaic數據增強方式利用4張圖片,用來豐富檢測蘋果花圖像的背景,在BN計算時,一次性計算4張圖片的數據。Mosaic數據增強方式,每次讀取4張圖片,然后分別對4張圖片進行翻轉、平移、縮放、裁剪和色域變化等,并且按照4個方向位置擺好,如圖9所示。

(a) 位置1

(b) 位置2

(c) 位置3

(d) 位置4圖9 Mosaic數據增強示例Fig. 9 Mosaic data enhancement example
最后,將4張圖片按照各自的位置,進行隨機裁剪,最終進行圖片的組合和框的組合,拼接成一個圖像,如圖10所示。

圖10 Mosaic數據增強結果Fig. 10 Mosaic data enhancement results
為了檢驗模型的檢測性能,本文采用Precision(準確率,P)、Recall(召回率,R)和Average Precision(平均精確度,AP)三個指標[17]作為評價標準對模型進行評估。
準確率P表示模型分類器認為是正類且事實上是正類的部分,占所有分類器是正類的比例,計算公式
(10)
召回率R表示模型分類器認為是正類且事實上是正類的部分,占所有事實上是正類的比例,計算公式
(11)
式中:TP——檢測結果為正類且事實上是正類的數量;
FP——檢測結果為正類而事實上為負類的數量;
FN——檢測結果為負類且事實上是負類的數量。
通過對Precision和Recall各點的組合,最終形成的曲線下面的面積為平均精確度

(12)
式中:P(R)——PR曲線上R對應P的值。
使用YOLOv4網絡,并采用2.2.2中的式(9)所示的CIOU回歸損失函數,對增強后數據集中的1 996幅訓練集蘋果花圖像進行訓練,全局損失函數值的訓練誤差曲線,如圖11所示。可看出,前100次迭代模型快速擬合,進行到350個迭代次數以后曲線趨于平穩,訓練模型收斂。

圖11 訓練誤差曲線Fig. 11 Training error curve
為驗證該方法的有效性,對數據集圖像中的492幅測試集的蘋果花圖像進行測試,結果如表1所示,本文提出的識別檢測方法的準確率為98.07%;召回率為97.56%;平均精確度為99.76%。

表1 本試驗模型測試參數表Tab. 1 Test parameter list of this experimental model
微調卷積神經網絡各訓練參數,多次試驗達到所需試驗標準。模型對不同蘋果花圖片實現智能識別,并給出該圖片對應的蘋果花概率值如圖12所示。可以看出本文提出的方法對于不同品種蘋果花的聚焦圖像和普通圖像、近景圖像和遠景圖像均有較好的識別準確性,從圖12(d)~圖12(f)可看出本文提出的方法對于遮擋、傾斜、重疊、順光和逆光的蘋果花的識別也有效,圖12(d)和圖12(f)可看出該方法對于完全綻放的蘋果花均能準確識別,對于未開放的花苞或者未完全開放的蘋果花也會有漏識別出現。
結果表明,盡管存在漏識別的情況,但該方法對蘋果花的檢測精度較高,滿足果園蘋果花開花強度識別檢測要求,可對蘋果園的產量預估和疏花機械的研發提供技術參考,為蘋果花的化學疏花決策奠定基礎。

(a) 王林近景圖像

(b) 富士近景圖像

(c) 王林聚焦圖像

(d) 富士聚焦圖像

(e) 王林遠景圖像

(f) 富士遠景圖像圖12 蘋果花識別檢測效果Fig. 12 Apple flower recognition and detection effect
本文為進一步驗證提出的數據增強YOLOv4蘋果花識別檢測方法,對果園蘋果花目標檢測的優勢與有效性,在改進模型各項參數的同時,將該方法與目前具有代表性的目標檢測模型YOLOv3、YOLOv4和Faster R-CNN在相同數據集下作對比試驗[18]。不同算法對蘋果花識別檢測效果如圖13所示,各個識別方法的識別結果的準確率、召回率和平均精確度,如表2所示。

(a) 原圖

(b) Faster R-CNN

(c) YOLOv3

(d) YOLOv4

(e) 本文方法圖13 不同算法蘋果花識別檢測效果對比Fig. 13 Comparison of apple blossom recognition and detection results with different algorithms
由表2可知,本文所提出的識別檢測方法的AP值最高,相較于Faster R-CNN提高了2.53%;相較于YOLOv3提高了14.56%;相較于YOLOv4提高了5.08%;表明了采用本文所提出的方法進行蘋果花識別檢測的結果最優。Faster R-CNN在測試集上的平均準確率雖為97.23%,但準確率為74.42%過低,作為較復雜的網絡結構,運行時間較長,雖能夠提取較深的蘋果花特征,但可能會出現過擬合,對圖像的泛化能力仍有不足。YOLOv3和YOLOv4在測試集上的平均準確率分別為85.20%和94.68%,在沒有改進數據增強的情況下,導致識別準確率仍較低。本文的算法在測試集上的檢測時間為105 ms,檢測速度雖不是最快,但準確率可達99.76%,相較于Faster R-CNN、YOLOv3和YOLOv4有更高的識別精確度。經上述分析,可得出本文提出的方法實現了精確度和速度之間的最佳平衡。

表2 各模型測試參數對比Tab. 2 Comparison of test parameters of each model
本文提出了一種基于數據增強YOLOv4的蘋果花識別檢測方法。
1) 通過構建蘋果花數據集,搭建YOLOv4網絡框架,在骨干網絡中加入CSP網絡和PANet結構提高特征提取融合能力,選用損失函數CIOU代替MSE,改進損失函數,并通過離線與在線Mosaic數據增強優化數據增強手段,實現對蘋果花的識別檢測。對蘋果園的產量預估和自動疏花機械的研發提供了技術保證,為蘋果花的化學疏花決策奠定了基礎。
2) 通過本文提出的方法識別檢測蘋果花,識別準確率為98.07%,召回率97.56%,平均精確度為99.76%,對蘋果花具有較好的識別精準度和識別效果。將本方法對比了Faster R-CNN、YOLOv3和YOLOv4主流網絡模型識別方法,對蘋果花的平均識別精確度分別提高了2.53%、14.56%和5.08%。