尚鈺瑩,張倩如,宋懷波
(1.西北農林科技大學機械與電子工程學院, 楊凌 712100;2.農業農村部農業物聯網重點實驗室,楊凌 712100; 3.陜西省農業信息感知與智能服務重點實驗室,楊凌 712100)
疏花是蘋果栽培中的重要管理措施,疏除多余花朵有利于果樹克服隔年結果現象,提高蘋果產量和質量,促進花芽分化,提高花芽質量,實現高產穩產。蘋果花朵分布密集緊湊,同一花簇不同花朵之間往往存在相互遮擋以及葉片遮擋,且蘋果花朵形狀、顏色多樣,花朵檢測難度較大。花朵目標的檢測是疏花機器人的關鍵技術之一,開展自然場景下蘋果花朵目標的檢測方法研究,對于疏花機器人的發展具有重要的研究意義。
目前常用的蘋果疏花方法包括人工疏除、化學疏除和機械疏除3種。人工疏花效率過低,所需勞動力數量較多,勞動成本高且勞動強度大。化學疏花通過將化學藥劑噴施于樹體表面實現花朵疏除,化學疏花成本較低且效率高,然而需要嚴格控制疏花試劑的噴灑時期。機械疏花可以大幅降低勞動強度,具有巨大的發展潛力。目前對機械疏花的研究較少,尚未有可以輔助人工進行疏花的便攜式疏花器械。結合圖像處理與機器視覺技術,實現蘋果花朵準確實時檢測,可為疏花機械視覺系統提供必要的支持,是未來機械疏花技術的核心之一。
傳統圖像處理技術需要手動提取目標特征,其過程復雜且識別精度較低,難以在復雜的實際生產中應用。基于卷積神經網絡(Convolutional Neural Networks, CNN)的深度學習技術通過學習不同領域、場景、尺度的特征,可以實現端對端的檢測,具有良好的特征提取能力和泛化能力。劉浩洲等提出了一種基于K-means聚類算法的獼猴桃花朵識別方法,利用K-means聚類分割得到包含花蕊在內的4個類別圖像,并利用CNN網絡實現了獼猴桃花朵的檢測,檢測成功率為92.5%。Gogul等設計了一種基于CNN與遷移學習的花卉識別系統,利用OverFeat CNN網絡提取圖像特征,并利用機器學習實現了花卉識別,在FLOWERS28數據集上的Rank-1和Rank-5的準確度分別為82.32%和97.50%。Shi等設計了一種基于深度學習的花卉自動識別系統,將花卉圖像發送到FLOWERS32數據集上預先訓練好的CNN系統進行識別,在測試集上的準確率為95.00%。Dias等提出了一種基于CNN的蘋果花朵檢測方法,利用線性迭代聚類超像素算法進行區域生成,再進行特征提取,利用支持向量機(Support Vector Machine, SVM)模型進行蘋果花朵檢測,該方法的最佳召回率和準確率均接近80.00%。
為了進一步提高目標檢測的效果,CNN網絡通過不斷增加網絡的層數來提取更為豐富的特征,更能體現圖像的語義信息。但網絡深度的不斷增加可能會造成梯度爆炸、消失,導致系統不能收斂等問題。針對這一問題,He等提出了ResNet網絡,將輸入中的部分數據不經過卷積網絡,直接送入輸出層以保留部分原始信息,通過將ResNet結構應用于深度卷積網絡,解決了深度網絡中梯度消失的問題。ResNet可以在網絡深度增加的同時保證網絡性能的進一步提升。Sun等提出了一種基于DeepLab-ResNet語義分割網絡和形狀約束水平集的水果花朵檢測方法,通過對該網絡模型的微調過程訓練獲得對花朵高度敏感的CNN模型,再通過由原始圖像和識別結果中定義的能量最小化驅動的水平集進化來描繪識別對象,該方法在桃花、梨花和蘋果花朵數據集上的平均分數為80.90%。鄭玉龍等提出了一種基于深度學習的自然環境花朵識別方法,并設計了一種由3個殘差塊組成的20層深度學習模型Resnet20,該模型在Flower26數據集上的識別率為96.29%。Wu等提出了一種基于通道剪枝YOLOv4深度學習算法的實時蘋果花朵檢測方法,該方法構建了CSPDarknet53框架下的YOLOv4模型,采用通道剪枝算法對模型進行剪枝,實現了蘋果花朵的快速準確檢測,其mAP為97.31%。
基于深度學習的蘋果花朵檢測雖然取得了較好的效果,但仍存在以下問題:1)花朵檢測速度較慢,尚難以實時檢測;2)花朵檢測模型的參數數量和模型結構普遍較大,算力消耗過大,模型遷移較為困難。基于上述問題,本研究擬提出一種基于YOLOv5s的蘋果花朵檢測方法,將田間拍攝得到的蘋果花朵圖像進行標注并送入微調后的YOLOv5s目標檢測網絡,實現蘋果花朵的準確快速檢測,以期實現一種輕量化且檢測速度快的自然場景下的花朵檢測模型,為疏花機械視覺系統提供技術支持。
本文主要研究對象是以富士為主要品種的300多個蘋果品種,所使用的蘋果花朵圖像來自于陜西省楊陵區園藝試驗基地,拍攝設備為華為Nova7,圖像焦距為26 mm,分辨率為4 608×3 456像素,拍攝時間為2021年3月20日至4月8日,拍攝時間段為7:00-19:00,拍攝形式為定點拍攝和手持設備2種形式,定點拍攝通過三腳架固定手機的位置進行拍攝,手持設備可變換拍攝的角度和位置,設備距離樹冠的距離為20~40 cm。將采集到的3005幅圖像隨機裁剪為不同分辨率并利用LabelImg標注工具對數據集進行人工標注,標注框選擇花朵和花苞的最小外接矩形。
由于不同天氣情況下的光照強度不同,花朵在不同天氣情況下的狀態也不同,比如雨天花朵上可能存在水珠,這些情況均可能影響花朵識別的效果,如圖1a~1d所示分別為蘋果花朵在晴天、多云、陰天、小雨4種不同天氣情況下的圖像。

