陸清嶼,李秋潔,童岳凱,王明霞,袁鵬成
(南京林業大學機械電子工程學院,南京 210037)
行道樹資源調查是現代林業資源調查的重要工作,目前主要采用人工實測、抽樣調查的方法獲取行道樹樹種、科屬、胸徑、樹高、冠幅等參數,工作量大,效率低下,不能及時準確地反映行道樹動態變化情況[1],因此快速高效地獲取行道樹參數具有重要的理論意義和實踐價值。獲取行道樹參數的首要問題是如何快速從多樣化的城市道路中分割出行道樹。當前行道樹信息采集方法主要有激光雷達掃描和圖像拍攝兩種[2-3],激光雷達作為一種主動遙感技術,運用激光波束掃描道路兩側地物信息獲得街道三維點云數據,并對行道樹劃分網格索引[4-5],結合使用ICP、N-cut等算法,最終分割出行道樹[6-7]。圖像數據具有分辨率高、成本低、易獲取的特點,并且可以更直觀地反映行道樹的色澤、紋理、樹種等特征,已有的樹木圖像分割方法主要采用傳統圖像處理方法,如運用顏色的不連續性劃分、基于相似區域增長、基于小波變換、基于局部二值特征等[8-11]。這些方法存在一定的局限性,具體體現在:街道環境較為復雜,較難分辨樹林、草叢、灌木等與行道樹相似的地物,難以濾除房屋、路面、路燈、汽車、廣告牌等其他地物;行道樹存在樹冠相粘連的情況,在單木尺度上進行行道樹分割也存在一定困難;空間位置和顏色屬于各圖像數據的底層固有特征,為實現精細分割應提取更加復雜的特征,如樹冠結構、紋理等。
深度學習是近年來不斷發展的新興學科,利用端到端的模型處理方式,在林業的樹種分類、森林預測、木材缺陷檢測等方面都有成功的應用。目前行道樹分割模型的研究大多基于卷積神經網絡(convolutional neural network,CNN)模型,主要研究行道樹的目標檢測問題,即預測行道樹的類別和邊界框,如張良[12]采用基于YOLO深度學習算法進行分類以獲取行道樹的樹種和邊界框信息;喬蓮花等[13]將隨機森林模型與深度學習網絡結合提取行道樹的位置信息;沈雨等[14]基于Faster R-CNN提出一種分部加權策略實現行道樹的目標檢測。綜合主流的目標檢測網絡,可提高算法的計算效率,如董彥鋒等[15]采用YOLO-v2網絡先完成目標定位再做實例分割;姚英楠[16]利用Mobile NetV2替換RPN網絡等。
基于深度學習的行道樹目標檢測算法僅輸出行道樹的分類和邊界框,無法解決有樹冠相連的行道樹分割問題,且無法提取行道樹的精確形狀。筆者基于深度學習的Mask R-CNN算法提出一種行道樹實例分割(instance segmentation)方法,即對于圖像的每個行道樹實例都產生與原圖相同大小的一層分割掩膜(mask),從而實現行道樹的精細分割。本方法通過遷移學習的策略共享模型參數,并在行道樹圖像數據集上實現實例分割。
本研究提出的行道樹實例分割算法可分為數據集采集、數據集標注、數據變換與擴充、模型訓練和檢測結果分析5個部分。其具體流程見圖1。

