肖德琴 黃一桂 張遠(yuǎn)琴 劉又夫 林思聰 楊文濤
(華南農(nóng)業(yè)大學(xué)數(shù)學(xué)與信息學(xué)院, 廣州 510642)
廣東省四季溫度變化不大、降雨充沛,氣候條件非常適合蔬菜害蟲(chóng)的生長(zhǎng)繁殖,這導(dǎo)致蔬菜在生長(zhǎng)過(guò)程中極易受到害蟲(chóng)的危害,蔬菜害蟲(chóng)的爆發(fā)降低了蔬菜產(chǎn)量從而造成巨大的經(jīng)濟(jì)損失[1-2]。對(duì)害蟲(chóng)進(jìn)行預(yù)測(cè)是防治害蟲(chóng)的重要前提。目前,我國(guó)蔬菜害蟲(chóng)預(yù)測(cè)方法主要利用人工對(duì)黃板上的害蟲(chóng)進(jìn)行分類和計(jì)數(shù),但該方法存在缺乏客觀性、效率低下、誤差大等問(wèn)題。因此,亟需一種快速、智能的黃板害蟲(chóng)檢測(cè)方法。
近年來(lái),國(guó)內(nèi)外針對(duì)農(nóng)田害蟲(chóng)圖像檢測(cè)算法已經(jīng)取得顯著成果[3-6]。然而,這些研究均使用傳統(tǒng)圖像檢測(cè)算法,存在對(duì)圖像環(huán)境背景要求較高、擴(kuò)展性不強(qiáng)、數(shù)據(jù)預(yù)處理復(fù)雜以及遷移性低等問(wèn)題,使農(nóng)田害蟲(chóng)圖像檢測(cè)算法無(wú)法大面積應(yīng)用。
近年來(lái),由于Fast R-CNN、Faster R-CNN、YOLO和SSD等深度學(xué)習(xí)算法具有良好的檢測(cè)性能,因此應(yīng)用深度學(xué)習(xí)算法進(jìn)行農(nóng)業(yè)害蟲(chóng)識(shí)別逐漸成為研究熱點(diǎn)[7-9]。已有算法[10-13]對(duì)害蟲(chóng)檢測(cè)精度都很高,但是這些算法均針對(duì)特定群體的害蟲(chóng)而設(shè)計(jì),并未結(jié)合體積小、數(shù)量多和分布不均勻的特點(diǎn)對(duì)黃板誘捕的蔬菜害蟲(chóng)進(jìn)行設(shè)計(jì)。同時(shí),黃板害蟲(chóng)圖像是像素較大的手機(jī)圖像,而上述算法處理的是其他設(shè)備拍攝的圖像,難以遷移使用。目前,在農(nóng)業(yè)病害識(shí)別系統(tǒng)[14-22]中缺乏關(guān)于黃板害蟲(chóng)檢測(cè)的研究,而黃板誘捕害蟲(chóng)的應(yīng)用卻非常廣泛。手機(jī)是一種可普遍應(yīng)用的移動(dòng)智能設(shè)備,是需要一種基于黃板誘捕害蟲(chóng)的便攜式智能識(shí)別算法,從而實(shí)現(xiàn)利用手機(jī)對(duì)害蟲(chóng)進(jìn)行檢測(cè)和識(shí)別。
本文在用高清攝像機(jī)和傳統(tǒng)圖像處理技術(shù)對(duì)黃板害蟲(chóng)研究的基礎(chǔ)上[23],利用現(xiàn)有的深度學(xué)習(xí)技術(shù)[24-27],提出一種基于改進(jìn)Faster R-CNN[28]的田間黃板害蟲(chóng)檢測(cè)算法(Mobile terminal pest Faster R-CNN,MPF R-CNN),并在移動(dòng)端中進(jìn)行測(cè)試與應(yīng)用。
本實(shí)驗(yàn)圖像采集于廣東省廣州市南沙區(qū)東升農(nóng)場(chǎng),采集設(shè)備為小米7手機(jī)。攝像頭為1 600萬(wàn)像素,拍攝距離為35 cm,拍攝角度為0°~10°之間,等效焦距為35 mm。圖像尺寸為3 120像素×4 128像素,圖像存儲(chǔ)格式為JPG,圖像采集時(shí)間為2017年6月1日到2017年9月30日,拍攝時(shí)間段為08:00—09:00。為了讓實(shí)驗(yàn)更貼近真實(shí)的農(nóng)場(chǎng)環(huán)境,所有的圖像都是在自然條件下拍攝的,并且每月1日使用人工對(duì)黃板上粘連的害蟲(chóng)進(jìn)行清理。本次實(shí)驗(yàn)一共制作了20張黃板,所有黃板的長(zhǎng)均為35 cm,寬為25 cm。這20張黃板分別固定在東升農(nóng)場(chǎng)面積為1.3 hm2的蔬菜種植土地上,如圖1所示。本次實(shí)驗(yàn)一共采集了2 440幅黃板害蟲(chóng)圖像,其中晴天采集圖像1 708幅,雨天采集圖像732幅。黃板害蟲(chóng)圖像如圖2所示。
黃板圖像中的主要害蟲(chóng)種類為3種,分別是小菜蛾、黃曲條跳甲和煙粉虱。因此本次實(shí)驗(yàn)標(biāo)簽主要分為4類,分別是小菜蛾(YL)、黃曲條跳甲(TJ)、煙粉虱(YL)和其他大型害蟲(chóng)(OT,體長(zhǎng)大于5 mm)。將其他大型害蟲(chóng)歸為一類的主要目的是探究潛在的害蟲(chóng)爆發(fā)可能性,因?yàn)榇笮秃οx(chóng)的遷移能力強(qiáng),在實(shí)際生產(chǎn)中容易出現(xiàn)大型害蟲(chóng)入侵的情況,這樣可以增加算法在實(shí)際應(yīng)用中的抗壓能力。由于黃板圖像中害蟲(chóng)的樣本數(shù)量巨大,發(fā)生害蟲(chóng)黏連導(dǎo)致分不清的情況遠(yuǎn)遠(yuǎn)低于害蟲(chóng)處于獨(dú)立的情況,并且在實(shí)際生產(chǎn)中去掉黏連害蟲(chóng)的數(shù)量對(duì)于整體黃板害蟲(chóng)預(yù)警不產(chǎn)生影響,所以本文對(duì)害蟲(chóng)進(jìn)行標(biāo)注時(shí)只對(duì)獨(dú)立的害蟲(chóng)進(jìn)行標(biāo)注。使用LabelImg對(duì)數(shù)據(jù)進(jìn)行標(biāo)注,標(biāo)注圖像數(shù)量為2 440幅,其中小菜蛾樣本數(shù)量為267 435,黃曲條跳甲樣本數(shù)量為332 861,煙粉虱樣本數(shù)量為938 215,其他大型害蟲(chóng)樣本數(shù)量為100 751。各種害蟲(chóng)采集樣本如圖3所示。
為了提高M(jìn)PF R-CNN害蟲(chóng)檢測(cè)算法的準(zhǔn)確率和檢測(cè)速度,需要對(duì)數(shù)據(jù)集進(jìn)行處理。由于原始圖像尺寸為3 120像素×4 128像素,遠(yuǎn)遠(yuǎn)大于正常深度學(xué)習(xí)訓(xùn)練圖像。如果直接對(duì)該圖像進(jìn)行訓(xùn)練會(huì)因?yàn)閳D像縮放而導(dǎo)致圖像特征丟失,也會(huì)因?yàn)槌叽邕^(guò)大而導(dǎo)致GPU內(nèi)存溢出,因此需要將原來(lái)的圖像裁剪為16份,裁剪后的圖像尺寸為780像素×1 032像素,裁剪后的圖像如圖4a所示。同時(shí),為了讓算法可以更好地識(shí)別復(fù)雜的自然環(huán)境,需要將數(shù)據(jù)集分成晴天和雨天數(shù)據(jù)集,然后將裁剪后的圖像根據(jù)晴天和雨天數(shù)據(jù)集分別按照8∶1∶1的比例隨機(jī)劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集。數(shù)據(jù)集劃分完成后還需要將雨天和晴天對(duì)應(yīng)的訓(xùn)練集、測(cè)試集和驗(yàn)證集分別進(jìn)行混合,使訓(xùn)練集、測(cè)試集和驗(yàn)證集都存在雨天和晴天的數(shù)據(jù)。最后對(duì)訓(xùn)練集圖像進(jìn)行順時(shí)針90°、180°、270°旋轉(zhuǎn),以及水平翻轉(zhuǎn)和Mosaic增廣。Mosaic增廣的思想來(lái)源于CutMix數(shù)據(jù)增強(qiáng)的方式并在YOLOv4模型中應(yīng)用。Mosaic的原理是每次隨機(jī)選取4幅圖像并且隨機(jī)對(duì)圖像進(jìn)行縮放、水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)和色域變化后按照一定的比例對(duì)4幅圖像進(jìn)行截取后拼接出新的訓(xùn)練圖像。因?yàn)辄S板中存在很多不是檢測(cè)目標(biāo)的害蟲(chóng)和雜物作為檢測(cè)背景,它們會(huì)嚴(yán)重影響算法檢測(cè)的準(zhǔn)確率,所以要使用Mosaic增廣豐富檢測(cè)物體的背景,這有利于訓(xùn)練算法對(duì)不同害蟲(chóng)的不同特征之間的權(quán)重分配。Mosaic增廣效果如圖4b所示。
Faster R-CNN是目標(biāo)檢測(cè)領(lǐng)域中的經(jīng)典算法之一。針對(duì)誘捕黃板害蟲(chóng)的識(shí)別和計(jì)數(shù),本文提出的基于Faster R-CNN改進(jìn)的MPF R-CNN害蟲(chóng)檢測(cè)算法結(jié)構(gòu)包括特征提取網(wǎng)絡(luò)、區(qū)域建議網(wǎng)絡(luò)(RPN)和檢測(cè)網(wǎng)絡(luò)3部分,算法結(jié)構(gòu)如圖5所示,其中特征提取網(wǎng)絡(luò)使用了ResNet101+FPN網(wǎng)絡(luò)對(duì)圖像進(jìn)行卷積提取特征, RPN網(wǎng)絡(luò)經(jīng)過(guò)設(shè)計(jì)后使用了多種不同尺寸的錨點(diǎn)(anchors)對(duì)圖像區(qū)域進(jìn)行前景和背景判斷,并進(jìn)行邊框回歸,檢測(cè)網(wǎng)絡(luò)則使用ROIAlign方法對(duì)害蟲(chóng)進(jìn)行檢測(cè)和分類。此外,還設(shè)計(jì)雙損失函數(shù)加速算法的收斂速度。
FPN網(wǎng)絡(luò)是LIN等[29]在2017年提出的,該網(wǎng)絡(luò)通過(guò)對(duì)特征提取網(wǎng)絡(luò)中的每一個(gè)相連特征層的特征圖進(jìn)行疊加連接的方法,解決了小物體特征在多次卷積和池化操作后模糊甚至丟失的情況。因?yàn)镕aster R-CNN原本的特征提取網(wǎng)絡(luò)結(jié)構(gòu)比較單一,難以處理不同害蟲(chóng)之間的體積、紋理和尸體完整度保留性(不同的害蟲(chóng)死亡后身體存在不同部分或部位容易出現(xiàn)脫落或者被風(fēng)吹走情況)等差異問(wèn)題,而具有多層次特征提取能力的FPN網(wǎng)絡(luò)能更好地解決該問(wèn)題。本文以ResNet101[30]為主干網(wǎng)絡(luò)加上FPN網(wǎng)絡(luò)設(shè)計(jì),該網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示,可以分為3個(gè)路線:
(1)自底向上的路線:ResNet101網(wǎng)絡(luò)自底向上卷積,該過(guò)程有{C1,C2,C3,C4,C5}5個(gè)卷積層。
(2)自頂向下的路線:在FPN網(wǎng)絡(luò)中自頂向下對(duì){M4,M3,M2,M1}特征信息進(jìn)行上采樣操作,讓低維度的特征信息更加突出。
(3)橫向連接路線:使用1×1的卷積核對(duì)ResNet101網(wǎng)絡(luò)與FPN網(wǎng)絡(luò)的每一層圖像特征進(jìn)行卷積融合。
ResNet101與FPN網(wǎng)絡(luò)融合之后,需使用卷積核進(jìn)行卷積從而讓混疊效應(yīng)消失。為了保證高維度特征信息不丟失,以及更加突出低維度特征,必須控制實(shí)現(xiàn)高維度的卷積核相對(duì)較小,而低維度的卷積核需相對(duì)較大,并且低維度卷積核需盡量防止多個(gè)目標(biāo)特征信息融合在一起的情況,因此本文分別使用了2×2、2×2、3×3、3×3、5×5共5個(gè)不同卷積核分別對(duì)FPN不同維度的特征進(jìn)行卷積。最后將5種不同尺寸的特征圖像{p1,p2,p3,p4,p5}輸入到RPN網(wǎng)絡(luò),其中p1、p2、p3、p4、p5對(duì)應(yīng)的原圖像像素尺寸為364×524、181×261、89×129、42×64、23×33。
2.2 基于多滑動(dòng)窗口的MPF R-CNN區(qū)域建議網(wǎng)絡(luò)設(shè)計(jì)
區(qū)域建議網(wǎng)絡(luò)(RPN)是一個(gè)全卷積網(wǎng)絡(luò),其過(guò)程是對(duì)特征圖像使用滑動(dòng)窗口產(chǎn)生錨點(diǎn),并對(duì)錨點(diǎn)區(qū)域進(jìn)行前景和背景判斷以及邊框回歸。在本實(shí)驗(yàn)中體積最小的害蟲(chóng)煙粉虱為23像素×25像素到35像素×35像素之間,而體積最大的其他常見(jiàn)大型害蟲(chóng)在90像素×100像素到130像素×140像素之間。為了產(chǎn)生多種不同維度特征和不同尺寸的錨點(diǎn)以覆蓋不同尺寸的害蟲(chóng),本文RPN網(wǎng)絡(luò)滑動(dòng)窗口過(guò)程如圖7所示,在RPN網(wǎng)絡(luò)中設(shè)計(jì)了3種不同的滑動(dòng)窗口:
(1)3×3滑動(dòng)窗口:對(duì){p1,p2,p3,p4,p5} 5種特征圖進(jìn)行全卷積,產(chǎn)生 5種尺寸的錨點(diǎn),這5種錨點(diǎn)對(duì)應(yīng)的尺寸(映射到黃板圖像的尺寸)分別為{30像素×30像素,36像素×36像素,72像素×72像素,96像素×96像素,192像素×192像素}。
(2)5×5滑動(dòng)窗口:對(duì)p1和p2特征圖進(jìn)行滑動(dòng),產(chǎn)生2種錨點(diǎn),它們尺寸分別為50像素×50像素和60像素×60像素。
(3)1×1的滑動(dòng)窗口:對(duì)p4和p5特征圖進(jìn)行滑動(dòng),產(chǎn)生2種錨點(diǎn),它們尺寸分別為32像素×32像素和64像素×64像素。
同時(shí)每種錨點(diǎn)都使用3種長(zhǎng)寬比例{1∶1,1∶2,2∶1},因此一共有21種不同比例的錨點(diǎn)產(chǎn)生特征框,對(duì)害蟲(chóng)圖像中的目標(biāo)進(jìn)行前景和背景判斷。雖然對(duì)p1特征圖使用3×3滑動(dòng)窗口產(chǎn)生尺寸為30像素×30像素的錨點(diǎn)和對(duì)p5特征圖使用1×1滑動(dòng)窗口產(chǎn)生32像素×32像素的錨點(diǎn)之間相差不大,但是它們對(duì)應(yīng)的特征維度不一樣導(dǎo)致它們對(duì)目標(biāo)檢測(cè)的判斷參數(shù)也不一樣,因此本文RPN網(wǎng)絡(luò)可以針對(duì)不同尺寸的害蟲(chóng)有不同尺寸和不同維度的錨點(diǎn)進(jìn)行對(duì)應(yīng)。
在檢測(cè)區(qū)域中,需要對(duì)特征圖進(jìn)行一定比例的特征映射操作。ROIPooling是Faster R-CNN原本的特征映射方法,如果使用該方法進(jìn)行特征映射,就難以避免會(huì)出現(xiàn)因取整操作造成如圖8所示的特征偏差,這對(duì)黃板害蟲(chóng)檢測(cè)影響非常大。因?yàn)楹οx(chóng)體積小,所對(duì)應(yīng)的特征像素少,一旦發(fā)生特征偏差就容易出現(xiàn)重要特征像素消失的情況。為了解決該問(wèn)題,在MPF R-CNN中使用ROIAlign[31]代替ROIPooling。
ROIAlign特征映射過(guò)程如圖8所示,其主要步驟為:
(1)先遍歷每一個(gè)特征建議區(qū)域并保持浮點(diǎn)數(shù)邊界不做量化。
(2)進(jìn)一步根據(jù)候選區(qū)域分割成K×K的不作量化的單元。為了適應(yīng)特征提取網(wǎng)絡(luò)產(chǎn)生的不同尺寸的特征圖,本算法K的計(jì)算公式為
(1)
式中l(wèi)——輸入圖像長(zhǎng)
w——輸入圖像寬
c——特征圖像建議區(qū)域產(chǎn)生過(guò)程中錨點(diǎn)所對(duì)應(yīng)的正方形的原圖像的邊值(如,使用1×1的滑動(dòng)窗口對(duì)p4特征圖進(jìn)行滑動(dòng)產(chǎn)生32像素×32像素的錨點(diǎn),c便為32)
(3)對(duì)每個(gè)單元使用雙線性插值法將該單元分成4個(gè)具有浮點(diǎn)值的像素點(diǎn)。
(4)對(duì)每個(gè)單元進(jìn)行最大池化操作,將4個(gè)浮點(diǎn)數(shù)合并成為一個(gè)浮點(diǎn)數(shù)。
本文使用ROIAlign在對(duì)特征圖進(jìn)行映射時(shí)使用了雙線性插值法和浮點(diǎn)運(yùn)算,這樣 ROIAlign特征映射的結(jié)果不會(huì)出現(xiàn)ROIPooling特征偏差的情況,因此更符合黃板害蟲(chóng)的檢測(cè)需求。
2.4 基于雙損失函數(shù)的MPF R-CNN算法回歸與分類優(yōu)化
由于黃板上存在大量的害蟲(chóng),如果只使用單函數(shù)做回歸和分類任務(wù),參數(shù)收斂的時(shí)間就相對(duì)較長(zhǎng),因此本文使用2種損失函數(shù)分別作用于RPN網(wǎng)絡(luò)和檢測(cè)網(wǎng)絡(luò)。RPN網(wǎng)絡(luò)損失函數(shù)(RPN loss)為
(2)
其中
(3)
(4)
(5)
式中Ncls——分類樣本數(shù)(本網(wǎng)絡(luò)中為4)
Nreg——網(wǎng)絡(luò)回歸樣本總數(shù)(本網(wǎng)絡(luò)為4 000)
pi——第i個(gè)候選框區(qū)域目標(biāo)的預(yù)測(cè)概率
ti——第i個(gè)預(yù)測(cè)邊框的坐標(biāo)
Lcls——分類損失函數(shù)
Lreg——邊框回歸損失函數(shù)
λ——回歸和分類比重的權(quán)值參數(shù)(在訓(xùn)練中設(shè)置為2 000)
本文使用上述設(shè)置的目的是使RPN網(wǎng)絡(luò)進(jìn)行分類和回歸權(quán)重比為2∶1,從而使RPN網(wǎng)絡(luò)稍微側(cè)重于分類任務(wù)。雖然使用Lreg損失函數(shù)可以減弱損失函數(shù)在定值期間的波動(dòng)情況和訓(xùn)練初期不穩(wěn)定的情況,但是在檢測(cè)網(wǎng)絡(luò)部分并不適合運(yùn)用Lreg函數(shù)來(lái)執(zhí)行回歸任務(wù)。因?yàn)長(zhǎng)reg函數(shù)要求獨(dú)立計(jì)算出4個(gè)邊框點(diǎn)損失并假設(shè)這4個(gè)點(diǎn)相互獨(dú)立。實(shí)際上,這4個(gè)邊框點(diǎn)有聯(lián)系,這導(dǎo)致了最終的回歸不夠準(zhǔn)確并且時(shí)間較長(zhǎng)。因此本文在檢測(cè)網(wǎng)絡(luò)區(qū)域使用CIoU loss損失函數(shù)[32],計(jì)算式為
(6)
(7)
(8)
式中α——權(quán)重參數(shù)p——?dú)W氏距離
b——預(yù)測(cè)框中心bgt——真實(shí)框中心
d——預(yù)測(cè)框和真實(shí)框的最小包圍的對(duì)角線長(zhǎng)度
v——長(zhǎng)寬比相似性衡量值
wr——邊框?qū)挾萳r——邊框長(zhǎng)度
wgt——預(yù)測(cè)邊框?qū)挾?/p>
lgt——預(yù)測(cè)邊框長(zhǎng)度
IoU——預(yù)測(cè)的邊框和真實(shí)的邊框交集和并集的比值
式(6)優(yōu)點(diǎn)在于能夠?qū)z測(cè)框的覆蓋面積、中心點(diǎn)距離和長(zhǎng)寬比例3方面進(jìn)行調(diào)整,加速模型收斂。
本文實(shí)驗(yàn)算法操作平臺(tái)為臺(tái)式計(jì)算機(jī),計(jì)算機(jī)處理器為Intel Core i7-9700,默認(rèn)頻率為3.0 GHz,硬盤容量8 TB,內(nèi)存16 GB,顯卡NVIDIA 2080TI。開(kāi)發(fā)環(huán)境為:ubuntu 16.04,Python 3.6,anaconda 1.9.12,CUDA 版本為10.0。本文的目標(biāo)檢測(cè)網(wǎng)絡(luò)在訓(xùn)練前,先在ImageNet數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,作為ResNet101+FPN初始訓(xùn)練參數(shù),這樣可以大大減少ResNet101+FPN網(wǎng)絡(luò)的訓(xùn)練時(shí)間。ResNet101+FPN初始化參數(shù)如表1所示。
表1 初始化參數(shù)
采用平均精度(Average precision,AP)作為每一種害蟲(chóng)檢測(cè)的評(píng)價(jià)指標(biāo),同時(shí)采用平均精度均值(Mean average precision,mAP)作為算法整體性能評(píng)價(jià)指標(biāo)。
此外,當(dāng)害蟲(chóng)大爆發(fā)時(shí),對(duì)不計(jì)其數(shù)的害蟲(chóng)進(jìn)行計(jì)數(shù)并無(wú)實(shí)際生產(chǎn)意義,應(yīng)在害蟲(chóng)爆發(fā)前進(jìn)行預(yù)警并做出相應(yīng)的害蟲(chóng)防治措施。本文通過(guò)咨詢農(nóng)學(xué)專家,當(dāng)黃板害蟲(chóng)數(shù)量達(dá)到960只時(shí)預(yù)示害蟲(chóng)數(shù)量已經(jīng)非常多,應(yīng)及時(shí)預(yù)警。因此在害蟲(chóng)實(shí)際數(shù)量大于1 600只時(shí),按照1 600只計(jì)算,也就是分割后的圖像上害蟲(chóng)數(shù)量大于100只按照100只計(jì)算,并且當(dāng)算法檢測(cè)害蟲(chóng)數(shù)超過(guò)60只時(shí)就會(huì)發(fā)出害蟲(chóng)爆發(fā)預(yù)警,讓人工及時(shí)地采取相應(yīng)的害蟲(chóng)防治措施并清理黃板。同時(shí),害蟲(chóng)數(shù)量在60~100只之間,每增加10只算法都會(huì)發(fā)出一次嚴(yán)重預(yù)警。因此在本文算法中的平均精度(AP)的參數(shù)(FP)范圍設(shè)定在0~100只害蟲(chóng)。
本實(shí)驗(yàn)采用不同的圖像特征提取網(wǎng)絡(luò)(VGG-16、ResNet50、ResNet101、ResNet152、ResNet50+FPN、ResNet101+FPN、ResNet152+FPN)對(duì)黃板害蟲(chóng)進(jìn)行目標(biāo)檢測(cè)。網(wǎng)絡(luò)訓(xùn)練完成后使用平均精度作為每種害蟲(chóng)的目標(biāo)檢測(cè)評(píng)價(jià)指標(biāo)并使用平均精度均值作為整個(gè)網(wǎng)絡(luò)對(duì)所有害蟲(chóng)識(shí)別性能的評(píng)價(jià)指標(biāo)。不同網(wǎng)絡(luò)的對(duì)比結(jié)果如表2所示。
表2 不同特征提取網(wǎng)絡(luò)的模型性能結(jié)果對(duì)比
從表2可以看出,使用ResNet101+FPN網(wǎng)絡(luò)時(shí),本模型檢測(cè)效果最好,達(dá)87.14%。當(dāng)本模型以VGG-16作為特征提取網(wǎng)絡(luò)時(shí),檢測(cè)平均精度都低于70%且最后檢測(cè)結(jié)果非常容易出現(xiàn)一個(gè)區(qū)域建議框內(nèi)有多個(gè)目標(biāo)的情況。造成此種情況最主要的原因是害蟲(chóng)的體積過(guò)小導(dǎo)致有一些特征無(wú)法通過(guò)多次卷積進(jìn)行特征提取。當(dāng)本模型以ResNet50為特征提取網(wǎng)絡(luò)時(shí),整體的平均精度均值比VGG-16提高了10.87個(gè)百分點(diǎn),是因?yàn)闅埐罹W(wǎng)絡(luò)可以解決深度卷積網(wǎng)絡(luò)梯度消失的問(wèn)題。此外,ResNet50、ResNet101和ResNet152都存在每種害蟲(chóng)檢測(cè)平均檢測(cè)精度相差較大的情況,是由于不同尺寸的害蟲(chóng)在不同深度的卷積下特征表達(dá)的清晰度不一樣,有的特征可能更加明顯,有的特征可能已經(jīng)丟失。當(dāng)殘差網(wǎng)絡(luò)加入FPN網(wǎng)絡(luò)后,檢測(cè)平均精度均值均有所提高,但是模型的整體訓(xùn)練時(shí)間和檢測(cè)時(shí)間都增加了。造成這一現(xiàn)象的主要原因是參數(shù)的增加導(dǎo)致計(jì)算的復(fù)雜度增加。此外,其他大型害蟲(chóng)檢測(cè)的平均精度在ResNet50+FPN、ResNet101+FPN和ResNet152+FPN網(wǎng)絡(luò)中均比小菜蛾、黃曲條跳甲和煙粉虱檢測(cè)的平均精度低。導(dǎo)致上述結(jié)果的原因,一方面是大型害蟲(chóng)樣本數(shù)量較少,并且樣本集合由食蠅蜜蜂、瓢蟲(chóng)和金龜子多種害蟲(chóng)樣本組成,所以單一大型害蟲(chóng)樣本數(shù)量則更少;另一方面,由于大型害蟲(chóng)都是體積較大,特征相對(duì)豐富,因此平均精度相差并不是很大,在ResNet101+FPN中與平均精度最高的煙粉虱相差只有1.46個(gè)百分點(diǎn)。
雖然本算法在采用ResNet101+FPN作為特征提取網(wǎng)絡(luò)時(shí),平均精度均值達(dá)到87.14%。但是分析檢測(cè)結(jié)果時(shí)發(fā)現(xiàn),不同分割圖像之間的檢測(cè)結(jié)果存在較大差異,其中害蟲(chóng)密度和天氣是造成差異的主要因素。為了更易分析不同密度對(duì)本算法檢測(cè)結(jié)果的影響,本文根據(jù)害蟲(chóng)的數(shù)量將測(cè)試集圖像分為低、中、高3種密度層次,根據(jù)農(nóng)事專家建議,最終確定每54.68 cm2內(nèi)(按16等份分割后圖像對(duì)應(yīng)的實(shí)際尺寸)害蟲(chóng)數(shù)量在0~30之間為低密度,害蟲(chóng)數(shù)量在30~60之間為中密度,害蟲(chóng)數(shù)量大于60為高密度。按照以上標(biāo)準(zhǔn)將3 904幅分割后的測(cè)試圖像進(jìn)行低、中、高密度劃分后,結(jié)果如表3所示。
從表3可以看出,本算法在低密度下平均精度均值可達(dá)96.34%,但隨著害蟲(chóng)密度上升算法平均精度均值有所下降。因?yàn)殡S著害蟲(chóng)密度的上升,害蟲(chóng)出現(xiàn)堆疊和黏連的情況越多,并且害蟲(chóng)密度高的圖像中害蟲(chóng)由于死亡時(shí)間過(guò)長(zhǎng)尸體完整度保留性相對(duì)較低,所以本算法在高密度下平均精度均值只有85.79%。然而,本算法在低密度下召回率較低,是因?yàn)榈兔芏葏^(qū)域害蟲(chóng)總數(shù)少,然而漏檢的害蟲(chóng)數(shù)量雖然少,但是其所占的比重比較大。此外,由于害蟲(chóng)具有分布不均勻特點(diǎn),因此分割前的圖像會(huì)包含不同密度等級(jí)的分割圖像,為了分析算法合并后的效果,所以本文按照害蟲(chóng)總數(shù)在0~480之間為低密度、480~960之間為高密度和大于960為高密度的標(biāo)準(zhǔn)對(duì)分割前的圖像進(jìn)行劃分。將3 904幅分割后測(cè)試圖像檢測(cè)完成后合并成244幅圖像,結(jié)果如表4所示。通過(guò)對(duì)比表3和表4表明,雖然本算法是對(duì)分割后的圖像進(jìn)行檢測(cè),但是合并后的檢測(cè)結(jié)果依舊能反映原來(lái)的圖像情況。
表3 不同密度下檢測(cè)結(jié)果
表4 合并后圖像不同密度下檢測(cè)結(jié)果
為了分析本算法在不同天氣下的檢測(cè)效果,本文將已經(jīng)按低、中、高密度圖像劃分后的測(cè)試圖像根據(jù)晴天和雨天進(jìn)一步劃分。晴天和雨天不同密度害蟲(chóng)檢測(cè)結(jié)果如圖9、10所示。通過(guò)對(duì)圖9a和圖10a進(jìn)行分析,可以發(fā)現(xiàn)在低密度區(qū)域下晴天和雨天檢測(cè)結(jié)果相差不大,這是因?yàn)橛晏煜鄼C(jī)的曝光率低,所以雨天害蟲(chóng)特征比較清晰。通過(guò)對(duì)圖9b和圖10b進(jìn)行分析,可以看出在中密度區(qū)域晴天和雨天檢測(cè)結(jié)果相差不大的情況下,均出現(xiàn)了將2個(gè)黏連一起的小菜蛾識(shí)別為同一個(gè)體情況,這是因?yàn)閿?shù)據(jù)標(biāo)注時(shí)未將黏連的害蟲(chóng)進(jìn)行標(biāo)注。通過(guò)對(duì)圖9c和圖10c進(jìn)行分析,可以發(fā)現(xiàn)在高密度區(qū)域下雨天相比晴天出現(xiàn)更多害蟲(chóng)漏檢的情況。中低密度不會(huì)出現(xiàn)以上情況是因?yàn)橛晁畷?huì)降低黃板的粘性導(dǎo)致害蟲(chóng)出現(xiàn)位移、堆疊或掉落的情況,而在高密度下的圖像中因害蟲(chóng)的數(shù)量多以及黃板放置的時(shí)間長(zhǎng),所以更容易出現(xiàn)漏檢情況??傮w而言,雖然本算法在高密度下雨天的檢測(cè)召回率會(huì)低一些,但是在高、中、低密度下晴天和雨天的檢測(cè)準(zhǔn)確率差距不大。
害蟲(chóng)數(shù)量是非常重要的農(nóng)業(yè)信息,因此本文將244幅測(cè)試圖像中的害蟲(chóng)數(shù)量與本算法計(jì)數(shù)結(jié)果進(jìn)行統(tǒng)計(jì)分析。從圖11中可知,算法害蟲(chóng)計(jì)數(shù)結(jié)果與害蟲(chóng)實(shí)際數(shù)量的決定系數(shù)為0.925 5。當(dāng)害蟲(chóng)實(shí)際數(shù)量低于480時(shí),算法計(jì)算結(jié)果處于相關(guān)性函數(shù)上方,側(cè)面說(shuō)明本算法在害蟲(chóng)低密度時(shí)計(jì)數(shù)準(zhǔn)確率較高并且害蟲(chóng)密度是影響本算法的重要因素。
同時(shí),從圖12可以看出不同害蟲(chóng)在計(jì)數(shù)差值之間存在一定差異。煙粉虱的差值相對(duì)其他害蟲(chóng)較大,主要是因?yàn)闊煼凼w積小且數(shù)量最多,導(dǎo)致算法更加容易出現(xiàn)漏檢的情況。黃曲條跳甲計(jì)數(shù)結(jié)果的平均差值和最小差值比小菜蛾低,但最大差值比小菜蛾高,是因?yàn)辄S板在環(huán)境復(fù)雜的田間,偶爾會(huì)出現(xiàn)黃曲條跳甲害蟲(chóng)因?yàn)榄h(huán)境變化突然增多的情況,導(dǎo)致算法出現(xiàn)較大的計(jì)數(shù)差,而這是實(shí)際生產(chǎn)中一定會(huì)出現(xiàn)的情況但偏差仍然在可接受的范圍內(nèi)??傮w而言,本算法對(duì)害蟲(chóng)的計(jì)數(shù)結(jié)果能一定程度反映害蟲(chóng)真實(shí)的數(shù)量情況,并且計(jì)數(shù)結(jié)果與害蟲(chóng)實(shí)際數(shù)量的平均差值較小。
為了測(cè)試算法在實(shí)際應(yīng)用中的情況,本文在以“微信小程序+云存儲(chǔ)服務(wù)器+算法服務(wù)器”為架構(gòu)的黃板害蟲(chóng)檢測(cè)系統(tǒng)上,使用了4臺(tái)算法服務(wù)器并利用小米7手機(jī)對(duì)測(cè)試集進(jìn)行測(cè)試。如圖13a所示對(duì)圖像進(jìn)行上傳操作,并如圖13b所示使用微信小程序后臺(tái)測(cè)試工具進(jìn)行測(cè)試。結(jié)果表明,黃板害蟲(chóng)檢測(cè)系統(tǒng)能正常完成黃板害蟲(chóng)圖像上傳、圖像分割、圖像檢測(cè)、圖像合并以及圖像檢測(cè)任務(wù),平均每次檢測(cè)時(shí)間為1.7 s,對(duì)于每次檢測(cè)任務(wù)僅需要3%的CPU資源消耗和228 MB的內(nèi)存占用。由于圖像被分割成16份,所以平均每幅分割圖像檢測(cè)時(shí)間為0.425 s,與原本每幅分割圖像檢測(cè)時(shí)間0.36 s相差不大,造成時(shí)間差距的原因是圖像傳輸過(guò)程中需要一定的時(shí)間。同時(shí),手機(jī)上傳晴天和雨天黃板害蟲(chóng)圖像檢測(cè)結(jié)果如圖13c、13d所示,表明本文算法對(duì)于晴天和雨天黃板害蟲(chóng)的檢測(cè)結(jié)果差距不大,因此本文算法在移動(dòng)端應(yīng)用具有可行性。
(1)用智能手機(jī)作為載體,將基于Faster R-CNN改進(jìn)的害蟲(chóng)檢測(cè)算法MPF R-CNN應(yīng)用于黃板害蟲(chóng)的識(shí)別。通過(guò)對(duì)ResNet101+FPN特征提取網(wǎng)絡(luò)、RPN網(wǎng)絡(luò)進(jìn)行設(shè)計(jì),使用ROIAlign替代ROIPooling,以及使用雙損失函數(shù)進(jìn)行算法優(yōu)化和控制,在真實(shí)復(fù)雜的自然環(huán)境下對(duì)煙粉虱、黃曲條跳甲、小菜蛾和其他大型害蟲(chóng)(體長(zhǎng)大于5 mm)檢測(cè)的平均精度分別為87.84%、86.94%、87.42%和86.38%。
(2)進(jìn)一步實(shí)驗(yàn)表明,MPF R-CNN在35 cm×25 cm黃板上不超過(guò)480只的低密度下平均精度均值高達(dá)93.41%,并且計(jì)數(shù)結(jié)果與害蟲(chóng)計(jì)數(shù)決定系數(shù)為0.925 5。
(3)通過(guò)“微信小程序+云存儲(chǔ)服務(wù)器+算法服務(wù)器”為架構(gòu)的系統(tǒng)對(duì)算法進(jìn)行應(yīng)用測(cè)試,結(jié)果表明,該算法能支持當(dāng)前便攜式應(yīng)用,且該系統(tǒng)平均每次檢測(cè)時(shí)間為1.7 s。隨著未來(lái)樣本數(shù)的提升、手機(jī)拍攝技術(shù)的升級(jí)以及對(duì)合并邊緣極少數(shù)害蟲(chóng)進(jìn)行去重優(yōu)化,該算法的檢測(cè)精度會(huì)進(jìn)一步提升。