劉文定 田洪寶 謝將劍 趙恩庭 張軍國
(1.北京林業大學工學院, 北京 100083; 2.林業裝備與自動化國家林業和草原局重點實驗室, 北京 100083)
蟲害是林業的主要災害之一,嚴重危害著林業生態環境[1]。據有關統計,2006年至2011年,我國林業有害生物造成的年均損失總計1 101億元[2]。科學防治蟲害對于生態系統意義重大,而林業信息監測[3]可為林業蟲害防治提供重要的數據支撐,使蟲害防治方案更加合理、有效。在林業信息監測中,無人機監測高效準確,得到廣泛應用[4-5]。
通過無人機搭載高清攝像機,可以及時獲取林區蟲害圖像。針對無人機獲取的圖像,如何精準區分健康林區和蟲害區域,是林業信息監測的研究重點。圖像分割是蟲害區域識別的主要方法。常用的圖像分割算法有聚類算法、復合梯度分水嶺算法和基于圖論的分割方法。李冠林等[6]利用K-means硬聚類算法進行了葡萄病害的分割,分割病斑區域較為準確。江怡等[7]采用分水嶺變換對遙感圖像進行分割,有效抑制了過分割現象。趙瑤池等[8]采用了基于紋理差異度引導的DRLSE蟲害圖像分割方法,得到較為精確的病變區域輪廓。張軍國等[9]提出基于復合梯度分水嶺算法的蟲害圖像分割方法,并降低了平均相對誤差率。上述傳統分割方法泛化能力差,需要人工設計特征,為了適應數據的變化需要經驗和時間調整。提高模型分割林區蟲害圖像的泛化能力、實現快速準確識別非常重要。
近年來,深度學習技術得到快速發展,圖像分類、目標檢測、圖像語義分割都涌現出了一大批模型[10-14],這些模型都取得了非常優異的效果。LONG等[15]提出全卷積神經網絡,將卷積神經網絡的全連接層用卷積層替換,開辟了一條全新的圖像語義分割方向。孫鈺等[16]將全卷積神經網絡應用于大棚及地膜農田分割,并對全卷積神經網絡進行改進,提高了識別精度。這些方法對于規則的物體分割準確,但對于邊界復雜的林區蟲害區域識別效果不盡理想。
本文以八旋翼無人機航拍的遼寧省建平縣林區油松林蟲害圖像為研究對象,針對標注樣本匱乏問題,通過遷移預訓練模型以降低樣本需求,提升模型收斂性。考慮到油松林蟲害區域復雜、邊界不規則的特點,通過跳躍結構融合多層特征,提升全卷積神經網絡識別精度。經過模型訓練和優化,實現油松林航拍蟲害區域快速、精確識別。
圖像采集平臺采用自主研制的八旋翼無人機,并搭載了單反相機,如圖1所示。八旋翼無人機飛行時間15~20 min,抗風等級4~5級,飛行高度可達500 m,圖像傳輸距離800 m,控制距離1 000 m,松下GH3型單反相機。

圖1 八旋翼無人機實物圖Fig.1 Physical map of eight-rotor drone
蟲害圖像數據來自于八旋翼無人機航拍的遼寧省建平縣朱碌科鎮和張家營子鎮的油松林蟲害圖像。在陰天和多云環境下進行圖像采集,2016年8月完成采集。航拍對象為受蟲害侵蝕的油松林,選取20塊典型區域作為采集樣地,每塊采集樣地面積為30 m×30 m,航拍高度為10~50 m,單幅航拍圖像尺寸為4 608像素×2 592像素。共采集蟲害航拍圖像450幅,選取油松林有效圖像167幅。
針對采集的167幅4 608像素×2 592像素蟲害圖像,每幅圖像無重疊裁剪為8幅1 000像素×1 000像素圖像,共生成1 336幅,剔除部分無蟲害圖像,共得到800幅1 000像素×1 000像素圖像。選取其中600幅作為訓練集,100幅作為驗證集,剩余100幅作為測試集。無人機航拍的蟲害圖像分辨率高、細節清晰,以蟲害區域人工目視標注為主,以檢驗修正為輔的方式進行標注。首先對蟲害的內部區域批量標注,然后對蟲害的邊界區域逐像素標注,最后將圖像中剩余部分標注為健康區域。將健康區域的灰度設置為0,蟲害侵蝕區域的灰度設置為1,多類別標注可以通過增加灰度類別實現。在完成人工精確標注后,將標注圖的蟲害區域映射到對應的原圖區域,檢測標注精度是否理想,并對不完善區域進行修正,如圖2所示。

