王書志,喬虹,馮全*,張建華
(1.西北民族大學電氣工程學院,甘肅 蘭州 730030;2.甘肅農業(yè)大學機電工程學院,甘肅 蘭州 730070;3.中國農業(yè)科學院農業(yè)信息研究所,北京 100081)
病蟲害是農作物減產的主要因素之一[1]。開發(fā)快速、準確的病蟲害檢測技術,及早識別病蟲害類型,是減少損失的重要手段。葉片病害區(qū)域的分割是作物病害檢測、診斷與發(fā)病程度評價的關鍵。常見的分割方法包括基于區(qū)域、基于邊緣和基于各種優(yōu)化的分割算法[2–4],但這些分割算法無法在不同天氣和照明條件下穩(wěn)定地分割不同病害對象,適應性較差。近年來,以深度學習為代表的新方法在開放圖像數(shù)據集的圖像識別、目標檢測和圖像分割等視覺任務中精度和可靠度已大幅提高。
目前作物病害圖像分割大多采用全卷積神經網絡(fully convolutional networks,F(xiàn)CN)[5]及改進算法,在訓練數(shù)據充分條件下,分割效果遠超傳統(tǒng)分割算法[6],但當模型在與訓練集樣本分布差異大的數(shù)據上性能顯著下降,實用性降低。為了克服這一缺點,通常采用結合顯著性目標檢測(salient object detection,SOD)的分割策略對葉片病害區(qū)域進行分割。筆者采用卷積神經網絡構建SOD 網絡[7–11]來提取全局特征和多種分辨率的局部特征并進行融合,提高顯著性目標檢測的精度;在計算圖像顯著性圖后,采用自適應閾值法對顯著性目標(病斑)進行分割,對自然條件下拍攝的葡萄葉片病害進行了病害顯著性檢測和分割。
葡萄葉部病害數(shù)據集包括 A 集和 B 集。2018年7 月到9 月葡萄病害高發(fā)季節(jié),于甘肅農業(yè)大學葡萄園,用佳能公司 EOS1200D 相機(鏡頭 EF 75–300 mm Ⅲ),拍攝葡萄葉斑病和由于衰老而出現(xiàn)枯死的葉片圖像,組成A 集,共1500 幅圖像,原始尺寸均為2448×3264 像素,部分圖像拍攝時沒有刻意將鏡頭聚焦在葉片上,而是包括較多背景,模擬了監(jiān)測攝像頭在非人工控制下拍攝的效果。B 集葡萄病害圖像主要從網絡搜集,這些圖像病斑明顯,背景簡單,照明均勻,包括葡萄白粉病、黑痘病、灰霉病、霜霉病、炭疽病和褐斑病等病葉圖像,共122 張。B 集中的圖像用來測試網絡對未知病害圖像顯著性檢測和分割的效果,評價算法的泛化性能。
采用圖1 所示的SOD 網絡架構,包含5 列和4行,每列都適用于特定輸入比例的特征提取。模型輸入352×352 像素圖像,輸出176×176 像素顯著圖,再用雙線性插值調整回352×352 像素。圖中每個方框中的第1 行是模塊名稱,其他行表示其主要組成。
圖1 顯著性檢測網絡的結構Fig.1 Achitechture salient object detection networks
1) 全局特征。圖1 的第1 行包含CONV–1 到CONV–5 的 5 個卷積塊,它們由 VGG–16[11]組成。這些卷積塊包含步幅2 的最大池化層,可將它們的特征圖{X1,X2,…,X5}進行 2 倍下采樣,得到 5個不同尺度下的特征,即每個特征圖的尺寸分別為176×176、88×88、…、11×11。CONV–5 模塊用于抽取全局特征XG,該模塊中通過3 個VGG 卷積層來計算全局特征XG,其中前2 個卷積層的內核大小為5×5,最后1 個為3×3,3 個卷積層特征通道數(shù)均為128。
2) 多尺度局部特征。模塊CONV–6 到CONV–10連接到由 VGG–16 組成的 CONV–1 到 CONV–5 處理塊,這些卷積層的目標是學習多尺度(5 種)局部特征圖{X1,X2,…,X5},每個卷積層具有3×3 的內核大小和128 個通道。
3) 對比度特征。顯著特征在整個前景中是均勻的,但同時在前景和背景區(qū)域之間是不同的。為了得到這種對比度信息,添加了與每個尺度的局部特征Xi相關聯(lián)的對比度特征XCi,由第3 行的Contrast模塊完成,該模塊由平均池化層組成。通過從其局部平均值中減去Xi來計算每個對比度特征,平均池化層的內核大小為3×3。
采用數(shù)據集A 進行訓練和測試,檢測顯著性。選擇(DCL)[12]、RSDNet[13]、Multi–Context (MC)[14]3 種基于深度學習的SOD算法與本研究算法進行對比研究。在病斑分割方面,則選用與 FCN 算法進行對比,在A 集和B 集分別試驗,B 集用于測試算法的泛化性能。
對于A 集,隨機選擇80%的圖像(1200 幅)用于訓練,剩余的20%(300幅)用于測試,訓練圖像的尺寸調整至352×352 像素。為了考察畫面復雜度對顯著性檢測結果的影響,將測試圖像分成了簡單圖像和復雜圖像2 組,分別有730 幅和740 幅。簡單圖像(圖2–a)基本只有1 張葉片,背景相對簡單;復雜圖像(圖2–b)有2 張以上較完整葉片,背景雜亂或有明顯的陰影。A 集中網絡訓練時不區(qū)分簡單或復雜圖像,只在測試時作區(qū)分。試驗前,將A 集的圖像先后分3 次隨機選出3 組測試和訓練圖像,3 組測試圖像中簡單和復雜圖像的數(shù)量均固定為150 張。用3 組訓練樣本分別訓練出3 個檢測模型,用這3個模型對3 組測試樣本進行評估,用3 組評價指標的平均值作為衡量各算法性能的依據。
顯著性檢測算法性能的評價采用maxFβ和均值絕對誤差(MAE)作為衡量檢測性能指標[10],其中max Fβ越接近 1 越好,MAE 越小越好。
分割性能則采用馬修斯相關系數(shù)(MCC)[15]作評價指標,MCC 取 1 時,表示預測與真實值完全一致,取0 表示預測結果等同隨機預測。
計算機系統(tǒng) CPU 為 E5–2620V3@2.4GHz,內存為64GB,GPU 為NVIDIA Tesla K40,操作系統(tǒng)為ubuntu 16.04。SOD 網絡的開發(fā)語言為python,深度學習框架采用 Tensoflow。模塊 CONV–1 至CONV–5 采用預訓練的 VGG–16 初始化。其他權重系數(shù)用正態(tài)分布隨機初始化,優(yōu)化方法采用 Adam算法,初始學習率設為 10–6,β1=0.9,β2=0.999。分割試驗中的對比算法 FCN 的訓練和測試環(huán)境為matlab2018b,操作系統(tǒng)為Win10。FCN 訓練中網絡參數(shù)均設置為:初始學習率為 0.001,迭代次數(shù)為100,最小批量為8。
圖2 A 集葡萄葉片病害樣例的顯著性檢測結果Fig.2 Salience map examples in set A produced by proposed model
所建立算法的病害顯著性圖檢測結果如圖2 所示。從簡單圖像顯著性圖(圖 2–c)可以看出,SOD所檢測出的顯著性區(qū)域(圖中高亮部分)與肉眼觀察到的病斑區(qū)域準確重合,印證所建立算法的有效性及對不同光照的適應性。從復雜圖像顯著性圖(圖2–d)檢測結果來看,算法對雜亂背景有較強的抑制效果,能較準確檢測圖像中葉片的病害區(qū)域。說明SOD 對不同光照和復雜背景具有良好的適應性。
本研究所建立的算法與其他幾種對比算法的量化統(tǒng)計結果列于表 1??梢钥闯觯? 種算法在簡單測試圖像上maxFβ較接近; MAE 則相差較大,本研究算法均取得了最優(yōu)結果。
表1 幾種顯著性檢測算法在A 集上的對比Table 1 Experimental results of the proposed salience detection model compared with other models on set A
在復雜圖像上,從maxFβ指標看,RSDNet 結果最好,本研究算法次之,但前者僅比后者高0.13%;而從MAE 指標看,本研究所建立的算法結果最佳。與簡單圖像測試結果相比,4 種算法的評價指標均下降,MC、DCL、RSDNet 和本研究算法在復雜圖像上的max Fβ分別比簡單圖像下降了30.4%、18.6%、16.5%和16.8%,MAE 則分別上升90.1%、77.2%、70.6%和71.7%,這說明圖像畫面的復雜程度對于算法的檢測結果有較大的影響。從 maxFβ的下降幅度與MAE 的上升幅度看,RSDNet 的變化最小,魯棒性最好,本研究算法的次之,但兩者接近。
從兩類測試圖像的指標平均值看,本研究算法均處于領先,DCL 次之,其次是RSDNet,MC 則最差,說明本研究算法綜合性能最佳。
從單張圖像測試的平均耗時看,本研究算法僅用0.14 s,說明基本可以實時進行顯著性目標檢測,只有DCL 算法的5.5%,與對比算法相比有明顯的優(yōu)勢。
采用自適應閾值法分割,即對顯著性圖取閾值,大于某閾值T 的像素被賦予前景標簽,小于則賦予背景標簽。試驗發(fā)現(xiàn),參數(shù)k 值取4 左右時有較好的分割結果。由于顯著性包含目標區(qū)域與周圍的對比關系,從圖 2 可以看出,部分葉尖和葉脈可能會被賦予較高的顯著性,取閾值后這些部分也會被標識為前景(病害),從而降低分割精度。鑒于這些區(qū)域面積通常很小,采用了圖像處理技術中經典的形態(tài)學中的開運算來消除這些微小區(qū)域。圖 3 給出了葡萄葉部病害圖像對應的分割結果,從圖 3 中可看出,本研究算法和FCN 算法均能較好地分割出病害區(qū)域。
圖3 2 種分割方法在A 集上的分割結果Fig.3 Segmental examples of proposed segmentation method and FCN on set A
在A 集和B 集的測試圖像上對2 種算法分割效果進行測試,結果表明,本研究算法在A 集和B 集的 MCC 分別為 0.625 和 0.338,而 FCN 的 MCC 分別為 0.689 和 0.072。由于分割模型是用 A 集訓練的,測試樣本和訓練樣本均由同一相機在同一場景拍攝,2 種算法在A 集的測試樣本上的MCC 值均較高,本研究算法分割方法的MCC 值比FCN 算法低0.064。從圖3 可以看出,相比FCN,本研究算法會稍多分割出一些“虛假”的病害區(qū)域,它們是原圖中劇烈變化的區(qū)域引起的,其中部分非病的突變區(qū)域面積較大,形態(tài)學處理沒能將其濾除,這符合顯著性檢測算法對突變部分敏感的特點。在照明均勻和背景簡單的場合,這個特點有助于找到葉片上的病斑,但A 集圖像中存在大量陰影和雜亂背景,導致了本研究算法產生更多的假陽性區(qū)域,故而本研究算法的MCC 略低于FCN 算法的。
B集完全獨立于A集,用來測試分割模型的泛化性能,但B 集圖像與A 集圖像的病斑特點相差甚遠。本研究算法基本可將病斑區(qū)域賦予較高的顯著性,分割結果也大體能將病斑區(qū)域分割出來,如圖4所示,F(xiàn)CN 幾乎不能正確分割出這些圖像中的病斑區(qū)域,除了第6幅圖像能準確分割外,其余圖像分割效果都很差,對第 1 幅圖像,F(xiàn)CN 完全分割不出任何病斑區(qū)域。
FCN 在B 集的MCC 值急劇下降,僅有0.072,接近隨機分割的;本研究算法的 MCC 雖然出現(xiàn)了下降,但其值仍然達到0.338,是FCN 的4.69 倍,說明本研究方法的泛化能力強于FCN 的,這可能得益于顯著性檢測中加入了像素與周圍平均灰度的對比,這在A 集分割試驗中雖然增加了假陽性,但在“未見過”的 B 集病害圖像上,這一特點卻能提高前景的召回率,使得MCC 下降比FCN 算法小得多。
常規(guī)卷積神經網絡分割模型分割葉片病害圖像時不具備處理病斑的先驗知識,在跨域圖像上分割效果較差。筆者提出了基于顯著性目標檢測的有監(jiān)督分割方法,從分割結果看,若訓練集與測試集圖像來自同一分布,本研究算法分割效果接近經典FCN 算法,但泛化性方面遠好于FCN,這對于實際應用有重要意義:畢竟現(xiàn)實中采集訓練樣本,不可能覆蓋各種情形,具有良好泛化性能的算法在實際中更能適應多種場合,因此,本分割方法在精度與泛化性能方面具有良好的平衡性。