圖1 4種不同的天氣情況 Fig.1 Four different weather conditions
由于不同品種的蘋果花朵顏色存在差異,花朵顏色的不同可能影響花朵識別的效果,為獲得可適用于不同顏色花朵的目標檢測模型,如圖2a~2d所示,本研究中的蘋果花朵圖像包含玫紅色、紅色、白色和粉色這4種顏色,基本涵蓋該基地所有蘋果品種的花朵顏色。
太陽位置的變化及拍攝位置的不同,導致蘋果花朵圖像整體亮度以及圖像中部分花朵的亮度不同,如圖2a~2b所示,本研究同時采集了蘋果花朵在順光和逆光情況下的圖像。由于蘋果開花時花葉共存且每一簇花朵的數量較多,分布密集,導致花朵存在遮擋,如圖2c~2e所示,本研究同時采集了無遮擋、其他花朵遮擋和葉片遮擋3種情況的花朵圖像。

圖2 不同顏色、光照和遮擋情況 Fig.2 Different colors, illumination, and occlusion situations
試驗數據如表1所示,晴天、多云、陰天、小雨情況下的圖像數量分別為1 611、512、519和363幅,順光和逆光條件下的圖像數量分別為1 830和1 175幅,有遮擋和無遮擋情況下的圖像數量分別為1 602和1 403幅。將采集到的3 005幅圖像按照6:2:2的比例分為訓練集(1 803幅)、驗證集(601幅)和測試集(601幅)進行模型訓練與測試。

