林相澤 朱賽華 張俊媛 劉德營
(南京農業大學工學院, 南京 210031)
水稻是我國最重要的糧食作物之一,其種植范圍廣、面積大,水稻生產在我國農業生產與糧食安全中具有主導地位[1]。稻田蟲害防治效果差,極易出現“穿頂”、“倒塘”、甚至顆粒無收的情況[2]。水稻在各個生長期都會受到不同程度的害蟲危害,給水稻生產帶來極大影響。目前,對我國水稻造成危害的害蟲主要包括稻飛虱、螟蟲和稻縱卷葉螟等,其中稻飛虱對水稻的危害最為嚴重[3]。因此,獲取稻飛虱蟲口密度,提前制定相關應對措施,對保障水稻穩產、高產、優產至關重要。現階段,對稻飛虱這類遷飛性害蟲的蟲情測報和計數多以誘蟲燈和毒氣瓶誘殺,再由人工統計實現[4]。傳統的蟲情測報方法采集信息難度大、蟲情分析滯后,對水稻病蟲害的防治效果甚微。
為了實現稻飛虱蟲情測報的自動化,稻飛虱圖像識別成為近幾年的研究熱點。鄒修國等[5]提出了一種基于灰度共生矩陣提取紋理特征并采用BP神經網絡對稻飛虱圖像進行分類的方法。AZREE等[6]探討了卷積神經網絡結構VGG16在根據歐幾里德距離圖構建的灰度圖像中將稻飛虱成功分類的有效性。YU等[7]基于貝葉斯準則,建立了Fisher線性判別函數,根據稻飛虱蟲體圖像的二維傅里葉頻譜窗口數據對害蟲進行識別。劉德營等[8]提出一種基于卷積神經網絡的稻飛虱圖像識別方法,通過自動學習獲取網絡模型參數,對測試集稻飛虱進行識別。盡管上述研究取得了一定成果,但是此類稻飛虱圖像識別方法需要對圖像進行預處理,耗費大量人力物力,難以實現真正的自動化,且識別精度有待進一步加強。
為了進一步提高稻飛虱圖像分類的自動化,本文提出一種以Mask R-CNN[9]為基礎,在ResNet50[9]網絡上進行遷移學習的稻飛虱圖像檢測方法。
為了能夠自動獲取稻田昆蟲圖像,結合稻飛虱趨光性的生物特點,采用團隊自主研發的野外昆蟲圖像采集裝置[8,10],該采集裝置的結構圖如圖1所示。該裝置主要由XYZ三向調節裝置、高清工業相機、采集工作臺以及支架底座等部分構成。在圖像采集實驗開始前,通過高壓汞燈將稻飛虱及其他稻田昆蟲吸引至采集工作臺上,并以臺達DVP32EH00T3型PLC為核心控制單元,在設定好圖像采集開始和結束時間后,PLC控制伺服電機使高清工業相機在X、Z向往返運動,相機每移動5 cm后滯留5 s以獲取昆蟲圖像,確保設備能夠在無人看守的情況下獲取水稻昆蟲高清圖像。采集到的圖像尺寸為782像素×576像素,JPEG格式,并通過USB數據傳輸線存儲至主機硬盤。

圖1 野外昆蟲圖像采集裝置結構圖Fig.1 Structure diagram of image acquisition device1.高清工業相機 2.Z向調節裝置 3.X向調節裝置 4.采集工作臺 5.Y向調節裝置 6.底座
稻飛虱爆發期通常在每年的6—9月[11],為獲取不同時空下完整清晰的稻飛虱昆蟲圖像,將圖像采集實驗分為3個階段進行。第1階段為2015年8—10月,第2階段為2016年6—10月,拍攝地點為南京農業大學江浦農場(32°01′N, 118°37′ E);第3階段為2017年8—9月,拍攝地點為白馬國家農業科技園(31°37′ N, 119°10′ E)。拍攝實驗在晴朗天氣或陰天的18:00—22:30進行,實驗期間溫度為20~30℃,相對濕度為6%~8%,實驗現場如圖2所示。最后,將3個階段采集到的1 500幅稻田昆蟲圖像作為實驗數據集,為突出研究重點,將3種類別的稻飛虱(白背飛虱、褐飛虱以及灰飛虱)歸為一類,其余水稻昆蟲歸為一類,部分數據集樣本如圖3所示。

圖2 野外實驗現場圖Fig.2 Experiment site in field