圖1 行道樹實例分割算法Fig. 1 Instance segmentation algorithm of street trees
Mask R-CNN算法在2018年由He等[17]首次提出,該算法以Faster R-CNN為基礎,不僅能夠準確分類目標實例,輸出目標邊界框,還能精細分割出實例的分割掩膜,該算法流程見圖2[18]。模型首先將原始圖像輸入主干CNN網絡提取特征,再將CNN輸出的特征向量和原圖一起輸入區域建議網絡(region proposal network,RPN)生成候選區域。RPN輸出的候選區域和對應特征向量將會進入感興趣區域(region of interest,RoI)對齊層,對齊層的輸出分成兩個分支,其中分類檢測分支經過全連接層轉換后,對每個RoI區域輸出概率最高的類別,并預測邊界框。掩膜預測分支使用全卷積網絡(fully convolutional network,FCN)針對RoI區域對每個分類都生成一幅二值掩膜圖,根據先前計算的分類輸出概率最高分類的二值掩膜,完成像素級分割。Mask R-CNN可用于多分類問題,本研究設置分類數量時僅采用兩個類別,即背景和行道樹。

圖2 Mask R-CNN算法Fig. 2 Mask R-CNN algorithm
Mask R-CNN算法針對實例分割問題,進行了兩點改進。
1)在RPN網絡中引入了特征金字塔網絡(feature pyramid network,FPN)[19],FPN對不同維度的特征圖進行特征融合,以提升特征提取的效率。FPN的網絡結構見圖3。FPN主要由3種不同路徑構成,第1種為自底向上的降采樣過程(圖3①),該過程每次將特征圖的長寬縮小為前一層的一半,從而得到多種不同大小的語義特征;第2種為自頂向下的上采樣過程(圖3②),每層特征圖的長寬擴大到前一層的2倍;第3種為橫向連接過程(圖3③),指的是第2種路徑在上采樣前會與第一種路徑中相同尺寸的區域進行特征融合;融合后的結果采用3×3的卷積核進行提取,最終輸出特征圖既有良好的空間信息又具有豐富的語義特征。

圖3 特征金字塔網絡Fig. 3 Feature pyramid network
2)在RoI對齊層引入雙線性插值算法,使后端網絡的掩膜分割結果更加精細準確。雙線性插值算法和RoI對齊層的處理方法見圖4。雙線性插值是數值分析中的一種插值算法(圖4a),該算法主要用于解決坐標為浮點數的像素點數值的計算問題。其原理[20]簡述如下。
設待插值節點為P(x,y),其周圍的整數坐標節點分別為M11(x1,y1)、M12(x1,y2)、M21(x2,y1)、M22(x2,y2),中間節點坐標分別為N1(x,y1)、N2(x,y2),各點處的像素值用f(·)表示。先對x方向進行線性插值:
(1)
(2)
再對y方向進行線性插值:
(3)
對特征區域的每個候選單元,利用上述的雙線性插值算法計算4個固定坐標像素值,再進行最大池化操作(圖4b),得到RoI對齊層的輸出。