表1 拍攝圖像詳細信息 Table 1 Details of the captured images
試驗過程在Win10操作系統下進行,處理器型號為Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz 3.79 GHz,顯卡Nvidia GeForce RTX 2080Ti。深度學習框架采用PyTorch1.6,編程平臺為PyCharm,編程語言為Python3.8,所有對比算法均在相同環境下運行。
YOLOv5s目標檢測算法采用盡可能小的網絡深度和特征圖維度,以確保其具有較小的權重文件和較快的檢測速度,在保證目標檢測精度的前提下,有利于搭載移動設備實現目標的實時檢測。
本研究擬采用的技術路線如圖3所示,將利用LabelImg工具標注完成的蘋果花朵圖像送入YOLOv5s目標檢測網絡,實現蘋果花朵的準確快速檢測。

圖3 總體技術路線圖 Fig.3 Overall technology roadmap
YOLOv5s的網絡結構分為輸入端、Backbone、Neck和Prediction 4個部分。YOLOv5s的輸入端沿用了YOLOv4的Mosaic數據增強方法,對不同的圖像進行堆積縮放、裁剪、排布以后再進行拼接。YOLOv5s的Backbone在輸入圖像前加入了Focus切片操作,采用CSPDarkNet53結構,可以在有效緩解梯度消失問題的同時減少網絡參數的數量。YOLOv5s的Neck部分采用特征金字塔(Feature Pyramid Networks, FPN)+路徑聚合網絡(Path Aggregation Network, PAN)的結構,PAN利用Concat函數進行多層特征融合操作,從而提高了預測的準確性。Prediction利用網絡提取到的特征進行預測,獲得網絡輸出信息。
YOLOv5s的損失函數由分類損失函數、回歸損失函數和置信度損失函數這3部分構成。在目標檢測的后處理過程中采用非極大值抑制(Non Maximum Suppression, NMS)獲取局部最大值。深度學習中通常采用檢測評價函數(Intersection over Union, IoU)作為檢測物體準確度的標準,具體計算方法可見參考文獻[33]。
本研究采用精確率()、召回率()、mAP、模型大小、檢測速度等五個指標對蘋果花朵檢測模型進行評價。當IoU≥0.5時為真情況,當IoU<0.5時為假正例情況,當IoU=0時為假反例情況。精確率、召回率和均值平均精度的計算如式(1)~(3)所示。

式中TP、FP、FN分別為真正例、假正例、假反例數量,真正例表示實際為正例且被分類器劃分為正例,假正例表示實際為負例但被分類器劃分為正例,假反例表示實際為正例但被分類器劃分為負例,為檢測類別數,本研究僅需識別花朵和花苞,故=2。
本研究中共訓練300輪次,網絡訓練結果如圖4所示,在模型訓練初期,模型學習效率較高,曲線收斂速度較快,當迭代次數達到265次左右時,模型學習效率逐漸達到飽和,損失在0.046左右波動。最終訓練模型的值為85.27%,值為0.94,mAP(IoU=0.5)為95.14%。

圖4 訓練結果 Fig.4 Training results
為了驗證YOLOv5s網絡檢測蘋果花朵的有效性,對測試集中的601幅蘋果花朵圖像進行了測試,測試結果表明,該方法檢測蘋果花朵的值為87.70%,值為0.94,mAP值分別為97.20%,模型大小為14.09 MB,檢測速度為60.17幀/s。
YOLOv5s目標檢測算法檢測蘋果花朵的效果如圖5所示,其檢測的置信度在檢測框上方顯示,圖中每個花朵和花苞均可準確識別,且置信度皆在0.90以上,表明該算法可以有效地檢測出蘋果花朵和花苞,且檢測的置信度較高。如圖6所示,在更為復雜的場景中,如花朵數量較多、存在部分遮擋和背景復雜的情況,YOLOv5s目標檢測算法亦可實現準確檢測。

圖5 蘋果花朵識別效果圖 Fig.5 Apple flower recognition renderings

圖6 復雜情況下的花朵識別效果圖 Fig.6 Flower recognition renderings in complex situations
為了評價YOLOv5s網絡對蘋果花朵的檢測效果,在相同條件下,分別基于 YOLOv4、SSD和Faster-RCNN目標檢測算法對蘋果花朵訓練集進行訓練,訓練輪次選擇為300,再利用測試集對上述4種檢測算法的性能進行評估,表2列出了YOLOv5s、YOLOv4、SSD和Faster-RCNN等4種目標檢測算法的性能比較。

