宋懷波 王亞男 王云飛 呂帥朝 江 梅
(1.西北農林科技大學機械與電子工程學院, 陜西楊凌 712100;2.農業農村部農業物聯網重點實驗室, 陜西楊凌 712100)
油茶樹是典型的長效型經濟油料作物[1],主要分布在我國南方的高山丘陵山地,是帶動區域經濟增長的優良樹種。搖枝振蕩式機械采收是目前最適合油茶果的采收方式,確定油茶果的疏密分布以確定振蕩采收的夾持區域,是研發自動振蕩采收機械的關鍵技術之一[2],故實現復雜場景下油茶果果實目標的高效識別意義重大。
油茶果果實具有體積小、分布密集等特點,在自然環境下油茶果果實鄰接、重疊、遮擋普遍存在,且易受不同光照條件的影響,識別難度較大。目前,國內外學者對果實目標識別與定位進行了大量研究[3-7]。劉天真等[8]提出了一種改進的YOLO v3-SE模型進行冬棗果實識別,與傳統的YOLO v3模型相比,該模型的綜合評價指標提升了2.38個百分點,平均精度均值(Mean average precision, mAP)提升了4.38個百分點。劉小剛等[9]將卷積神經網絡(Convolutional neural networks, CNN)用于草莓果實的識別之中,成熟草莓識別準確率為97.14%,未成熟草莓識別準確率為96.51%。陳斌等[10]利用Faster-RCNN模型開展了自然環境下油茶果檢測方法研究,平均識別率為92.39%,準確率為98.92%,召回率為93.32%,綜合評價指標為96.04%,平均每幅圖像的識別時間為0.21 s。李立君等[11]提出一種基于凸殼理論和顏色特征閾值分割法的遮擋油茶果定位檢測方法,相比傳統凸殼算法,該方法雖然耗時增加了24.07%,但識別率提升了7.47個百分點。張習之等[12]提出了一種基于改進卷積自編碼機神經網絡的油茶果圖像識別方法,利用非對稱分解卷積核提升模型的訓練速度,以輸出端重構輸入端的直連訓練方式減少了信息損失,提升了模型收斂性能,識別準確率為90.4%,單幅圖像識別時間2 s。陳斌等[13]提出了基于歸一化傅里葉描述子、Hu不變矩特征和BP神經網絡的油茶果識別方法,識別率提升了15%。
REDMON等[14-15]提出的YOLO系列神經網絡算法具有識別速度快、精度高等特點[16-22]。YOLO v5s模型通過借鑒CutMix方法[23],并采用Mosaic數據增強方式,可有效解決模型訓練中的小目標問題。本文擬選擇YOLO v5s作為油茶果目標識別模型,利用訓練好的YOLO v5s網絡實現油茶果目標的快速精準定位,以期為自然條件下油茶果目標識別提供一種有效方法。
1.1.1油茶果數據采集與預處理
試驗數據采集于湖南省衡陽市衡南縣大三湘油茶種植基地,油茶果成熟果實多為紅色或紅黃色,未成熟果實為青黃色和青色,受到品種和種植環境影響,部分油茶果表面顏色差異較大,增加了識別難度,部分示例圖像如圖1所示。數據采集時間為2020年8月31日—9月12日,采集設備是華為HMA-AL00型相機,分辨率為2 976像素×3 968像素,焦距35 mm。

圖1 不同顏色的油茶果Fig.1 Camellia oleifera fruit with different colors
為保證所制作數據集的多樣性,分別采集了白天、傍晚、遮擋、重疊、密集及逆光等環境下的油茶果圖像1 382幅及視頻5段,再從每段視頻中隨機選取20幅圖像,共1 482幅圖像作為原始數據,圖像分辨率為2 976像素×3 968像素。為了提高模型的泛化能力和魯棒性,對原始圖像進行了數據增強以增加訓練的基礎數據量。經典的數據增強[24]方法包括:圖像翻轉、圖像旋轉、圖像縮放、圖像裁剪、圖像平移、添加噪聲和修改對比度等。選擇對部分圖像添加椒鹽噪聲和高斯噪聲進行了數據集增強,此操作可用來模擬特殊天氣和鏡頭不清晰等情況,通過引入噪聲點降低圖像的清晰度,有利于驗證算法的魯棒性。圖2b是對圖2a原始圖像添加了2.5%椒鹽噪聲之后的圖像,圖2d是對圖2c原始圖像添加了12%高斯噪聲之后的圖像,可以看出圖像平滑度降低。同時,增加了Mosaic拼接法,即將多幅待檢測圖像各截取一部分合成一幅圖像,隨即遮擋圖像部分進行整體檢測,這種方式能夠同時有效提升擾動條件下模型的檢測準確性,拼接結果如圖2e所示。

