郝王麗,尉培巖,韓 猛,張 麗,席瑞澤
(山西農(nóng)業(yè)大學(xué)軟件學(xué)院,山西 太谷 030801)
小麥(Triticum aestivumL.)作為中國第二大糧食作物,近1∕3 的人口以其為主糧。目前,小麥產(chǎn)量預(yù)測(cè)方法有:人工田間判斷預(yù)測(cè)、電容量預(yù)測(cè)[1]、基于年景預(yù)測(cè)[2]、基于遙感圖像預(yù)測(cè)[3]以及氣候和供求關(guān)系分析預(yù)測(cè)[4]等方法。人工田間判斷憑借經(jīng)驗(yàn),不僅準(zhǔn)確率低且人力物力的消耗較大。電容量測(cè)產(chǎn)方法所需的成本較高且測(cè)量小麥密度不高效。遙感技術(shù)基于衛(wèi)星拍攝的圖片樣本,由于拍攝距離遠(yuǎn),只適合處理和分析面積大的田地,預(yù)測(cè)的準(zhǔn)確度較低。而氣候和供求關(guān)系分析預(yù)測(cè)及年景的預(yù)測(cè)方法只適合大范圍的預(yù)測(cè),其估計(jì)值較粗略,對(duì)于田間精細(xì)的產(chǎn)量估計(jì)和育種則不適用。
近年來,深度學(xué)習(xí)(Deep Learning)在許多領(lǐng)域取得了顯著的成果[5],如計(jì)算機(jī)視覺、自然語言處理、語音識(shí)別和語義分析等領(lǐng)域[6]。聚焦計(jì)算機(jī)視覺領(lǐng)域中的目標(biāo)檢測(cè),Girshick 等[7]提出 R-CNN 目標(biāo)檢測(cè)模型,該模型受滑動(dòng)窗口思路啟發(fā),采用基于區(qū)域的識(shí)別方案,檢測(cè)性能較好,但R-CNN 算法復(fù)雜度高且耗時(shí)較長。研究者們提出了一系列基于候選框區(qū)域的改進(jìn)方案,如 SPP-net[8](聚焦解決剪裁方法可能出現(xiàn)問題,對(duì)不管是否經(jīng)過剪裁的圖像提取統(tǒng)一維度的特征)、Fast R-CNN[9](聚焦解決候選框重復(fù)計(jì)算的問題)、Faster R-CNN[10](使用RPN 替代選擇性搜索),R-FCN[11](在網(wǎng)絡(luò)最后用卷積層代替全連接層)。另一條網(wǎng)絡(luò)改進(jìn)路線是基于回歸的方法,包括YOLO[12](候選框確定采用直接回歸的方法)、SSD[13](在分類和多尺度特征映射 2 個(gè)方面對(duì)YOLO 進(jìn)行改進(jìn))、YOLOv2[14](在 YOLO 基礎(chǔ)上從性能和速率方面對(duì)其進(jìn)行了改進(jìn))、YOLOv3[15](在網(wǎng)絡(luò)結(jié)構(gòu),類別預(yù)測(cè)及多尺度3 個(gè)方面對(duì)YOLOv2 進(jìn)行改進(jìn))算法等。這些基于回歸方法跟上述基于候選框區(qū)域方法相比速度更快。其中,YOLOv3 檢測(cè)算法性能良好,速度高效且對(duì)小目標(biāo)物體檢測(cè)更有效。
因此,本研究采用基于YOLOv3 的神經(jīng)網(wǎng)絡(luò)進(jìn)行特定標(biāo)注框內(nèi)小麥麥穗進(jìn)行識(shí)別和檢測(cè)分析,旨在高效、準(zhǔn)確地實(shí)現(xiàn)小麥麥穗檢測(cè)以便助力小麥產(chǎn)量估計(jì)。
YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,主要包括特征提取和多尺度檢測(cè) 2 個(gè)模塊[16]。YOLOv3 的特征提取采用的是 Darknet-53[16](53 特指53 層),該結(jié)構(gòu)可保留原圖大部分信息,同時(shí)又能提取目標(biāo)的大部分特征。此外,Darknet-53 受殘差網(wǎng)絡(luò)(Resnet)設(shè)計(jì)思想的啟發(fā),將殘差模塊集成到網(wǎng)絡(luò)中。該設(shè)計(jì)可有效緩解深層網(wǎng)絡(luò)的梯度彌散后梯度爆炸問題以便提升檢測(cè)性能,每個(gè)殘差模塊由2 個(gè)卷積層和1 個(gè)shortcut 連接。多尺度檢測(cè)模塊包括3 個(gè)尺度的檢測(cè)流,具體包括13×13、26×26 和52×52 檢測(cè)流,可實(shí)現(xiàn)多尺度圖像的檢測(cè),尤其是可提高小目標(biāo)檢測(cè)的精確度。對(duì)于輸出層的Logistic,其主要采用sigmoid函數(shù),該函數(shù)可把值約束在區(qū)間(0,1)內(nèi)。若某一邊界框類別置信度經(jīng)過sigmoid 函數(shù)后的值大于0.5,則表示該邊界框內(nèi)的目標(biāo)屬于該類[17]。
小麥麥穗檢測(cè)任務(wù)所涉及數(shù)據(jù)集中的麥穗對(duì)象較小,傳統(tǒng)的目標(biāo)檢測(cè)方法對(duì)此類物體檢測(cè)效果較差。YOLOv3 中多尺度模塊可實(shí)現(xiàn)對(duì)麥穗的有效檢測(cè),同時(shí)YOLOv3 的Darknet-53 因?yàn)槠渖顚拥慕Y(jié)構(gòu)可獲得更好的檢測(cè)性能。采用YOLOv3 網(wǎng)絡(luò)實(shí)現(xiàn)小麥麥穗檢測(cè),隨后基于麥穗檢測(cè)結(jié)果統(tǒng)計(jì)小麥麥穗個(gè)數(shù)。