表2 4種目標檢測算法的性能比較 Table 2 Performance of four target detection algorithms
由表2可知,YOLOv5s、YOLOv4、SSD和Faster-RCNN 4種目標檢測算法檢測蘋果花朵的值分別為87.70%、89.56%、88.58%、71.28%,值分別為0.94、0.87、0.79、0.87,mAP值分別為97.20%、89.05%、87.45%、87.52%,模型大小分別為14.09、244.32、91.11、108.16MB,檢測速度分別為60.17、26.54、45.48、14.63 幀/s。分析測試結果可以得出:YOLOv5s目標檢測算法的檢測精確率雖然比YOLOv4和SSD目標檢測算法分別低1.86和0.88個百分點,比Faster-RCNN目標檢測算法高16.42%,但其值分別比YOLOv4、SSD和Faster-RCNN目標檢測算法高7、15、7個百分點,mAP分別比YOLOv4、SSD和Faster-RCNN目標檢測算法高8.15、9.75、9.68個百分點,其模型大小分別比YOLOv4、SSD和Faster-RCNN目標檢測算法小94.23%、84.54%、86.97%,檢測速度分別比YOLOv4、SSD和Faster-RCNN目標檢測算法快126.71%、32.30%、311.28%。
將測試集中的601幅圖像按照不同顏色、不同天氣情況和不同光照情況進行分類,在相同試驗條件下,利用上述4種目標檢測算法分別對不同場景下的蘋果花朵圖像測試集進行了測試,表3列出了不同場景下4種目標檢測算法的檢測效果。

表3 不同場景下4種目標檢測算法的檢測精度 Table 3 Detection accuracy of four target detection algorithms in different scenarios
由表3可知,對于不同花朵顏色、不同天氣情況和不同光照情況,YOLOv5s模型的值比YOLOv4和SSD模型略低,但優于Faster-RCNN模型。針對不同花朵顏色、不同天氣情況,YOLOv5s模型的值與YOLOv4、Faster-RCNN模型相當,優于SSD模型,針對不同光照情況,YOLOv5s模型的值高于其他3種模型。針對不同花朵顏色,YOLOv5s模型檢測白色、粉色和玫紅色花朵的mAP值均高于其他3種目標檢測模型,檢測紅色花朵的mAP優于SSD模型,但低于YOLOv4和Faster-RCNN模型,針對不同天氣情況和不同光照情況,YOLOv5s模型的mAP值均高于其他3種模型。
結果表明,應用YOLOv5s目標檢測算法能夠實現蘋果花朵的快速檢測,且該目標檢測算法模型較小,考慮到機械疏花對精度要求相對不高,該網絡在保持較高識別精度的前提下,通過犧牲部分精度指標而大幅降低模型大小并提升其運算性能,更有利于模型的遷移應用,可為疏花器械的發展提供一定的技術支持。
1)該網絡對不同天氣下的花朵檢測效果如圖7a~7d所示,分別為晴天、多云、陰天、小雨天氣下的蘋果花朵檢測效果,經測試,本方法檢測晴天、多云、陰天、小雨天氣下的蘋果花朵的值分別為86.20%、87.00%、87.90%、86.80%,值分別為0.93、0.94、0.94、0.94,mAP值分別為97.50%、97.30%、96.80%、97.60%,結果表明,在不同天氣情況,YOLOv5s網絡仍然可以準確識別出蘋果花朵且檢測的置信度較高。

圖7 不同天氣情況下的花朵檢測效果圖 Fig.7 Flower recognition under different weather conditions
2)為了驗證模型對不同顏色花朵的識別效果,本研究利用YOLOv5s目標檢測算法對表1中的不同顏色花朵進行了測試,如圖8所示為不同顏色花朵的檢測效果,圖8a~8d分別為白色、粉色、玫紅色、紅色花朵的檢測效果,經測試,本方法對白色、粉色、玫紅色和紅色花朵的值分別為84.70%、91.70%、89.40%、86.90%,值分別為0.93、0.94、0.93、0.93,mAP值分別為96.40%、97.70%、96.50%、97.90%,結果表明,YOLOv5s目標檢測算法可以準確識別出不同顏色的蘋果花朵且檢測的置信度較高。

