彭 祺,屠禮芬,程瑞敏,吳 濤
(湖北工程學(xué)院 物理與電子信息工程學(xué)院,湖北 孝感 432000)
精確、實(shí)時(shí)地獲取農(nóng)田的各項(xiàng)信息和農(nóng)作物的生長(zhǎng)動(dòng)態(tài),是實(shí)現(xiàn)精準(zhǔn)農(nóng)業(yè)的前提[1-2]。無(wú)人機(jī)遙感技術(shù),是一種綜合應(yīng)用遙感、空間定位、無(wú)人駕駛飛行、遙測(cè)等技術(shù)[3],可以無(wú)接觸獲取農(nóng)田空間信息,已經(jīng)在精準(zhǔn)農(nóng)業(yè)領(lǐng)域?qū)崿F(xiàn)了小規(guī)模實(shí)際應(yīng)用。但無(wú)人機(jī)的工作主要在一個(gè)較大的范圍,在小范圍的精細(xì)化操作方面還無(wú)法代替農(nóng)民的工作。以圖像領(lǐng)域?yàn)槔?,無(wú)人機(jī)在圖像大范圍采集方面具有先天優(yōu)勢(shì),相關(guān)算法對(duì)圖像中大物體的識(shí)別,如行人、汽車、動(dòng)物等均取得較好的效果,但對(duì)于圖像中的小物體識(shí)別,如農(nóng)田中的稻穗,因?yàn)槟繕?biāo)尺寸較小,采用無(wú)人機(jī)進(jìn)行檢測(cè)的方法很少。稻穗的數(shù)量與水稻產(chǎn)量直接相關(guān),其表型特征在水稻育種研究中,是十分重要的量化指標(biāo),主要包括:一次枝梗的長(zhǎng)度、籽粒數(shù)和結(jié)實(shí)率,每穗籽粒數(shù),稻穗骨架結(jié)構(gòu)等,因此,實(shí)時(shí)準(zhǔn)確的農(nóng)田稻穗識(shí)別是很重要的。
深度學(xué)習(xí)技術(shù)在目標(biāo)檢測(cè)和分類領(lǐng)域,表現(xiàn)出比傳統(tǒng)圖像分析方法更為優(yōu)秀的效果[4-8],目前,常用的基于深度學(xué)習(xí)的目標(biāo)檢測(cè)方法主要分為兩類:一類是基于回歸的一階檢測(cè)器,應(yīng)用較為廣泛的有YOLO、SSD (Solid-state Drive)和FPN (Feature Pyramid Networks)等[9-11];另一類是基于區(qū)域建議的二階檢測(cè)器,應(yīng)用較為廣泛的有R-CNN (Regions with CNN feature)、SPP-Net (Spatial Pyramid Pooling Networks)、Fast R-CNN和Faster R-CNN等[12-15]。一階檢測(cè)器的優(yōu)點(diǎn)是測(cè)速快,缺點(diǎn)是在模型訓(xùn)練時(shí)可能出現(xiàn)前景和背景類別不均衡[16],難以提取小目標(biāo)特征信息,從而導(dǎo)致部分目標(biāo)檢測(cè)效果不佳[17]。二階檢測(cè)器的檢測(cè)精度相對(duì)較高,但由于其使用到了候選區(qū)域生成方法和相對(duì)復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),所以運(yùn)算量大,導(dǎo)致檢測(cè)速度較慢,無(wú)法達(dá)到實(shí)時(shí)檢測(cè)的目的[18]。
為了實(shí)現(xiàn)準(zhǔn)確實(shí)時(shí)的農(nóng)田稻穗識(shí)別,本文利用深度學(xué)習(xí)的目標(biāo)檢測(cè)YOLOv3算法訓(xùn)練圖像樣本數(shù)據(jù),構(gòu)建性能較好的模型,從而實(shí)現(xiàn)對(duì)稻穗的識(shí)別。YOLOv3算法所需的大量圖像原始數(shù)據(jù)由無(wú)人機(jī)在農(nóng)田實(shí)時(shí)實(shí)地采集,通過(guò)建立圖像數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)、組織管理圖像數(shù)據(jù),編寫了一套擁有自主知識(shí)產(chǎn)權(quán)的標(biāo)注軟件來(lái)對(duì)圖像進(jìn)行預(yù)處理和制作訓(xùn)練樣本。
為了獲取標(biāo)注的樣本圖像,首先進(jìn)行圖像采集,無(wú)人機(jī)采用遙控器來(lái)操縱,通過(guò)地面遙控器定位對(duì)其進(jìn)行實(shí)時(shí)控制,旋翼飛行時(shí)產(chǎn)生的向下氣流有助于壓倒水稻葉片,從而能更好地拍攝稻穗,同時(shí)遠(yuǎn)距離操控不會(huì)對(duì)水稻的生長(zhǎng)產(chǎn)生影響,后期可對(duì)圖片、視頻進(jìn)行圖像處理,得到有效的稻穗圖像。
大疆經(jīng)緯M100無(wú)人機(jī)對(duì)農(nóng)田進(jìn)行俯拍采集圖像。DJI Matrice 100是一款功能強(qiáng)大,可靈活拓展的四旋翼無(wú)人機(jī),開放的SDK提供了靈活易用的接口,外部設(shè)備可以靈活接入,對(duì)無(wú)人機(jī)進(jìn)行控制與監(jiān)控,實(shí)現(xiàn)硬件集成。其抗風(fēng)性能良好,飛行時(shí)俯拍十分穩(wěn)定,在無(wú)人機(jī)高速飛行的狀態(tài)下,配合云臺(tái)相機(jī)減震系統(tǒng),在空曠農(nóng)田有風(fēng)環(huán)境下,依然能采集到清晰的圖像。經(jīng)過(guò)多次實(shí)驗(yàn)發(fā)現(xiàn),該平臺(tái)能采集到清晰可用的農(nóng)田稻穗圖像數(shù)據(jù)。本系統(tǒng)利用四旋翼機(jī)M100搭載云臺(tái)相機(jī),可進(jìn)行靈活的視頻監(jiān)控任務(wù)。無(wú)人機(jī)模型圖如圖1所示。
圖1 無(wú)人機(jī)模型圖
為了將研究成果更快地應(yīng)用于生產(chǎn)實(shí)踐,對(duì)采集到的農(nóng)田圖像構(gòu)建了圖像數(shù)據(jù)庫(kù)進(jìn)行組織管理,配合大疆經(jīng)緯M100對(duì)農(nóng)田中水稻圖像、視頻進(jìn)行實(shí)驗(yàn)數(shù)據(jù)采集,對(duì)視頻每幀進(jìn)行圖像預(yù)處理得到實(shí)驗(yàn)圖片,圖像預(yù)處理的比例切割圖如圖2所示。
圖2 比例切割圖
試驗(yàn)數(shù)據(jù)的預(yù)處理過(guò)程,使用了Adobe公司的Premiere和Photoshop軟件,分別用于從視頻中導(dǎo)出圖像數(shù)據(jù)和切割圖像數(shù)據(jù)。篩選過(guò)程則是在導(dǎo)出圖片數(shù)據(jù)后將無(wú)用的模糊圖片進(jìn)行清理。
由于水稻的稻穗圖像與其他圖像相比,背景更加復(fù)雜,常規(guī)樣本標(biāo)注軟件因沒有預(yù)處理功能,制作出來(lái)的樣本圖像訓(xùn)練效果不佳。為了能夠準(zhǔn)確地識(shí)別稻穗,對(duì)水稻稻穗圖像提取HSV色彩特征進(jìn)行掩模處理,將復(fù)雜背景剔除,保留單純的稻穗目標(biāo)圖像,在此基礎(chǔ)上進(jìn)行標(biāo)注,擴(kuò)大樣本數(shù)據(jù),提高基于YOLOv3的深度學(xué)習(xí)算法樣本訓(xùn)練效果。軟件運(yùn)行流程圖如圖3所示。
圖3 軟件運(yùn)行流程圖
該軟件對(duì)樣本圖像進(jìn)行HSV色彩模型轉(zhuǎn)換,提取H通道特征,以此制作掩模,濾除雜亂背景干擾,保存為新的樣本圖像,增擴(kuò)樣本數(shù)據(jù);對(duì)已完成樣本制作的圖像標(biāo)簽信息進(jìn)行增加、刪除修改;標(biāo)簽信息保存為文本文檔,也能轉(zhuǎn)化為標(biāo)準(zhǔn)XML格式;展示樣本標(biāo)注范例,幫助指導(dǎo)非專業(yè)人員進(jìn)行圖像樣本標(biāo)注工作。
YOLO的loss函數(shù)采用均方和誤差函數(shù)計(jì)算。一共由3部分構(gòu)成,即分類誤差、IOU誤差和坐標(biāo)誤差,loss函數(shù)用式(1)計(jì)算。
loss=∑(coordErr+iouErr+clsErr)
(1)
Yolo在訓(xùn)練過(guò)程中l(wèi)oss函數(shù)用式(2)計(jì)算。
(2)
首先是對(duì)預(yù)測(cè)的中心坐標(biāo)做損失,再對(duì)預(yù)測(cè)邊界框的寬高做損失,然后是對(duì)預(yù)測(cè)的類別做損失,最后是對(duì)預(yù)測(cè)的置信度做損失。
Yolo v3的邊界框預(yù)測(cè)用式(3)計(jì)算。
bx=σ(tx)+cx
by=σ(ty)+cy
bw=pwetw
bh=pheth
(3)
網(wǎng)絡(luò)實(shí)際的預(yù)測(cè)值為tx、ty、tw、th,根據(jù)式(3)分別計(jì)算獲得預(yù)測(cè)框的中心點(diǎn)坐標(biāo)和寬高坐標(biāo)bx、by、bw、bh。其中,cx、cy為當(dāng)前目標(biāo)框相對(duì)于左上角目標(biāo)框的偏移量。σ()是logistic函數(shù),作用是將坐標(biāo)進(jìn)行歸一化處理,使結(jié)果分布在0-1之間。bx、by為采用歸一化處理后的相對(duì)于目標(biāo)框的cell值。pw、ph為與真實(shí)框重合度最大的anchor框的寬和高。實(shí)際操作時(shí),為了將bw、bh也歸一化到0-1之間,pw、ph采用anchor寬、高與featuremap寬、高的比值。獲得的bw、bh為歸一化處理后的值。
整個(gè)YOLO v3架構(gòu)中沒有池化層和全連接層。在進(jìn)行前向傳播時(shí),張量的尺寸變換,通過(guò)改變卷積核的步長(zhǎng)來(lái)得到。在YOLO v2中,要經(jīng)歷5次縮小處理,那么原輸入圖像的尺寸會(huì)變成實(shí)際尺寸的1/25??梢詫?duì)比YOLO v2和YOLO v3的backbone,如圖4所示。
圖4 YOLO v2和YOLO v3的backbone對(duì)比圖
YOLO v3采用邏輯回歸的方法,來(lái)獲得每個(gè)邊界框分?jǐn)?shù)值,通過(guò)計(jì)算真實(shí)框與先驗(yàn)邊界框的重疊度來(lái)預(yù)測(cè)結(jié)果,當(dāng)該重合度得分最高時(shí),認(rèn)為是最佳框。完全重合時(shí)得分為1,但實(shí)際操作中發(fā)現(xiàn),邊界框通常不能達(dá)到最佳,當(dāng)與真實(shí)對(duì)象的重疊超過(guò)某個(gè)閾值(這里是0.5),那么就忽略這次預(yù)測(cè)。YOLO v3為每個(gè)真實(shí)對(duì)象分配唯一一個(gè)邊界框,當(dāng)真實(shí)對(duì)象與先驗(yàn)邊界框不吻合時(shí),則不生成類別預(yù)測(cè)損失,只生成目標(biāo)預(yù)測(cè)損失。另外,本次稻穗識(shí)別模型使用logistic函數(shù)作為分類器,損失函數(shù)采用binary cross-entropy。
制作訓(xùn)練樣本后,訓(xùn)練實(shí)現(xiàn)30次迭代得到新的權(quán)值文件,運(yùn)行新的權(quán)重,輸入圖片名稱即可對(duì)圖片進(jìn)行識(shí)別,實(shí)驗(yàn)前期效果見圖5,識(shí)別效果如圖6所示。
圖5 實(shí)驗(yàn)前期效果圖
圖6 識(shí)別效果圖
該方法可實(shí)現(xiàn)對(duì)稻穗的識(shí)別,由圖5和圖6可見,相比實(shí)驗(yàn)前期有很大的提高,標(biāo)注的標(biāo)準(zhǔn)逐漸統(tǒng)一,識(shí)別效果圖精度有所提高,置信度也有所提高,對(duì)于VOC自己的樣本,前景和背景區(qū)分度較大,還能成功分割,而農(nóng)田中的稻穗和背景區(qū)分度小、雜亂、難以分割。我們使用無(wú)人機(jī)對(duì)稻田圖像進(jìn)行俯拍,再對(duì)圖像進(jìn)行分割篩選、標(biāo)注,識(shí)別的精確度有較大的提高。
近年來(lái),通過(guò)圖像處理對(duì)葉片進(jìn)行分類識(shí)別的方法有很多,但應(yīng)用于農(nóng)田復(fù)雜環(huán)境下的目標(biāo)識(shí)別方法是較少的,為保證實(shí)驗(yàn)的嚴(yán)謹(jǐn)性,研究中農(nóng)田圖像均由本團(tuán)隊(duì)在農(nóng)田中實(shí)地取得,后期進(jìn)行圖像處理得到19000余張圖片,其中9000張作為實(shí)驗(yàn)圖像數(shù)據(jù),剩余部分取樣作為驗(yàn)證圖像數(shù)據(jù),驗(yàn)證識(shí)別結(jié)果時(shí)需要每張水稻圖像具有良好的處理效果,以保證數(shù)據(jù)的真實(shí)性。實(shí)際應(yīng)用過(guò)程中,運(yùn)行程序后只需要輸入圖像相應(yīng)名稱即可對(duì)圖像中的稻穗進(jìn)行識(shí)別,YOLO v3算法應(yīng)用于實(shí)際生產(chǎn)中,可以實(shí)時(shí)有效地對(duì)水稻成熟狀況進(jìn)行監(jiān)控,在出現(xiàn)水稻倒伏等狀況時(shí)可采取一定措施進(jìn)行補(bǔ)救,此目標(biāo)識(shí)別技術(shù)也可擴(kuò)展到農(nóng)業(yè)各個(gè)方面的果實(shí)識(shí)別。