李 云, 邱述金, 趙華民, 李曉斌, 張慶輝, 原向陽
(1.山西農業大學農業工程學院,山西太谷 030801; 2.山西農業大學農學院,山西太谷 030801)
谷子是我國的重要雜糧作物之一,其種植面積約為世界總種植面積的80%,其產量約占世界總產量的90%[1]。一直以來,在谷子栽培及育種研究中,谷穗數量都是要依靠人工觀察谷穗并統計,不僅效率低且耗時耗力。在實際的田間環境中,谷穗的相似性、密集分布、遮擋及統計人員的主觀性使谷穗計數困難,非常容易出錯。谷穗是評估谷子產量與質量的關鍵農藝指標,在營養診斷、生長期檢測及病蟲害檢測等方面具有重要作用。因此,在移動設備上快速準確地檢測谷穗能為產量預估及其表型研究提供重要的作用。
隨著農業信息技術的快速發展,基于深度學習的農作物圖像檢測受到廣泛關注[2-3]。目前針對谷物穗頭檢測的研究,以小麥[4-6]、水稻[7-10]等主要糧食作物為主,研究的問題主要針對提高模型檢測精度和檢測速度。鮑烈等提出,基于卷積神經網絡(CNN)的小麥麥穗識別模型,為提高識別精度結合圖像金字塔構建滑動窗口實現對麥穗的多尺度識別,該模型準確率為97.30%,利用該模型完成小麥麥穗的計數和預估小麥產量[11]。張領先等實現了一種冬小麥麥穗卷積神經網絡識別模型,并與非極大抑制值結合,實現在實際大田環境中快速、準確地檢測麥穗與計數[12]。王宇歌等通過改進YOLOV3模型對不同時期麥穗目標進行檢測與計數,改進的YOLOV3模型的檢測結果表現出較強的魯棒性,但對遮擋的麥穗及尺寸較小的麥穗檢測仍有困難[13]。鮑文霞等的研究基于深度卷積神經網絡CSRNet網絡,對單幅麥穗密度圖進行了研究,根據密度值對麥穗進行計數[14]。Fernandez-Gallego等運用熱成像技術和深度學習對麥穗圖像進行分割并對麥穗進行計數[15]。劉哲等采用改進的Bayes摳圖算法將麥穗從復雜背景中分割出來,運用平滑濾波、腐蝕、填充等算法分割出麥穗小穗并形成連通區域后進行標記、計數,該方法提高了技術精度[16]。謝元澄等研究提出了基于深度學習的麥穗檢測模型(FCS R-CNN),通過Cascade R CNN引入特征金字塔網絡(FPN)等方法,提高檢測精度和檢測速度[17]。
在實際的田間環境中,穗頭分布密集、遮擋嚴重,模型在復雜環境中對穗頭檢測較為困難。為提高模型對困難目標的檢測準確率,姜海燕等設計了基于生成特征金字塔的稻穗檢測(GFP-PD)方法,針對小尺寸稻穗和葉片遮擋稻穗的噪音等問題,采用構造特征金字塔和遮擋樣品修復模塊(OSIM)提高模型的檢測正確率[18]。張遠琴等針對小尺寸稻穗目標問題,基于Faster R-CNN模型引入空洞卷積,用ROIAign替代ROIPooling等方法進行優化提高模型對水稻稻穗的平均檢測精度[19]。段凌鳳等運用3個全卷積神經網絡進行比較,對稻穗進行分割后根據對稻穗圖像的計算速度、分割性能,優選出性價比最好的SegNet卷積神經網絡,提升邊緣不規則、遮擋條件下稻穗的檢測準確率及效率[20]。Bao等設計了一種輕量級卷積神經網絡SimpleNet,使用卷積和反向殘差塊構建,并結合卷積注意力機制CBAM模塊,可用于移動端對小麥穗病害的自動識別[21]。Zhao等提出了一種改進的基于YOLOv5方法來檢測無人機圖像中的麥穗,通過添加微尺度檢測層和采用WBF算法解決因小尺寸麥穗密集分布和遮擋導致的檢測問題[22]。楊其晟等提出一種改進YOLOv5的蘋果花朵生長狀態檢測方法,引入協調注意力(coordinate attention,CA)模塊和設計多尺度檢測結構,提高模型檢測精度[23]。張兆國等通過改進的Yolov4模型設計了一種馬鈴薯檢測模型,使用MobilenetV3網絡替換YoloV4模型的CSP-DarkNet53網絡減小模型體積并保證了馬鈴薯的平均檢測精度,在嵌入式設備上部署試驗,YoloV4-MobilenetV3表現出較強的魯棒性[24]。
由于谷子在自然大田環境中的生長特點,谷穗形態及空間分布位置不規則,因此在實際環境中應用目標檢測模型對谷穗的檢測較為困難。本研究以YoloV5模型為原始模型,將其主干特征提取網絡使用輕量化MoblienetV3模型代替,以減少模型參數,在此基礎上改進特征融合檢測結構,后處理引用Merge-NMS算法改進輕量化模型。通過在自建的谷穗數據集上進行測試評估模型,為移動設備上實現快速準確地檢測谷穗提供理論依據。
谷穗圖像采集于山西農業大學申奉村試驗田,時間為2021年7月至10月,采集的圖像包含抽穗期、灌漿期、成熟期3個時期的谷穗圖像(圖1),其中抽穗期25幅,灌漿期230幅,成熟期45幅,共300幅。谷子在生長過程中穗頭一般以下垂狀態為主,故本研究在采集圖像時均從側上方拍攝圖像,采集的谷穗圖像分辨率為4 032像素×3 024像素,存儲為jpg格式。由于實驗室中計算資源有限,將原始圖像壓縮為1 024像素×768像素,加快數據處理時間。在自然田間環境中采集的谷子圖像存在被葉片和莖稈遮擋的谷穗、谷穗相互纏繞遮擋、谷穗密集分布等眾多復雜情況,對模型檢測谷穗有一定的干擾。
對采集的谷子圖像使用LabelImg標注工具按照PASCAL VOC數據集格式制作谷穗圖像數據集,對圖像中的谷穗進行標注(圖2),生成對應的XML文件。為防止數據集較小可能會導致網絡模型的過擬合現象,提升網絡模型訓練結果的泛化能力,因此需要對谷穗數據集使用數據增強(圖3)。本研究對自制的谷穗數據集用旋轉、翻轉、鏡像、亮度調整等方法隨機進行數據增強,每幅圖像對應的標注文件同時進行變換,數據集擴充至2 100幅,按照 8∶1∶1 比例隨機將數據集劃分為訓練集、驗證集和測試集。
YOLO(you only look once)[25]系列是采用回歸方法的單階目標檢測模型,具有較好的性能,YoloV5是YOLO系列中目前比較優秀的模型,根據模型體積和參數量分為4個版本:YoloV5s、YoloV5m、YoloV5l和YoloV5x。由于本研究對檢測模型的準確率、實時性和模型體積的要求較高,因此本研究基于YoloV5s模型改進設計實現谷穗目標的檢測。