圖3 數據集樣本Fig.3 Data set samples
在使用Mask R-CNN訓練數據前,需要手動標記昆蟲輪廓并制作json標簽文件。當前主要的圖像標簽制作軟件有VIA、labelme、RectLabel、LabelBox以及COCO UI等。由于VIA操作簡單、支持離線運行而且能直接生成json文件,因此采用VIA作為數據集標簽制作工具。主要針對稻飛虱圖像進行識別分類,因此在標簽制作時只考慮將昆蟲圖像分為稻飛虱與非稻飛虱兩類,即將稻飛虱圖像標記為Sogatella_furcifera_(Horvath),將非稻飛虱圖像標記為Others。考慮到昆蟲觸角過于細小,在標注時難度較大,并且對分類結論不會造成本質影響,因此在標簽制作時只標記昆蟲軀干。為完全擬合昆蟲輪廓,采用多邊形標注法進行標注,圖3中昆蟲標記后的效果如圖4所示。

圖4 數據集標簽制作Fig.4 Data set labeling
為減少制作數據集標簽的步驟并提高圖像分類的精度,本文采用遷移學習和Mask R-CNN相結合的方法對采集的昆蟲圖像進行處理和分類。
遷移學習是一種運用已有知識對不同但相關的領域進行求解的機器學習方法。遷移學習放寬了傳統機器學習中的兩個基本假設[12]:①用于學習的訓練樣本和新的測試樣本應滿足獨立且同分布的條件。②必須有足夠多的訓練樣本才能得到一個好的模型。遷移學習包含源域(Source domain)和目標域(Target domain)[13-14],定義為

(1)
式中D(s)——源域D(t)——目標域
x——域的特征空間
P(x)——特征空間對應的邊緣概率分布
Mask R-CNN是在Faster R-CNN[15]上擴展的一種圖像識別算法,因此了解Faster R-CNN有助于對Mask R-CNN的理解。
2.2.1Faster R-CNN
Faster R-CNN是針對區域卷積神經網絡(R-CNN[16])在每個候選區域(RoI)存在大量重復運算而提出的圖像識別算法。該算法將候選區域網絡(RPN)提取的特征轉移到最后一層的卷積特征圖上進行,并在之后加了一個針對性的RoIPool層[15],并采用多任務函數對分類和邊界回歸聯合訓練,相比于R-CNN算法提高了目標檢測的精度和效率。
RPN的核心是錨(anchor)[15],而一個建議區域可以包含多個錨和多個正標簽,因此,建議區域與期望區域重疊部分(IoU)的大小直接影響分類效果,IoU的選取由Faster R-CNN的損失函數L(pi,ti)獲得[15],即

(2)
式中i——錨的索引
Ncls、Nreg——分類層數和回歸層數
pi——目標錨的預測概率

ti——預測邊界框的4個參數化坐標參數

Lcls——目標與背景兩個類的對數損失函數
Lreg——目標與背景的回歸損失函數
λ——權重
2.2.2RoIAlign
RoIPool是從每個RoI提取特征圖的標準操作,RoIPool首先將浮點數表示的RoI量化到與特征圖匹配的粒度,然后將量化后的RoI分塊,最后采用最大池化匯總每個塊覆蓋的區域的特征值。因此,當進行RoIPool中的量化操作時,極易使RoI與提取的特征錯位,從而對預測像素級精度的Mask有很大的負面影響。為了消除對RoIPool的粗糙量化,并將提取的特征與輸入圖像精準對齊,RoIAlign[9]被引入Mask R-CNN。即對于每個RoI分塊選取其中的4個常規位置,使用雙線性插值來計算每個位置的精確值,并采用最大池化將結果匯總。
2.2.3損失函數
與Faster R-CNN相比,Mask R-CNN增加了Mask分支,因此每個RoI的損失函數[9]為
L=Lcls+Lreg+Lmask
(3)
式中Lmask——平均二進制交叉熵損失函數
對于每個RoI,Mask分支有Km2維的輸出,其對K個大小為m2的Mask進行編碼,每一個Mask有K個類別,并在每個像素上運用sigmod進行分類。
Mask R-CNN圖像識別算法是基于Faster R-CNN架構的新的卷積網絡,該方法能夠在有效識別目標的同時完成高質量的語義分割。
許多機器學習算法需要的訓練數據都十分龐大,并且制作數據集標簽的步驟繁雜[17],因此,本文通過結合遷移學習和Mask R-CNN圖像識別算法對稻飛虱圖像進行識別分類。采用遷移學習在已訓練好的Microsoft COCO 數據集的基礎上進行樣本訓練,將采集到的1 500幅昆蟲圖像隨機選取1 200幅圖像作為訓練集,剩余300幅圖像作為測試集。主要參數設置為:學習率0.01,學習衰減率0.000 1,動量值0.9。在參數設置完畢后,首先訓練head layers,共訓練20輪,每輪800次;然后訓練all layers,共訓練30輪,每輪800次。本算法在顯存為4 GB的NVIDIA Quadro K4200顯卡上執行,為匹配顯卡的顯存容量,將Mask R-CNN的基礎框架(Backbone)設置為ResNet50,并且每次訓練一幅圖像。
為了說明本文所提方法的優越性,在相同樣本條件下,首先,將本文所提方法與Faster R-CNN在對稻飛虱、非稻飛虱以及存在干擾圖像情況下的識別精確度進行對比;然后,再將本文所提方法與傳統圖像分類方法(SVM[18]、BP神經網絡[19])進行對比。
為增強實驗結果的準確性,Faster R-CNN采用的訓練集與測試集和本文所用方法的訓練集與測試集一致,并且初始參數與訓練次數和本文所提方法保持相同。Faster R-CNN與Mask R-CNN對水稻害蟲圖像識別分類的結果如圖5、6所示。