圖1 YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)
損失函數(shù)的作用是衡量模型預(yù)測(cè)值與真實(shí)值間的誤差,并基于每次計(jì)算出來的誤差值來更新模型。YOLOv3 的損失函數(shù)旨在衡量預(yù)測(cè)框與真實(shí)框間的差距,并通過訓(xùn)練不斷減小其誤差值。YOLOv3 的損失函數(shù)定義[7]如下:

其中,Lbox代表預(yù)測(cè)框的坐標(biāo)及長寬與對(duì)應(yīng)的真實(shí)框坐標(biāo)及長寬間的誤差,Lcon代表預(yù)測(cè)區(qū)域置信度誤差,Lcls代表物體的分類誤差[16]。
2.1.1 數(shù)據(jù)集采集及構(gòu)成 為實(shí)現(xiàn)有效的小麥麥穗檢測(cè),構(gòu)建了1 個(gè)新的數(shù)據(jù)集。圖像數(shù)據(jù)集使用實(shí)地拍攝的有白色框圈出的特定區(qū)域小麥圖片作為識(shí)別小麥麥穗的數(shù)據(jù)樣本。數(shù)據(jù)集共包含3 種小麥品種,總共1 527張圖片。其中,訓(xùn)練集1 000張、測(cè)試集527 張。采集圖像存儲(chǔ)格式為JPG,分辨率為4 608×2 592。采集的部分原始小麥圖像如圖2 所示。
2.1.2 數(shù)據(jù)集標(biāo)注 檢測(cè)任務(wù)數(shù)據(jù)集中圖片的目標(biāo)區(qū)域需要有標(biāo)注框,如圖3中包含麥穗的綠色頂點(diǎn)橘紅色邊緣的標(biāo)注框。新建數(shù)據(jù)集的標(biāo)注采用labelImg軟件,具體對(duì)小麥圖片白色框框住的特定區(qū)域內(nèi)的麥穗進(jìn)行標(biāo)注。labelImg 對(duì)某一小麥圖像標(biāo)注完成后,會(huì)生成與之對(duì)應(yīng)的xml文件。標(biāo)注后的3 種小麥如圖3 所示。
在所生成的xml 文件中,所有信息都存儲(chǔ)在<annotation>標(biāo)簽中,該文件中包含圖片的大小、標(biāo)注框名稱以及目標(biāo)邊框位置信息等。<o(jì)bject>標(biāo)簽的個(gè)數(shù)代表了標(biāo)注框的個(gè)數(shù),目標(biāo)邊框位置信息通過邊框的左上角和右下角兩點(diǎn)在原圖中的坐標(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。所有試驗(yàn)均基于tensorflow 框架完成。模型的訓(xùn)練參數(shù)設(shè)置如下:batchsize為2,動(dòng)量值為0.9,學(xué)習(xí)率為0.000 1,訓(xùn)練迭代次數(shù)為100 000。
采用網(wǎng)絡(luò)模型對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練,基于訓(xùn)練好的模型,測(cè)試集的平均精度mAP 值為67.81%,性能良好,與其他網(wǎng)絡(luò)的對(duì)比結(jié)果如表1 所示。測(cè)試集的檢測(cè)結(jié)果示例如圖4 所示。為進(jìn)一步驗(yàn)證模型的檢測(cè)效果,基于檢測(cè)結(jié)果統(tǒng)計(jì)了特定區(qū)域中小麥麥穗個(gè)數(shù),并計(jì)算麥穗計(jì)數(shù)準(zhǔn)確率。麥穗計(jì)數(shù)準(zhǔn)確率=預(yù)測(cè)小麥個(gè)數(shù)∕實(shí)際小麥個(gè)數(shù)×100%。

表1 不同檢測(cè)框架的麥穗檢測(cè)及麥穗計(jì)數(shù)準(zhǔn)確率
試驗(yàn)結(jié)果表明,YOLOv3 麥穗計(jì)數(shù)準(zhǔn)確率是93%,麥穗個(gè)數(shù)統(tǒng)計(jì)效果理想,跟其他網(wǎng)絡(luò)準(zhǔn)確率對(duì)比結(jié)果如表1 所示。

圖4 小麥麥穗檢測(cè)結(jié)果
基于YOLOv3 網(wǎng)絡(luò),本研究獲得了比Faster RCNN[10]、YOLOv2[14]更好的小麥麥穗檢測(cè)及麥穗個(gè)數(shù)計(jì)數(shù)結(jié)果。YOLOv3 網(wǎng)絡(luò)的層數(shù)更深,可以提取到更好的特征。同時(shí),YOLOv3 是基于多尺度預(yù)測(cè)模塊,可將多尺度特征間的互補(bǔ)信息充分挖掘出來,有利于不同尺度物體的檢測(cè),即不同尺寸小麥麥穗都可更有效地檢測(cè)出來。
在麥穗計(jì)數(shù)試驗(yàn)中,部分麥穗統(tǒng)計(jì)失敗的原因是在對(duì)特定框小麥檢測(cè)應(yīng)用中,存在小麥遮擋、重疊以及特定標(biāo)注框內(nèi)小麥越界到框外、框外小麥進(jìn)入標(biāo)注框內(nèi),導(dǎo)致真實(shí)小麥麥穗數(shù)和預(yù)測(cè)小麥麥穗數(shù)不一致。
本研究提出了一種基于YOLOv3 網(wǎng)絡(luò)的小麥麥穗檢測(cè)方法,在3 種小麥品種上達(dá)到了比較理想的麥穗檢測(cè)效果,同時(shí)實(shí)現(xiàn)了準(zhǔn)確的麥穗數(shù)目統(tǒng)計(jì)。此外,構(gòu)建了1 個(gè)新的麥穗檢測(cè)數(shù)據(jù)集,為小麥產(chǎn)量估計(jì)和育種提供了可靠的研究基礎(chǔ),下一步將繼續(xù)聚焦如何構(gòu)建更有效的麥穗檢測(cè)網(wǎng)絡(luò)。