YoloV5模型的結構見圖4,YoloV5s模型主要包括4個部分:輸入端、Backbone、Neck和Prediction,其中Backbone結構作為中不同次數的特征提取和卷積操作來決定模型復雜度及參數量。
YoloV5s輸入保留了和YoloV4相同的Mosaic數據增強方法,將4幅圖像隨機縮放、剪裁、分布并拼接成一幅新的圖片,如圖5所示。增加自適應錨框的計算功能,即通過遺傳算法和K-means算法在訓練過程中不斷迭代計算最優的錨框大小,可針對不同目標自動計算預測錨框以提高準確率。將原始圖片送入檢測網絡前,自適應圖片縮放功能將其尺寸處理成統一尺寸。


YoloV5s的Backbone增加Focus結構實現輸入圖像的切片操作,輸入特征圖的大小為640×640×3,經過Focus結構得到輸出特征圖的大小為320×320×32。主干網絡沿用YoloV4的跨級部分網絡(CSP)結構,主要使用殘差網絡結構提取輸入圖像的特征,其中卷積運算操作決定整個模型的復雜度和參數量[26]。
Neck使用FPN-PAN結構,特征金字塔網絡(FPN)通過上采樣將高層特征信息與主干特征提取網絡的信息由上向下傳遞融合,金字塔注意力網絡(PAN)結構由下向上通過下采樣傳達目標定位特征,二者結合使用提高模型的檢測能力。
Prediction的邊界框損失函數使用CIOU_LOSS(Complete IoU Loss)函數和非極大值抑制(NMS)的方法,可有效獲得最佳預測錨框。
YoloV5在訓練過程中采用梯度下降法優化目標函數,隨著迭代次數的增加,損失值(LOSS)接近全局最小值,學習率也應變小。為使模型經過訓練達到收斂狀態最佳,YoloV5采用的余弦退火學習率即通過余弦函數降低學習率。余弦函數值隨x的增加先緩慢下降,后快速上升,再緩慢下降,目的在于避免陷入當前局部最優點,不斷調整學習率使模型收斂到一個新的最優點,直到模型訓練停止。余弦退火學習率的原理如下:
(1)
式中:lnew表示最新學習率;i表示第i次執行(索引值);lmin表示學習率最小值;lmax表示學習率最大值;Tcur表示當前執行的epoch數量;Ti表示當前執行下epoch總數。
2.2.1 利用MobilenetV3修改YoloV5的模型結構 MoblienetV3[27]是兼并實時、速度、準確率的輕量級神經網絡。MoblienetV3的主干網絡基于倒置殘差塊組成的Bneck結構,包括普通卷積和深度可分離卷積,并在全連接層添加注意力機制(SE模塊),如圖6所示。與標準卷積相比,倒置殘差塊中的深度可分離卷積可以大幅減少整體模型的參數量及縮小模型尺寸[28]。