圖4 RoI對齊層Fig. 4 RoI align layer
訓練深度學習模型需要巨大的計算資源或使用龐大的數據集,在樣本量過小時模型難以收斂,也無法具備很好的檢測能力。為解決行道樹圖像數據集規模較小的問題,模型初始化時采用遷移學習的策略,將大型圖片數據集中已經預訓練好的網絡參數遷移到圖像數據集的Mask R-CNN模型上來,這樣模型已經具有了一定的特征提取能力,方便模型快速收斂。
本研究采用COCO圖像數據集來進行模型預訓練,它是由微軟公司在2014年創建的一個權威性的用于目標檢測的大型圖像數據集,包括91類目標、328 000幅圖像和約2 500 000個圖像掩膜標注。
模型訓練時采取多任務損失函數來計算損失,計算公式為:
L=Lcls+Lbox+Lmask
(4)
式中:Lcls為分類損失,指的是RPN在預測錨點時分類是否正確的二分類平均交叉熵損失;Lbox為邊界框的回歸損失,指的是每個邊界框結果與真實邊界框之間各個偏移量之和的平均交叉熵損失;Lmask為將每個RoI區域的掩膜與真值掩膜進行各像素比較,并將結果經過sigmoid函數,最后計算平均交叉熵損失。
采用平均交并比(mean intersection of union,mIoU)、平均查準率(average precision,AP)、平均查全率(average recall,AR)3個指標對模型檢測結果進行評價。交并比rIoU用于衡量檢測結果掩膜與真值掩膜之間的重疊程度,即:
(5)
式中:Ωtr為檢測結果掩膜;Ωgt為真值掩膜;SΩtr∩Ωgt為兩掩膜相交的部分面積;SΩtr∪Ωgt為兩掩膜所占有的所有面積。rIoU值越接近1,說明檢測結果掩膜與真值掩膜越接近,實例分割的效果越好。
查準率指標rap為正確識別出的行道樹數量與總識別出的行道樹數量之比,計算方法如下:
(6)
式中:ntp為正確識別出的行道樹數量;nfn為錯將背景識別成行道樹的數量。
查全率指標rar為正確識別出的行道樹數量與真實的行道樹總數量之比,計算方法如下:
(7)
式中,ntn為未檢測出的行道樹數量。
根據行道樹實例分割方法,實驗圖像數據集采用華為榮耀V30手機拍攝,共741張,每張圖像為jpg格式,尺寸是2 976×3 968像素,均為RGB三通道,拍攝地點在南京林業大學、南京玄武湖、江蘇鹽城大豐區南陽鎮附近;道路種類包含城市道路、鄉村道路、景區道路;樹種可分為常綠樹和落葉樹,落葉樹包括柳(Salix)、銀杏(Ginkgobiloba)、懸鈴木(Platanus)等,常綠樹包括香樟(Cinnamomumcamphora)、廣玉蘭(Magnoliagrandiflora)、棕櫚(Trachycarpusfortunei)等。圖像數據集共含行道樹1 028棵,各樹種圖片及樹木數量如表1所示。

表1 樹種圖片及樹木數量Table 1 Number of images and trees of different tree species
獲取行道樹圖像數據后,需對數據進行標注。實驗采用開源圖像標注軟件VGG Image Annotator(VIA)對行道樹圖像進行人工標注。標注時,沿著行道樹樹冠和樹干邊緣取點組成一個多邊形,就完成了一棵行道樹的輪廓標注。將標注中的多邊形以頂點的形式保存,然后對每一棵標注的行道樹建立一張與原圖像數據相同尺寸的圖像文件,將該文件中所有在行道樹輪廓內的像素點設為白色,其他像素點設為黑色,按此方法構造的圖像標注即為掩膜。該軟件的在線版本標注界面見圖5a,標注后提取的掩膜文件示例見圖5b。

圖5 軟件標注界面與生成的掩膜Fig. 5 Annotation software interface and generated masks
為保證圖像數據尺寸相同,本實驗調整行道樹數據集的圖像文件和掩膜文件尺寸均為512×512×3。尺寸統一后帶掩膜的圖像數據文件見圖6。為擴充樣本數量,緩解過擬合,對加入訓練的圖像數據集采取水平翻轉的擴充措施。

圖6 帶掩膜的圖像形成過程Fig. 6 Combination of images and masks
本實驗數據經預處理后,得到的圖像數據集圖片總數為1 482張。對圖像順序隨機打亂,并按6∶2∶2的比例進行數據集劃分,劃分出894張作為訓練集,294張作為驗證集,294張行道樹圖像用于檢測。
實驗使用的深度學習模型是Matterport開發的Mask R-CNN開源代碼,采用的基礎神經網絡模型是Resnet-101殘差卷積網絡模型,在深腦鏈公司提供的GPU硬件平臺上進行訓練。實驗平臺配置如表2所示。

表2 實驗平臺配置Table 2 Experiment platform configuration
實驗使用的模型配置參數如表3所示。

