張俊鑫,郭海京,3*,唐孝培,金詩(shī)程
(1.廣東省國(guó)土資源測(cè)繪院,廣東 廣州 510500;2.中山大學(xué)地理科學(xué)與規(guī)劃學(xué)院,廣東 廣州 510275;3.自然資源部華南熱帶亞熱帶自然資源監(jiān)測(cè)重點(diǎn)實(shí)驗(yàn)室,廣東 廣州 510663)
深度學(xué)習(xí)是特殊的機(jī)器學(xué)習(xí)算法,其模型是深層的人工神經(jīng)網(wǎng)絡(luò)。深度學(xué)習(xí)最早由多倫多大學(xué)教授Hinton[1-2]提出,是指一種模擬人類大腦研究學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò)算法。其主流算法包括受限波爾茲曼機(jī)(RBM)、深度信念網(wǎng)絡(luò)(DBN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)以及自動(dòng)編碼器(AE)等,后3 種算法廣泛應(yīng)用于遙感影像分類與識(shí)別中,以CNN 模型最為典型[3]。然而,影像數(shù)據(jù)局限于單一視角,主要關(guān)注于目標(biāo)的空間布局特征,忽略了剖面和層次特征,無(wú)法實(shí)現(xiàn)更細(xì)致的分類[4]。因?qū)嵕罢掌嘁暯?、高分辨率等特點(diǎn),研究者開(kāi)始關(guān)注基于照片的分類方法,通過(guò)深度學(xué)習(xí)CNN對(duì)照片進(jìn)行識(shí)別[5-6],實(shí)現(xiàn)更加精細(xì)化的分類。
本文提出一種輕量化的神經(jīng)網(wǎng)絡(luò)模型,基于三調(diào)照片實(shí)現(xiàn)地表覆蓋類型的精細(xì)化識(shí)別。實(shí)驗(yàn)中,以廣東省部分縣區(qū)為對(duì)象,利用8 037 張三調(diào)照片樣本進(jìn)行模型訓(xùn)練與分類實(shí)驗(yàn)研究,取得了較好的效果。研究結(jié)果表明,運(yùn)用輕量化神經(jīng)網(wǎng)絡(luò)模型檢測(cè)三調(diào)實(shí)地照片,可以識(shí)別地表上的柚子、香蕉、菠蘿等作物,滿足國(guó)土空間的精細(xì)化管理需求,同時(shí)為廣東省地區(qū)的耕地恢復(fù)潛力分析提供數(shù)據(jù)支撐。
本文使用廣東省部分縣區(qū)的三調(diào)照片作為模型的驗(yàn)證與分析數(shù)據(jù),對(duì)野外實(shí)地拍攝的照片進(jìn)行人工標(biāo)注,照片像素為1 920×1 080,共標(biāo)記了8 037 張照片用于模型的訓(xùn)練與驗(yàn)證,其中菠蘿照片4 073 張、柚子照片1 798 張、香蕉照片538 張、其他照片1 628張(如表1所示),樣本照片如圖1所示。
表1 樣本類別及數(shù)量
圖1 樣本照片
卷積神經(jīng)網(wǎng)絡(luò)的參數(shù)量通常較多,在實(shí)際應(yīng)用中受到計(jì)算能力的限制,為了使得本文的方法能夠得到大范圍推廣應(yīng)用,本文的核心目的是提出一個(gè)輕量化的神經(jīng)網(wǎng)絡(luò)模型,減少模型的計(jì)算量與參數(shù)量,具體的網(wǎng)絡(luò)結(jié)構(gòu)見(jiàn)圖2?;A(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)的靈感來(lái)自于EfficientNet[7],主要包含CSPMBConv 和CSPMBConvBlock等基礎(chǔ)模塊,各模塊的詳細(xì)結(jié)構(gòu)見(jiàn)圖3。同時(shí)考慮到三調(diào)數(shù)據(jù)的場(chǎng)景特征豐富,在網(wǎng)絡(luò)中加入了多尺度特征融合,有效獲取不同尺度的場(chǎng)景特征信息。基于此,本文提出了一個(gè)高效多尺度場(chǎng)景卷積神經(jīng)網(wǎng)絡(luò)(efficient multi-scale context network,EMCNet)。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)圖
圖3 網(wǎng)絡(luò)模塊細(xì)節(jié)圖
神經(jīng)網(wǎng)絡(luò)通常是由許多卷積層構(gòu)成,一個(gè)卷積網(wǎng)絡(luò)層i可以定義為一個(gè)函數(shù):Yi=Fi( )Xi,其中Fi是算子,Yi為輸出張量,Xi為輸入張量,張量形狀為Hi,Wi,Ci,其中Hi和Wi為輸入張量的空間分辨率大小,Ci為通道數(shù)量。卷積神經(jīng)網(wǎng)絡(luò)N可以由一系列卷積層來(lái)表示:
在實(shí)際應(yīng)用中,卷積神經(jīng)網(wǎng)絡(luò)層通常被劃分為多個(gè)階段,每個(gè)階段的所有層都具有相同的結(jié)構(gòu),例如ResNet[8]有5個(gè)階段,除了第一層進(jìn)行下采樣外,其余每個(gè)階段的卷積層都包含相同的卷積類型。因此,我們可以將卷積神經(jīng)網(wǎng)絡(luò)定義為:
式中,F(xiàn)Li i為卷積層Fi在第i階段重復(fù)了Li次;Hi,Wi,Ci為第i層的輸入張量X的大小。
與常規(guī)的卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)主要關(guān)注于尋找最佳的網(wǎng)絡(luò)層結(jié)構(gòu)Fi不同,模型縮放試圖擴(kuò)大網(wǎng)絡(luò)深度(Li)、寬度(Ci)以及分辨率(Hi,Wi),而不改變基礎(chǔ)網(wǎng)絡(luò)中預(yù)定義的Fi。通過(guò)修正Fi,模型縮放簡(jiǎn)化了計(jì)算資源約束下的模型結(jié)構(gòu)設(shè)計(jì)問(wèn)題,但仍有很大的空間去探索網(wǎng)絡(luò)每一層中不同的Li,Ci,Hi,Wi組合。為此,谷歌大腦團(tuán)隊(duì)提出了EffcientNet[7],可以將網(wǎng)絡(luò)縮放表述為一個(gè)優(yōu)化問(wèn)題:
式中,w,d,r為網(wǎng)絡(luò)縮放的寬度、深度和分辨率的系數(shù);F^i,L^i,C^i,H^i,W^i為基礎(chǔ)網(wǎng)絡(luò)中預(yù)定義的參數(shù)。
網(wǎng)絡(luò)縮放的主要難點(diǎn)在于最優(yōu)的d,w,r存在相互依賴,且在不同的資源約束下取值也會(huì)發(fā)生變化。正是由于這個(gè)難點(diǎn)的存在,傳統(tǒng)方法一般只考慮其中一個(gè)參數(shù)的變化。
縮放網(wǎng)絡(luò)深度是許多卷積網(wǎng)絡(luò)最常用的方法[8,10-11]。理想情況下,更深層的卷積神經(jīng)網(wǎng)絡(luò)可以捕捉到更豐富、更復(fù)雜的特征信息,并且同時(shí)可以保持良好的泛化能力。然而,梯度消失問(wèn)題會(huì)導(dǎo)致更深的網(wǎng)絡(luò)也更難以訓(xùn)練[12]。盡管近年來(lái)提出的跳躍連接(skip connections)[8]和批歸一化(batch normalization)[13]緩解了訓(xùn)練問(wèn)題,但更深的網(wǎng)絡(luò)所帶來(lái)的精度增益逐漸減小。例如ResNet-1000 雖然有更多的層,但精度與ResNet-101相似。
縮放網(wǎng)絡(luò)寬度通常用于小尺寸模型[14-16]。在Zagoruyko[12]的研究中,更寬網(wǎng)絡(luò)模型往往能夠獲取更細(xì)粒度的特征,也更容易訓(xùn)練。然而,極寬但較淺的網(wǎng)絡(luò)往往難以捕捉更高層次的特征。
使用更高分辨率的輸入圖像,卷積神經(jīng)網(wǎng)絡(luò)可以獲取更細(xì)粒度的特征。從早期VGG[21]、AlexNet[22]等網(wǎng)絡(luò)的224 輸入大小開(kāi)始,現(xiàn)代卷積神經(jīng)網(wǎng)絡(luò)傾向于使用299×299[10]或331×331[17]的輸入大小來(lái)獲得更好的精度。Huang[18]等通過(guò)輸入480×480的大小實(shí)現(xiàn)了最優(yōu)的網(wǎng)絡(luò)分類精度,分辨率為480×480。而更高的分辨率,如600×600,也被廣泛應(yīng)用于目標(biāo)檢測(cè)網(wǎng)絡(luò)中[19-20]。
平衡網(wǎng)絡(luò)深度、寬度和分辨率3 個(gè)維度獲得更好的準(zhǔn)確率和效率,EfficientNet 使用復(fù)合系數(shù)φ對(duì)3 個(gè)維度進(jìn)行縮放,具體如下:
式中,α,β,γ為對(duì)應(yīng)d,w,r運(yùn)行維度的資源分配參數(shù);φ為資源控制系數(shù);在滿足約束條件的情況下,通過(guò)神經(jīng)架構(gòu)搜索對(duì)各參數(shù)進(jìn)行優(yōu)化調(diào)整;在參數(shù)量和運(yùn)算量不增加的基礎(chǔ)上,EfficientNet 模型通過(guò)不斷調(diào)整網(wǎng)絡(luò)深度、網(wǎng)絡(luò)寬度和圖像分辨率的系數(shù)達(dá)到最優(yōu)的精度。
網(wǎng)絡(luò)縮放實(shí)現(xiàn)了最優(yōu)的輸入分辨率,網(wǎng)絡(luò)深度以及網(wǎng)絡(luò)寬度的組合,能夠在減少網(wǎng)絡(luò)參數(shù)量的同時(shí)保證網(wǎng)絡(luò)的分類精度。而有效的網(wǎng)絡(luò)結(jié)構(gòu)也能夠減少網(wǎng)絡(luò)的參數(shù)量[23]。最近提出的跨階段局部網(wǎng)絡(luò)(CSPNet)[24]在減少計(jì)算量的同時(shí)可以實(shí)現(xiàn)更豐富的梯度組合。CSPNet 是通過(guò)將基礎(chǔ)層的特征圖劃分為兩部分,然后通過(guò)提出的跨階段層次結(jié)構(gòu)將其合并來(lái)實(shí)現(xiàn)的。其主要思想是通過(guò)分割梯度流,使梯度流通過(guò)不同的網(wǎng)絡(luò)路徑傳播。現(xiàn)有的CNN 通過(guò)輕量化后,準(zhǔn)確率大大下降,而CSPNet 能夠加強(qiáng)CNN 的學(xué)習(xí)能力,使其在輕量化的同時(shí)保持足夠的準(zhǔn)確性。同時(shí),過(guò)高的計(jì)算瓶頸會(huì)導(dǎo)致更多的循環(huán)來(lái)完成推理過(guò)程,或者一些算術(shù)單元會(huì)經(jīng)常閑置。而CSPNet能夠?qū)⒂?jì)算量均勻的分布在CNN 的每一層,從而有效的提升每個(gè)計(jì)算單元的利用率,減少不必要的計(jì)算消耗。
本文所采用的實(shí)驗(yàn)流程如圖4 所示,從三調(diào)數(shù)據(jù)篩選出部分樣例照片,并對(duì)照片進(jìn)行人工標(biāo)注,然后根據(jù)樣例照片制作數(shù)據(jù)集,將數(shù)據(jù)集按照7∶3的比例劃分訓(xùn)練集與測(cè)試集。訓(xùn)練過(guò)程中對(duì)數(shù)據(jù)進(jìn)行隨機(jī)增強(qiáng),包括水平翻轉(zhuǎn)、鏡像翻轉(zhuǎn)、上下翻轉(zhuǎn)、高斯噪聲模糊、0~15°的隨機(jī)旋轉(zhuǎn),然后將數(shù)據(jù)采樣至512×512的大小并歸一化輸入進(jìn)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。訓(xùn)練結(jié)束后對(duì)模型進(jìn)行測(cè)試,獲取模型的測(cè)試精度,檢驗(yàn)?zāi)P偷聂敯粜浴?/p>
圖4 實(shí)驗(yàn)流程圖
本文訓(xùn)練所使用的框架為pytorch,訓(xùn)練周期為100,優(yōu)化器選擇SGD,初始學(xué)習(xí)率為0.01,衰減系數(shù)為0.000 1,學(xué)習(xí)率采用WarmUp學(xué)習(xí)率調(diào)整策略,后續(xù)學(xué)習(xí)率每25 個(gè)周期衰減10 倍,訓(xùn)練過(guò)程中采用NVIDIA GTX 2080 ti GPU進(jìn)行加速。
由于訓(xùn)練數(shù)據(jù)存在不均衡的現(xiàn)象,本文的損失函數(shù)并未使用普通的交叉熵?fù)p失函數(shù),而是對(duì)交叉熵?fù)p失函數(shù)進(jìn)行了加權(quán),加權(quán)的交叉熵?fù)p失函數(shù)公式如下:
在對(duì)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練后,加載模型的訓(xùn)練權(quán)重,并利用預(yù)先劃分的測(cè)試集對(duì)模型進(jìn)行測(cè)試,測(cè)試的結(jié)果如圖5 展示的混淆矩陣所示??梢钥吹礁鱾€(gè)類別的分類精度均達(dá)到了非常高的精度,整體誤分情況較少,測(cè)試集的F1-score達(dá)到了0.988 3,這說(shuō)明本文提出的網(wǎng)絡(luò)模型能夠有效捕獲三調(diào)數(shù)據(jù)的場(chǎng)景特征,提升最終的分類精度。
圖5 測(cè)試集混淆矩陣
為驗(yàn)證本文提出的模型的有效性,本文對(duì)比了Inceptionv3[11],ResNet101[7],DenseNet169[9],ResNeXt50[25]和WideResNet50[12]5 種模型,在實(shí)驗(yàn)參數(shù)上保持一致,得到的結(jié)果如表2 所示。根據(jù)結(jié)果可以看出,本文的網(wǎng)絡(luò)模型在精度上均優(yōu)于其余模型,并且參數(shù)量較少,其余模型參數(shù)量均在千萬(wàn)級(jí)別,本文的方法參數(shù)量在百萬(wàn)級(jí)別。在計(jì)算量方面,以輸入512×512 大小為基準(zhǔn),統(tǒng)計(jì)了各個(gè)模型的計(jì)算量,其中WideResNet50的計(jì)算量最高,達(dá)到了119.4 BFLOPs,其余模型也均超過(guò)30 BFLOPs,可以看到主流網(wǎng)絡(luò)模型的計(jì)算量均較高,不適合大規(guī)模推理預(yù)測(cè),耗費(fèi)時(shí)間的同時(shí)也需要消耗大量的計(jì)算資源。而本文提出的模型計(jì)算量?jī)H為15.3 BFLOPs,在減少計(jì)算量的同時(shí)并沒(méi)有降低模型的精度,由此可見(jiàn),本文提出的模型無(wú)論在速度和精度方面均有所提高。
表2 EMCNet與主流網(wǎng)絡(luò)模型的對(duì)比結(jié)果
本文提出了一種輕量化的神經(jīng)網(wǎng)絡(luò)模型,該模型利用了最新的網(wǎng)絡(luò)縮放技巧,綜合精度與效率,并對(duì)特征進(jìn)行跨階段融合,能夠?qū)μ卣鬟M(jìn)行有效利用。與目前主流的神經(jīng)網(wǎng)絡(luò)模型進(jìn)行對(duì)比,本文提出的模型不僅在速度上具有較大的優(yōu)勢(shì),且在精度上也表現(xiàn)更優(yōu),在實(shí)際的場(chǎng)景應(yīng)用中能夠達(dá)到較高的分類精度,可以實(shí)現(xiàn)利用該模型對(duì)三調(diào)數(shù)據(jù)進(jìn)行自動(dòng)篩選,有效提高篩選效率,減少人工參與,具有重要的推廣意義。