馮 健,馬俊燕,b,鄧齊林,黃 毅,常亞楠
(廣西大學(xué) a.機(jī)械工程學(xué)院;b.廣西制造系統(tǒng)與先進(jìn)制造重點實驗室,南寧 530004)
柑橘是我國種植最廣泛的水果之一,近20年來產(chǎn)量從1000余萬t增長到4000余萬t[1]。在大規(guī)模的生產(chǎn)模式下,對果園產(chǎn)量的預(yù)測有利于合理分配勞動力資源、規(guī)劃倉儲空間和采收設(shè)備等,但目前的果實產(chǎn)量主要通過人工抽樣估測[2],費時費力,故自動計算果園產(chǎn)量信息至關(guān)重要。
近年來,水果的產(chǎn)量估算方法已經(jīng)得到廣泛研究。Bargoti等[3]采用多尺度多層感知器(MLP)和卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行特征學(xué)習(xí),再利用分水嶺分割(WS)和循環(huán)霍夫變換(CHT)算法對像素級水果分割輸出進(jìn)行處理,實現(xiàn)水果的檢測和計數(shù)。Chen等[4]使用完全卷積網(wǎng)絡(luò)[5]對蘋果和橘子圖像進(jìn)行分割,有水果像素存在的區(qū)域稱為簇,再使用另一個卷積神經(jīng)網(wǎng)絡(luò)估計每個簇中的水果數(shù)量。張小花等[6]提出融合顏色轉(zhuǎn)換及霍夫圓變換的果樹估產(chǎn)方法,準(zhǔn)確率可達(dá) 96.58%。雖然目前的方法對水果產(chǎn)量的估算獲得了較高的精度,但都是基于靜態(tài)圖像完成的,無法對視頻中的果實進(jìn)行動態(tài)計數(shù),在實際應(yīng)用中具有局限性。
實現(xiàn)果園的產(chǎn)量估算首先需要通過拍攝設(shè)備獲取果園的全局信息。其中,無人機(jī)具有較高的部署靈活性,已被用于農(nóng)業(yè)生產(chǎn)的各個方面,如噴藥施肥[7]、農(nóng)情監(jiān)測[8]、農(nóng)田灌溉[9]、估算植被覆蓋[10]以及放牧[11]等。由于柑橘主要種植于我國的南方山地丘陵地區(qū),地形復(fù)雜,很多自動化設(shè)備難以在山地應(yīng)用,故無人機(jī)是獲取柑橘果園產(chǎn)量原始數(shù)據(jù)的首要選擇。
為了實現(xiàn)視頻中柑橘果園的產(chǎn)量估算,采用無人機(jī)獲取柑橘果園實時視頻,通過目標(biāo)檢測算法YOLOv5s識別每一幀圖像中的果實,并改進(jìn)算法使運行速度更快;同時,通過目標(biāo)跟蹤方法實現(xiàn)相鄰幀圖像中的相同果實間的關(guān)聯(lián),為每個果實標(biāo)記不同的ID,記錄生成的ID總量用來估算果園中果實的數(shù)量,為生產(chǎn)實踐提供參考。
系統(tǒng)的目標(biāo)是統(tǒng)計果園的整體產(chǎn)量,如圖1所示。
圖1 柑橘產(chǎn)量估算系統(tǒng)流程Fig.1 Citrus yield estimation system flow
首先,需要無人機(jī)進(jìn)入果園中通過攝像機(jī)不重復(fù)地記錄每一顆柑橘樹果實數(shù)量的視頻文件作為原始數(shù)據(jù),通過無人機(jī)的圖傳系統(tǒng)傳輸?shù)接跋窠邮掌髦?再通過HDMI接口將視頻導(dǎo)入計算機(jī);計算機(jī)通過算法識別視頻每一幀圖像的柑橘果實,對每個獨立果實進(jìn)行視頻幀間關(guān)聯(lián),為果實標(biāo)記獨立的ID,以避免不同幀圖像包含相同果實帶來的重復(fù)計數(shù);最后,通過獲取最終生成的ID數(shù)量得到果園產(chǎn)量的估算值。
果園中的柑橘果實通常生長在茂密的枝葉之間,且較為密集,難以被精確識別;在無人機(jī)記錄的實時視頻中,通常1s輸出15幀以上圖像數(shù)據(jù),故需要算法在保證識別準(zhǔn)確性的同時提高運行速度,滿足實時檢測的需求。
本文以YOLOv5s算法為基礎(chǔ)進(jìn)行柑橘果實識別。YOLOv5是YOLO系列算法的最新版本,有x、l、m、s等4種尺度的模型可供實際應(yīng)用選擇[12]。其中,YOLOv5s是最小的模型,具有極快的檢測速度及較高的檢測精度。其識別的流程如圖2所示。
圖2 柑橘果實識別流程Fig.2 Citrus fruit identification process
YOLOv5主要由主干網(wǎng)絡(luò)(Backbone)、頸部網(wǎng)絡(luò)(Neck)和檢測頭(Prediction)3個部分構(gòu)成。其中,主干網(wǎng)絡(luò)是CSPDarkNet53卷積神經(jīng)網(wǎng)絡(luò),通過多次卷積和合并從輸入圖像中提取不同大小的特征圖,且保留主干網(wǎng)絡(luò)中提取的最后3層特征圖,通過頸部網(wǎng)絡(luò)(圖2中虛線框部分)將這些不同大小的特征圖進(jìn)行融合;在融合過程中,使用了FPN和PAN的特征金字塔結(jié)構(gòu)。FPN結(jié)構(gòu)將強(qiáng)語義特征從頂部特征映射傳遞到下部特征映射,并將強(qiáng)大的本地化特征從較低的特征映射傳遞到較高的特征映射。這兩種結(jié)構(gòu)共同增強(qiáng)了頸部網(wǎng)絡(luò)的特征融合能力,以獲得豐富的上下文信息,減少了信息丟失;將最后獲得的特征圖輸入檢測頭中,通過反解碼在原始圖像上繪出包含果實位置的邊界框,得到果實的位置信息。
由于本文不僅需要實時識別視頻中果實的位置,而且還要根據(jù)檢測的結(jié)果實現(xiàn)相同果實的幀間關(guān)聯(lián),為了給后續(xù)操作預(yù)留出時間,需要對算法進(jìn)行改進(jìn),以提升運行速度。在CSPDarkNet53中,每次對特征圖進(jìn)行降維操作都使用CBL結(jié)構(gòu)進(jìn)行,包括標(biāo)準(zhǔn)卷積(Conv)、批處理標(biāo)準(zhǔn)化(Batch Normalization)及Leackyrelu激活函數(shù)??紤]到標(biāo)準(zhǔn)卷積的運算量較大,采用深度可分離卷積[13]作為代替。深度可分離卷積主要是將標(biāo)準(zhǔn)卷積拆分為對原始輸入圖像1對1的逐通道卷積和用1×1卷積核進(jìn)行擴(kuò)充通道數(shù)的逐點卷積兩部分,以減少模型的運算量,結(jié)構(gòu)如圖3所示。
圖3 標(biāo)準(zhǔn)卷積和深度可分離卷積結(jié)構(gòu)Fig.3 Standard convolution and depth-wise separable convolution structures
深度可分離卷積和標(biāo)準(zhǔn)卷積的浮點運算量比值計算公式為
(1)
其中,c為輸入通道數(shù);m為輸出通道數(shù);h、w分別為輸入特征圖的高和寬,h′、w′分別為輸出特征圖的寬和高;k為卷積核大小。以3×3的卷積為例,深度可分離的運算量僅有標(biāo)準(zhǔn)卷積的1/9左右,可以節(jié)省大量運算資源。
實現(xiàn)視頻中水果產(chǎn)量估算的最大難點是對果實實現(xiàn)幀間關(guān)聯(lián),即在識別果實之后區(qū)分視頻中不同幀圖像中的果實是否為同一果實,避免相同果實出現(xiàn)在不同視頻中導(dǎo)致對果實重復(fù)計數(shù)。因此,需要引入目標(biāo)跟蹤方法,為每個目標(biāo)標(biāo)記獨立的ID。
首先,通過卡爾曼濾波[14]根據(jù)改進(jìn)的YOLOv5獲得的水果位置狀態(tài)信息(邊界框中心位置、長寬比和邊界框面積和這些位置信息在坐標(biāo)系中各自的速度),并對果實在視頻下一幀中出現(xiàn)的位置進(jìn)行預(yù)測;然后,通過運動預(yù)測和下一幀中檢測到的果實的真實位置之間的馬氏距離,建立不同幀圖像中水果的運動信息關(guān)聯(lián)。馬氏距離計算公式為
(2)
其中,d(1)為第j個檢測和第i條軌跡之間的運動匹配度;dj為第j個檢測框的位置;yi為第i個追蹤器對目標(biāo)的預(yù)測位置;Si為由卡爾曼濾波預(yù)測得到的在當(dāng)前時刻觀測空間的協(xié)方差矩陣。
當(dāng)目標(biāo)運動不規(guī)律或者受到遮擋時,馬氏距離的度量效果就會變得較差,需要引入外觀匹配的方法對匹配機(jī)制進(jìn)行補(bǔ)充。在此,通過卷積神經(jīng)網(wǎng)絡(luò)ResNet-18[15]提取果實的外觀特征向量,網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。
表1 ResNet-18結(jié)構(gòu)
ResNet-18主要由17個卷積層和1個池化層組成,原始輸入是224×224的圖像,由于深度較淺而具有較快的運行速度,并且該網(wǎng)絡(luò)提供使用ImageNet訓(xùn)練好的權(quán)重。ImageNet是一個含有數(shù)百萬張圖像的數(shù)據(jù)集[16],也包含了柑橘等水果,可以免去重新訓(xùn)練的麻煩。將每一幀通過改進(jìn)的YOLOv5s獲得的邊界框中的圖像輸入到ResNet-18中,提取其外觀特征并形成特征向量rk。最小余弦距離計算公式為
(3)
其中,d(2)為某一目標(biāo)當(dāng)前時刻前100幀外觀特征向量rk與當(dāng)前獲得的檢測框j的外觀特征向量rj的最小余弦距離。由于保留了當(dāng)前時刻前100幀的特征向量,故只需目標(biāo)100幀內(nèi)有一次沒有被遮擋就可以持續(xù)正確匹配。大大提升了抗遮擋性能。
兩種度量方式通過服務(wù)于分配問題的不同方面而相互補(bǔ)充,為了構(gòu)建關(guān)聯(lián)問題,使用加權(quán)和將馬氏距離和最小余弦距離相結(jié)合,即
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
(4)
其中,λ為權(quán)重參數(shù)。計算獲得的c值小于閾值時即認(rèn)為成功匹配。為每個成功匹配的柑橘果實標(biāo)記獨立的ID,計算生成的ID總數(shù)作為果園中果實的估算數(shù)量。
試驗區(qū)域設(shè)在廣西魁圩鄉(xiāng)柑橘園,是廣西脫貧攻堅農(nóng)業(yè)示范區(qū)域(105°56′~106°48′E,22°51′~23°34′N),屬于亞熱帶季風(fēng)氣候。當(dāng)?shù)卮蠖嗍鞘?石漠化嚴(yán)重,環(huán)境惡劣,近年來大力發(fā)展柑橘種植業(yè),已種植柑橘300hm2。當(dāng)?shù)氐霓r(nóng)業(yè)生產(chǎn)模式較為傳統(tǒng),基本全靠手工作業(yè),對產(chǎn)量并沒有明確的預(yù)估,故在后期的收成物流規(guī)劃上經(jīng)常造成人力物力的浪費。試驗時間為2021年12月中旬,是柑橘臨近收獲的時期。選取當(dāng)?shù)氐囊黄麍@,包含42株柑橘果樹,如圖4(a)所示。
柑橘果園產(chǎn)量原始視頻數(shù)據(jù)通過無人機(jī)平臺獲取,無人機(jī)選用大疆DJI Mini2,如圖4(b)所示。無人機(jī)的具體參數(shù)如表2所示。
圖4 試驗區(qū)域與無人機(jī)Fig.4 Experimental area with drones
表2 無人機(jī)主要參數(shù)Table 2 Main parameters of UAV
數(shù)據(jù)采集時,研究人員操縱無人機(jī)在樹行之間飛行拍攝。為完整地記錄果樹全貌,無人機(jī)保持距離柑橘樹1.2m左右,采用水平和傾斜兩種拍攝視頻的方式,傾斜角度45°左右,不重復(fù)地記錄每一行柑橘樹的產(chǎn)量信息,如圖1所示。視頻使用mp4格式錄制,視頻分辨率720P。
為訓(xùn)練果實識別網(wǎng)絡(luò),拍攝不同角度的600張柑橘果實圖像訓(xùn)練數(shù)據(jù)集,使用LabelImg軟件對原始數(shù)據(jù)進(jìn)行邊界框標(biāo)注。
1)果實識別:使用600張圖像的訓(xùn)練集分別對原始YOLOv5s網(wǎng)絡(luò)和本文改進(jìn)的算法進(jìn)行充分訓(xùn)練,通過測試集對比檢測性能。平臺處理器為Intel Core i5-9300H CPU @2.40GHz,搭載NVIDIA GTX 1660 ti GPU。采用隨機(jī)梯度下降訓(xùn)練,初始學(xué)習(xí)率0.01,動量衰減0.0005,訓(xùn)練300代。最后,對比改進(jìn)前后的識別性能。
2)視頻跟蹤:拍攝一段較短的果園中的柑橘果樹視頻,使用卡爾曼濾波和卷積神經(jīng)網(wǎng)絡(luò)對視頻中的每個柑橘果進(jìn)行跟蹤; 同時,為每個果實標(biāo)記獨立的ID,逐幀播放觀察跟蹤的穩(wěn)定性,根據(jù)測試效果對實際應(yīng)用進(jìn)行調(diào)整。
3)果實計數(shù):在無人機(jī)采集到的果園相同區(qū)域的水平和傾斜兩種視頻數(shù)據(jù)上運行果實產(chǎn)量估算系統(tǒng),獲得視頻中果實數(shù)的估計,并與人工計數(shù)的實際數(shù)據(jù)相比較,計算準(zhǔn)確率。
分別使用訓(xùn)練好的改進(jìn)前YOLOv5s和改進(jìn)后的YOLOv5s對包含100張圖像柑橘測試集進(jìn)行識別測試,使用mAP(Mean Average Precision)、R(Recall)作為對模型精度的評價指標(biāo)。其中,mAP反映的是模型對所有類別目標(biāo)的平均精度,R反映的是模型成功檢測到的目標(biāo)的比率。對于模型的檢測速度,則用Fps(Frames Per Second)衡量,即每秒處理的圖像數(shù),并使用V(Volume)衡量模型的大小,即模型權(quán)重文件的大小。Fps和V的值通過模型訓(xùn)練和測試后得出,mAP和R的計算公式為
(5)
(6)
(7)
(8)
其中,TP為被判為正類的正類;FP為被判為正類的負(fù)類;FN為被判為負(fù)類的正類。測試結(jié)果如表3所示。
表3 不同網(wǎng)絡(luò)的檢測效果對比
雖然改進(jìn)模型的mAP和R與原YOLOv5s相比分別下降了0.8%和0.6%,但運行速度提高到了98FPS。雖然無人機(jī)錄制的影像通常在30幀左右,但更快的識別速度能為后續(xù)跟蹤方法留出更多的處理時間。改進(jìn)模型的實際檢測效果如圖5所示。
圖5 改進(jìn)的YOLOv5s網(wǎng)絡(luò)實際檢測效果Fig.5 The actual detection effect of the improved YOLOv5s network
在采集的視頻上進(jìn)行算法測試,可以達(dá)到25幀的運行速度,實際效果如圖6所示。其中,圖6(a)為視頻第1幀的圖像,此時所有目標(biāo)處于待定狀態(tài),還未獲得對應(yīng)的ID;圖6(b)為視頻第3幀的圖像,此時目標(biāo)經(jīng)過3次與軌跡成功匹配,得到ID1~5的5個柑橘目標(biāo);圖6(c)是第70幀的圖像,此時經(jīng)過較多的幀數(shù)跨度,但在圖中可見第3幀中的5個目標(biāo)只有ID為5的柑橘受到較嚴(yán)重的遮擋導(dǎo)致ID切換為11;圖6(d)中第90幀之前出現(xiàn)的目標(biāo)ID都沒有改變;圖6(e)中第115幀果實數(shù)量已經(jīng)較多,跟蹤效果依舊穩(wěn)定,只有極少數(shù)果實因為被遮擋而丟失。
雖然跟蹤算法獲得了較為穩(wěn)定的跟蹤效果,但對于產(chǎn)量估算仍有一些問題沒有解決。在視頻中抽取背景有其它樹行果樹的圖像,如圖6(f)所示。此時,圖像中檢測到了距離較遠(yuǎn)的柑橘樹上的果實,說明在無人機(jī)經(jīng)過背景有不同樹行的柑橘樹存在的區(qū)域時會將多余的果實計入,將造成對柑橘果實的過量計數(shù)。因此,在識別柑橘果實時增加限制條件,為邊界框的生成增加閾值,即在應(yīng)用中若是目標(biāo)邊界框小于既定的閾值則不生成。經(jīng)過多次測試發(fā)現(xiàn),在閾值設(shè)定在長寬都小于30像素時,可以去除絕大多數(shù)背景中果實的邊界框,減少因為背景影響帶來的過量計數(shù)。
圖6 跟蹤效果抽幀示意圖Fig.6 Schematic diagram of tracking effect frame extraction
在無人機(jī)拍攝時,將無人機(jī)記錄到的柑橘樹的果實數(shù)量通過人工計數(shù)作為真實產(chǎn)量數(shù)據(jù)。為了進(jìn)行評估,通過比較本文系統(tǒng)預(yù)測的產(chǎn)量和人工計數(shù)的柑橘真實數(shù)量來計算精度,即
(9)
其中,GT為真實值;L1為計算誤差。
使用水平和傾斜兩種拍攝方式,通過算法獲得產(chǎn)量與人工統(tǒng)計的真實數(shù)量對比,結(jié)果如表4所示。
表4 柑橘視頻產(chǎn)量估算結(jié)果
水平拍攝時,鏡頭移動過程中對柑橘果樹的上、下部分果實都具有較高的可見性,且由于為邊界框添加了閾值條件,沒有受到背景果實的影響,僅漏檢208個果實,達(dá)到88.6%的準(zhǔn)確率,如圖7(a)所示。但在實際應(yīng)用中,有時柑橘樹栽種較為密集,樹行間的距離不足以在水平拍攝時獲取完整的柑橘樹,需要在較高的地方進(jìn)行傾斜拍攝。此時,由于鏡頭主要捕捉到上半部分的果實,對位置較低的果實可見度不高,故漏檢291個,準(zhǔn)確率84.1%,如圖7(b)所示。由此說明,使用無人機(jī)影像技術(shù)與機(jī)器視覺方法相結(jié)合對柑橘園果實的產(chǎn)量估算在兩種拍攝角度上都具有較高的準(zhǔn)確率,對柑橘采摘及物流規(guī)劃具有一定的指導(dǎo)意義。
圖7 不同視角拍攝的實際效果Fig.7 The actual effect of shooting from different perspectives
提出了一種基于無人機(jī)影像的柑橘果園產(chǎn)量估算方法,在實地采集的柑橘果園視頻上估算水果數(shù)量,得到了較高的準(zhǔn)確率。首先,對無人機(jī)獲取的視頻進(jìn)行柑橘果實檢測,通過改進(jìn)的YOLOv5算法獲得果實在每一幀圖像中的位置信息;然后,通過DeepSORT目標(biāo)跟蹤算法對相鄰幀之間的柑橘果實進(jìn)行運動匹配和外觀匹配,關(guān)聯(lián)不同圖像中的相同果實,為每個獨立果實標(biāo)記獨立的ID,通過記錄生成的ID數(shù)量獲得對柑橘果實數(shù)量的估算。試驗結(jié)果表明:在實際運行中,最高獲得了88.6%的準(zhǔn)確率。