圖8 4種不同顏色花朵的檢測效果 Fig.8 Recognition effect of four different colors of flowers
3)不同光照強度下的蘋果花朵檢測效果如圖9所示,圖9a~9b分別為順光和逆光條件下的蘋果花朵檢測效果,經測試,本方法檢測順光和逆光條件下蘋果花朵的值分別為88.20%、86.40%,值分別為0.94、0.93,mAP值分別為97.40%、97.10%,結果表明,對于不同的光照強度,YOLOv5s目標檢測算法均可以準確識別出蘋果花朵且檢測的置信度較高。

圖9 不同光照情況下的花朵檢測效果圖 Fig.9 Recognition results in different illumination conditions
如圖10所示為部分花朵被漏檢和誤檢的情況,圖10a中左下角箭頭所指的4個花苞被漏檢,圖10b中左下角箭頭所指的2個花苞被漏檢,圖10c中左下角箭頭所指花朵被漏檢,圖10d中圖像上方箭頭所指花朵被漏檢,左下角箭頭所指花朵被誤檢為花苞。分析出現花朵漏檢和誤檢的可能原因如下:
1)蘋果花朵圖像的采集設備為智能手機,拍攝圖像時會存在一定程度的背景虛化,導致處于圖像中心的花朵細節明顯,而處于圖像邊緣的花朵細節模糊,蘋果花朵檢測模型在處理圖像邊緣的花朵時難以提取其特征,導致檢測時出現部分圖像邊緣的模糊花朵漏檢。
2)數據集中的蘋果花朵種類較多,形態各異,蘋果花朵檢測模型對于形狀較規則且分布較稀疏的蘋果花簇的檢測效果較好,對于花朵形狀復雜且分布密集的花簇,如圖10c和10d所示,花朵之間存在互相遮擋的情況,且花朵之間互相擠壓導致花朵的形狀不規則,由于相互遮擋的花朵外觀相似,某一花朵的預測框可能會移至與其外觀相似的另一花朵上,導致目標定位不準確,從而造成花朵的漏檢和誤檢。

圖10 漏檢和誤檢的效果圖 Fig.10 Renderings of missed and false detection
為了實現田間蘋果花朵的準確快速檢測,本研究基于YOLOv5s模型,實現了蘋果花朵的高效檢測,主要結論如下:
1)YOLOv5s算法檢測蘋果花朵的值為87.70%,值為0.94,mAP為97.20%,模型大小為14.09 MB,檢測速度為60.17 幀/s。與YOLOv4、SSD和Faster-RCNN目標檢測算法進行對比,YOLOv5s算法的值相較其他3種算法分別高7、15、7個百分點,mAP相較其他3種算法分別高8.15、9.75和9.68個百分點,且在模型大小和檢測速度方面優勢明顯,在模型訓練的過程中可以較大程度上減小內存的消耗,更有利于模型的遷移應用。
2)針對不同顏色、不同天氣情況和不同遮擋情況下的蘋果花朵,本研究提出的蘋果花朵檢測方法都能較好地識別蘋果花朵,說明基于YOLOv5s的蘋果花朵檢測方法具有較好的魯棒性。
3)本方法的檢測精確率雖然略低于YOLOv4和SSD目標檢測算法,但機械疏花對精度的要求相對不太苛刻,該網絡能夠在保持較高識別精度的前提下,犧牲部分精度指標而大幅降低模型大小并提升其運算性能,更有利于模型的遷移應用,可為疏花器械的發展提供一定的技術支持。
4)本方法對于花朵形狀復雜且分布密集的花簇則存在部分花朵被漏檢和誤檢的情況。后續可以探索新的多尺度特征融合算法,將低層特征與高層特征更有效地融合,提高復雜情況下的蘋果花朵的檢測效果。