如圖7所示,假設輸入特征圖尺寸為H×W×M(通道為M),經過N個k×k×M的標準卷積后得輸出特征圖的尺寸為H×W×N(通道為N)。標準卷積的參數量計算如下:
P1=k×k×M×N=k2×M×N。
(2)

深度可分離卷積由深度卷積和逐點卷積共同組成,如圖8所示。深度卷積的卷積核大小為k×k×1,其中有M個卷積核,它負責對輸入的每個通道進行濾波。逐點卷積的卷積核為1×1×M,其中有N個卷積核,負責轉換通道。深度可分離卷積的參數量計算如下:
P2=k×k×1×M+1×1×M×N=k2×M+M×N=M×(k2+N)。
(3)
因此,深度可分離卷積與標準卷積參數量相比計算如下:
(4)
2.2.2 Merge-NMS算法 圖像受分辨率的影響會降低檢測性能,即圖像的模糊像素會導致檢測目標邊界模糊的問題。由于這一因素,不易準確區分

重疊谷穗和遮擋谷穗。本研究將標準非極大抑制值(NMS)改進為融合非極大抑制值(Merge-NMS)[29],減輕后處理過程中模糊的谷穗目標邊界。標準NMS每次迭代結束只保留得分最高錨框,與這個錨框重疊的錨框都會被抑制,大量有價值的錨框也會被抑制。Merge-NMS利用被標準NMS抑制的錨框信息,并與其他錨框融合,從而得到一個更準確的預測錨框。Merge-NMS的偽代碼見算法1,其中Box為檢測錨框,Cls為分類置信度,Loc為位置置信度,Cls和Loc相乘得到錨框的最終得分S。開始時所有錨框都按得分S進行排序;在每次循環中,先從所有錨框中將得分最高的錨框(bm)拿出,與bm高度重疊錨框的得分若大于Merge-NMS的閾值,bm將與這些框合并,形成一個新的檢測錨框,放入最終檢測集D中。新檢測錨框計算方法如下:
(5)
式中:xm是bm的坐標;xk是每次循環被選錨框的坐標。位置置信度越高lock的錨框在新檢測錨框xm中占有更高的權重。
算法1 Merge-NMS
Input:Box=b1,…,bn;Cls=c1,…,cn;Loc=l1,…,ln;NMSthr,Mergethr。Box是檢測邊界框N×4矩陣;Cls和Loc分別是邊界框的分類置信度和位置置信度;NMSthr是非極大抑制值的閾值;Mergethr為融合非極大抑制值的閾值。
Output:D,檢測框最終置信度分數的集合
1:D ← ?
2:S=Cls×Loc
3:T ← Box
4:while Box ≠ ?
5: m=argmax(S)
6: Box=Box-bm
7: idx←IOU(bm,Box)>NMSthr
8: Box=Box-Box[idx]
9: idx←IOU(bm,T)> Mergethr
10: bm←∑T[idx]×Loc[idx]/∑Loc[idx]
11: D∪
12:end while
2.2.3 多特征融合檢測結構改進 YoloV5s原結構設計了3個尺度特征檢測層,對于輸入圖像分別使用8、16、32倍下采樣的特征圖去檢測不同尺寸的目標。在網絡模型中,低層特征圖分辨率更高,包含目標特征明顯,目標位置較準確;高層特征圖在多次卷積操作后,獲得豐富的語義信息,但也會使特征圖分辨率降低。由于在實際環境獲取的圖像中谷穗尺寸參差不齊,在YoloV5s原結構的3層檢測層下采樣倍數較大,容易丟失關于小目標特征信息,高層特征圖不易獲得小目標的特征信息。本研究通過增加一個微尺度特征檢測層,低層特征圖與高層特征圖通過拼接的方式融合后進行檢測,可以有效提高檢測準確率。
如圖9所示為基于輕量化YoloV5的谷穗檢測模型結構,輸入端的自適應圖片縮放功能將輸入圖片處理成統一尺寸640×640×3,將YoloV5的Backbone模塊替換為MobilenetV3作為特征提取網絡,可以降低模型復雜度和減少模型計算量,但也容易漏檢重疊和較小的谷穗。在多特征融合檢測結構中增加微尺度特征檢測層,減少在特征融合時信息的丟失,能更好地適應在自然田間復雜環境下對谷穗的檢測,獲得更多的目標信息,提高對小目標的檢測。后處理階段融合采用Merge-NMS算法,利用特征融合結構中獲得的位置置信度合并錨框,減少邊界模糊造成的誤檢、漏檢。
試驗于2022年1月至2022年3月在山西農業大學實驗室中進行,本研究基于Pytorch深度學習框架進行訓練與測試,硬件配置為AMD Ryzen 7 5800H處理器,6 GB NVIDIA GeForce RTX 3060 Latop GPU GPU。運行操作系統為Windows 10,64位,Python 3.8.5,CUDA 11.4,cuDNN 8.2.4。
模型的批處理樣本數為4,epoch設置為500個,即進行500次迭代。衰減系數為0.000 5,初始學習率為0.01,動量因子為0.937。
本研究采用平均檢測精度(AP,%)、F1分數(F1-score,%)、檢測時間(s)、模型大小和浮點運算數(GFLOPs)作為評價指標。平均檢測精度為精準率-召回率曲線(P-R曲線)即曲線下方與坐標軸圍成的面積。F1分數為綜合評價精準率和召回率的指標,反映模型整體的性能。檢測時間為模型檢測一幅圖像的平均時間。模型大小,即模型在系統中占用內存空間的大小。浮點運算數,反映模型復雜度。精準率(P,%)、召回率(R,%)、AP值(%)和F1分數(%)的計算公式如下:
(6)
(7)
(8)
(9)
式中:TP為真陽性樣本,表示正確識別谷穗的數量;FP為假陽性樣本,即錯誤識別為谷穗的數量;FN為假陰性樣本,即未識別的谷穗目標數量。
損失值隨迭代次數的變化趨勢反映模型訓練效果,即損失值越接近0訓練結束的模型效果越好。圖10為本研究改進的YoloV5s模型和標準YoloV5s模型的訓練損失值變化曲線。由圖中曲線可以看出,2個模型隨著訓練迭代次數的增加,損失值都在減少,逐漸趨于平穩。改進的模型在迭代200次后,訓練集損失值和驗證集損失值逐漸收斂,訓練集損失值小于0.28,驗證集損失值小于0.2,迭代300次之后損失值變化基本平穩。標準模型YoloV5s在迭代350次之后訓練集損失值和驗證集的損失值逐漸收斂。標準模型YoloV5s趨于穩定后訓練集損失值比改進的模型高26.02%,驗證集的損失值比改進的模型高44.81%。本研究改進的模型訓練集和驗證集的損失值更接近0,表明模型訓練的效果較好,并且整個模型的泛化能力較強。