圖2 航拍原始圖像及人工精確標注圖像Fig.2 Original image of aerial photography and artificially labeled image
以VGG16[17]為基礎網絡構建全卷積神經網絡,將VGG16模型全連接層替換為卷積層;采用遷移學習預訓練網絡參數,降低全卷積神經網絡樣本需求量,減少過擬合,提升收斂速度;通過跳躍結構融合不同層特征,提升蟲害區域識別精度。卷積化實現端到端學習,遷移學習提升模型收斂速度,跳躍結構優化識別精度,三者相輔相成。
卷積神經網絡對圖像特征具有很強的提取能力,較淺的層具有比較小的感受野,能夠獲取局部的信息,而較深的層具有比較大的感受野,能夠獲取更多的信息。卷積神經網絡是良好的特征提取器,但是卷積神經網絡最后幾層一般為全連接層,能夠較好地得到圖像類別,但是也因此丟失了圖像的細節,最后很難得到每個像素對應的類別。
傳統的卷積神經網絡是采用周圍的像素塊進行預測得到像素級的預測,但是這種方式存儲開銷大,計算效率非常低。將全連接層用卷積層進行替換,用上采樣就可以恢復到原圖的尺寸,然后用softmax分類器逐像素分類得到每個像素對應的類別,實現語義分割,得到蟲害區域識別結果。如圖3所示,將VGG16模型最后的全連接層用卷積層替換,并上采樣得到最終識別結果,圖中H為圖像高度,W為圖像寬度。

圖3 蟲害區域識別實現過程Fig.3 Implementation process of pest area identification
由于采集的蟲害圖像樣本有限,精確標注的樣本更為珍貴,本文采用遷移學習降低樣本需求,提升模型收斂性。遷移學習[18-19]是運用已有的知識,對不同但是相關的領域求解的方法。遷移學習針對不同的數據量有不同的訓練方式,針對于小數據量,一般去掉softmax層,定義新的softmax層,并開放全連接層,凍結所有卷積層的參數,用新的樣本訓練全連接層網絡參數;針對中等數據量的樣本,一般需要逐步開放全連接層之前的卷積層,數據量越多,開放的層數越多;數據量較大時,可以將原始的網絡參數作為初始參數進行訓練,使模型更快收斂。
本文數據樣本較少,用ImageNet數據集[20]訓練VGG16網絡,訓練完成后始終凍結卷積層參數,用ADE20K數據集[21]預訓練全卷積網絡反卷積層參數,并將此網絡參數作為蟲害圖像訓練的初始值。
卷積神經網絡中淺層的卷積層能獲得紋理等低級的語義信息,深層可以獲得高級語義信息,通過融合不同的層可以獲得多種特征信息,有效提升識別性能。蟲害圖像不規則,邊界復雜,病害區域和健康區域交織在一起,多次池化使得特征圖像分辨率降低,直接32倍上采樣會使得蟲害邊緣區域的識別效果不理想,而不同卷積層可以獲得不同層次的特征,通過融合高層和低層特征能夠有效提升識別精度。
針對林業蟲害圖像特點,為了能夠獲得更多的細節和紋理特征,得到較好的識別效果,本文采用跳躍結構,通過不同組合融合各層的特征可以形成5種全卷積網絡,即FCN-32s、FCN-16s、FCN-8s、FCN-4s、FCN-2s。以FCN-16s為例,融合時需要保持特征圖大小一致,首先將卷積層8輸出的結果進行2倍上采樣,和池化層4進行融合,經過2倍上采樣以后,最終得到和原圖尺寸大小相同的特征圖,然后用softmax分類器,逐像素得到每個像素對應的類別。如圖4所示為本文的5種全卷積神經網絡結構圖。