圖5 Faster R-CNN實驗結果Fig.5 Experimental results of Faster R-CNN

圖6 Mask R-CNN實驗結果Fig.6 Experimental results of Mask R-CNN
圖5a和圖6a中3只昆蟲均為稻飛虱,圖5b和圖6b中3只昆蟲均為非稻飛虱,圖5c和圖6c中昆蟲為非稻飛虱,并將圖5a、5b和圖6a、6b中3只昆蟲從上至下編號為Ⅰ、Ⅱ、Ⅲ。
當識別稻飛虱圖像時,圖5a中昆蟲Ⅰ的識別精度為0.784,昆蟲Ⅱ的識別精度為0.945,昆蟲Ⅲ未能被識別;圖6a中昆蟲Ⅰ的識別精度為0.976,昆蟲Ⅱ的識別精度為0.932,昆蟲Ⅲ的識別精度為0.944。因此,采用Faster R-CNN方法識別稻飛虱圖像時,能夠識別完整的稻飛虱圖像,但是對于不完整的稻飛虱圖像,該方法無法識別并會將其作為背景輸出,且平均識別精度只有0.865,識別精度不高;本文方法能夠有效識別完整和不完整的稻飛虱圖像,并且平均識別精度達到0.951,明顯優于Faster R-CNN。
當識別非稻飛虱圖像時,圖5b中昆蟲Ⅰ的識別精度為0.909,昆蟲Ⅱ的識別精度為0.841,昆蟲Ⅲ的識別精度為0.896;圖6b中昆蟲Ⅰ的識別精度為0.906,昆蟲Ⅱ的識別精度為0.961,昆蟲Ⅲ的識別精度為0.866。因此,當識別完整非稻飛虱昆蟲圖像時,Faster R-CNN與本文采用的方法均表現較好,能夠完成實例檢測任務,對比平均識別精度,本文采用的方法優于Faster R-CNN,且平均識別精度達到0.911。
當識別存在干擾的昆蟲圖像時,圖5c中昆蟲被錯誤識別,圖6c中昆蟲的識別精度為0.906。因此,當識別存在干擾的昆蟲圖像時,Faster R-CNN的識別效果較差,不能準確識別昆蟲類型;當采用本文方法識別時,能夠有效判斷圖中昆蟲類別,并且識別精度達到0.906,明顯優于Faster R-CNN。
傳統圖像分類方法主要過程如下:首先對采集到的水稻昆蟲圖像采用大津法進行自適應二值分割[20]獲得水稻昆蟲的單一圖像,如圖7所示;然后通過膨脹、腐蝕等形態學濾波提取水稻昆蟲背部圖像,如圖8所示;之后通過水稻昆蟲背部圖像提取昆蟲的顏色、紋理以及形狀等信息作為水稻昆蟲的特征值;最后將特征值輸入SVM和BP神經網絡獲取分類精度。

圖7 水稻昆蟲單一圖像Fig.7 Single images of rice insect

圖8 水稻昆蟲背部圖像Fig.8 Back images of rice insect
為進一步描述水稻昆蟲的特征信息,綜合采用文獻[19,21]中提取的水稻昆蟲特征參數,包括7組Hu不變矩[19]以及13組傅里葉描述子[21]。水稻昆蟲的部分特征參數(包括2組稻飛虱特征參數,2組非稻飛虱特征參數)如表1所示。

表1 水稻昆蟲特征參數Tab.1 Feature parameters of rice insect
采用上述提取的特征參數輸入SVM和BP神經網絡后獲得識別精度,上述實驗結果與Faster R-CNN以及Mask R-CNN的實驗結果進行比較,如表2所示。

