汪梓藝,蘇育挺,劉艷艷,張 為
(1.天津大學(xué)電氣自動化與信息工程學(xué)院,天津 300072;2.南開大學(xué)電子信息與光學(xué)工程學(xué)院,天津 300071;3.天津大學(xué)微電子學(xué)院,天津 300072)
火災(zāi)是極具破壞性的災(zāi)害之一。在火災(zāi)初期,煙霧往往先于火焰產(chǎn)生,因此煙霧檢測對于預(yù)防火災(zāi)和保障人民安全意義重大。目前煙霧檢測算法大多依據(jù)相應(yīng)的場景手工選取煙霧的顏色、紋理等特征,通過分類器進行判別。但是人為地按照特定規(guī)則選取特征適用性較為單一,很難應(yīng)用于不同場景。
隨著深度學(xué)習(xí)的發(fā)展,研究者轉(zhuǎn)向利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)實現(xiàn)煙霧檢測,算法大致分為3類:①用背景建模等方法提取出疑似煙霧區(qū)域,再輸入到卷積神經(jīng)網(wǎng)絡(luò)進行分類[1]。由于煙霧在視頻前后幀變化較為緩慢,這類方法提取出的煙霧區(qū)域較為零散,增加了網(wǎng)絡(luò)對煙霧圖像的分類難度,誤檢和漏檢較多。②將整幅圖像輸入到目標(biāo)檢測網(wǎng)絡(luò)中,用矩形框標(biāo)定出目標(biāo)的位置并給出目標(biāo)置信度[2]。但目標(biāo)檢測對象多為剛性物體,而煙霧這類目標(biāo)形狀不規(guī)則且顏色半透明,易被其他目標(biāo)遮擋,難以用規(guī)則的矩形框完整標(biāo)出,不利于網(wǎng)絡(luò)對目標(biāo)特征的學(xué)習(xí)。③對煙霧圖片進行逐像素點的分類預(yù)測。這個過程稱為語義分割,以每一個煙霧像素點為目標(biāo),可以更好地學(xué)習(xí)煙霧的本質(zhì)特征,不僅完成煙霧的分類和定位,還能生成具有詳細邊界的煙霧區(qū)域,實現(xiàn)煙霧分割[3]。
由于目前尚未有公開的煙霧語義分割數(shù)據(jù)集,基于語義分割思想的煙霧檢測算法國內(nèi)外少有研究。文獻[3]利用FCN(Fully Convolutional Networks for semantic segmentation)[4]語義分割模型實現(xiàn)了對合成煙霧圖像的訓(xùn)練和分割。FCN是語義分割領(lǐng)域的開山之作,利用卷積層替代全連接層,輸出二維圖像。此后出現(xiàn)了編碼解碼器架構(gòu),編碼器通過下采樣增大感受野并提取特征,解碼器通過上采樣恢復(fù)圖像尺寸并完成語義分割。Deeplab系列引入了空洞卷積,通過在卷積核中間補零的方式替代池化下采樣,增大感受野并避免圖片細節(jié)丟失。文獻[5]加入條件隨機場來判斷像素間的關(guān)聯(lián)性。文獻[6]用帶空洞卷積的金字塔模塊(Atrous Spatial Pyramid Pooling, ASPP)并行預(yù)測語義信息。文獻[7]級聯(lián)多個空洞卷積并增加了全局池化層。
針對煙霧檢測任務(wù)的特點和需求,筆者提出了基于改進DeeplabV3的端到端的煙霧分割網(wǎng)絡(luò),主要包括以下4個方面:
(1)較大擴張率的空洞卷積會造成網(wǎng)格效應(yīng),故在空洞卷積串聯(lián)結(jié)構(gòu)末尾加入特征細化模塊,對特征圖進行密集采樣,有效地捕獲局部信息,解決信息利用率低下的問題。
(2)針對煙霧這類尺度、姿態(tài)多變的非剛性目標(biāo),提出可變形空間金字塔模塊,提高模型對目標(biāo)形變的學(xué)習(xí)能力。
(3)原始網(wǎng)絡(luò)的解碼器預(yù)測的目標(biāo)邊界較粗糙,對此提出了通道注意力解碼器,增加網(wǎng)絡(luò)對重要特征的篩選能力,進一步恢復(fù)煙霧圖像的空間細節(jié)。
(4)建立煙霧語義分割數(shù)據(jù)集,確保數(shù)據(jù)充足,場景豐富且具有普遍性。
DeeplabV3網(wǎng)絡(luò)結(jié)構(gòu)見圖1,骨干網(wǎng)絡(luò)使用了殘差網(wǎng)絡(luò)模型。在殘差單元后級聯(lián)了擴張率(用rate表示)分別為2、4、8的空洞卷積。擴張率表示采樣的頻率,擴張率越大,感受野越大。當(dāng)擴張率為1時,表示全部像素采樣;當(dāng)擴張率大于2時,表示每隔(rate-1)個像素點進行采樣。在串行結(jié)構(gòu)末尾添加空間金字塔并行結(jié)構(gòu),利用擴張率為6、12、18的空洞卷積學(xué)習(xí)多尺度特征,同時增加全局平均池化層捕獲全局信息。最后得到尺寸為原圖1/16的特征圖,再通過16倍上采樣恢復(fù)到原圖大小。
原網(wǎng)絡(luò)使用空洞卷積替代下采樣來擴大感受野,但空洞卷積的實現(xiàn)是通過卷積核中間補零的方式,只獲取了非零區(qū)域的信息。這種稀疏采樣性令特征圖產(chǎn)生網(wǎng)格效應(yīng),使當(dāng)前層的卷積結(jié)果全部來自上一層的獨立集合,丟失了局部信息,學(xué)習(xí)到的特征往往缺乏相關(guān)性。雖然原網(wǎng)絡(luò)使用了不同擴張率的空洞卷積,試圖提高信息的利用率,但隨著擴張率的增大,有效的采樣點數(shù)量急劇減少,而且當(dāng)擴張率為倍數(shù)關(guān)系時(如2、4、8),仍然存在網(wǎng)格效應(yīng)。網(wǎng)格效應(yīng)很可能導(dǎo)致網(wǎng)絡(luò)訓(xùn)練失敗,學(xué)習(xí)到錯誤的特征信息。針對此類問題,筆者設(shè)計了特征細化模塊(Feature Refinement Module, FRM),在最后一個級聯(lián)的空洞卷積后,增加了擴張率較小的兩個單元[8],使采樣點更加密集,以增強像素間的交互關(guān)系,消除網(wǎng)格效應(yīng),如圖2所示。
圖1 DeeplabV3網(wǎng)絡(luò)結(jié)構(gòu)
圖2 特征細化網(wǎng)絡(luò)結(jié)構(gòu)
為了降低時間復(fù)雜度,先對圖像進行降維,然后輸入到擴張率分別為2和1的單元,同時去除了殘差短路連接,防止底層的網(wǎng)格效應(yīng)通過短路連接直接激活到頂層。此外,在每個卷積層后用BN(Batch Normalization)層對數(shù)據(jù)進行標(biāo)準(zhǔn)化,該層通過可學(xué)習(xí)的參數(shù)對小批量數(shù)據(jù)進行歸一化處理,可以簡化調(diào)參過程,增強數(shù)據(jù)的表達泛化能力,防止因網(wǎng)絡(luò)深度增加而帶來的梯度消失或梯度爆炸,加速模型收斂。實驗表明,擴展的特征細化模塊使當(dāng)前層學(xué)習(xí)到的特征更具關(guān)聯(lián)性,提高了圖片分類的準(zhǔn)確度。
原網(wǎng)絡(luò)的ASPP模塊使用了以規(guī)則格點采樣的標(biāo)準(zhǔn)3×3卷積,而標(biāo)準(zhǔn)卷積核在同一層中不同位置的感受野大小完全相同,并不能根據(jù)目標(biāo)的尺度自適應(yīng)調(diào)整,較大程度地限制了網(wǎng)絡(luò)對目標(biāo)的識別能力。煙霧這類非剛性目標(biāo),在視頻圖像中經(jīng)常呈現(xiàn)姿態(tài)、視角等多種變化,圖片中不同位置可能對應(yīng)目標(biāo)的不同尺度和形變,標(biāo)準(zhǔn)卷積并不能很好地適應(yīng)目標(biāo)的空間變化。原網(wǎng)絡(luò)為了使模型適應(yīng)各種形狀的物體,加入了數(shù)據(jù)增強操作,但是通過數(shù)據(jù)集使網(wǎng)絡(luò)適應(yīng)目標(biāo)形變的過程過于耗時,且對網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計要求較高。為此,筆者設(shè)計了可變形空間金字塔(Deformable ASPP)模塊,將標(biāo)準(zhǔn)卷積核替換成可變形卷積核[9]。
標(biāo)準(zhǔn)卷積核通過規(guī)則網(wǎng)格R在輸入特征圖X上進行采樣,通過權(quán)重W對采樣值進行加權(quán)并求和。用p0表示輸出特征圖Y上某個點的位置,pn表示標(biāo)準(zhǔn)采樣位置,Δpn表示可變形卷積增加的位置偏移,則可變形卷積輸出特征圖表達式為
(1)
圖3 可變形卷積的實現(xiàn)過程
可變形卷積的具體實現(xiàn)如圖3所示。對于二維圖像來說,每個像素點在x、y兩個維度上各有9個偏置方向。因此,首先通過一個通道數(shù)為18的單獨卷積層來獲得位置偏移,然后將該偏移量加入到輸入層中原本固定的采樣區(qū)域中。偏移量的加入使得原始卷積每一個規(guī)整的窗口平移了不同的位置,而新的位置常常不為整數(shù),原始特征圖上沒有像素與之對應(yīng),因此需要通過雙線性插值變換將所有新的采樣點集中起來形成新的輸入特征圖,同時保證空間分辨率不變。可變形卷積的加入使感受野自適應(yīng)目標(biāo)的尺度變化,可以打破原始ASPP采用固定擴張率整合不同感受野信息的限制,更加靈活地對信息進行融合,以少量模型復(fù)雜度的代價提高了網(wǎng)絡(luò)對形變的建模能力和學(xué)習(xí)效率。
從底層到高層隨著感受野的增大,網(wǎng)絡(luò)學(xué)習(xí)到的信息也在不斷變化。在低級階段,特征圖分辨率較高,感受野較小,學(xué)習(xí)到的更多是細節(jié)特征;而在高級階段,特征圖分辨率較低,感受野較大,網(wǎng)絡(luò)提取到的更多是目標(biāo)語義特征。原網(wǎng)絡(luò)在預(yù)測階段直接將最后一層特征圖進行16倍上采樣,忽略了底層網(wǎng)絡(luò)的細節(jié)特征,預(yù)測的目標(biāo)邊界較粗糙。為了恢復(fù)目標(biāo)邊界,通過逐漸上采樣的方式融合分辨率不同的特征圖進行聯(lián)合預(yù)測,避免通過一次性較大倍率的上采樣造成的誤差。在特征圖融合前,引入 “通道注意力機制”。原網(wǎng)絡(luò)并未對特征圖進行通道加權(quán),默認(rèn)同等對待每個通道信息,認(rèn)為其對最終的目標(biāo)預(yù)測貢獻相同。實際上,隨著卷積層的累加、語義信息的豐富,每個通道攜帶了不同的特征信息,這些信息與目標(biāo)的關(guān)聯(lián)程度也不盡相同。如果對特征圖的通道加以權(quán)重,并學(xué)習(xí)和篩選出對目標(biāo)預(yù)測貢獻較大的特征,可以減輕處理高維數(shù)據(jù)的負擔(dān),還能讓網(wǎng)絡(luò)更加關(guān)注輸入信息的重要部分,更好地判斷輸入到輸出的映射關(guān)系,進一步提高模型的預(yù)測精度和泛化能力。
筆者提出的通道注意力模型(Channel Attention Module, CAM)分為壓縮和激活兩部分[10],見圖4。壓縮部分通過全局平均池化對特征圖進行壓縮:
(2)
其中,u表示尺寸為H×W×C的特征圖,C為總通道數(shù),uc表示該特征圖中通道為c的二維矩陣。通過全局平均池化,第c個通道的特征映射為zc。激活部分通過兩層全連接層來獲得通道間的關(guān)系表達:
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z)) 。
(3)
首先通過權(quán)重為W1的全連接層將通道降為1/16,再用權(quán)重為W2的全連接層進行升維,中間用Relu層來激活,用δ表示,降低模型計算量又有利于學(xué)習(xí)通道間的復(fù)雜關(guān)系。接著通過Sigmoid激活函數(shù)σ進行歸一化輸出權(quán)重s,再通過Scale函數(shù)把s加權(quán)到每個通道上:
(4)
其中,sc表示第c個通道的歸一化權(quán)重,uc與之相乘輸出帶有“通道注意力”的特征圖。
圖4 通道注意力模型結(jié)構(gòu)
以ResNet50為骨干網(wǎng)絡(luò),網(wǎng)絡(luò)模型如圖5所示。首先,輸入圖片經(jīng)過一系列圖像增強操作后被調(diào)整為512×512像素,經(jīng)過原始的特征提取后,通過特征細化模塊獲取像素間的交互關(guān)系,消除網(wǎng)格效應(yīng)。接著利用可變形空間金字塔使網(wǎng)絡(luò)根據(jù)目標(biāo)尺度變化靈活調(diào)整感受野,獲得不同感受野的語義信息并將其融合,提升對形變的建模能力;將該輸出與原始特征相乘,可以為特征圖提供更好的空間注意力信息。關(guān)于“注意力機制”在前文已經(jīng)提到,如果說通道注意力增強了通道下特定語義的響應(yīng)能力,那么空間注意力是尋找空間維度上對預(yù)測目標(biāo)貢獻較大的特征信息。可變形金字塔通過自適應(yīng)感受野更好地定位待預(yù)測區(qū)域,獲取像素間的位置關(guān)聯(lián)。在解碼階段,對高層語義信息進行兩次2倍上采樣和一次4倍上采樣。此外,將高級特征輸入注意力模塊,以提取通道注意力信息,對低級特征進行加權(quán),從而更有效地恢復(fù)語義信息。隨后合并高級特征和篩選的低級特征,恢復(fù)詳細的目標(biāo)邊界,同時融合空間、通道兩種注意力信息,幫助模型選擇最有益的中間特征,抑制無關(guān)特征,進一步提升網(wǎng)絡(luò)的預(yù)測精度。
圖5 改進的DeeplabV3網(wǎng)絡(luò)結(jié)構(gòu)
目前尚未有公開的煙霧語義分割數(shù)據(jù)集。由于煙霧的標(biāo)注過程較復(fù)雜,文獻[3]利用了大量合成煙霧圖像,但真實與合成的煙霧樣本分布不同,針對合成煙霧樣本訓(xùn)練的模型可能無法較好地適用于實際復(fù)雜場景中?;谏鲜鰡栴},筆者按照PASCAL VOC數(shù)據(jù)集的標(biāo)注方式建立了一個場景豐富的煙霧語義分割數(shù)據(jù)集,圖片來自權(quán)威的國家火災(zāi)重點實驗室網(wǎng)站(http://smoke.ustc.edu.cn/datasets.htm)以及實驗室收集到的煙霧視頻資料,包含食堂、操場、野外、車庫、工廠、農(nóng)房、地鐵站等近百個場景,共計8 081張,其中訓(xùn)練集6 081張,測試集2 000張。算法在mxnet框架上使用python3.6編寫實現(xiàn),在Ubuntu系統(tǒng)下使用圖形處理器進行加速。網(wǎng)絡(luò)使用帶動量的隨機梯度下降算法進行訓(xùn)練,共訓(xùn)練100代,動量為0.9,權(quán)重衰減為0.000 2,批處理個數(shù)為8;學(xué)習(xí)率采用“Poly”策略,隨著迭代次數(shù)增加逐漸衰減。
圖6為筆者提出算法與DeeplabV3網(wǎng)絡(luò)在測試集中部分圖像的分割結(jié)果。從左至右第1到4列分別為原始煙霧圖像、煙霧標(biāo)簽、DeeplabV3網(wǎng)絡(luò)的分割圖像、筆者提出算法的分割圖像,包含6種不同的煙霧場景。第1、4、6行,原始網(wǎng)絡(luò)的像素預(yù)測存在分割不足現(xiàn)象。第1行左上角的煙霧像素沒有被原網(wǎng)絡(luò)預(yù)測出,但是筆者提出的模型通過特征細化模塊,捕捉到了特征圖的局部信息,更好地還原了煙霧像素。第4行是在煙霧大幅度擴散變形的情況下,原網(wǎng)絡(luò)的分割缺失了左下方大部分像素點,而筆者提出的算法除了一小段下邊緣像素存在差異外,基本擬合了真實的煙霧標(biāo)簽。另外,原圖煙霧邊界較模糊,煙霧標(biāo)簽不夠精確等因素也造成了一定影響。第6行原網(wǎng)絡(luò)沒有分割出顏色較淺的煙霧像素,而改進后的網(wǎng)絡(luò)可以更好地學(xué)習(xí)像素間的關(guān)聯(lián)性,進而得到較完整的分割結(jié)果。第2、3、5行,原網(wǎng)絡(luò)存在分割過度現(xiàn)象。第2行中原網(wǎng)絡(luò)將標(biāo)簽中一些彎折的邊緣直接預(yù)測成平滑的曲線,分割結(jié)果較粗糙,筆者提出的算法能融合不同分辨率的特征圖聯(lián)合預(yù)測,分割出的煙霧邊界更加鋒利;第3、5行中原網(wǎng)絡(luò)將部分非煙霧像素誤判為煙霧像素,而筆者提出的算法通過靈活的感受野,可以適應(yīng)不同場景下的目標(biāo)形變,能較為準(zhǔn)確地區(qū)分煙霧像素和背景像素。
綜上,筆者提出的算法不僅在多種煙霧場景中有較好的分割性能,當(dāng)煙霧出現(xiàn)扭曲、擴散等形狀尺度變化時,依然能準(zhǔn)確地分辨識別出煙霧像素的特征,不會出現(xiàn)明顯的分割過度和分割不足現(xiàn)象,具有較強的魯棒性。
圖6 筆者提出的算法與DeeplabV3的定性比較
為了保證算法評價的客觀性,將筆者提出的算法與文獻[7]、文獻[11]和文獻[12]中的經(jīng)典語義分割網(wǎng)絡(luò)在煙霧數(shù)據(jù)集上從分割精度、速度兩方面進行對比,并使用分割兩大指標(biāo),即平均像素精確度(Mean Pixel Accuracy,MPA)和平均交并比(Mean Intersection over Union,MIoU)來評估,結(jié)果如表1所示。
表1中,“時間”是指平均一張512×512像素圖片的預(yù)測時間。Ours1在基準(zhǔn)網(wǎng)絡(luò)中加入特征細化模塊, 兩項分割指標(biāo)約提高了0.27%和0.95%,時間減少了22.81 ms。原網(wǎng)絡(luò)在金字塔模塊處理的特征圖通道為2 048,考慮到煙霧檢測的實時性,將通道降為256后輸入空間金字塔,大大降低了時間復(fù)雜度。Ours2在Ours1上加入可變形空間金字塔模塊,兩項指標(biāo)又約提高了0.21%和0.93%,時間僅增加約0.07 ms。由此可見,可變形卷積在較小參數(shù)的代價下進一步提高了像素預(yù)測精度。Ours3在Ours2上加入通道注意力模塊為最終網(wǎng)絡(luò),兩項指標(biāo)比基準(zhǔn)網(wǎng)絡(luò)約提升了0.56%和2.17%,時間減少了18.13 ms。文獻[11]加入較多的最大池化層,雖然獲得了大范圍感受野,但丟失了圖像的空間信息,難以準(zhǔn)確地分割出煙霧圖像,且不能很好地適應(yīng)煙霧形變;文獻[12]和文獻[7]加入了空洞卷積和空間金字塔,得到了較強的語義信息,但是缺乏底層的空間細節(jié),分割結(jié)果較粗糙,同時由于空洞卷積計算成本較高,當(dāng)特征圖維度過大時將增大內(nèi)存開銷。為了提升運算速度,在改進的模塊中用1×1的卷積核進行降維,降低了網(wǎng)絡(luò)的時間復(fù)雜度。筆者提出模型的各項指標(biāo)同其他算法相比,均取得最高值,在分割速度和分割精度兩方面做了較好的權(quán)衡,也從側(cè)面體現(xiàn)了加入特征細化、可變形金字塔和通道注意力模塊的必要性。
表1 不同算法在數(shù)據(jù)集上的定量比較
為了進一步驗證筆者提出算法的有效性,采用文獻[3]的方法,將筆者提出的煙霧分割網(wǎng)絡(luò)應(yīng)用于煙霧檢測,并與文獻[13-15]中3種現(xiàn)有的煙霧檢測算法進行對比實驗。煙霧視頻來自土耳其畢爾肯大學(xué)實驗室(http://signal.ee.bilkent.edu.tr//VisiFire/Demo/SampleClips.html),在圖形處理器上自動處理并檢測,結(jié)果見圖7。選取真正率RTPR和真負率RTNR作為評價指標(biāo),結(jié)果見表2。
表2 在Bilkent視頻集的煙霧檢測結(jié)果對比
實驗表明,筆者提出的算法在測試視頻上取得了最高的平均RTPR、RTNR。分析原因為:文獻[13-15]利用煙霧顏色紋理等進行判別,在一定程度上表達了煙霧的特征,但區(qū)分力較弱,易受外界干擾,當(dāng)出現(xiàn)與煙霧顏色紋理特征相似的目標(biāo)時易造成誤檢。而筆者提出的算法通過大量的煙霧數(shù)據(jù)來訓(xùn)練級聯(lián)的卷積神經(jīng)網(wǎng)絡(luò),可以提取目標(biāo)的本質(zhì)特征,使之在不同場景下有較好的檢測性能。影響檢測效果的因素包括訓(xùn)練集不夠豐富,視頻分辨率低,在之后的工作中會繼續(xù)對數(shù)據(jù)集進行補充和完善,提高算法的表達能力。
針對現(xiàn)有煙霧檢測方法在場景復(fù)雜、目標(biāo)尺度多變等條件下的不足,筆者搭建了改進的DeeplabV3語義分割網(wǎng)絡(luò)。通過特征細化模塊消除網(wǎng)格效應(yīng),增強像素間的交互關(guān)系;利用可變形金字塔提升模型對形變的建模能力;改良了基礎(chǔ)解碼器,引入“注意力”機制,篩選出更具區(qū)分力的通道信息,并指導(dǎo)恢復(fù)底層的空間細節(jié)。實驗表明,相比于經(jīng)典的語義分割網(wǎng)絡(luò)和現(xiàn)有的煙霧檢測算法,筆者提出的算法顯著地提高了煙霧像素的分類精度,為煙霧檢測領(lǐng)域提供了新的參考。由于實際火災(zāi)場景較復(fù)雜,硬件資源有限,算法的處理效率距離工程實際需求仍有差距。如何優(yōu)化算法的時間復(fù)雜度,提升運算效率,將成為日后主要的研究目標(biāo)。