圖4 全卷積神經網絡跳躍結構示意圖Fig.4 Schematic of jump structure of full convolutional network
試驗在Ubuntu16.04系統下進行,硬件平臺采用雙路1080TiGPU加速,基于Tensorflow1.8框架,Python版本為3.6。
為了得到林業蟲害圖像較好識別效果的模型,進行了5種全卷積神經網絡的蟲害區域識別對比試驗,測試的對象為20塊采集樣地蟲害圖像。該試驗在相同數據集、相同參數下進行訓練,僅改變模型結構,其中,學習率設置為0.000 1,損失函數為交叉熵損失函數,模型訓練采用Adam優化器,5種模型各訓練10 001次,批尺寸為2,每隔500次保存一次網絡參數。在準備好數據集和確定好超參數以后,分別訓練5種全卷積神經網絡識別模型,每個模型選取驗證集損失值最小的權重,作為該模型最終的網絡參數,然后分別測試,得到5種模型的蟲害區域識別結果。
如圖5所示為蟲害圖像原圖、人工標注圖和K-means、脈沖耦合神經網絡(Pulse coupled neural network, PCNN)、復合梯度分水嶺算法(Composite gradient watershed algorithm,CGWA)、FCN-32s、FCN-16s、FCN-8s、FCN-4s、FCN-2s等8種方法的蟲害圖像分割結果圖。圖5a、5b、5c為不同蟲害采集樣地內的蟲害分割結果。分割結果和人工標注越接近,說明蟲害區域識別效果越好。

圖5 蟲害區域識別結果對比Fig.5 Comparison maps of identification result of pest area
4.1.1識別精度評價指標
為了合理評估蟲害區域識別精度,本文采用像素準確率、類別平均準確率、平均交并比、頻率加權平均交并比4個指標對模型性能進行評價,4個指標數值越大說明識別效果越好。像素準確率RPA(Pixel accuracy, PA)是最簡單的評價指標,代表正確分類的像素數量占總像素的比例,假設有k+1個類別,具體公式為
(1)
式中pij——類別i的像素預測為類別j的數量
pii——預測正確像素數量
平均準確率RMPA(Mean pixel accuracy, MPA)對像素準確率做了簡單提升,首先計算每個類內被正確預測的像素數比例,然后對所有類別取平均值,具體公式為
(2)
平均交并比RMIoU(Mean intersection over union,MIoU)能夠反映蟲害區域識別的準確性和完整性,是最常用的評價指標,其計算兩個集合的交集和并集之比,并求所有類別平均值。平均交并比的公式為
(3)
式中pji——類別j的像素預測為類別i的數量
頻率加權交并比RFWIoU(Frequency weighted intersection over union,FWIoU)根據每個類別出現的頻率設置權值,其公式為
(4)
4.1.2識別精度比較
選取20個試驗樣地各5幅圖像作為測試樣本,試驗結果取100幅圖像測試結果的平均值。表1為各算法識別精度對比結果,從表中可以看出,FCN相比于復合梯度分水嶺、脈沖耦合神經網絡[22]和K-means算法,識別精度提升較大,其中FCN-2s的像素準確率達到97.86%,比CGWA、PCNN、K-means算法分別高出6.04、20.73、44.93個百分點,平均交并比達到79.49%,比CGWA、PCNN、K-means算法分別高出18.86、35.67、50.19個百分點。分析5種FCN 算法,可以看出融合的層數越多,得到的語義信息越豐富,識別結果的像素準確率越高。從平均交并比可以看出,FCN-2s的識別精度在5種全卷積神經網絡中最好,這是由于林業圖像邊界復雜,蟲害區域不規則,需要融合低級語義特征提升識別精度。

表1 各算法識別精度比較Tab.1 Comparison of recognition accuracy of each algorithm %
算法的運行速度也是算法的重要性能,本文測試了20幅圖像,所有圖像的平均運行時間如表2所示。

表2 各算法單幅圖像運行時間Tab.2 Single image running time of each algorithm s
由表2可以看出,本文算法的運行速度明顯快于另外3種算法,本文5種算法中FCN-32s的識別速度最快,隨著融合的層數增多,計算量增大,計算速度逐漸降低,考慮本地端蟲害區域識別對算法實時性沒有很高要求,FCN-2s識別速度已經能夠滿足需求,其運行時間為4.31 s, 比CGWA、PCNN、K-means算法分別降低11.39、19.70、47.54 s。
針對無人機航拍采集的林區蟲害圖像存在的問題,提出了一種基于全卷積神經網絡的蟲害區域識別方法,并考慮蟲害圖像數據集特點,引入遷移學習、跳躍結構等方法,提升了全卷積神經網絡的識別精度。本文算法的識別精度比復合梯度分水嶺算法、脈沖耦合神經網絡、K-means都有大幅提升,其中FCN-2s識別精度最高,其像素準確率達到97.86%,比復合梯度分水嶺算法、脈沖耦合神經網絡、K-means分別高出6.04、20.73、44.93個百分點, FCN-2s的單幅圖像分割運行時間為4.31 s,分別降低11.39、19.70、47.54 s。