表3 模型參數配置Table 3 Model configuration parameters
對行道樹數據集的訓練包括兩個階段:1)對除主干CNN以外的其他網絡訓練,包括RPN、FCN、RoI對齊層和全連接層。這些網絡是隨機初始化的,先以0.001的學習率訓練迭代20輪,每輪1 000次;2)對所有網絡微調。以0.000 1的學習率對所有網絡進行微調訓練迭代20輪,每輪1 000次,使網絡充分收斂,具備對行道樹實例分割能力。網絡訓練過程中L1損失下降的情況見圖7。從圖中可看出,模型損失下降速度很快,約30輪后趨于收斂。

圖7 損失下降曲線Fig. 7 Loss reduction curve
測試集共使用294張圖片進行檢測,并通過對比真值掩膜,計算相關評價指標。實驗中認為,真值掩膜與檢測掩膜的rIoU≥0.5時,識別結果是正確的。部分代表性的檢測結果見圖8,相關評價指標計算結果見表4。

表4 模型性能評價Table 4 Model performance assessment %

圖8 模型檢測結果Fig. 8 Detection results
對實驗結果進行分析,可得出以下結論:
1)檢測出的行道樹掩膜與真實行道樹掩膜的平均交并比指標約為80%,能較好地實現行道樹輪廓的精細分割。對于樹冠枝葉相對密集、形狀規則的行道樹(如香樟、懸鈴木、銀杏等),樹冠輪廓的分割結果相對完整(圖8a、b、c、i、j);當行道樹樹冠較稀疏且生長不規則時(如柳、櫟樹、烏桕、棕櫚等),樹冠的邊緣部分輪廓檢測不夠精確(圖8h、k、l、m)。
2)行道樹圖像的平均查準率幾乎都能達到95%以上,對無粘連或粘連較小的多棵行道樹,能夠實現精細分割(圖8b、f、i、n);模型將行道樹與路燈(圖8a)、草地(圖8j)、河流(圖8g)、建筑(圖8e)、行人(圖8l)、車輛(圖8i)等復雜地物進行了有效分離;樹干部分的識別方面,若樹干部分拍攝光線較暗(圖8i)、涂白色石灰乳(圖8c、j)、與河流、草叢地物重合(圖8b、g)時,樹干會出現識別不完整的情況;當樹干較粗、相機到樹木距離較近時,識別相對清晰(圖8d、m)。
3)行道樹圖像的平均查全率均超過95%,說明對不同樹種的行道樹,模型都能識別出來。當只有不到一半的樹冠部分出現在圖像中時(圖8o),或行道樹在圖像中所占面積較小,或電線桿與樹木重疊時(圖p),可能存在漏檢情況。
4)檢測一張圖像平均消耗時間為0.476 s,由于行道樹參數檢測的實時性需求不高,因此該檢測效率可滿足行道樹資源調查的需要。
本研究針對行道樹實例分割問題,基于Mask R-CNN深度學習算法,提出一種行道樹圖像實例分割的策略,先對不同樹種的行道樹圖像進行采集標注,接著進行圖像變換擴充,最后訓練行道樹實例分割模型。本方法利用遷移學習的思想,將COCO圖片數據集預訓練的網絡參數遷移到行道樹實例分割模型上,并在此基礎上進行微調。實驗中采集了多個不同樹種的行道樹圖像,經預處理得到1 482張的行道樹圖像數據集,模型訓練好后在294張圖像上進行測試,并對不同樹種的測試結果進行對比分析。根據檢測結果及評價指標,平均交并比約80%,平均查準率和查全率均達到95%,說明模型精度較高,能有效分割出行道樹輪廓;相比傳統方法,該模型不容易受到相近顏色、光照強度、照片亮度、對比度等影響,在不同樹種的行道樹圖片數據集上有較強的泛化能力;模型檢測速度大致為0.476 s/張。今后的工作準備在以下方面進行改進:為解決Mask R-CNN實時性不足的問題,可綜合主流的目標檢測網絡,以減少Mask R-CNN模型的運行時間;通過優化網絡結構和行道樹圖像數據集質量,增強樹干部分和樹冠輪廓等細節的分割完整性。