黃 杰,巢夏晨語,董翔宇,高 云,朱 俊,楊 波,張 飛,尚偉偉*
(1.國網(wǎng)安徽省電力有限公司檢修分公司,合肥230061; 2.中國科學技術大學信息科學技術學院,合肥230027;3.國網(wǎng)安徽省電力有限公司,合肥230022)(?通信作者電子郵箱wwshang@ustc.edu.cn)
隨著計算機視覺的發(fā)展,基于計算機視覺的火焰檢測技術得到了大量的研究。從圖像中檢測火焰比煙霧報警器更快,從而能夠對火災進行提前預警。目前,基于機器視覺的火焰檢測方法(后簡稱為火焰檢測)主要分為基于人工設計的圖像特征與基于卷積神經(jīng)網(wǎng)絡提取的深度特征兩大類。在基于深度特征的方法中,一種廣泛使用的方法是將卷積神經(jīng)網(wǎng)絡作為分類器應用于火焰檢測,這種方法僅能判斷出圖像中是否存在火焰,而無法給出火焰所在的位置,因此僅能用于火災的預警。而對于需要自動滅火的場合,如自動滅火機器人[1]、大空間自動射流裝置[2]等,需要首先確定火焰所在圖像中的位置,才能進一步計算與火焰之間的距離,從而實現(xiàn)自動撲滅火焰。
在傳統(tǒng)的火焰檢測方法中,一般采用人工設計的特征進行火焰識別。T?reyin等[3]訓練一個高斯混合模型作為火焰的顏色模型,結合運動檢測算法來提取候選區(qū)域,再對這些區(qū)域進行時域與空域上的小波分析,從而判斷各區(qū)域是否為火焰區(qū)域;Foggia等[4]使用背景減法來獲取候選區(qū)域,再利用顏色、形態(tài)變化、運動這三種圖像特征,建立三個評價模塊來對各個區(qū)域進行判別,并使用一個有權重的投票策略進行綜合決策。這兩種方法僅能用于固定的攝像頭上,無法應用于自身存在運動的視覺系統(tǒng)中;Chino等[5]構建了BoWFire數(shù)據(jù)集,同時提出了一個顏色特征與超像素紋理辨別相結合的火焰檢測算法框架,其局限性在于對圖像中火焰的召回率不能滿足實際應用的需求。
由于深度特征在多個領域取得了比人工特征更好的效果,深度特征也被應用在了火焰檢測領域。Muhammad等[6]訓練了一個二分類的GoogleNet用于檢測火焰,在數(shù)據(jù)集[5]上取得了較好的準確度(84%~92%),且能展現(xiàn)較好的魯棒性;Frizzi等[7]使用卷積神經(jīng)網(wǎng)絡來獲取圖像的特征圖,再在特征圖上以12×12大小的滑動窗口判斷是否存在火焰或煙霧,其局限性在于沒有在更大規(guī)模的數(shù)據(jù)集中進行測試;Maksymiv等[8]使用局部二值模式(Local Binary Pattern,LBP)特征與AdaBoost算法來獲取圖像中可能存在火焰的區(qū)域,再使用一個卷積神經(jīng)網(wǎng)絡對各區(qū)域進行判別;王華秋等[9]提出一種基于雙曲正割函數(shù)的變步長最小均方算法(Least Mean Square,LMS)改進的小腦模型神經(jīng)網(wǎng)絡(Cerebellar Model Articulation Controller,CMAC),使用最優(yōu)閾值搜尋算法分割圖像后,提取區(qū)域的特征向量輸入CMAC進行判別。隨著基于深度特征的目標檢測方法的興起,先進的通用目標檢測方法被應用在火焰檢測上。Barmpoutis等[10]訓練一個更快速的區(qū)域卷積神經(jīng)網(wǎng)絡(Faster Region-based Convolutional Neural Network,F(xiàn)aster R-CNN)[11]模型來獲取圖像中潛在的火焰區(qū)域,使用線性動態(tài)系統(tǒng)(Linear Dynamical System,LDS)提取這些區(qū)域的紋理特征,再使用局部聚合描述向量(Vector of Locally Aggregated Descriptors,VLAD)算法對特征編碼,并最終判別各個區(qū)域是否為火焰區(qū)域;Kim等[12]使用Faster R-CNN檢測可能的火焰區(qū)域,隨后由長短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡在一個時間區(qū)間內(nèi)累積該區(qū)域的特征,并判別區(qū)間內(nèi)該區(qū)域是否存在火焰,最后利用多個時間區(qū)間的判別結果進行投票得到最終的檢測結果。
針對上述研究,本文提出一種由顏色引導的Faster RCNN模型,利用掩膜卷積技術,使錨僅生成在顏色與火焰相近的區(qū)域,提高了Faster R-CNN火焰檢測的效率。本文主要工作包括以下方面:
1)提出顏色引導的拋錨策略,使用簡單的顏色模型有效減少了Faster R-CNN在火焰檢測任務中初始錨生成的數(shù)量。
2)提出了掩膜RPN(Region Proposal Network),利用掩膜卷積技術,改進Faster R-CNN的區(qū)域生成網(wǎng)絡,使得Faster RCNN在火焰檢測任務上的速度相較于原Faster R-CNN提高了10.1%。
3)將提出的方法在BoWFire與Corsician數(shù)據(jù)集上進行了實驗,并與最新的火焰檢測方法進行了比較,驗證了本文方法的有效性。
中國旅游節(jié)由國家林業(yè)和草原局主辦,廣州市人民政府、廣東省林業(yè)局、廣東省文化和旅游廳共同承辦,主題是“綠水青山就是金山銀山——粵森林、悅生活”。
Faster R-CNN[11]是一種在區(qū)域卷積神經(jīng)網(wǎng)絡(Regionbased Convolutional Neural Network,R-CNN)[13]和快速區(qū)域卷積神經(jīng)網(wǎng)絡(Fast Region-based Convolutional Network,F(xiàn)ast RCNN)[14]的基礎上改進得到的通用目標檢測方法,它與另外兩種R-CNN的主要不同在于使用區(qū)域生成網(wǎng)絡(Region Proposal Network,RPN)來獲取初始的候選框,以代替耗時的選 擇 性 搜 索 算 法 。Faster R-CNN 在 COCO[15]與 PASCAL VOC[16]目標檢測任務上取得了很好的效果,因此,本文選擇Faster R-CNN作為文中方法的基礎。
Faster R-CNN的檢測框基于錨生成,錨是在目標檢測過程中生成的最初的一批候選框。依據(jù)人為確定的m種大小比例(Scale)與n種橫縱比(Aspect Ratio),將這些比例與橫縱比進行組合,可以在每個錨點處獲得m×n種形狀確定的錨。圖1展示了一個錨點以及該點處生成的所有錨候選框,圖片中心處的點為錨點,其周圍的方框即為錨。錨點以一定間隔分布在整張圖像上,因此錨可以覆蓋整幅圖像。
圖1 一個錨點以及該點處的錨候選框Fig.1 An anchor point and theanchor candidate boxesgenerated at that point
本文使用的Faster R-CNN模型結構如圖2所示,主要分為三部分,分別是特征提取器、區(qū)域生成網(wǎng)絡和R-CNNhead。其中,特征提取器主要由一系列卷積層構成,輸入圖像經(jīng)過特征提取器后可以得到該圖像的一系列特征圖。隨后,這些特征圖被送入RPN中,RPN是一個滑動窗口形式的物體檢測器,它的本質是3個卷積層,輸入特征圖后,經(jīng)過3×3卷積層將特征圖映射到一個較低維的空間,并由兩個并聯(lián)的1×1大小卷積核的卷積層在特征圖的每個點處生成各個錨中是否包含物體的置信分數(shù)S與各個錨的修正量,RPN輸出的錨修正量為其中與代表錨中心位置在圖像X、Y方向上的偏移量代表錨長寬的變化量。將錨經(jīng)過對應的修正后得到一系列候選框,再對這些候選框進行非最大值抑制,濾除與置信度最高的候選框面積交叉過大的候選框。經(jīng)過非最大值抑制后,對每個候選框分別進行感興趣區(qū)域(Region of Interest,RoI)池化,得到各候選框對應的特征圖,最后由R-CNNHead的線性層分別輸出每個候選框的分類預測p與進一步的候選框修正量R-CNNHead輸出的修正量與RPN輸出的修正量的物體意義完全相同。
圖2 Faster R-CNN模型結構Fig.2 Structureof Faster R-CNNmodel
在Faster R-CNN中,為了使錨點分布在盡可能廣的圖像位置上,保證各個區(qū)域都被大小合適的錨所覆蓋,其錨點是密集分布的,錨生成在特征圖的每一個點上。在通用目標檢測中,沒有特定的目標種類,所以需要密集的拋錨策略。但是在火焰檢測任務上,圖像區(qū)域的種類僅剩下兩種:火焰或者背景,密集的拋錨策略會使得錨生成在很多沒有火焰的圖像區(qū)域。再考慮到火焰在圖像上存在的顯著特性,這使得Faster R-CNN的檢測可以在引導下進行。本文中,受到文獻[17]中導向性拋錨的啟發(fā),提出了一種稀疏的拋錨策略,在Faster RCNN中使用火焰自身的圖像特性來引導錨的生成,代替原本密集的拋錨策略,從而提升檢測火焰的效率與準確度。
在火焰的圖像特征中,顏色特征較為容易獲取,也是在火焰檢測中被廣泛使用的火焰特征。為了使得錨能夠生成在圖像中所有與火焰顏色相近的區(qū)域,且錨框盡量不會遺漏火焰區(qū)域,本文使用了一個較為寬松的顏色模型。這個顏色模型覆蓋了一般火災情形下的火焰顏色,不考慮特殊材料燃燒時產(chǎn)生的火焰的顏色(藍色等),其定義為式(1):
其中:M(x,y)表示生成的火焰顏色掩膜;fR、fG、fB指圖像的R、G、B三通道的圖像值;TR表示R通道上設置的閾值。在該模型中,TR的取值依據(jù)于本文中使用的數(shù)據(jù),其典型值為150~200,TR取值過大會使得模型過于嚴格,導致一些火焰區(qū)域存在被漏檢的可能,TR取值過小則模型偏向于寬松,RPN中錨的生成數(shù)量增加,導致檢測效率的下降。
通過這個顏色模型,可以獲得一個較為寬松的顏色掩膜,這個掩膜中包含了火焰,以及所有與火焰顏色相近的圖像區(qū)域。本文中,將Faster R-CNN原本的密集錨生成策略,改變?yōu)橛深伾龑У膾佸^策略:僅將錨點設置在掩膜中的感興趣區(qū)域,而掩膜的其他區(qū)域則不生成任何錨,這樣可以大大減少初始生成的錨數(shù)量,且錨都分布在與火焰顏色相近的物體周圍,這也提高了錨的平均質量。圖3展示了由顏色引導的拋錨策略的錨點位置,圖3(c)中分布在火焰附近的點即為錨點。為了實現(xiàn)以上說明的拋錨策略,本文主要對Faster R-CNN的核心,即RPN進行了改進,稱之為掩膜RPN,它接受一個與特征圖大小一致的額外掩膜作為輸入,從而可以結合掩膜信息,使得錨僅在感興趣的區(qū)域生成。
圖3 顏色引導的拋錨策略的錨點生成Fig.3 Anchor generation of color-guided anchoringstrategy
模型的整體結構如圖4所示。首先,將圖像輸入特征提取器,得到特征圖;同時將輸入圖像通過顏色模型,獲取輸入圖像的火焰顏色掩膜;將特征圖與縮放到相同大小的掩膜輸入掩膜RPN,得到經(jīng)過篩選與修正的區(qū)域;最后,將各區(qū)域輸入分類與回歸兩個分支網(wǎng)絡,即R-CNN Head,得到最終的檢測框。圖4中展示了掩膜RPN的具體結構,在Faster R-CNN的基礎上,將各個卷積層均替換為掩膜卷積(masked convolution)[18-19]層,掩膜卷積僅在掩膜的感興趣區(qū)域進行卷積,其他區(qū)域均置零,從而可以減少一部分矩陣點乘運算。通過使用掩膜卷積來實現(xiàn)顏色引導的拋錨策略,可以提高模型計算的效率。
此外,上述顏色引導的拋錨策略對于其他基于錨的目標檢測算法同樣適用,如 YOLOV2[20]、YOLOV3[21]、SSD(Single Shot multibox Detector)[22]、特征金字塔網(wǎng)絡(Feature Pyramid Network,F(xiàn)PN)[23]等,由于這些方法均在特征圖的每一個點上生成錨,故與本文中提出的方法相同,在拋錨策略中加入火焰顏色掩膜即可,即將對應的普通卷積層替換為掩膜卷積層。
圖4 由顏色引導的Faster R-CNN模型結構與掩膜RPNFig.4 Model structureof color-guided Faster R-CNNand masked RPN
對于Faster R-CNN的訓練,本文參照文獻[11]中的訓練策略:每一張訓練圖像中,選取64個正樣本候選框與64個負樣本候選框,若正樣本候選框數(shù)量達不到64個,則使用負樣本候選框補齊,保持總數(shù)為128個。誤差的來源有四個,分別是RPN、R-CNN Head的分類誤差與定位誤差。對于RPN輸出的候選框的分類誤差與R-CNNHead輸出的候選框的分類誤差,均采用交叉熵計算損失,而對于候選框的定位誤差,則使用平滑L1損失函數(shù)。相較于文獻[11]的四步交替迭代訓練方法,本文使用近似聯(lián)合訓練,從而使得訓練以端到端的形式進行,速度更快。訓練的主要困難來源于掩膜RPN,即掩膜卷積層的誤差反向傳播問題。為了解決這個問題,本文使用以下方案:在訓練時,將掩膜RPN各層替換為普通卷積層,對于掩膜RPN層輸出的候選框,將中心在掩膜感興趣區(qū)域外的候選框全部濾除。
RPN的損失函數(shù)設計為:
其中:表示交叉熵函數(shù);表示平滑L1函數(shù);s i是RPN輸出的第i個候選框的置信度分數(shù),表示該候選框中是否包含物體的置信度;s*i是該候選框對應的ground truth候選框的置信標簽;t ri是RPN輸出的第i個候選框的修正量,t ri*為該候選框移動到對應的ground truth候選框所需的修正量。其中,修正量包括候選框中心在X、Y方向上的偏移量與候選框長、寬的變化量。
R-CNNHead的損失函數(shù)設計為:
與RPN的損失計算相似的,p i是R-CNN Head輸出的第i個候選框的分類分數(shù),表示該候選框中的物體為火焰或其他,是該候選框對應的ground truth候選框的分類標簽是RCNNHead輸出的第i個候選框的修正量,是該候選框相對于對應的ground truth候選框所需的修正量。最后,F(xiàn)aster RCNN的整體損失計算方法為式(2)與式(3)的相加,即RPN與R-CNNHead的損失之和。
本文中使用了來源不同的多個數(shù)據(jù)集,包括ImageNet、BoWFire、Corsician Fire[24]這3個公開的火焰數(shù)據(jù)集,以及利用Google與Baidu搜索引擎下載的一些火焰圖像,表1展示了實驗中使用的各數(shù)據(jù)集名稱以及各數(shù)據(jù)集中的圖像數(shù)量。訓練Faster R-CNN的數(shù)據(jù)集來自 Baidu、Google以及 ImageNet,共1525張圖像。本文的測試在BoWFire數(shù)據(jù)集與Corsician Fire數(shù)據(jù)集上進行,共822張圖像,測試數(shù)據(jù)集不參與模型的訓練。
表1 實驗中使用的數(shù)據(jù)集名稱及圖像數(shù)量Tab.1 Different datasetsand their numbersof imagesused in experiments
一般目標檢測任務中衡量模型性能的指標為平均精度均值(Mean Average Precision,MAP),由于火焰檢測是單目標檢測,該指標與平均精度(Average Precision,AP)等價。但是,火焰目標檢測中,火焰的標注沒有一個確定的標準,不同人的標注風格不盡相同,因此,以往的研究中,火焰檢測的性能評判標準都是按幀計算的,而不使用AP值來衡量。但在Faster R-CNN的訓練中,仍需要通過AP指標來確定模型是否向正確的方向收斂,為了能夠在BoWFire數(shù)據(jù)集與Corsician Fire數(shù)據(jù)集上計算AP指標,本文對這兩個數(shù)據(jù)集進行了標注。同時,為了與其他火焰檢測方法進行比較,衡量本文模型性能的指標也按幀計算:對于一幅火焰圖像,當圖像中的火焰均被檢測框覆蓋,則認為這張圖像的檢測結果正確。
首先,本文在BoWFire數(shù)據(jù)集上研究本文方法在火焰檢測任務上的性能,并與基于人工特征的方法[5]、基于卷積神經(jīng)網(wǎng)絡的先進方法[6]進行了比較。表2在精度、召回率與F值三個方面與Chino等[5]和Muhammad等[6]的方法進行了比較。其中:文獻[5]中使用樸素貝葉斯模型構建火焰顏色模型,并使用超像素的方法將圖像分塊并進行紋理分析;文獻[6]訓練一個二分類的GoogleNet來辨別圖像中是否存在火焰,并使用遷移學習方法進一步提高了網(wǎng)絡在火焰檢測上的性能。
表2 各方法的性能比較Tab.2 Performancecomparison of different methods
從表2中可以看到:由顏色引導的拋錨機制可以小幅提升火焰檢測的召回率,97.48%的火焰圖像中的火焰都被正確檢出,達到了各種方法中的最優(yōu),但是這也會帶來一些精度上的下降。綜合上述效果,火焰檢測的F值略有上升。
隨后,本文也進行了效率上的測試,結果如表3所示。由于在掩膜卷積中,掩膜中不感興趣的區(qū)域都被忽略,故計算速度較原來提高了10.1%,而提高不是特別明顯的原因是僅掩膜RPN中的普通卷積層替換為了掩膜卷積層,若將特征提取器的卷積層也進行替換,則可以進一步提高檢測速度。此外,掩膜的計算也需要耗費一些時間(在BoWFire數(shù)據(jù)集上約耗費3 s)。
表3 各方法的運行時間對比 單位:sTab.3 Comparison of running time of different methods unit:s
最后,在Corsician Fire數(shù)據(jù)集上進行了測試,以進一步檢驗對火焰的檢測效果,表4展示了Corsician Fire數(shù)據(jù)集上的實驗結果??梢钥吹绞褂昧祟伾龑У膾佸^機制的Faster RCNN達到了更優(yōu)的準確度,Barmpoutis等[10]的方法在該數(shù)據(jù)集上達到了最優(yōu)的檢測結果。在Faster R-CNN后串聯(lián)紋理分析會使得火焰檢測更加可靠,但顯然會進一步增加計算量,因此本文方法也可以應用于文獻[10]的方法中,提高其火焰檢測的速率。
表4 各方法在Corsician Fire數(shù)據(jù)集上的準確度對比Tab.4 Accuracy comparison of different methodson Corsician Firedataset
本文實驗所使用的硬件平臺均為英特爾I7-9700K八核CPU與有12 GB顯存的GeForce GTX TITAN X GPU。實驗軟件開發(fā)環(huán)境為python,使用的模型通過pytorch框架搭建。實驗中,F(xiàn)aster R-CNN使用的骨干網(wǎng)絡為ResNet101。圖5展示了仿真環(huán)境下一些火焰圖像的檢測結果,可以看到圖中一些較小的火焰沒有被檢出,其余均被正確檢出。
圖5 檢測結果示例Fig.5 Samples of detection results
本文提出了由顏色引導的火焰檢測方法,一個新穎的顏色引導的拋錨策略。該策略易于實現(xiàn),并可以提高Faster RCNN在火焰檢測中的效率與召回率。通過在BoWFire數(shù)據(jù)集上與兩個現(xiàn)有工作進行的比較,本文方法可以達到最高的召回率(97.48%)。同時,通過在BoWFire數(shù)據(jù)集上進行的速度測試,顏色引導的拋錨策略可以將Faster R-CNN的檢測速度提升10.1%。最后,在Corsician Fire數(shù)據(jù)集上進行的實驗驗證了本文方法的魯棒性。本文方法的良好性能來自兩個原因:一是Faster R-CNN中卷積層的強大特征提取能力,另一個是訓練數(shù)據(jù)集的豐富性。未來的工作中,將研究在特征提取層使用掩膜卷積來進一步提升檢測效率,并將本文的方法移植到消防機器人上,在實踐中測試其有效性。