圖2 數據增強Fig.2 Data enhancement
1.1.2數據集制作
通過數據增強處理,結合所標注的原始樣本,共獲得3 296幅圖像,按照比例4∶4∶1將圖像分為簡單、中等和困難3個等級:圖像平滑且果實稀疏無陰影遮擋為簡單樣本,圖像果實密集或輕微遮擋或有陰影為中等難度樣本,圖像果實超密集或嚴重遮擋或嚴重噪聲、虛化為困難樣本。采用LabelImg工具進行標注,生成.xml標簽文件。由于本研究僅進行油茶果果實目標識別,因此在標簽制作時只將圖像分為果實目標與背景兩類,僅需標注果實目標,圖像其他部分LabelImg自動標注為背景,數據保存為PASCAL VOC格式[25]。
為測試算法的有效性和環境適應性,采集了695幅圖像作為測試樣本。在自然條件下進行果實識別,影響因素主要為果實重疊或枝葉遮擋、果實密集程度、光照環境和圖像平滑度4方面,具體分類如表1所示。果實輪廓或果實表面被遮擋1/3以下屬于輕微遮擋,2/3以上屬于嚴重遮擋;光照因素按照圖像光線明暗進行分類;圖像中目標果實為1~3個屬于稀疏圖像,4~8個屬于密集程度中等,9個果實及以上屬于密集分布。果實數量增多會伴隨著拍攝距離增加和果實目標變小的問題;噪聲處理和虛化圖像導致圖像不清晰,進一步增加了識別難度。

表1 測試集分類Tab.1 Classification of test set
1.1.3試驗平臺
本研究模型訓練和測試均在同一環境下運行,硬件配置為英特爾Xeon E5-1620 v4 @ 3.50 GHz四核,GPU為11 GB的NVIDIA GeForce RTX 2080Ti,32 GB運行內存,軟件環境為64位Windows 10系統,PyTorch深度學習框架。本文對比算法均在該硬件環境下進行。
1.2.1基于YOLO v5s的油茶果目標識別算法
YOLO系列深度學習框架利用回歸的思想,以一階網絡直接完成目標位置檢測和目標物體分類[26]。本試驗基于YOLO v5s深度學習網絡實現油茶果的檢測,經過150輪訓練得到最優模型。為了檢測模型的優良性,選擇當下認可度較高的YOLO v4-tiny和RetinaNet進行對比試驗,用相同的數據集依次對網絡進行訓練,分別得到其最優模型。最后選取不同特征的低質量圖像組成驗證集對得到的模型分別進行驗證,通過相關指標比較網絡性能,驗證模型的有效性,具體操作過程如圖3所示。

圖3 試驗流程圖Fig.3 Flow chart of experiment
1.2.2YOLO v5s網絡模型
YOLO v5s沿用了YOLO系列的整體布局,整個網絡結構分成Input、Backbone、Neck和Output 4部分,網絡結構如圖4所示。在網絡輸入端自適應縮放圖像,采用Mosaic數據增強方式,可自動計算數據集的最佳錨框值。Backbone部分在YOLO v4-tiny基礎上增加了Focus結構和CSPNet(Cross stage partial networks)結構,實現了跨階段局部融合網絡。Focus結構共包含4次切片操作和1次32個卷積核的卷積操作,切片操作將1幅圖像中每隔1個像素取1個值,類似于近鄰下采樣,得到4幅圖像,但是4幅圖像的信息并沒有丟失,而是將原圖像寬度W、高度H信息集中到了通道空間,輸入通道擴充了4倍,即拼接圖像相對于原RGB 3通道模式變成了12個通道。然后將新得到的圖像進行卷積操作,原始608×608×3的圖像變成信息完整的2倍304×304×32的特征圖。CSPNet結構仿照DenseNet的密集跨層跳層連接思想,進行局部跨層融合,利用不同層的特征信息獲得更為豐富的特征圖。Neck部分包含了路徑聚合網絡(Path aggregation network, PANet)[27]和空間金字塔池化(Space pyramid pooling, SPP)[28]模塊。自頂向下將高層特征信息與不同層CSP模塊的輸出特征進行聚合,再通過自底向上路徑聚合結構聚合淺層特征,從而充分融合不同層的圖像特征。SPP模塊采用1×1、5×5、9×9、13×13共4種不同的池化核進行處理,處理后再進行張量拼接。SPP處理可有效增加感受野,分離出顯著的上下文特征,同時不損失原有檢測速度。輸出層使用GIOU_Loss代替YOLO v3的IOU_Loss作為損失函數,增加了相交尺度的衡量,緩解了IOU_Loss無法優化2個框不相交的情況。

