周浪 樊坤 瞿華 張丁然
(北京林業(yè)大學(xué) 經(jīng)濟管理學(xué)院,北京 100083)
森林火災(zāi)防治是建設(shè)生態(tài)文明的重要內(nèi)容,是保護生態(tài)資源必須完成的任務(wù)。近幾年我國接連發(fā)生重大火災(zāi)事故,給社會帶來了巨大的經(jīng)濟損失和人員傷亡[1]。森林火災(zāi)防治往往采用“政策宣傳”、“火災(zāi)隔離”和“技術(shù)運用”的方式,而在此過程中,預(yù)防火災(zāi)的發(fā)生是降低損失的最好方式,它可以從源頭上杜絕森林火災(zāi)。因此,森林火災(zāi)發(fā)生的前期識別顯得極為重要,而自動化識別又是成本最低的一種識別方式。
近幾年,人工智能領(lǐng)域的大量研究結(jié)果表明,深度學(xué)習(xí)技術(shù)在解決圖像識別問題時具有高效率和易操作特性,因此不少學(xué)者也嘗試將其應(yīng)用到森林火災(zāi)識別領(lǐng)域。這些研究可以自動化識別明火和煙霧,充分展現(xiàn)出深度學(xué)習(xí)相較傳統(tǒng)森林火災(zāi)識別技術(shù)的明顯優(yōu)勢[2-4]。不僅如此,在常規(guī)的深度學(xué)習(xí)模型上,不少學(xué)者通過優(yōu)化網(wǎng)絡(luò)模型結(jié)構(gòu)進一步提升識別效果,包括改進卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、顏色以及紋理特征提取的方式等[5-7]。可以看出,深度學(xué)習(xí)模型解決森林火災(zāi)識別問題的手段更為多樣,其既可以直接對模型進行應(yīng)用,也可以通過改進其結(jié)構(gòu)進行優(yōu)化,還可以針對圖像的特征進行相關(guān)操作。
然而上述深度學(xué)習(xí)模型較為基礎(chǔ),沒有跟上深度學(xué)習(xí)發(fā)展迭代的步伐,未將更為先進的模型應(yīng)用在森林火災(zāi)識別領(lǐng)域,從而限制了這項技術(shù)在森林火災(zāi)防治上的發(fā)展,且本身存在的缺陷也沒有進行優(yōu)化和討論,例如模型中存在的訓(xùn)練梯度消失和爆炸,以及火災(zāi)數(shù)據(jù)復(fù)雜難以訓(xùn)練等問題。為此,本文以目前因具備注意力機制而備受關(guān)注的Efficient-Net 模型為基礎(chǔ),通過改進其注意力模塊,提出新模型EfficientNet-E,以進一步提升森林火災(zāi)識別效果。
目前,深度學(xué)習(xí)技術(shù)在各個領(lǐng)域和行業(yè)發(fā)揮著巨大的作用,也帶來了可觀的經(jīng)濟效益。廣泛的使用和相關(guān)概念的傳播使得該技術(shù)為大眾所熟知,例如面容支付和疫情期間頻繁使用到的人臉識別門禁系統(tǒng)。不僅如此,深度學(xué)習(xí)模型也在采摘定位[8]、癌細胞識別[9]、農(nóng)作物蟲害鑒定[10]等領(lǐng)域發(fā)揮著重要作用。這些研究充分反映出深度學(xué)習(xí)技術(shù)在應(yīng)用領(lǐng)域的火熱程度。
從時間線上來看,深度學(xué)習(xí)的基礎(chǔ)模型包括AlexNet、VGGNet、GoogleNet、ResNet 和DenseNet,上述5種模型成為很多其他改進模型的基礎(chǔ),并被應(yīng)用到各個領(lǐng)域的圖像識別問題上,取得了很好的應(yīng)用效果。然而,這些經(jīng)典模型在設(shè)計上大多依靠工程經(jīng)驗,難以把握模型的設(shè)計思路。簡單來說,這些模型的設(shè)計難以顯示模型參數(shù)(模型寬度、模型深度和輸入圖片大小等)之間的內(nèi)在聯(lián)系[11-12]。
為解決上述問題,2019 年出現(xiàn)的EfficientNet模型通過混合縮放的方式同時兼顧了網(wǎng)絡(luò)深度、網(wǎng)絡(luò)寬度和圖像大小3要素來設(shè)計模型,成為能夠在一定程度上把握這3個維度之間關(guān)系的網(wǎng)絡(luò)。
在很長一段時間,經(jīng)典模型的改進往往是從深度(δ)、寬度(σ)和輸入圖形分辨率(r)等方面入手,即分別通過比例α、β和γ對三者進行縮放,然而這3 個參數(shù)的設(shè)定往往取決于工程經(jīng)驗,三者之間對性能影響的關(guān)系往往沒有較強的規(guī)律性總結(jié)。為此,Google Brain發(fā)布了EfficientNet來解決此問題,即通過參數(shù)搜索和復(fù)合系數(shù)來確定三者之間的關(guān)系,使得模型的改進不再是單純?nèi)Q于工程經(jīng)驗,而是更加有規(guī)律可循。最終,EfficientNet在標準數(shù)據(jù)集上的效果要明顯高于經(jīng)典的深度學(xué)習(xí)模型[13],且在很多領(lǐng)域得到了驗證[14-16]。
神經(jīng)網(wǎng)絡(luò)搜索技術(shù)的目標是替代人工進行自動化設(shè)計合適的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),EfficientNet設(shè)計思想即為自動化設(shè)計深度、寬度和圖像分辨率的參數(shù)以及發(fā)現(xiàn)它們之間的關(guān)系。當(dāng)然,為了減少搜索的時間,可以在搜索過程中加入研究人員的先驗知識。
原始EfficientNet中3要素之間的基本公式為
先以MBConv 為基礎(chǔ)模塊搜索出一個基準網(wǎng)絡(luò)EfficientNet-B0,隨后設(shè)置θ=1,然后通過參數(shù)搜索方法來得到基礎(chǔ)的α、β、γ值,再變換θ的值得到多個延伸模型。這個過程中,模型上述的3個維度會在θ系數(shù)的約束下規(guī)律性地同步擴張或收縮。
在結(jié)構(gòu)上,EfficientNet 模型是由如圖1 所示的多個稱之為MBConv的基本結(jié)構(gòu)(單元)堆疊而成。
圖1 EfficientNet模型的基本單元MBConvFig.1 Basic unit MBConv of EfficientNet model
圖1中:n為輸入數(shù)據(jù)的寬高,k、s為深度可分離卷積(DW,Depthwise Separable Convolution)尺寸和步長,Conv 為卷積操作,BN 為批量正則化(Batch Normalization),Swish 為激活函數(shù),Dropout為隨機失活。DW 卷積更改了卷積操作的方式,以犧牲微弱準確性為代價使得卷積操作更加輕便,但不改變通道數(shù)。SE 模塊主要用來學(xué)習(xí)通道之間的相關(guān)性,獲取注意力信息。注意力機制的作用是找到圖像數(shù)據(jù)中真正感興趣的區(qū)域,能夠更高效率地完成識別任務(wù)。殘差連接(ShortCut)通過保留一定程度的原始信息,來緩解網(wǎng)絡(luò)訓(xùn)練過程中的梯度消失和爆炸等問題,后文圖中此類連線皆為殘差連接。
EfficientNet 有著其他常規(guī)模型所不具備的優(yōu)勢,除了具備網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)之間的關(guān)聯(lián)性,另一個重要的優(yōu)勢是其自帶注意力機制SE模塊。
SE 注意力模塊的主要功能是分配圖像中各個通道的權(quán)重。有了不同的權(quán)重之后,模型就可以關(guān)注重要度不同的地方,從而提取到不同的特征信息。SE模塊如圖2所示。
圖2 SE注意力機制結(jié)構(gòu)模塊Fig.2 Structural module of SE attention mechanism
SE 模塊的缺點表現(xiàn)在會對信息流進行降維,這就造成了信息會在此過程發(fā)生一定程度的丟失,而丟失的信息需要用更復(fù)雜的模型結(jié)構(gòu)作為代價進行彌補。圖3中,信息流在“降維”和“升維”的過程中發(fā)生了較大的變化,信息損失便產(chǎn)生于此過程中。
圖3 SE模塊數(shù)據(jù)變換示意圖Fig.3 Schematic diagram of SE module data transformation
針對SE 模塊對信息流進行降維會產(chǎn)生數(shù)據(jù)信息丟失的問題,本文通過使用注意力提取性能更好的ECA模塊(高效通道注意力模塊)替換原Efficient-Net中的SE模塊來規(guī)避上述問題。ECA模塊沒有信息降維操作,而是捕捉跨通道之間的交互信息,從而使得模型只花費較小復(fù)雜度的代價獲得最終效果的提升[17]。
不同于SE 模塊,ECA 模塊在信息傳遞時利用大小為k的一維卷積操作實現(xiàn)局部跨通道交互,保留了通道間的依賴關(guān)系,具體步驟如下。
步驟1和SE模塊一樣,對輸入的特征圖進行全局平均池化(GAP)。
步驟2利用一個卷積核大小為k、維度為1的卷積模塊(Convk)對步驟1的特征圖進行卷積操作。
步驟3將步驟2中的結(jié)果輸入到Sigmoid 激活函數(shù)(Sig)中獲取每個通道的權(quán)重w。步驟2 和3 的計算公式為
步驟4將步驟3 中得到的權(quán)重與原始的特征圖相乘,即圖1中的殘差連接操作,從而得到新的特征圖。
整個過程如圖4所示。
圖4 ECA模塊數(shù)據(jù)變換示意圖Fig.4 Schematic diagram of ECA module data transformation
由圖4 可以看出,ECA 模塊依然保留了通道的信息和通道間的依賴關(guān)系權(quán)重w,并且計算量增加幅度很小,使得信息傳遞更加充分。因此,本研究利用ECA 模塊替代SE 模塊構(gòu)建新的EfficientNet 變體,即EfficientNet-E,需要說明的是,EfficientNet-E由多個MBConv 結(jié)構(gòu)組合而成。帶有ECA 模塊的MBConv的基本結(jié)構(gòu)見圖5。
圖5 改進后的MBConv基本結(jié)構(gòu)圖Fig.5 Improved MBConv basic structure diagram
本節(jié)所涉及到的注意力機制改進和模型的設(shè)計是整個項目的基礎(chǔ),森林火災(zāi)圖像識別的核心功能由EfficientNet-E來完成,基本框架的設(shè)計可以讓整個設(shè)計思路明確,從而可以更好地完成程序上的設(shè)計。
EfficientNet-E 模型由多個包含了ECA 模塊的MBConv 組成。將2.1 節(jié)中的設(shè)計進行簡要的概括可以得到圖6 中EfficientNet-E、MBConv 和ECA 三者之間的關(guān)系。
圖6 EfficientNet-E、MBConv和ECA的關(guān)系圖Fig.6 Diagram of relationship of EfficientNet-E, MBConv and ECA
由于更換了性能更好的注意力機制模塊,EfficientNet-E能夠保留更多的圖片數(shù)據(jù)信息,使得模型在訓(xùn)練的過程中能更好地提取特征,從而促進準確率和訓(xùn)練效率的提升。對于森林火災(zāi)這類背景復(fù)雜、干擾信息眾多的圖像數(shù)據(jù),該模型從理論上來說是更好的選擇。
為此,本文首先設(shè)計出適合該識別任務(wù)的模型結(jié)構(gòu),然后進行訓(xùn)練和測試。EfficientNet-E架構(gòu)由多個MBConv 結(jié)構(gòu)組成,而每個MBConv 在參數(shù)設(shè)置上又不盡相同。
包含了ECA 模塊的MBConv 數(shù)據(jù)架構(gòu)圖如圖7所示,假設(shè)此處輸入數(shù)據(jù)大小為(32,112,112)。圖中立方體代表訓(xùn)練過程中的數(shù)據(jù),本圖以EfficientNet-E 中的第1 階段MBConv 為例。下面將介紹重要環(huán)節(jié)所涉及的數(shù)據(jù)操作,C、D、E為數(shù)據(jù)維度。
圖7 MBConv模型數(shù)據(jù)架構(gòu)圖Fig.7 MBConv model data architecture
(1)C1、C2為卷積操作,且都為1×1的卷積層,其中C1 主要用于升維,C2 用于降維。卷積操作是深度學(xué)習(xí)模型中最為常見的操作之一,功能十分廣泛,其中的特征提取為其最主要功能,在模型的最后也可以起到全連接層的作用。
(2)B1、B2為正則化操作。正則化通過控制數(shù)據(jù)的分布狀態(tài)來達到抑制過擬合的效果。模型中使用的正則化方式為批量正則化,即BN操作。
(3)DW 為深度可分離卷積,也是卷積操作中的一種,該結(jié)構(gòu)同樣用來提取特征,和常規(guī)的卷積操作不同之處在于每個卷積核只負責(zé)計算一個圖片顏色通道,而常規(guī)的卷積操作每個卷積核的3個顏色通道都進行計算。由此可見,DW 卷積操作的計算量會小于常規(guī)卷積操作。
DW 卷積的計算量和常規(guī)卷積計算量的比例關(guān)系為
其中,DK×DK×M為輸入特征圖的尺寸,DF×DF×M為卷積核的尺寸,N為卷積核數(shù)量。
(4)S1 和S2 為自適應(yīng)激活函數(shù)(Swish)。Swish函數(shù)的特點是沒有函數(shù)上界,但存在函數(shù)下界,函數(shù)平滑且具備非單調(diào)性等。整體而言,Swish 的性能優(yōu)于常見的Relu函數(shù),其函數(shù)為
(5)ECA 模塊數(shù)據(jù)架構(gòu)如圖8 所示。由于輸入圖片在進入第1 階段的MBConv 時進行了一次卷積操作,所以此時的數(shù)據(jù)大小為(32,112,112)。在ECA 模塊中,首先進行了全局平均池化操作(GAP),而圖8 中的C 操作為1×1 的卷積操作,用來學(xué)習(xí)通道的注意力,且保持了特征的形狀,得到了1×1×32的特征圖;然后將此特征圖與原始的(32,112,112)特征圖進行逐通道相乘,最終輸出具備通道注意力的特征圖。
圖8 ECA模塊數(shù)據(jù)架構(gòu)圖Fig.8 ECA module architecture
在對1×1×h特征圖進行1×1 的卷積學(xué)習(xí)時,如果通道數(shù)h(圖8中h為32)較大,用較小尺寸的1×1卷積核進行通道信息獲取顯然不太合適,無法擴大感受野,從而使得信息獲取不全面。同樣地,如果h比較小,使用較大尺寸的1×1卷積核也不太合適。因此,在ECA 模塊中使用了動態(tài)卷積核[17]來做1×1卷積,從而更好地學(xué)習(xí)不同通道之間的信息。
(6)殘差連接。在MBConv 模塊中,只有當(dāng)原始數(shù)據(jù)的形狀和學(xué)習(xí)到的特征數(shù)據(jù)形狀相同,即數(shù)據(jù)維度E與C相同的時候才會出現(xiàn),作用在于抑制過擬合以及緩解梯度消失和爆炸等問題。
本文提出的EfficientNet-E 模型的整體架構(gòu)如圖9 所示,其中FC 表示全連接操作。以一張(3,224,224)圖片為輸入,首先進行卷積操作,然后依次經(jīng)過7 個MBConv 結(jié)構(gòu),最后進行一個全連接層計算得到一個分類結(jié)果。 本文所使用的EfficientNet-E 網(wǎng)絡(luò)參數(shù)為θ= 1、α= 1.2、β= 1.1和γ= 1.15。
圖9 EfficientNet-E模型的簡要整體架構(gòu)圖Fig.9 Brief overall architecture of EfficientNet-E model
值得注意的是:每一個MBConv 都有各自的數(shù)據(jù)參數(shù),這也使得每個MBConv 輸入數(shù)據(jù)的大小也會存在著不同(即MBConv 上方數(shù)字)。MBConv1 和MBConv6 中的1 和6 表示1×1 卷積操作的升維度倍數(shù)。本文所使用的EfficientNet-E的參數(shù)見表1。
表1 EfficientNet-E模型參數(shù)1)Table 1 EfficientNet-E model parameters
為了驗證EfficientNet-E 模型的性能,下文將開展相關(guān)實驗,并與多種經(jīng)典模型以及原始EfficientNet的實驗進行對比。
本文數(shù)據(jù)集為三分類數(shù)據(jù),一共3 303張圖片,3 個類別為火災(zāi)、無火災(zāi)和煙霧,分別有1 246、1 086和971張圖片。對比模型為經(jīng)典的ResNet-50、DenseNet-121、EfficientNet-B0。3 種數(shù)據(jù)集典型的圖片代表如圖10所示。
圖10 3種數(shù)據(jù)集典型的圖片代表Fig.10 Typical image representations for three datasets
將數(shù)據(jù)集以4∶1 的比例分割為訓(xùn)練集和測試集,前者用來訓(xùn)練模型,后者用來計算準確率,本文將以模型在測試集上的準確率為主要參考指標。訓(xùn)練過程分為“前向傳播”和“反向傳播”兩個環(huán)節(jié)。
(1)前向傳播。前向傳播實際上就是數(shù)據(jù)流經(jīng)過3.1節(jié)中的模型框架,整體操作可表示為
式中:x為輸入數(shù)據(jù),本文為圖像的三維數(shù)據(jù);o為偏置項;f(x)為一系列函數(shù)即數(shù)據(jù)變換的抽象;y*為預(yù)測結(jié)果。
(2)反向傳播。BP 算法的核心思想是利用梯度下降法對參數(shù)進行迭代。具體來說就是先利用正向傳播的計算結(jié)果和實際結(jié)果進行誤差綜合計算,得到Etotal,然后利用梯度下降算法計算更新的w和o。迭代公式為
式中,wi為反向計算過程中上一輪的權(quán)重,為迭代后的權(quán)重,oi為反向計算過程中上一輪的偏置項,為迭代后的偏置項,η為學(xué)習(xí)率,也就是梯度的步長。BP算法就是通過盡可能減小Etotal來不斷調(diào)整模型的參數(shù)值,使得模型性能盡可能提升。
本實驗的軟件和硬件環(huán)境描述如下:深度學(xué)習(xí)框架為Pytorch1.13.1,NVIDIA 顯卡驅(qū)動版本為517.48,顯卡CUDA加速版本為11.7.1,使用的顯卡為英偉達1080Ti,顯存為11 GB,操作系統(tǒng)為Windows11。
實驗對4.1 節(jié)中每個模型訓(xùn)練300 輪,其中訓(xùn)練集和驗證集的分割比例為4∶1,訓(xùn)練過程使用的學(xué)習(xí)率為0.01,學(xué)習(xí)率衰減率為0.001,模型參數(shù)的優(yōu)化器為隨機梯度下降法(Stochastic Gradient Descent)。為了減少因訓(xùn)練偶然性誤差造成的影響,所有模型均訓(xùn)練5次,每種模型的準確率和花費時間取平均值進行比較,并且選取具有代表性的圖像進行展示。
表2 和圖11 給出了ResNet-50、DenseNet-121、EfficientNet-B0 和EfficientNet-E 的實驗結(jié)果。其中表2 數(shù)據(jù)為訓(xùn)練5 輪的平均結(jié)果,由表2 可知,ResNet-50、DenseNet-121 訓(xùn)練過程波動較大,EfficientNet-B0 訓(xùn)練過程較為平穩(wěn),損失值下降同樣較為平穩(wěn)。EfficientNet-E 平均最高準確率達到90.04%,整體處于EfficientNet-B0 上方,訓(xùn)練過程較為平穩(wěn),和EfficientNet-B0 相比,EfficientNet-E的損失值下降速度較快。 EfficientNet-B0 和EfficientNet-E的準確率和總的訓(xùn)練時間驗證了之前的理論,不僅準確率相較于其他兩種模型更高,同時收斂性也更好。 而EfficientNet-E 相較于EfficientNet-B0 的表現(xiàn)說明ECA 模塊可以通過犧牲很少的計算資源來獲得準確率的提升。
表2 森林火災(zāi)數(shù)據(jù)集在4種模型上的測試結(jié)果Table 2 Test results of forest fire data on four models
圖11 4種模型準確率和損失值實驗結(jié)果Fig.11 Experimental results of accuracy rate and loss value of four models
由圖11 的結(jié)果可以看出,EfficientNet-B0 和改進的EfficientNet-E 相較于經(jīng)典的ResNet-50 和DenseNet-121 擁有明顯的優(yōu)勢,這也驗證了EfficientNet 的設(shè)計思想,而改進后的EfficientNet-E 相較于EfficientNet-B0在準確率上依然取得了優(yōu)勢。
為在直觀上進行定性對比,找出了EfficientNet-E 能夠正確識別但是其他3 種模型都識別錯誤的2張典型圖片,如圖12所示。
圖12 模型識別對比圖Fig.12 Comparison of model recognition
圖12中,第1張圖EfficientNet-E正確識別為火災(zāi),而其他3 種模型識別為煙霧。第2 張圖EfficientNet-E正確識別為煙霧,而其他3種模型識別為火災(zāi)。需要說明的是,雖然第1張圖片也有煙霧,但是火災(zāi)特點更為明顯,歸類為“火災(zāi)”更為合理,而第2張圖片雖然也有火災(zāi)圖像,但是火災(zāi)區(qū)域過小,歸類為“煙霧”更加合理。另外,根據(jù)單張圖片預(yù)測時間可知,火災(zāi)圖像的預(yù)測能夠在毫秒級時間內(nèi)完成,可以很好地滿足火災(zāi)預(yù)警的及時性需求。
深度學(xué)習(xí)已在多個領(lǐng)域展現(xiàn)出較強的優(yōu)勢,但常規(guī)深度學(xué)習(xí)模型在設(shè)計上難以把握網(wǎng)絡(luò)深度、寬度和圖片大小3 要素之間的規(guī)律。EfficientNet 模型設(shè)計理念可以很好地解決上述問題,且在圖像識別性能上得到了提升,然而鮮有研究人員將Efficient-Net 應(yīng)用到森林火災(zāi)識別問題上,客觀上限制了森林火災(zāi)防治工作的發(fā)展。本文通過改進EfficientNet的注意力機制模塊來優(yōu)化模型,從而提出了EfficientNet-E模型。改進后的模型在充分吸收原始EfficientNet的優(yōu)點之上,具備更好的準確率和更加穩(wěn)定的訓(xùn)練效果優(yōu)勢。
然而,森林火災(zāi)的識別預(yù)警系統(tǒng)需求實際上很復(fù)雜,在很多場景下不僅僅需要能夠識別出是否有火災(zāi),還要能夠?qū)馂?zāi)的程度進行分級,這樣有助于對火災(zāi)發(fā)生程度進行把控,為施救提供更好的參考,此類后續(xù)工作可以在本文研究基礎(chǔ)上展開。