為了驗證各改進方法對模型性能的影響,本研究以標準YoloV5s模型為基礎進行對比試驗。試驗結果見圖11、表1,不同模型的檢測效果可視化對比見圖12,以反映各方法對模型影響的有效性。

表1 不同改進方法對模型性能影響
本研究采用將MobilenetV3替換標準YoloV5s模型Backbone結構的方法減少模型體積,試驗結果見圖11。YoloV5s的模型體積為14.19 MB,YoloV5s-MobilenetV3的模型大小為6.77 MB,減少了 7.42 MB。YoloV5s-MobilenetV3模型單獨增加微尺度檢測使檢測部分結構的復雜,會使模型大小略有增加,與YoloV5s-MobilenetV3相比僅增加了 0.79 MB,但仍比YoloV5s模型小46.7%。使用Merge-NMS算法不會增加模型體積,故單獨使用Merge-NMS算法的YoloV5s-MobilenetV3模型體積為6.77 MB。本研究改進的模型即在YoloV5s-MobilenetV3上同時使用2種方法所構成的模型,其模型大小為7.56 MB,與標準YoloV5s模型的模型大小仍有較大的下降,下降了6.63 MB,由此證明MobilenetV3替換YoloV5s的Backbone結構的有效性。

由圖11、表1得出,YoloV5s-MobilenetV3模型相比YoloV5s模型的體積大幅減少的同時,平均檢測精度也出現大幅下降,下降了4.2百分點。YoloV5s-MobilenetV3模型的浮點運算數比YoloV5s模型少10.9×109,檢測時間為0.010 s,進一步證明用MobilenetV3替換標準YoloV5s模型Backbone結構可以降低模型復雜度,減少檢測時間。YoloV5s-MobilenetV3模型的F1分數比YoloV5s模型減少了5.84百分點,反映了模型結構經過輕量化替換其性能也會有一定的退化。分別在YoloV5s-MobilenetV3模型和YoloV5s模型上單獨使用增加微尺度檢測層,比YoloV5s-MobilenetV3模型和YoloV5s模型的浮點運算數都有較小的增加,說明微尺度檢測層可以提升模型復雜度獲得更多的目標信息,并且YoloV5s-MobilenetV3模型的平均檢測精度從95.20%提高至97.70%,說明微尺度檢測層能有效提高對小谷穗目標的檢測。
在自然田間環境中谷穗目標分布非常密集,大小目標交替分布,并且谷穗纏繞、谷穗遮擋等情況較多,如圖12-a所示,邊界模糊的目標樣本可能會作為負樣本被漏檢。評價指標表明TP值和FP值與模型性能直接相關,TP值越高,漏檢樣本越少,模型性能越好。為提高模型檢測效果,本研究在后處理階段采用Merge-NMS算法減少樣本漏檢,檢測結果見圖12。當YoloV5s-MobilenetV3模型后處理階段采用Merge-NMS算法時,平均檢測精度提高至95.56%,在測試集(共2 864個樣本)檢測的樣本數據統計見表2。YoloV5s-MobilenetV3采用Merge-NMS算法后FN樣本從286個減少到265個,最終本研究改進的模型FN樣本減少到180個,召回率從90.00%增加到93.70%, 表明了Merge-NMS算法解決目標邊界模糊問題的有效性。