圖4 YOLO v5s網絡模型Fig.4 Network model of YOLO v5s
1.2.3對比算法及評價指標
為了驗證YOLO v5s模型的有效性和實用性,本試驗采用相同的油茶果數據集與YOLO v4-tiny和RetinaNet網絡進行了對比測試。選取精確率P(Precision)、召回率R(Recall)、調和平均值F1(F-measure)和平均精度均值(mAP)作為評價指標進行性能對比。
1.2.4權重模型訓練
本試驗共訓練了150輪,權重模型序號記為1~150。每25輪取一個權重模型,加上P值最高的模型,共7個權重模型,模型評價指標如表2所示。從表2可知,模型24綜合性能最差;模型49、74、99評價指標逐漸變好,性能逐漸上升;模型124、149性能逐漸穩定。模型134的F1值最高,說明該模型綜合表現最好,油茶果目標識別的準確率為90.73%,召回率為98.39%,平均精度為98.71%,故選擇利用模型134進行油茶果果實的識別。

表2 權值模型的性能比較Tab.2 Performance comparison of weight models %
通過用相同的數據集進行訓練和測試,YOLO v5s、YOLO v4-tiny和RetinaNet 3種網絡的最優模型評估指標如表3所示。從表3可以看出,YOLO v5s所占內存空間最小,說明其網絡更加簡潔,模型具有更好的移植潛力。其他各評估指標均優于YOLO v4-tiny和RetinaNet 2種網絡。相比二者,YOLO v5s的P分別提高了1.99個百分點和4.50個百分點,R分別提高了9.41個百分點和10.77個百分點,mAP分別提高了9.48個百分點和10.79個百分點。

表3 評估指標對比Tab.3 Comparison of evaluation indicators
測試時分別記錄了3個模型的檢測時間,并將每幅圖像的平均耗時作為其檢測速度。試驗結果表明,針對單幅圖像,YOLO v5s檢測耗時12.7 ms,YOLO v4-tiny檢測耗時351.8 ms,RetinaNet檢測耗時338.5 ms。相比2種模型,YOLO v5s檢測速度明顯提升,時間分別降低了96.39%和96.25%,所占內存空間分別減少124.84 MB和124 MB,表明YOLO v5s在速度方面更具優越性,更有利于將其移植至邊緣設備中。
2.2.1遮擋目標識別對比
為了進一步探究YOLO v5s對遮擋問題的處理能力,選取輕微遮擋和嚴重遮擋2種圖像各65幅,分別輸入2.1節得到的3個模型進行檢測,部分圖像的試驗結果如表4所示。由表4可知,遮擋程度越大,檢出目標的置信度越低。由于YOLO v5s采用了多層神經特征網絡結構,對于更小的柵格預測更占優勢,輕微遮擋和嚴重遮擋情況下均無漏檢情況;YOLO v4-tiny在2種情況下也沒有漏檢;RetinaNet雖無漏檢,但嚴重遮擋情況下錯檢1個。

表4 遮擋情況檢測結果對比Tab.4 Comparison of detection results under occlusion
對應的檢測圖像如圖5所示,其中圖5a~5c為輕微遮擋圖像檢測結果,圖5d~5f為嚴重遮擋圖像結果。本研究檢測結果統一使用紅色方框標記,未識別結果采用藍色方框標記,誤識別結果采用藍色箭頭標記。從圖5e和圖5f可以看出,YOLO v4-tiny和RetinaNet均存在定位不準確、嚴重遮擋情況下無法識別出果實目標等問題。可見,在果實目標重疊或者嚴重被遮擋情況下YOLO v5s依舊能準確分割果實邊緣,對于果實目標預測取得了更好的效果。

