雷皓辰
(武漢郵電科學(xué)研究院,湖北 武漢 430073)
松材線蟲病疫情傳染性極強(qiáng),松樹感染后極易死亡,因此一直被視為高危外來入侵物種,屬于森林疫情監(jiān)測的重要防控病害。松材線蟲病迅速蔓延到中國的各個地區(qū),已表現(xiàn)出疫情區(qū)域多、傳播范圍廣、擴(kuò)散面積大的情況[1],成片的松樹枯萎破壞了自然環(huán)境,浪費(fèi)了大量林業(yè)資源,隨之而來的就是森林經(jīng)濟(jì)的危機(jī)。導(dǎo)致這種局面的形成有多方面的原因,最主要的原因還是疫情監(jiān)控力度不到位。嚴(yán)格監(jiān)控松林疫情,之后提早清除感染源是解決松材線蟲病害最好的方法。
傳統(tǒng)的人工監(jiān)測方法使用大量護(hù)林員實(shí)地統(tǒng)計疫情發(fā)病情況,耗費(fèi)了大量的人力和物力。當(dāng)松材線蟲疫情在大片松林中廣泛分布時,人工監(jiān)測更加困難。如今面對這樣的情形,使用無人機(jī)可以解決監(jiān)測時遇到的困難。無人機(jī)航拍是指在無人機(jī)上安裝小型監(jiān)控設(shè)備,利用無人機(jī)高空優(yōu)勢獲取數(shù)據(jù)的技術(shù)。小型設(shè)備包括各種類型的相機(jī),由于這類相機(jī)具有高清鏡頭,能夠滿足獲取清晰的空中視野。無人機(jī)具有靈活、操作簡單等突出優(yōu)點(diǎn),它能夠突破空間的限制,在空中以獨(dú)特的角度進(jìn)行拍攝。當(dāng)前使用無人機(jī)工作已經(jīng)十分成熟,將航拍技術(shù)用于松林監(jiān)測變得可行[2]。
文中使用大疆PHANTOM4 無人機(jī)進(jìn)行航拍工作,然后運(yùn)用切割的方式處理拍攝圖像以增大訓(xùn)練集,之后使用調(diào)整結(jié)構(gòu)后的VGG16 卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練得到圖像與病樹統(tǒng)計量之間的映射關(guān)系。
目標(biāo)計數(shù)算法能夠從靜態(tài)圖像或動態(tài)視頻中估算感興趣對象的數(shù)量,已經(jīng)被廣泛應(yīng)用到生產(chǎn)生活的各個方面。醫(yī)學(xué)研究通過顯微鏡圖像統(tǒng)計特定細(xì)胞的數(shù)量[3-4],安保系統(tǒng)利用攝像頭拍攝到的視頻數(shù)據(jù)統(tǒng)計敏感場所中的人員流動信息[5-6],林業(yè)部門使用航拍圖像統(tǒng)計森林中各類樹木的分布情況[7]。
早期的目標(biāo)計數(shù)算法使用無監(jiān)督學(xué)習(xí)方法,這些方法根據(jù)自相似性或運(yùn)動相似性進(jìn)行分組。這種完全無監(jiān)督的算法計數(shù)精度通常不太理想,近年來,大量研究集中在基于監(jiān)督學(xué)習(xí)的目標(biāo)計數(shù)算法上?;诒O(jiān)督學(xué)習(xí)的目標(biāo)計數(shù)算法通常分為基于檢測的目標(biāo)計數(shù)[8]和基于回歸的目標(biāo)計數(shù)[9]。
基于檢測的目標(biāo)計數(shù)算法首先通過檢測器識別圖像中的所有目標(biāo)[10-11],之后統(tǒng)計所有檢測對象的個數(shù),得到圖像中對象的總數(shù)[12]。當(dāng)前大多數(shù)目標(biāo)檢測器分為兩個工作階段,第一階段生成置信度圖,第二階段采用閾值化和非最大化抑制步驟來定位對應(yīng)于單個實(shí)例的峰值。運(yùn)用更具創(chuàng)造性的方法推理對象部分和實(shí)例之間的關(guān)系,以避免非最大化抑制,這些方法不僅非常耗時,而且它們?nèi)匀恢贿m用于圖像中對象數(shù)量較少的情況。也有方法假設(shè)對象趨向于均勻分布,并且背景顏色不同導(dǎo)致對象彼此分離,因此可以通過蒙特卡羅過程、形態(tài)分析或變分優(yōu)化來定位單個實(shí)例,當(dāng)均勻分布和對象彼此分離的假設(shè)成立時,這類方法提供了準(zhǔn)確的計數(shù)結(jié)果。通常說來,基于檢測的目標(biāo)計數(shù)方法簡單易行,但在具有大量重疊對象的場景中,基于檢測的目標(biāo)計數(shù)算法的性能急劇下降[13]。
與基于檢測的計數(shù)算法不同,基于回歸的目標(biāo)計數(shù)算法是從一些全局圖像特征(主要是各種特征的直方圖)到對象數(shù)量的直接映射。許多機(jī)器學(xué)習(xí)算法可以實(shí)現(xiàn)這類回歸問題[14-15]。然而,這種基于全局特征的方法僅使用某些一維統(tǒng)計特征進(jìn)行學(xué)習(xí),丟棄了所有可用的對象位置信息[16]。分段計數(shù)法可以看作是檢測計數(shù)法和回歸計數(shù)法的混合體,它們將對象分割成不同的組,然后從每個組的全局屬性回歸到對象的總數(shù)。
文中方法是一種基于回歸的目標(biāo)計數(shù)算法。為了充分利用訓(xùn)練樣本中待計數(shù)對象的位置信息,文中方法建議將原始圖像對稱分割為多個子區(qū)域,訓(xùn)練一個由子區(qū)域到區(qū)域中病樹數(shù)量的回歸函數(shù),再將各區(qū)域中回歸得到的病樹數(shù)據(jù)相加,得到原圖像中病樹的數(shù)量。子區(qū)域切割方法不僅能有效利用對象的位置信息,還能夠大幅降低模型的復(fù)雜程度(參數(shù)個數(shù)),避免出現(xiàn)過擬合,提高了算法統(tǒng)計病樹的質(zhì)量。
為了解決病樹計數(shù)問題,文中采用基于監(jiān)督學(xué)習(xí)的回歸方法,因此要用到標(biāo)定后的圖像。文中使用打點(diǎn)的方法在圖像中標(biāo)記病樹,打點(diǎn)方法是一種很自然的計數(shù)方法,與人類日常生活中使用的計數(shù)手段一致,符合最終用戶的計數(shù)習(xí)慣。
如圖1 所示,在啟動訓(xùn)練過程以前,用戶使用鼠標(biāo)單擊圖1 左圖所示的病樹,程序?qū)⑸捎覉D所示的標(biāo)記圖。圖中的標(biāo)點(diǎn)蘊(yùn)含了病樹的位置信息。
圖1 病樹圖和標(biāo)記圖
式(1)所示為傳統(tǒng)的基于回歸方法優(yōu)化的損失函數(shù):
式中,N是樣本個數(shù);φ是回歸函數(shù),可以使用神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等回歸的模型來實(shí)現(xiàn);I(i)和y(i)分別表示第i幅圖像及其中病樹的數(shù)量。顯然,式(1)只考慮了圖像的全局特征-圖像中病樹的數(shù)量,但對病樹出現(xiàn)的位置不敏感,因此,使用式(1)作為損失函數(shù)的方法不能有效利用待計數(shù)對象的位置信息。
圖2 是病樹位置不同的兩個模擬標(biāo)記圖像,左邊的標(biāo)記圖像對應(yīng)的病樹圖像的左上角有3 棵病樹,而右邊的標(biāo)記圖像對應(yīng)的病樹圖像的右上角有3棵病樹。式(1)的損失函數(shù)不能區(qū)分這兩個標(biāo)記圖像對應(yīng)的病樹圖像的差別,優(yōu)化得到的φ函數(shù)只要使得φ(I(i))接近3 即可,而病樹位置的不同,并不能影響優(yōu)化過程。也就是說,式(1)所示的損失函數(shù)只考慮了圖像中的病樹數(shù)量,而忽略了病樹在圖像中出現(xiàn)的位置。
圖2 病樹位置不同的兩個模擬標(biāo)記圖像
為了有效利用標(biāo)注圖像中的位置信息,可以采用對稱分割的方法,將病樹圖像和病樹圖像的標(biāo)記圖像在水平和垂直兩個方向?qū)ΨQ分割,圖2 所示的標(biāo)記圖像經(jīng)過一次對稱分割和二次對稱分割以后的標(biāo)記圖像如圖3 所示。
圖3 一次分割和二次分割后的標(biāo)記圖像
為采用對稱分割后,相應(yīng)的損失函數(shù)如式(2)所示:
式(2)中,B(i)表示第i幅圖像經(jīng)過對稱分割以后得到的子區(qū)域的集合,和分別表示第i幅圖像的第b個子區(qū)域的圖像和第b個子區(qū)域中的病樹數(shù)量。
式(2)對病樹的位置是敏感的,當(dāng)采用圖3 左列所示的一次分割的時候,病樹圖和標(biāo)記圖都被對稱分為4 小塊,當(dāng)病樹圖像中的病樹出現(xiàn)在左上角而標(biāo)記圖像中的標(biāo)記也出現(xiàn)在左上角時,該幅圖像的損失loss(i)為:
而當(dāng)病樹圖像中的病樹出現(xiàn)在右上角,而標(biāo)記圖像中的標(biāo)記出現(xiàn)在左上角時,該幅圖像的損失loss(i)為:
這說明當(dāng)采用對稱分割以及式(2)所示的損失函數(shù)時,優(yōu)化算法會傾向于在標(biāo)記對應(yīng)的子區(qū)域內(nèi)尋找圖像的特征,并將其映射為子區(qū)域內(nèi)的病樹數(shù)量。因此,對稱分割方法有利于優(yōu)化算法利用標(biāo)記圖像中包含的病樹的位置信息。
利用式(2)訓(xùn)練的回歸函數(shù)φ能夠預(yù)測子區(qū)域圖像中的病樹數(shù)量,其輸入為分割得到的子區(qū)域圖像,輸出是子區(qū)域中的病樹數(shù)量。第i個完整圖像中的病樹數(shù)量的預(yù)測值如式(5)所示:
分割方法帶來的另一個好處是減少了過擬合風(fēng)險。一方面,分割方法使得回歸函數(shù)φ的輸入從整個圖像變?yōu)閳D像的子區(qū)域,輸入規(guī)模的下降導(dǎo)致模型參數(shù)數(shù)量的減少;另一方面,分割也導(dǎo)致可用標(biāo)記樣本數(shù)量增加,從而減少過擬合發(fā)生的風(fēng)險。
圖4 所示為修改后的VGG16 卷積網(wǎng)絡(luò)建模,它的回歸函數(shù)為φ。在原始的VGG16 模型上,改變了第一層的輸入尺寸,并在最后增加了一個flatten 層和兩個全連接層。卷積層用于病樹圖特征的提取,全連接層用于建模特征到病樹數(shù)量的回歸函數(shù)。卷積層和池化層構(gòu)成模型的前5 個模塊。最后三層第一層用于將提取的特征展開為一維數(shù)據(jù),第二層是將提取的數(shù)據(jù)大小壓縮至1×1 024;最后一層輸出圖像中病樹的統(tǒng)計數(shù)量。
圖4 改進(jìn)后VGG16模型結(jié)構(gòu)圖
當(dāng)輸入模型的圖像分辨率為114×152時,模型摘要數(shù)據(jù)如圖5所示,模型一共使用21 008 193個參數(shù)。
圖5 神經(jīng)網(wǎng)絡(luò)模型摘要圖
該研究通過對稱分割圖像來利用標(biāo)記圖像中的位置信息,提高了目標(biāo)計數(shù)算法的統(tǒng)計準(zhǔn)確率。為了驗(yàn)證算法的有效性,使用python 語言和tensorflow機(jī)器學(xué)習(xí)庫實(shí)現(xiàn)了基于對稱分割的計數(shù)算法,實(shí)驗(yàn)使用40 張病樹圖像作為訓(xùn)練集,訓(xùn)練集總計含有505 棵病樹,平均每張圖像含有12.625 棵病樹。實(shí)驗(yàn)使用了額外30 張圖像作為測試集檢測訓(xùn)練效果,測試集含有608 棵病樹,平均每張圖像含有20.267 棵病樹。所有圖像的分辨率為456×608。使用參數(shù)γ控制對稱分割的次數(shù),比如當(dāng)γ=0 時,輸入神經(jīng)網(wǎng)絡(luò)的分辨率為456×608 的原始圖像,當(dāng)γ=2 時,表示在水平和垂直方向做了兩次分割,得到16 個分別率為114×152 的子圖像。
實(shí)驗(yàn)計算了在不同γ值下,預(yù)測的病樹數(shù)量與真實(shí)病樹數(shù)量y(i)絕對誤差的平均值MAE和絕對誤差方差VAR。MAE的計算公式如式(6)所示:
VAR的計算公式如式(7)所示:
不同分割次數(shù)γ值下MAE和VAR的計算結(jié)果如表1 所示。從表1 中可以看出,相對于不分割的方法(γ=0),對稱分割方法(γ≥1)能夠有效降低病樹計數(shù)中的絕對平均錯誤和絕對錯誤的方差,且隨著分割次數(shù)的增加,絕對平均錯誤和絕對錯誤的方差會逐漸減少,但當(dāng)分割次數(shù)達(dá)到一定的數(shù)量(γ=5)時,絕對平均錯誤和絕對錯誤的方差開始增加,這可能是因?yàn)榉指畲螖?shù)太大,單個子圖像不能包含一個完整的病樹,導(dǎo)致特征提取失敗??傊?,實(shí)驗(yàn)結(jié)果表明,適當(dāng)對稱分割病樹圖像和標(biāo)定圖像能夠提高計數(shù)算法的準(zhǔn)確率和穩(wěn)定性。
表1 不同分割次數(shù)γ 值下MAE和VAR的計算結(jié)果
文中提出了一種基于對稱分割的計數(shù)算法,實(shí)現(xiàn)了松材線蟲病樹的統(tǒng)計。一方面,通過對稱的分割能夠有效利用病樹標(biāo)記圖像中的位置信息,提高計數(shù)算法的準(zhǔn)確度。另一方面,對稱分割能夠減少輸入圖像的尺寸,降低模型的復(fù)雜程度,保證在訓(xùn)練樣本較少的情形下,能夠提高算法統(tǒng)計的準(zhǔn)確率。這樣的優(yōu)點(diǎn)使得對稱分割方法特別適合情況復(fù)雜多變的森林病蟲害監(jiān)測場景。