曾偉輝 陳亞飛 胡根生 鮑文霞 梁 棟
(1.安徽大學(xué)互聯(lián)網(wǎng)學(xué)院,合肥 230039;2.科大國創(chuàng)軟件股份有限公司中央研究院,合肥 230088;3.安徽大學(xué)農(nóng)業(yè)生態(tài)大數(shù)據(jù)分析與應(yīng)用技術(shù)國家地方聯(lián)合工程研究中心,合肥 230601)
柑橘是世界第一大類水果,是全球最重要的經(jīng)濟(jì)作物之一[1]。中國是柑橘生產(chǎn)和消費(fèi)大國,近年來,我國柑橘產(chǎn)業(yè)迅速發(fā)展,柑橘的種植面積不斷擴(kuò)大。然而,柑橘黃龍病嚴(yán)重影響柑橘的產(chǎn)量和質(zhì)量,被稱為柑橘癌癥。我國19個(gè)種植柑橘的省份已有11個(gè)省份遭受柑橘黃龍病的危害,受災(zāi)面積已超過種植總面積的80%[2]。因此,盡早發(fā)現(xiàn)受感染的病樹,并采取相應(yīng)的防治措施對提高柑橘產(chǎn)量十分重要。
柑橘黃龍病的病害特征大多是通過葉片表現(xiàn)出來,傳統(tǒng)的柑橘黃龍病診斷依靠有經(jīng)驗(yàn)的果農(nóng)觀察柑橘葉片進(jìn)行病害判斷,但這項(xiàng)工作不僅耗時(shí)耗力,而且容易出現(xiàn)人工誤判。隨著科學(xué)技術(shù)的飛速發(fā)展,使用新一代信息技術(shù)對柑橘黃龍病進(jìn)行檢測,并及時(shí)對柑橘的病害做出相應(yīng)的判斷和防治,提高柑橘的產(chǎn)量,是柑橘信息化、科學(xué)化種植的必然趨勢。
目前,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測模型主要分為One-stage檢測模型和Two-stage檢測模型。One-stage檢測模型主要包括SSD(Single shot multibox detector)[3]、RetinaNet[4]、EfficientDet[5]、YOLO(You only look once)[6]系列等,已被廣泛地應(yīng)用于智慧農(nóng)業(yè)的植物識別、病蟲害檢測、水果識別等研究中[7-11]。
Two-stage檢測模型主要包括Faster RCNN(Faster region with CNN)[12]、RCNN[13]、Cascade RCNN[14]等。Two-stage檢測模型相較于One-stage檢測模型具有更高的檢測精度,因此它在農(nóng)業(yè)方向的應(yīng)用也十分廣泛[15-16]。
在柑橘黃龍病的檢測研究方面,已有不少學(xué)者進(jìn)行了相應(yīng)的研究工作[17-22]。但是直接應(yīng)用到自然背景下的柑橘黃龍病檢測技術(shù)仍然存在以下問題:自然場景中拍攝時(shí),圖像背景中存在大量的健康葉片、其他病害葉片、雜草等干擾因素,導(dǎo)致上述算法的檢測精度不高;圖像中經(jīng)常出現(xiàn)黃龍病葉片被遮擋的現(xiàn)象,導(dǎo)致部分黃龍病葉片形狀不規(guī)則,這對檢測帶來了挑戰(zhàn);柑橘黃龍病葉片尺寸變化大,極易出現(xiàn)小尺寸目標(biāo)漏檢的情況。
針對自然背景干擾的問題,本研究使用SMS、鏡像翻轉(zhuǎn)和旋轉(zhuǎn)方法對數(shù)據(jù)集進(jìn)行增廣,同時(shí)將全局上下文模塊(Global context block,GC-Block)[23]嵌入到骨干網(wǎng)絡(luò)的后3個(gè)卷積層中,實(shí)現(xiàn)自然背景下柑橘黃龍病的檢測。針對黃龍病葉片形狀不規(guī)則和尺寸變化大的問題,本研究采用可變形卷積[24]和雙向融合的特征金字塔網(wǎng)絡(luò)(Two-way fusion feature pyramid networks,TFFPN)[25],實(shí)現(xiàn)對不規(guī)則葉片和小尺寸葉片特征的準(zhǔn)確提取。最后,通過實(shí)驗(yàn)測試其對柑橘黃龍病檢測的效果。
本研究數(shù)據(jù)一部分來源于科大訊飛國創(chuàng)軟件股份有限公司舉辦的柑橘病蟲害識別挑戰(zhàn)賽提供的數(shù)據(jù)集,共有683幅柑橘葉片圖像,其中428幅為柑橘黃龍病葉片圖像,其余為柑橘健康葉片或其他柑橘病害圖像,其中其他柑橘病害包括柑橘脂斑病、柑橘潰瘍病、柑橘炭疽病和柑橘黑星??;另一部分來源于網(wǎng)絡(luò)搜索到的100幅柑橘黃龍病葉片圖像。由于比賽主辦方要求數(shù)據(jù)集保密,所以本研究展示的實(shí)驗(yàn)圖像全部來源于網(wǎng)絡(luò)。最終本研究的數(shù)據(jù)集原圖包含528幅圖像(428幅科大訊飛比賽圖像+100幅網(wǎng)絡(luò)圖像),按照比例6∶1∶3將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測試集,其中訓(xùn)練集317幅圖像,驗(yàn)證集53幅圖像,測試集158幅圖像。
由于柑橘病蟲害識別挑戰(zhàn)賽提供的683幅柑橘葉片圖像中,有255幅圖像為柑橘健康葉片或者其他柑橘病害圖像,為了增加訓(xùn)練過程中檢測目標(biāo)的圖像數(shù)量和多樣性,本研究對其中不含柑橘黃龍病葉片的255幅圖像進(jìn)行了剪切混合拼接處理。剪切混合拼接是將病害圖像中的部分柑橘黃龍病葉片剪切下來,再和健康的或其他病害的柑橘葉片圖像拼接起來,來增加訓(xùn)練集圖像中檢測目標(biāo)的數(shù)量和多樣性。經(jīng)過剪切混合拼接后,訓(xùn)練集和驗(yàn)證集的圖像分別擴(kuò)充為536幅和89幅。為了進(jìn)一步增加訓(xùn)練數(shù)據(jù)的多樣性和數(shù)量,本文對訓(xùn)練集和測試集進(jìn)行了進(jìn)一步的擴(kuò)充。增廣方式包括鏡像翻轉(zhuǎn)、順時(shí)針旋轉(zhuǎn)180°、順時(shí)針旋轉(zhuǎn)90°、順時(shí)針旋轉(zhuǎn)270°,圖像增廣流程圖如圖1所示。經(jīng)過增廣后,訓(xùn)練集共有2 680幅圖像、驗(yàn)證集共有445幅圖像,增廣前后訓(xùn)練集、驗(yàn)證集和測試集的圖像數(shù)量和黃龍病葉片數(shù)量如表1所示。本研究使用LabelImg對該數(shù)據(jù)集進(jìn)行標(biāo)注,生成.xml文件,該文件中包含柑橘黃龍病病害葉片在圖像中的位置信息。
表1 增廣前后的數(shù)據(jù)集
圖1 圖像增廣流程圖
1.2.1改進(jìn)的Cascade RCNN模型
為了能實(shí)現(xiàn)自然背景的柑橘黃龍病準(zhǔn)確檢測,本研究提出一種改進(jìn)的Cascade RCNN網(wǎng)絡(luò)。該網(wǎng)絡(luò)由3部分組成:骨干網(wǎng)絡(luò)、雙向融合的特征金字塔、級聯(lián)檢測器。改進(jìn)后的Cascade RCNN結(jié)構(gòu)如圖2所示,圖像先輸入改進(jìn)后的骨干網(wǎng)絡(luò)進(jìn)行特征提取,隨后將Conv2輸出的特征圖和經(jīng)過GC-Block增強(qiáng)后的特征圖一同輸入到雙向融合的特征金字塔中進(jìn)行特征圖的多尺度融合,最后將融合后的特征圖輸入到級聯(lián)檢測器中,得到最終的檢測結(jié)果。
圖2 改進(jìn)的Cascade RCNN結(jié)構(gòu)圖
圖2中藍(lán)色模塊為原網(wǎng)絡(luò),橙色模塊為改進(jìn)部分。Conv1~Conv5表示骨干網(wǎng)絡(luò)ResNetXt101[26]的5個(gè)卷積層,其中藍(lán)色卷積層是由標(biāo)準(zhǔn)卷積組成的卷積層,橙色卷積層是由可變形卷積組成的卷積層。C0表示Conv2輸出的特征圖經(jīng)1×1卷積后得到的特征圖,C1、C2、C3表示Conv3、Conv4、Conv5輸出的特征圖依次輸入到全局上下文模塊后再經(jīng)1×1卷積得到的特征圖,C4、C5、C6表示單向融合后的特征圖,P1、P2、P3、P4表示雙向融合后的特征圖。RPN為區(qū)域建議網(wǎng)絡(luò),ROI Align1、ROI Align2、ROI Align3為3個(gè)不同IoU閾值的感興趣區(qū)域?qū)R(Region of interest align,ROI Align)[27];FC1、FC2、FC3表示3個(gè)全連接層;S1、S2和B1、B2分別表示兩個(gè)階段的分類分?jǐn)?shù)和候選框;S3和B3分別表示最終的分類分?jǐn)?shù)和邊界框。
1.2.2骨干網(wǎng)絡(luò)
本研究將Cascade RCNN中的骨干網(wǎng)絡(luò)ResNet101[28]替換為ResNetXt101,ResNetXt101和ResNet101的網(wǎng)絡(luò)結(jié)構(gòu)圖如表2所示,括號內(nèi)是殘差結(jié)構(gòu),乘號后的數(shù)字表示堆疊塊數(shù),c表示每組的卷積數(shù)。ResNetXt101與ResNet101的本質(zhì)區(qū)別是ResNetXt101采用了通道分組,以Conv2為例,ResNet101是64個(gè)1×1的卷積核,而ResNetXt101是32組,每組是4個(gè)1×1的卷積核。與ResNet101相比,ResNetXt101的網(wǎng)絡(luò)結(jié)構(gòu)簡明,更加模塊化;需要手動(dòng)調(diào)節(jié)的超參數(shù)少;具有更好的特征提取能力。
表2 ResNet101和ResNetXt101的網(wǎng)絡(luò)結(jié)構(gòu)
1.2.3可變形卷積
為了減少葉片形狀不規(guī)則的影響,本研究用可變形卷積代替骨干網(wǎng)絡(luò)的后3個(gè)卷積層中的標(biāo)準(zhǔn)卷積,根據(jù)黃龍病葉片的形狀自適應(yīng)改變局部采樣點(diǎn),增強(qiáng)網(wǎng)絡(luò)對目標(biāo)幾何形變的建模能力。
可變形卷積的基本思想是用帶有偏移的采樣來代替固定位置采樣,并根據(jù)學(xué)習(xí)到的偏移量,來調(diào)整可變形卷積核的大小和位置,不同位置卷積核的采樣點(diǎn)會(huì)根據(jù)檢測目標(biāo)的位置和大小自適應(yīng)調(diào)整,從而適應(yīng)柑橘黃龍病葉片的幾何形變??勺冃尉矸e的結(jié)構(gòu)如圖3所示,在原始特征圖中,先通過一個(gè)卷積層來計(jì)算特征圖的2維偏移場,得到偏移量,然后通過雙線性插值算法將帶有偏移量的采樣點(diǎn)集中到一起,使得輸出特征圖與輸入特征圖的空間分辨率一致,再將輸出特征圖傳遞給下一網(wǎng)絡(luò)層,從而實(shí)現(xiàn)對形狀不規(guī)則目標(biāo)的特征提取。
圖3 可變形卷積結(jié)構(gòu)示意圖
1.2.4全局上下文模塊
為了減小背景對檢測結(jié)果的干擾,本研究將GC-Block嵌入到骨干網(wǎng)絡(luò)的Conv3、Conv4、Conv5中,構(gòu)建有效的長距離依賴,增強(qiáng)骨干網(wǎng)絡(luò)的全局上下文建模能力。GC-Block結(jié)合了非局部模塊(Non-local block,NL-Block)[29]和擠壓激勵(lì)模塊(Squeeze excitation block,SE-Block)[30]的優(yōu)點(diǎn),既具有NL-Block的全局上下文建模能力,又具有SE-Block輕量級的優(yōu)點(diǎn)。
GC-Block可以抽象為3個(gè)步驟:首先通過1×1卷積和Softmax函數(shù)獲取特征圖的注意力權(quán)重,再通過矩陣乘法獲取全局上下文特征;然后通過1×1卷積進(jìn)行特征優(yōu)化,從而捕獲通道間的依賴,為了降低優(yōu)化難度,在1×1卷積后面增加了歸一化層(Layer normalization,LN)和線性整流函數(shù)(Rectified linear unit,ReLU);最后采用對應(yīng)元素相加的方法將全局上下文特征聚合到每個(gè)位置的特征上,從而實(shí)現(xiàn)對原始特征圖的增強(qiáng)。GC-Block結(jié)構(gòu)如圖4所示,其中H、W分別表示特征圖的高和寬,C表示特征圖的通道數(shù),C×HW是原始特征圖經(jīng)過線性變換后的二維矩陣,r表示瓶頸比率。
圖4 GC-Block結(jié)構(gòu)圖
GC-Block定義為
(1)
式中Zi——查詢位置輸出矩陣
xi——查詢位置輸入矩陣
i——查詢位置索引
j——其他位置索引
xj——其他位置輸入矩陣
xm——注意力位置輸入矩陣
Wv1、Wv2、Wk——線性變換矩陣
Np——特征圖中的位置數(shù)
m——注意力位置索引
1.2.5雙向融合的特征金字塔
為了解決柑橘黃龍病葉片的小尺寸目標(biāo)的漏檢問題,本研究在Cascade RCNN的基礎(chǔ)上,使用TFFPN替換原有的特征金字塔網(wǎng)絡(luò)(Feature pyramid networks,F(xiàn)PN)[31]。從圖5中可以看到,TFFPN與FPN不同,F(xiàn)PN是一個(gè)自上而下的單向融合,而TFFPN是先由上而下再由下而上的雙向融合。C0表示Conv2輸出的特征圖經(jīng)1×1卷積后得到的特征圖,C1、C2、C3表示Conv3、Conv4、Conv5輸出的特征圖依次輸入到全局上下文模塊后再作1×1卷積得到的特征圖,這里1×1卷積的作用是用來改變特征圖的通道數(shù)。隨后,再對C3進(jìn)行 2倍上采樣,來增大C3的分辨率,使其分辨率與C2保持一致,這樣深層特征圖和淺層特征圖就可以通過簡單地加法實(shí)現(xiàn)融合,得到C4,再通過相同的操作得到特征圖C5、C6。然后對單向融合后的特征圖作一個(gè)步長為2的3×3卷積,來降低P1的分辨率,使其分辨率與C5保持一致,隨后對C5進(jìn)行3×3卷積來消除上采樣產(chǎn)生的混疊效應(yīng),然后通過簡單的加法實(shí)現(xiàn)P1與C5的融合,再對融合后的特征圖作一個(gè) 3×3 卷積得到特征圖P2,同理得P3和P4。TFFPN不僅能夠豐富每層特征圖的位置信息,還能夠保留每層特征圖的語義信息,增強(qiáng)了模型的多尺度信息融合能力,有利于小尺寸目標(biāo)的檢測。
圖5 TFFPN結(jié)構(gòu)圖
1.2.6級聯(lián)檢測器
級聯(lián)檢測器是由3個(gè)具有不同交并比(Intersection over union,IoU)的ROI Align級聯(lián)組成,其中ROI Align1、ROI Align2、ROI Align3的IoU閾值是遞增的,可以使每一階段為下一階段提供更好的正樣本,從而逐漸獲得更好的檢測效果。
級聯(lián)檢測器結(jié)構(gòu)如圖6所示,將TFFPN得到的特征圖P1、P2、P3、P4一同輸入到RPN中,得到候選框,然后將候選框一同輸入到ROI Align1中,再將ROI Align1輸出的結(jié)果輸入到全連接層FC1中,得到階段一的分類分?jǐn)?shù)S1和候選框B1。將特征圖和B1一同輸入到ROI Align2中,再將ROI Align2輸出的結(jié)果輸入到FC2中,得到階段二的分類分?jǐn)?shù)S2和候選框B2。最后將特征圖和B2一同輸入到ROI Align3中,再將ROI Align3輸出的結(jié)果輸入到FC3中,得到最終的分類分?jǐn)?shù)S3和邊界框B3。
圖6 級聯(lián)檢測器結(jié)構(gòu)示意圖
柑橘黃龍病檢測網(wǎng)絡(luò)用Pytorch框架搭建,模型優(yōu)化使用隨機(jī)梯度下降法(Stochastic gradient descent,SGD),初始學(xué)習(xí)率為0.02,動(dòng)量為0.9,權(quán)重衰減為0.000 1,迭代次數(shù)為500。
采用平均精度均值(Mean average precision,mAP)、精確率(Precision,P)、召回率(Recall,R)作為評價(jià)指標(biāo),mAP越高,說明檢測效果越好。
選取One-stage的SSD、RetinaNet、YOLO v3、YOLO v5s和Two-stage的Faster RCNN、Cascade RCNN與本研究方法進(jìn)行對比實(shí)驗(yàn)。從 表3 可以看出,圖像沒有經(jīng)過增廣處理時(shí),本文方法的mAP、P和R均高于其它方法,mAP達(dá)82.5%,與RetinaNet、YOLO v5s和Cascade RCNN(ResNetXt101)相比,mAP分別提高22.1、5.9、5.4個(gè)百分點(diǎn)。
為了降低柑橘其他病害葉片和健康葉片對檢測結(jié)果的影響,本研究通過SMS、鏡像翻轉(zhuǎn)和旋轉(zhuǎn)的方法對訓(xùn)練集和驗(yàn)證集進(jìn)行了增廣,增加了訓(xùn)練集和驗(yàn)證集圖像中背景目標(biāo)的數(shù)量。從表3可以看出,圖像經(jīng)過增廣后,不同檢測方法的檢測精度都有所提升。
表3 不同檢測算法的對比結(jié)果
從表3可以看出,本文方法mAP達(dá)到84.8%,高于其他方法。但隨著可變形卷積、GC-Block和TFFPN的加入,本文方法的模型大小也略大于其他方法,達(dá)到787.4 MB,本文方法的平均測試時(shí)間相應(yīng)的有所增加。本文方法的平均測試時(shí)間為0.485 s,雖然略高于其他目標(biāo)檢測方法,但與其他檢測方法的平均測試時(shí)間仍處于同一數(shù)量級。相較表3中其他對比方法,本文方法在保證高檢測精度的同時(shí),兼顧了檢測的實(shí)時(shí)性,具有較好的性能。
為了說明本文方法適用于自然背景下的柑橘黃龍病檢測,本研究根據(jù)圖像背景復(fù)雜度的不同,將測試集158幅圖像劃分成5個(gè)級別。1級:僅含一片柑橘黃龍病葉片,共17幅;2級:含有2片柑橘黃龍病葉片,共23幅;3級:含有3片柑橘黃龍病葉片,共18幅;4級:含有3片柑橘黃龍病葉片,并存在遮擋現(xiàn)象,共35幅;5級:含有3片以上的柑橘黃龍病葉片,并存在遮擋現(xiàn)象,共65幅。不同級別的mAP如圖7所示。從圖7可以看出,當(dāng)圖像背景的復(fù)雜度為5級時(shí),本文方法相較于Cascade RCNN,mAP提高5.62個(gè)百分點(diǎn)。
圖7 Cascade RCNN和本文方法的mAP對比
消融實(shí)驗(yàn)結(jié)果如表4所示,在骨干網(wǎng)絡(luò)為ResNetXt101的前提下,本研究利用可變形卷積增大有效感受野,使用GC-Block進(jìn)行特征增強(qiáng),并使用TFFPN來減少小尺寸目標(biāo)的漏檢,提高了模型的召回率、精確率和平均精度均值。
表4 消融實(shí)驗(yàn)結(jié)果
由2.2節(jié)和表3可知,對訓(xùn)練集和驗(yàn)證集進(jìn)行增廣后,增加了訓(xùn)練樣本的多樣性,在一定程度上提高了網(wǎng)絡(luò)檢測效果。在上述條件下,本研究分別在Cascade RCNN網(wǎng)絡(luò)中加入可變形卷積和GC-Block,顯著提高了精確率,這是因?yàn)辄S龍病葉片存在形狀不規(guī)則和背景復(fù)雜的問題,可變形卷積和GC-Block 可以有效抑制它們的影響。最后本研究將FPN換成了TFFPN,對召回率提升明顯,這是因?yàn)門FFPN可以有效提取特征圖的多尺度信息,從而降低了小尺度葉片的漏檢率。可變形卷積、GC-Block和TFFPN一起作用于網(wǎng)絡(luò)時(shí),mAP提高3.2個(gè)百分點(diǎn)。
Cascade RCNN(ResNetXt101)和改進(jìn)的Cascade RCNN的實(shí)際檢測效果對比如圖8所示。圖中紅框?yàn)槟P皖A(yù)測的邊框,紅框上方的HLB為黃龍病的標(biāo)簽名,HLB后的數(shù)字為置信度,藍(lán)圈內(nèi)為Cascade RCNN漏檢或誤檢的目標(biāo)。由圖8可知,Cascade RCNN(ResNetXt101)在黃龍病的檢測中存在漏檢和誤檢現(xiàn)象,本研究使用了可變形卷積、GC-Block和TFFPN對模型進(jìn)行了改進(jìn),改進(jìn)后的Cascade RCNN能夠正確檢測出Cascade RCNN(ResNetXt101)漏檢和誤檢的目標(biāo),這說明改進(jìn)后的網(wǎng)絡(luò)具有更強(qiáng)的病害特征提取能力。
圖8 檢測效果對比
(1)由于野外拍攝的柑橘黃龍病圖像背景復(fù)雜,黃龍病葉片存在遮擋及形狀尺寸變化大的問題,導(dǎo)致現(xiàn)有方法很難獲得較高的檢測精度,本研究提出了一種改進(jìn)的Cascade RCNN模型用于自然場景下的柑橘黃龍病檢測。該方法首先運(yùn)用SMS、鏡像翻轉(zhuǎn)和旋轉(zhuǎn)來對數(shù)據(jù)集進(jìn)行了增廣,增加了訓(xùn)練圖像中的背景目標(biāo)數(shù)量和多樣性。其次為了增強(qiáng)網(wǎng)絡(luò)對目標(biāo)幾何形變的建模能力,在骨干網(wǎng)絡(luò)中使用可變形卷積來增大有效感受野,再通過GC-Block對特征圖進(jìn)行增強(qiáng),增強(qiáng)骨干網(wǎng)絡(luò)對病害葉片特征的提取能力。最后通過TFFPN實(shí)現(xiàn)特征圖的多尺度融合,以便網(wǎng)絡(luò)學(xué)習(xí)到多尺度信息,提升模型的檢測精度。
(2)測試結(jié)果表明,該模型mAP為84.8%,相較于SSD、RetinaNet、YOLO v3、YOLO v5s、Faster RCNN、Cascade RCNN等目標(biāo)檢測方法提高至少3.2個(gè)百分點(diǎn)。本文模型可以實(shí)現(xiàn)自然背景下柑橘黃龍病的精準(zhǔn)檢測,對實(shí)現(xiàn)農(nóng)業(yè)智能化、降低勞動(dòng)強(qiáng)度具有重要意義。