圖5 遮擋情況圖像檢測結果對比Fig.5 Comparison charts of detection results under occlusion
2.2.2陰影圖像檢測對比
亮度對果實目標識別的效果具有較大影響,昏暗環境下油茶果表面變得模糊,邊緣特征清晰度降低,果實目標特征下降,增加了識別難度。為探究YOLO v5s對此類問題處理能力,選取逆光、陰天及光線不足環境下油茶果圖像共65幅輸入3個模型進行測試。部分試驗結果如圖6所示,其中不同部分圖像從上到下、從左到右依次記為1、2、3、4,對應檢測結果如表5所示,4幅圖像中油茶果目標分別是4、2、2、1個。由表5可以看出,YOLO v5s將目標全部正確識別出,YOLO v4-tiny漏檢1個,RetinaNet漏檢1個。從圖6b來看,雖然YOLO v4-tiny的單個置信度高,但其存在目標定位不準確的問題。由此可以看出,在同樣的陰天或者傍晚環境下,YOLO v5s對油茶果目標識別在準確率和置信度上均更有優勢。

圖6 逆光或昏暗環境圖像檢測結果對比Fig.6 Comparison charts of detection results in backlit or dim environment

表5 陰影、逆光情況檢測結果對比Tab.5 Detection results under shadow and backlight conditions
2.2.3小目標密集圖像識別對比
為了驗證YOLO v5s對密集小目標的識別效果,選取不同密集程度的油茶果圖像共190幅分別輸入3個模型進行檢測。部分檢測結果如圖7所示,其中前3幅為密集分布圖像,第4幅為超密集分布圖像,對應的試驗結果如表6所示。由表6可以看出,YOLO v5s的識別效果最好。對于果實密集分布的圖像,YOLO v5s漏檢5個,錯誤識別1個;YOLO v4-tiny漏檢23個,錯誤識別1個;RetinaNet漏檢22個。對于果實超密集分布的圖像,YOLO v5s漏檢6個,YOLO v4-tiny漏檢26個,RetinaNet漏檢26個。綜上可知,YOLO v5s在小目標識別方面更具優勢,可用于密集小目標識別之中。但也可以發現,YOLO v5s在油茶果果實識別方面仍存在一定的不足:在識別小目標且伴隨有果實超密集分布的圖像時,存在個別漏檢情況。這是由于YOLO v5s神經網絡通過多層卷積和池化等方式提取圖像特征,圖像的細節信息會隨著網絡深度的增加而有一定丟失。

圖7 果實密集、小目標情況圖像檢測結果對比Fig.7 Comparison of detection results of dense fruits and small targets

表6 果實密集、小目標情況檢測結果對比Tab.6 Comparison of detection results of dense fruits and small targets
2.2.4虛化及噪聲圖像檢測對比
為了探究YOLO v5s對模糊圖像的檢測能力,選取虛化、模糊和經過噪聲處理后的圖像共130幅分別輸入3個模型進行測試。部分檢測效果如圖8所示,對應檢測結果如表7所示。由表7可以看出,YOLO v5s的識別效果最好,無漏檢;YOLO v4-tiny漏檢4個;RetinaNet漏檢1個。結果表明,在識別不平滑圖像時YOLO v5s更有優勢,可以完整地檢測出目標果實,具有良好的魯棒性。

圖8 虛化、噪聲情況圖像檢測結果對比Fig.8 Comparison of detection results under blur and noise

表7 虛化、噪聲情況檢測結果對比Tab.7 Comparison of detection results under blur and noise
(1)本研究將YOLO v5s網絡用于油茶果的識別,經過訓練得到的最優模型檢測的P為90.73%,R為98.38%,mAP為98.71%。與一階檢測算法YOLO v4-tiny和RetinaNet相比,模型P分別提高了1.96個百分點和4.47個百分點,R分別提高了9.40個百分點和10.76個百分點。表明將YOLO v5s網絡用于油茶果目標的識別是可行的。
(2)對比試驗表明,YOLO v5s模型具有檢測精度高、抗干擾能力強的優點。在果實重疊或大面積被遮擋,逆光或昏暗環境,密集小目標等自然情況下都能達到良好的識別效果,在處理模糊、虛化、不平滑圖像時均可準確識別定位果實目標。
(3) YOLO v5s模型檢測速度快,檢測單幅圖像的平均耗時僅為12.70 ms,相比YOLO v4-tiny和RetinaNet 2種算法,時間分別降低了96.39%和96.25%。且模型體積小,具備更好的移植潛力。