冷天熙,錢發斌,胡文萍
(云南省林業調查規劃院,云南 昆明 650051)
經過60多年的發展,我國森林資源監測技術不斷進步,體系日臻完善。然而,隨著國際國內形勢的深刻變化和林業現代化建設的深入推進,森林資源監測工作面臨著前所未有的挑戰。監測時效性、協同性差,現勢性弱,信息采集能力不足,信息服務水平不高的問題也日益顯現出來[1]。人工智能是研究、開發應用于模擬人的智能理論、方法、技術及應用系統的一門新的技術科學[2]。人工智能已成為繼自動化、電氣化和信息化之后新一輪工業革命的基石,人工智能不僅應用在工業領域,還在教育、醫療和金融等領域得以運用,均是革命性的技術創新[3]。國家林業和草原局《關于促進林業和草原人工智能發展的指導意見》(林信發〔2019〕105號)中關于森林生態系統保護的主要任務為:通過接收衛星影像并進行分析,跟蹤森林生態系統實時變化,運用機器視覺技術和深度學習算法,及時發現森林消長變化,進行動態監測,有效評價森林生態健康狀況。
目前,我國森林資源監測主要通過對衛星影像進行人工判讀來發現森林資源變化圖斑,但人工判讀工作效率低且對判讀人員工作經驗及技術水平要求較高。如何實現從海量的遙感影像中高效準確地獲取森林資源變化數據,成為森林資源監測領域日益迫切的需求。為此,以云南省芒市為研究對象,利用2019年森林資源監測成果數據及衛星影像,結合人工智能深度學習方法,開展基于人工智能的衛星影像分類研究,希望能夠為人工智能在森林資源監測領域的深入開展提供借鑒和幫助。
收集芒市2019年衛星影像及2019年林地一張圖成果,將全市衛星影像裁剪成正方形面積為666.67 m2的影像。在裁剪出的影像中,每個地類隨機抽取 4 000 張圖片作為樣本使用自定義ResNet18網絡進行深度學習。因疏林地、苗圃地、未利用地等地類所占面積較少,本次只按林地、非林地、有林地、灌木林地、未成林地、耕地、建設用地共7個類別進行分類識別。
PyTorch是Facebook在深度學習框架Torch的基礎上使用Python重寫的一個全新的深度學習框架,PyTorch具有豐富的API,設計簡潔高效,本次采用PyTorch作為學習框架。
2.2.1深度學習
深度學習是機器學習的一個分支,而機器學習是實現人工智能的必經路徑。深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發現數據的分布式特征表示。研究深度學習的動機在于建立模擬人腦進行分析學習的神經網絡,其模仿人腦的機制來解釋數據,例如圖像,聲音和文本等[4]。深度學習模型有卷積神經網絡( convolutional neural network,CNN)、循環神經網絡(recurrent neural netword,RNN)等,近年來卷積神經網絡在圖像識別領域得到廣泛應用。在林業領域將卷積神經網絡用于植物葉片病害檢測、害蟲識別、煙霧識別等方面已有較多研究及應用。
2.2.2深度神經網絡(ResNet)結構
采用卷積神經網絡中的深度神經網絡(ResNet)結構,ResNet網絡結構由華人何凱明提出,ResNet網絡增加短路機制形成殘差學習(圖1),一定程度上解決了傳統的卷積網絡在信息傳遞過程中可能因信息丟失而導致梯度消失或者梯度爆炸問題。ResNet在2015年獲得ImageNet分類任務第一名后,分類、檢測、分割等任務大規模使用ResNet作為網絡骨架。

