郝王麗,尉培巖,韓 猛,張 麗,席瑞澤
(山西農(nóng)業(yè)大學(xué)軟件學(xué)院,山西 太谷 030801)
小麥(Triticum aestivumL.)作為中國第二大糧食作物,近1∕3 的人口以其為主糧。目前,小麥產(chǎn)量預(yù)測方法有:人工田間判斷預(yù)測、電容量預(yù)測[1]、基于年景預(yù)測[2]、基于遙感圖像預(yù)測[3]以及氣候和供求關(guān)系分析預(yù)測[4]等方法。人工田間判斷憑借經(jīng)驗,不僅準(zhǔn)確率低且人力物力的消耗較大。電容量測產(chǎn)方法所需的成本較高且測量小麥密度不高效。遙感技術(shù)基于衛(wèi)星拍攝的圖片樣本,由于拍攝距離遠(yuǎn),只適合處理和分析面積大的田地,預(yù)測的準(zhǔn)確度較低。而氣候和供求關(guān)系分析預(yù)測及年景的預(yù)測方法只適合大范圍的預(yù)測,其估計值較粗略,對于田間精細(xì)的產(chǎn)量估計和育種則不適用。
近年來,深度學(xué)習(xí)(Deep Learning)在許多領(lǐng)域取得了顯著的成果[5],如計算機視覺、自然語言處理、語音識別和語義分析等領(lǐng)域[6]。聚焦計算機視覺領(lǐng)域中的目標(biāo)檢測,Girshick 等[7]提出 R-CNN 目標(biāo)檢測模型,該模型受滑動窗口思路啟發(fā),采用基于區(qū)域的識別方案,檢測性能較好,但R-CNN 算法復(fù)雜度高且耗時較長。研究者們提出了一系列基于候選框區(qū)域的改進(jìn)方案,如 SPP-net[8](聚焦解決剪裁方法可能出現(xiàn)問題,對不管是否經(jīng)過剪裁的圖像提取統(tǒng)一維度的特征)、Fast R-CNN[9](聚焦解決候選框重復(fù)計算的問題)、Faster R-CNN[10](使用RPN 替代選擇性搜索),R-FCN[11](在網(wǎng)絡(luò)最后用卷積層代替全連接層)。另一條網(wǎng)絡(luò)改進(jìn)路線是基于回歸的方法,包括YOLO[12](候選框確定采用直接回歸的方法)、SSD[13](在分類和多尺度特征映射 2 個方面對YOLO 進(jìn)行改進(jìn))、YOLOv2[14](在 YOLO 基礎(chǔ)上從性能和速率方面對其進(jìn)行了改進(jìn))、YOLOv3[15](在網(wǎng)絡(luò)結(jié)構(gòu),類別預(yù)測及多尺度3 個方面對YOLOv2 進(jìn)行改進(jìn))算法等。這些基于回歸方法跟上述基于候選框區(qū)域方法相比速度更快。其中,YOLOv3 檢測算法性能良好,速度高效且對小目標(biāo)物體檢測更有效。
因此,本研究采用基于YOLOv3 的神經(jīng)網(wǎng)絡(luò)進(jìn)行特定標(biāo)注框內(nèi)小麥麥穗進(jìn)行識別和檢測分析,旨在高效、準(zhǔn)確地實現(xiàn)小麥麥穗檢測以便助力小麥產(chǎn)量估計。
YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,主要包括特征提取和多尺度檢測 2 個模塊[16]。YOLOv3 的特征提取采用的是 Darknet-53[16](53 特指53 層),該結(jié)構(gòu)可保留原圖大部分信息,同時又能提取目標(biāo)的大部分特征。此外,Darknet-53 受殘差網(wǎng)絡(luò)(Resnet)設(shè)計思想的啟發(fā),將殘差模塊集成到網(wǎng)絡(luò)中。該設(shè)計可有效緩解深層網(wǎng)絡(luò)的梯度彌散后梯度爆炸問題以便提升檢測性能,每個殘差模塊由2 個卷積層和1 個shortcut 連接。多尺度檢測模塊包括3 個尺度的檢測流,具體包括13×13、26×26 和52×52 檢測流,可實現(xiàn)多尺度圖像的檢測,尤其是可提高小目標(biāo)檢測的精確度。對于輸出層的Logistic,其主要采用sigmoid函數(shù),該函數(shù)可把值約束在區(qū)間(0,1)內(nèi)。若某一邊界框類別置信度經(jīng)過sigmoid 函數(shù)后的值大于0.5,則表示該邊界框內(nèi)的目標(biāo)屬于該類[17]。
小麥麥穗檢測任務(wù)所涉及數(shù)據(jù)集中的麥穗對象較小,傳統(tǒng)的目標(biāo)檢測方法對此類物體檢測效果較差。YOLOv3 中多尺度模塊可實現(xiàn)對麥穗的有效檢測,同時YOLOv3 的Darknet-53 因為其深層的結(jié)構(gòu)可獲得更好的檢測性能。采用YOLOv3 網(wǎng)絡(luò)實現(xiàn)小麥麥穗檢測,隨后基于麥穗檢測結(jié)果統(tǒng)計小麥麥穗個數(shù)。
圖1 YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)
損失函數(shù)的作用是衡量模型預(yù)測值與真實值間的誤差,并基于每次計算出來的誤差值來更新模型。YOLOv3 的損失函數(shù)旨在衡量預(yù)測框與真實框間的差距,并通過訓(xùn)練不斷減小其誤差值。YOLOv3 的損失函數(shù)定義[7]如下:
其中,Lbox代表預(yù)測框的坐標(biāo)及長寬與對應(yīng)的真實框坐標(biāo)及長寬間的誤差,Lcon代表預(yù)測區(qū)域置信度誤差,Lcls代表物體的分類誤差[16]。
2.1.1 數(shù)據(jù)集采集及構(gòu)成 為實現(xiàn)有效的小麥麥穗檢測,構(gòu)建了1 個新的數(shù)據(jù)集。圖像數(shù)據(jù)集使用實地拍攝的有白色框圈出的特定區(qū)域小麥圖片作為識別小麥麥穗的數(shù)據(jù)樣本。數(shù)據(jù)集共包含3 種小麥品種,總共1 527張圖片。其中,訓(xùn)練集1 000張、測試集527 張。采集圖像存儲格式為JPG,分辨率為4 608×2 592。采集的部分原始小麥圖像如圖2 所示。
2.1.2 數(shù)據(jù)集標(biāo)注 檢測任務(wù)數(shù)據(jù)集中圖片的目標(biāo)區(qū)域需要有標(biāo)注框,如圖3中包含麥穗的綠色頂點橘紅色邊緣的標(biāo)注框。新建數(shù)據(jù)集的標(biāo)注采用labelImg軟件,具體對小麥圖片白色框框住的特定區(qū)域內(nèi)的麥穗進(jìn)行標(biāo)注。labelImg 對某一小麥圖像標(biāo)注完成后,會生成與之對應(yīng)的xml文件。標(biāo)注后的3 種小麥如圖3 所示。
在所生成的xml 文件中,所有信息都存儲在<annotation>標(biāo)簽中,該文件中包含圖片的大小、標(biāo)注框名稱以及目標(biāo)邊框位置信息等。<o(jì)bject>標(biāo)簽的個數(shù)代表了標(biāo)注框的個數(shù),目標(biāo)邊框位置信息通過邊框的左上角和右下角兩點在原圖中的坐標(biāo)來標(biāo)記,分別用(xmin,ymin)和(xmax,ymax)表示[18]。隨后將標(biāo)記圖片生成的xml 文件轉(zhuǎn)換為txt 文件,txt 文件中包括圖像保存路徑(image_path),標(biāo)記框左上角坐標(biāo)(x_min,y_min),標(biāo) 記 框 右 下 角 坐 標(biāo)(x_max,y_max)信息。
圖2 原始小麥圖像
圖3 小麥麥穗標(biāo)注圖
采用的硬件設(shè)備配置為:顯卡是GTX TITANXP 12G,處理器是I77800 X。所有試驗均基于tensorflow 框架完成。模型的訓(xùn)練參數(shù)設(shè)置如下:batchsize為2,動量值為0.9,學(xué)習(xí)率為0.000 1,訓(xùn)練迭代次數(shù)為100 000。
采用網(wǎng)絡(luò)模型對數(shù)據(jù)集進(jìn)行訓(xùn)練,基于訓(xùn)練好的模型,測試集的平均精度mAP 值為67.81%,性能良好,與其他網(wǎng)絡(luò)的對比結(jié)果如表1 所示。測試集的檢測結(jié)果示例如圖4 所示。為進(jìn)一步驗證模型的檢測效果,基于檢測結(jié)果統(tǒng)計了特定區(qū)域中小麥麥穗個數(shù),并計算麥穗計數(shù)準(zhǔn)確率。麥穗計數(shù)準(zhǔn)確率=預(yù)測小麥個數(shù)∕實際小麥個數(shù)×100%。
表1 不同檢測框架的麥穗檢測及麥穗計數(shù)準(zhǔn)確率
試驗結(jié)果表明,YOLOv3 麥穗計數(shù)準(zhǔn)確率是93%,麥穗個數(shù)統(tǒng)計效果理想,跟其他網(wǎng)絡(luò)準(zhǔn)確率對比結(jié)果如表1 所示。
圖4 小麥麥穗檢測結(jié)果
基于YOLOv3 網(wǎng)絡(luò),本研究獲得了比Faster RCNN[10]、YOLOv2[14]更好的小麥麥穗檢測及麥穗個數(shù)計數(shù)結(jié)果。YOLOv3 網(wǎng)絡(luò)的層數(shù)更深,可以提取到更好的特征。同時,YOLOv3 是基于多尺度預(yù)測模塊,可將多尺度特征間的互補信息充分挖掘出來,有利于不同尺度物體的檢測,即不同尺寸小麥麥穗都可更有效地檢測出來。
在麥穗計數(shù)試驗中,部分麥穗統(tǒng)計失敗的原因是在對特定框小麥檢測應(yīng)用中,存在小麥遮擋、重疊以及特定標(biāo)注框內(nèi)小麥越界到框外、框外小麥進(jìn)入標(biāo)注框內(nèi),導(dǎo)致真實小麥麥穗數(shù)和預(yù)測小麥麥穗數(shù)不一致。
本研究提出了一種基于YOLOv3 網(wǎng)絡(luò)的小麥麥穗檢測方法,在3 種小麥品種上達(dá)到了比較理想的麥穗檢測效果,同時實現(xiàn)了準(zhǔn)確的麥穗數(shù)目統(tǒng)計。此外,構(gòu)建了1 個新的麥穗檢測數(shù)據(jù)集,為小麥產(chǎn)量估計和育種提供了可靠的研究基礎(chǔ),下一步將繼續(xù)聚焦如何構(gòu)建更有效的麥穗檢測網(wǎng)絡(luò)。