表2 模測試集檢測樣本統計
將YoloV5s模型使用MobilenetV3輕量化改進后,模型復雜度的減少,使模型對目標的特征提取不充分,本研究通過在多特征融合檢測結構中增加微尺度檢測層,將高層特征圖與低層特征圖提取的目標信息有效融合,減少目標信息的丟失,提高對小目標的檢測。同時使用Merge-NMS算法,可以對特征圖中具有模糊邊界的目標進行有效檢測。如圖12-f,為本研究改進模型的檢測可視化效果圖,前排谷穗目標基本被全部檢測并標記,黃框中被遮擋的谷穗和尺寸較小的谷穗也被成功檢測,表明輕量化模型YoloV5s-MobilenetV3同時使用2種方法可以有效提高模型的檢測性能。
為驗證在實際應用中谷穗檢測模型的有效性,使用YoloV3、YoloV3-tiny、YoloV5-shufflenetV2等經典模型與本研究改進模型進行比較。試驗使用相同640×640的圖像作為輸入,設置相同的模型參數,并在本研究自建的谷穗數據集上進行試驗測試,結果見圖13、表3。
從圖13可以直觀地看出本研究的改進模型和YoloV3模型的平衡點更接近點(1,1),并且本研究改進模型和YoloV3模型的P-R曲線下方與坐標軸構成的面積大于其他的模型,即平均檢測精度較高。由表3對不同模型檢測結果的對比可以得出,本研究在保證模型檢測精度的同時,還兼具其他優點,如模型體積較小,浮點運算量較少。YoloV5-shufflenetV2模型和YoloV3-tiny模型的模型體積和浮點運算數比較小,但平均檢測精度較低。YoloV3模型的檢測精度較高,但模型大小達到18.05 MB,浮點運算數為本研究改進模型的2.7倍。結果表明,與其他模型相比本研究改進的模型在降低模型復雜度,減少模型體積的同時,保持了檢測準確率和檢測速度的平衡。


表3 不同模型的檢測結果
本研究提出一種基于輕量化YoloV5模型的谷穗檢測模型,將YoloV5s主干特征提取網絡替換成具有注意力機制的輕量級模型MobilenetV3,構建的YoloV5s-MobilenetV3模型具有輕量化特點,提高模型的可移植性。在多特征融合檢測結構中增加微尺度檢測層,后處理階段采用Merge-NMS算法。將改進模型對自然田間環境密集、遮擋及目標大小分布不均等多種復雜情景中的谷穗進行檢測。結果表明,本研究改進的模型平均檢測精度為97.78%,F1分數為94.20%,模型大小和浮點運算數分別為7.56 MB和8.5×109,每幅圖像的平均檢測時間為0.023 s,為在嵌入式移動平臺進行部署提高有利條件,節約人力資源,提高工作效率。根據田間實際環境的自然條件建立谷穗數據集,并使用YoloV3、YoloV3-tiny和YoloV5-shufflenetV2經典的目標檢測模型進行測試對比,本研究的改進模型在保證模型輕量化的條件下,保持了較好的檢測性能,保證了實時檢測的可行性。對谷穗生長狀況的檢測和成熟后的收獲具有重要的影響。