圖1 ResNet塊示意圖
2.2.3模型及參數
本研究在深度學習時優化器使用Adam,Adam是比較常見的優化算法,其利用梯度的一階矩與二階矩動態地估計調整每一個參數的學習率,是一種學習率自適應算法,可以使模型更快收斂。損失函數使用交叉熵( Cross Entropy Loss)函數。
自定義ResNet18網絡進行模型訓練,網絡學習率為0.001,迭代次數(epoch)為50。ResNet18網絡中輸入數據的通道數(in_channel)為3,卷積核大小(kennel_size)為3,步長(stride)為1,填充值(paddnig)為1,自定義ResNet18網絡具體實現代碼如下:
class ResBlk(nn.Module):
def __init__(self,ch_in,ch_out,stride=1):
super(ResBlk,self).__init__()
self.conv1=nn.Conv2d(ch_in,ch_out,kernel_size=3,stride=stride,padding=1)
self.bn1=nn.BatchNorm2d(ch_out)
self.conv2=nn.Conv2d(ch_out,ch_out,kernel_size=3,stride=1,padding=1)
self.bn2=nn.BatchNorm2d(ch_out)
self.extra=nn.Sequential()
if ch_out != ch_in:
self.extra=nn.Sequential(
nn.Conv2d(ch_in,ch_out,kernel_size=1,stride=stride),
nn.BatchNorm2d(ch_out)
def forward(self,x):
out=F.relu(self.bn1(self.conv1(x)))
out=self.bn2(self.conv2(out))
out=self.extra(x)+ out
(4)加強噴混植生施工成本控制體系的研究。當前噴混植生施工成本偏高,在市場競爭激烈的條件下,不利于該項技術的普及推廣,應著力研究:施工材料購置成本的控制,施工工藝的降耗途徑,低養護成本的管理體系,噴混植生整體技術效益的監控。通過上述研究和開發,促使噴混植生形成成熟的成套技術,為我國資源與環境保護科學的發展作出創新貢獻。
out=F.relu(out)
return out
class ResNet18(nn.Module):
def __init__(self,num_class):
super(ResNet18,self).__init__()
self.conv1=nn.Sequential(
nn.BatchNorm2d(16)
)
self.blk1=ResBlk(16,32,stride=3)
self.blk2=ResBlk(32,64,stride=3)
self.blk3=ResBlk(64,128,stride=2)
self.blk4=ResBlk(128,256,stride=2)
self.outlayer=nn.Linear(256*3*3,num_class)
def forward(self,x):
x=F.relu(self.conv1(x))
x=self.blk1(x)
x=self.blk2(x)
x=self.blk3(x)
x=self.blk4(x)
x=x.view(x.size(0),-1)
x=self.outlayer(x)
return x
將裁剪后的影像按有林地、灌木林地、未成林地及耕地、建設用地5個類別用自定義ResNet18模型進行深度學習,并對學習結果進行驗證。實驗結果顯示:在模型訓練過程中,當所選樣本中10%用于模型訓練,90%用于模型測試時,最高模型訓練準確率為 0.793 2(圖2)。

圖2 自定義ResNet18及遷移學習ResNet18的訓練準確率
隨著迭代次數增加,模型的損失值逐漸減小,收斂較好(圖3)。

當所選樣本中60%用于模型訓練,40%用于模型測試時,最好識別準確率為0.8549。訓練樣本越多,準確率越高。
將裁剪后的影像分為林地、非林地、有林地、灌木林地、未成林地及耕地、建設用地7個類別。將7個類別分別兩兩使用自定義ResNet18模型進行深度學習,其中10%用于模型訓練,90%用于模型測試。結果顯示,針對各地類識別均有較高的準確率,除灌木林地與未成林地、灌木林地與耕地,其余準確率均大于0.9(表1)。

表1 地類間的分類識別準確率
從研究結果看,基于深度學習的衛星影像分類準確且高效。林地與非林地分類識別準確率高于93%,有林地與其它地類分類準確率高于94%,其中有林地與建設用地分類準確率高達99.58%,而準確率最低的灌木林與未成林地的分類也接近80%,后續仍可通過增加樣本及調整參數、模型等方法進行提升。
森林資源監測工作作為我國國情林情普查的重要組成部分,必須順應新時代的發展要求,以創新發展為驅動,不斷加強監測能力和服務能力建設,不斷增強依法治林、科學興林的保障作用,為生態文明建設和經濟社會發展做出更大貢獻[1]。隨著新一代人工智能技術不斷取得應用突破,全球加速進入智慧化新時代,人工智能將成為未來第一生產力,對人類生產生活、社會組織和思想行為帶來顛覆性變革[5]。將人工智能應用于森林資源監測,將傳統的監測數據及技術與人工智能相結合,建立快捷高效、準確實用的森林資源監測平臺顯得尤為必要。