表2 實驗結果比較Tab.2 Comparison of experiment results
由表2可知,采用傳統圖像分類方法對水稻昆蟲圖像進行分類的精確度比較低,均在0.8以下;Mask R-CNN的分類精度最優,達到0.923。此外,相比于傳統圖像分類方法,Mask R-CNN無需對圖像進行預處理,而且能夠實時查看采集到的原始圖像中水稻昆蟲的類別,明顯優于傳統圖像分類方法。由于Mask R-CNN是在Faster R-CNN的基礎上添加了Mask層,因此Mask R-CNN的檢測速率略小于Faster R-CNN,但是依舊能達到5幅/s;采用傳統圖像分類方法進行圖像識別時,在不考慮圖像預處理的前提下,SVM的檢測速率為0.5幅/s,BP神經網絡的檢測速率為0.1幅/s,因此與傳統圖像分類方法相比,Mask R-CNN的檢測速率遠大于傳統圖像分類方法。
在采集圖像時,除了互相獨立的昆蟲個體圖像外,還存在部分黏連或重合的昆蟲圖像,如圖9所示。由于黏連和重合的昆蟲圖像不能被分割為單一的昆蟲圖像,因此傳統圖像分類方法無法分類識別黏連和重合的昆蟲圖像。

圖9 黏連和重合的昆蟲圖像Fig.9 Adhesive and overlapping insect images
圖9a是黏連的昆蟲圖像,圖中4只昆蟲均為非稻飛虱,且從左至右依次編號為Ⅰ、Ⅱ、Ⅲ、Ⅳ,從圖9a中可以看出Ⅰ號昆蟲與Ⅱ號昆蟲黏連;圖9b是重合的昆蟲圖像,圖中4只昆蟲均為非稻飛虱,且上方兩只昆蟲從左至右編號Ⅰ、Ⅱ,下方兩只昆蟲從左至右編號為Ⅲ、Ⅳ,從圖9b中可以看出Ⅰ、Ⅱ號與Ⅲ號昆蟲重合。Mask R-CNN對圖9的識別結果如圖10所示。

圖10 黏連和重合圖像的識別結果Fig.10 Identification results of adhesive and overlapping insect images
圖10a中昆蟲Ⅰ未能被識別,昆蟲Ⅱ的識別精度為0.845,昆蟲Ⅲ的識別精度為0.953,昆蟲Ⅳ的識別精度為0.992;圖10b中昆蟲Ⅰ的識別精度為0.763,昆蟲Ⅱ未能被識別,昆蟲Ⅲ的識別精度為0.975,昆蟲Ⅳ的識別精度為0.996。因此,當蟲體黏連時,Mask R-CNN將Ⅰ號昆蟲的黏連部分作為Ⅱ號昆蟲的軀干,導致Ⅱ號昆蟲的識別精度較低,此時昆蟲的識別精度為0.845,并且由于失去部分軀干加上黏連的干擾,導致Ⅰ號昆蟲無法識別。當蟲體重合時,Mask R-CNN將Ⅱ號與Ⅲ號昆蟲的重合部分作為Ⅰ號昆蟲的軀干,與黏連的情況相比重合部分遠大于黏連部分,導致重合昆蟲圖像的識別精度低于黏連的圖像,此時昆蟲識別精度為0.763;Ⅱ號昆蟲由于失去大部分軀干并且加上重合的干擾,導致無法識別;Ⅲ號昆蟲由于僅失去較少的頭部部分,因此依舊能夠被Mask R-CNN識別。由此可見,黏連和重合的昆蟲圖像對于Mask R-CNN的識別干擾較大。
(1)考慮稻飛虱的生物特性,自主研發了野外昆蟲圖像采集裝置,在無人看守的情況下自動采集稻田昆蟲圖像,為后續圖像識別實驗構建了昆蟲圖像數據集。
(2)采用VIA制作了稻田昆蟲圖像數據標簽,并將昆蟲圖像標記為稻飛虱和非稻飛虱,采用遷移學習方法初始化網絡權重,最后在ResNet50網絡上完成了數據集的訓練。
(3)分別對稻飛虱、非稻飛虱、存在干擾圖像以及存在黏連和重合的稻田昆蟲圖像進行識別實驗,并與Faster R-CNN算法和傳統圖像分類算法(SVM、BP神經網絡)進行了對比。對比結果表明,本文方法能夠快速有效識別稻飛虱與非稻飛虱,平均識別精度達到0.923,能夠為稻飛虱的防治預警提供信息支持。