金仙力,宋少杰,劉林峰
(南京郵電大學 計算機學院,江蘇 南京 210023)
隨著全球氣候變暖,現(xiàn)如今火災(zāi)發(fā)生的越來越頻繁。如果不能及時發(fā)現(xiàn),一旦火勢蔓延開來,不僅會毀滅生活在其中的動植物,破壞生態(tài)系統(tǒng),造成林木資源的損失而且其產(chǎn)生的大量煙塵會嚴重污染空氣,破壞環(huán)境[1-2],進而威脅到人類的生存環(huán)境,同時對于火災(zāi)的撲救需要大量的人力、物力、財力,甚至會有消防人員因此而喪生,給人民的生命財產(chǎn)安全造成巨大威脅。為了盡可能降低森林火災(zāi)所造成的危害,及時地發(fā)現(xiàn)和撲救森林火災(zāi),需要對森林火災(zāi)進行智能化、自動化檢測。然而傳統(tǒng)的森林火災(zāi)檢測,是基于視頻監(jiān)控的,由于視頻監(jiān)控是不可移動的,當它發(fā)現(xiàn)火災(zāi)時,火已經(jīng)很大了,此時撲救已經(jīng)很晚了,而且基于這種固定平臺的火災(zāi)檢測,檢測范圍很小,很難及時、有效地檢測出森林火災(zāi)。如果使用人工巡查的方式,那將會受到天氣、人手、交通、工作時間、工作時長等等條件的限制,檢測效率同樣很低,所以對于森林火災(zāi)的智能化、自動化檢測,是一個迫切需要解決的問題。對此筆者進行了初步的研究,希望借助無人機這種小型快速移動平臺對森林進行巡查以期望能夠及時發(fā)現(xiàn)森林火災(zāi),將火災(zāi)造成的影響降到最低,然而傳統(tǒng)算法已不能滿足無人機這種快速移動平臺的要求,現(xiàn)有的算法大都比較適合于處理背景相對固定的場景,對于這種場景時時刻刻在發(fā)生變化的情況,效果并不好。在這種情況下大多數(shù)的算法都會產(chǎn)生大量的噪聲,會將靜止的物體當作是運動的,比如背景建模中很經(jīng)典的算法─GMM[3],它在這種場景下會產(chǎn)生大量的噪聲,檢測效果十分不理想,因此需要一種能夠快速適應(yīng)變化,并且具有很好的實時性的算法。
運動前景目標檢測[4]一直是國內(nèi)外視覺監(jiān)控領(lǐng)域研究的熱點和難點之一,其目的是將視頻或序列圖像中的變化區(qū)域從背景中提取出來,運動前景目標的有效檢測對于目標跟蹤、目標識別、行為理解等后期處理至關(guān)重要。
對于視頻監(jiān)控場景下的火災(zāi)檢測,Adnan Khalil等人提出了一種使用多顏色空間和背景建模的火災(zāi)檢測算法[5],該算法是一種基于RGB和Lab顏色模型的新型火災(zāi)檢測算法,通過將顏色模型分割算法與運動檢測算法(GMM算法)結(jié)合起來實現(xiàn)對火災(zāi)的檢測,此算法對于靜止的視頻場景有較好的檢測效果,但無法處理更為復(fù)雜的場景。Teng Wang等人提出一種基于火焰色散和連續(xù)幀相似度的火災(zāi)探測算法[6],該算法將火焰溫度和顏色分為火芯層,內(nèi)火層和外火層,提出一種基于火焰顏色分量離散度的火焰識別模型,再將檢測區(qū)域連續(xù)視頻幀的相似性納入到該算法,從而實現(xiàn)對火災(zāi)的檢測,此算法能夠克服常規(guī)干擾源的不利影響。Faming Gong等人提出一種多特征融合的實時視頻火災(zāi)檢測算法[7],此算法將火焰的形狀變化特征值、火焰像素數(shù)變化的特征值、火焰空間重心變化特征值和其他特征值(RGB顏色值、飽和度值、灰度值)標準化后輸入SVM(支持向量機)進行訓練,從而實現(xiàn)火災(zāi)檢測,此算法對于簡單的場景有較好的檢測效果,但是容易受到顏色相近的物體的影響,從而造成誤檢。Chao Hu等人提出一種基于深度卷積遞歸網(wǎng)絡(luò)和光流法的實時火災(zāi)檢測算法[8],此算法利用火焰的靜態(tài)和動態(tài)特性,將火焰的RGB圖像實時轉(zhuǎn)換為光流圖像,并使用卷積神經(jīng)網(wǎng)絡(luò)進行空間學習(一類用于序列學習的循環(huán)卷積體系)最終實現(xiàn)對火災(zāi)的檢測,但是此算法嚴重依賴視頻的質(zhì)量,當距離較遠時或者火焰、煙霧的特征不明顯時檢測效果較差。
對于無人機場景下的火災(zāi)檢測,Chi Yuan等人在2017年提出一種使用紅外圖像的無人機森林火災(zāi)檢測算法[9],此算法使用基于直方圖的分割方法來提取熱物體,以此作為候選火災(zāi)區(qū)域,然后采用光流法計算候選區(qū)域的運動矢量,最后采用形態(tài)學運算和斑點計數(shù)器方法,該算法可以有效地提取和跟蹤紅外視頻序列中的火焰像素。其在2019年又提出一種基于學習的無人機煙霧檢測算法[10],此算法包含基于模糊邏輯的煙霧檢測和分割方案以及擴展的基于卡爾曼濾波器的智能調(diào)節(jié)規(guī)則,通過選擇RGB顏色模型中的紅色、綠色和藍色的兩個分量的差異以及圖像的HIS顏色模型中的色相、飽和度和強度作為模糊邏輯規(guī)則的輸入,選擇煙霧可能性作為其模糊邏輯規(guī)則的輸出,然后進一步采用擴展卡爾曼濾波器(EKF)重塑模糊煙霧檢測規(guī)則的輸入和輸出,此算法對于火災(zāi)的早期發(fā)現(xiàn)有較好的效果。
基于上述思想,借鑒經(jīng)典的高斯混合模型,該文提出一種基于GMM的多顏色空間融合的火災(zāi)檢測算法。該算法將自適應(yīng)高斯混合模型作為基礎(chǔ)背景模型進行建模。首先使用多種顏色模型和形態(tài)學方法對視頻幀圖像進行預(yù)處理,然后在此基礎(chǔ)上采用改進的三幀差分法[11]配合改進的自適應(yīng)GMM算法[12-13]進行煙霧和火焰的檢測,最后使用開運算、閉運算等形態(tài)學處理方法對最后結(jié)果進行進一步的降噪處理。
建立煙霧的HSV顏色模型的目的是為了預(yù)先去除視頻幀圖像中非煙霧部分的噪聲干擾,為后續(xù)的檢測做準備。HSV顏色模型[14]是根據(jù)顏色的直觀特性而建立的,它與人類對于顏色的視覺感知以及生理特性非常符合,能準確地反映出圖像的顏色信息,廣泛應(yīng)用于圖像處理中,其中H表示色調(diào),S表示飽和度,V表示明度。根據(jù)實驗的統(tǒng)計,建立煙霧的HSV顏色模型:
(85
(1)
將式(1)中模型預(yù)處理后得到的二值圖進行形態(tài)學處理,具體做法是將二值圖做膨脹運算,這一步的目的是為了盡可能將煙霧區(qū)域包含進去,以便于后續(xù)進一步的處理。
建立火焰的RGB和XYZ混合模型的目的是為了預(yù)先去除視頻幀圖像中非火焰部分的噪聲干擾,為后續(xù)的檢測做準備。RGB顏色模型[15]是以R(Red:紅)、G(Green:綠)、B(Blue:藍)三種基本色為基礎(chǔ)進行不同程度的疊加,進而產(chǎn)生豐富的顏色,是最為基礎(chǔ)的顏色模型。XYZ顏色模型[16]是為了確定人眼感知顏色的平均狀況而建立的,1931年國際照明委員會(CIE)在RGB顏色模型的基礎(chǔ)上,使用三個假想的原色X、Y、Z建立了一個新的色度系統(tǒng)。根據(jù)實驗發(fā)現(xiàn),火焰在XYZ顏色空間的區(qū)分度最高,因此該文采用RGB和XYZ融合的顏色模型,這樣可以在一定程度上彌補單一顏色模型的缺陷。根據(jù)實驗統(tǒng)計,建立RGB融合XYZ的顏色模型:
(R>Rmean)&(G>Gmean)&(R≥G≥B)|(Z (2) 將式(2)中模型預(yù)處理后得到的二值圖進行形態(tài)學處理,具體做法是將二值圖做膨脹運算,這一步的目的是為了盡可能將火焰區(qū)域包含進去,以便于后續(xù)進一步的處理。 幀間差分法的原理是當視頻中存在移動物體的時候,相鄰幀(或相鄰三幀)之間在灰度上會有所差別,求取兩幀圖像灰度差的絕對值,判斷它是否大于閾值來分析視頻或圖像序列中有無物體運動,當絕對值超過一定閾值時,即可判斷為運動目標,從而實現(xiàn)運動目標檢測的功能。兩幀差分法由于其固有的缺陷,導致其無法有效提取運動目標的完整輪廓,三幀差分法是兩幀差分法的一種改進方法,它選取連續(xù)三幀視頻圖像進行差分運算,從而能夠精確地提取運動目標的輪廓信息。但是這同樣會導致一個問題,在背景時常發(fā)生變化的情況下,三幀差分法在視頻或圖像序列中有明顯邊界的地方會出現(xiàn)誤檢,留下一條細細的邊界線。 該文采用的是改進的三幀差分法,采用此算法的主要目的是為了消除邊界線的噪聲干擾和彌補火焰顏色模型的缺陷,由于火焰顏色模型并不能總是準確、完整地識別出火焰,而三幀差分法對于移動較為明顯的火焰有很好的檢測效果,所以可以在一定程度上彌補火焰顏色模型的缺陷。具體做法是:①首先使用式(2)的火焰顏色模型對視頻幀圖像進行處理,得到二值圖;②對①的結(jié)果進行形態(tài)學處理,具體指的是對①的結(jié)果做膨脹運算,目的是為了盡可能包含火焰區(qū)域;③使用三幀差分法對視頻幀圖像進行處理,此時的結(jié)果帶有邊界噪聲;④將③的結(jié)果和②的結(jié)果做與運算得到火焰區(qū)域;⑤將③的結(jié)果和④的結(jié)果做差分運算得到誤檢的邊界(這一步的結(jié)果將用來改進2.4中的自適應(yīng)高斯混合模型算法,去除其誤檢的邊界)。 自適應(yīng)高斯混合模型是對高斯混合模型的改進,由于高斯混合模型的高斯分布的個數(shù)是固定的,導致有冗余計算,不能隨機應(yīng)變,因而自適應(yīng)高斯混合模型對此進行了改進,可以動態(tài)調(diào)整高斯分布的個數(shù),從而大大減小了計算量,使算法更加快速。自適應(yīng)GMM算法大致分為三步:①建立高斯混合模型,初始化參數(shù);②前景檢測并更新參數(shù);③對單高斯模型進行排序,選取最適合的背景模型。 首先為每一個像素點建立K個高斯模型,假設(shè)輸入的視頻幀序列為{1,2,…,t},視頻幀中P(x,y)像素點的值的序列為{x1,x2,…,xt},則在t時刻像素點P(x,y)取值為xt的概率為: (3) 其中,η(x,μ,Σ)表示單高斯概率密度函數(shù),ωi,t表示t時刻第i個高斯模型的權(quán)值大小,μi,t表示t時刻第i個高斯模型的均值向量,Σi,t表示t時刻第i個高斯模型的協(xié)方差向量,K表示高斯分布模型的個數(shù),K的值一般取3~5之間。方差初始設(shè)置盡量大些,這是為了盡可能多地將像素包含到一個模型里面,權(quán)值設(shè)置盡量小些。 η(x,μ,Σ)= 當有新的觀測數(shù)據(jù)xt+1來臨時,將該點的像素值與K個高斯模型的均值μi,t進行比較: ‖xt+1-μi,t‖≤2.5×σi,t (5) 其中,σi,t表示t時刻第i個高斯模型的標準差,如果當前像素與當前單高斯模型匹配(符合式(5)的即為匹配,否則為不匹配),則當前像素點為背景,如果不存在與當前像素匹配的單高斯模型,則當前像素點為前景。 比較完成需要更新各個模型的參數(shù),對于各個模型的權(quán)值按如下公式進行更新,其中α為用戶定義的學習率,是決定背景更新速度的重要參數(shù),α越小,則更新的速度越慢,反之越快。對于匹配的模型Gk,t=1,否則Gk,t=0即權(quán)值衰減。 ωi,t+1=(1-α)×ωi,t+α×Gk,t (6) 對于各個模型的均值、方差而言,未匹配的模型,其均值和方差不變,對于匹配的模型則需根據(jù)當前像素xt+1對其均值和方差按式(7)~式(9)進行更新處理,然后對權(quán)重進行歸一化處理。 ρ=α/ωi,t+1 (7) μi,t+1=(1-ρ)×μi,t+ρ×xt+1 (8) Σi,t+1=(1-ρ)×Σi,t+ρ×(xt+1-μi,t+1)× (xt+1-μi,t+1)T (9) 其中,ρ為參數(shù)學習率。如果式(5)的比較中沒有任何模型得到匹配,則權(quán)重最小的高斯分布模型將被替換,新模型的均值為當前像素值,權(quán)值為一個初始較小值,方差為一個初始較大值。 為了提高算法效率,需要依據(jù)單高斯模型的重要性進行排序。假設(shè)背景模型具有兩個特點:一是權(quán)重大,則背景出現(xiàn)的頻率大;二是方差小,像素值變化不大。據(jù)此使用ωi,t/σ作為判斷的度量值,將K個高斯分布按大小進行排序,把滿足式(10)的前B個模型作為背景模型: (10) 幾乎所有的背景建模算法在面對這種背景時時發(fā)生變化的場景時,都會在有明顯邊界的地方出現(xiàn)一條細細的線狀噪聲區(qū)域。為了盡可能抑制這種噪聲,使用2.3中的第⑤步差分得到的誤檢的邊界來改進自適應(yīng)高斯混合模型,具體做法是將自適應(yīng)高斯混合模型得到的二值圖與2.3中第⑤步得到的誤檢的邊界做差分運算,通過這種方法可以在一定程度上抑制邊界上出現(xiàn)的誤檢。 圖像形態(tài)學是用來處理圖像形狀特征的技術(shù),常用于圖像的預(yù)處理和后處理,是圖像處理應(yīng)用最為廣泛的技術(shù)之一。腐蝕和膨脹是其中最基本也是最重要的兩種形態(tài)學運算,它們是后續(xù)很多高級形態(tài)學處理的基礎(chǔ),很多其他的形態(tài)學算法都是由這兩種基本運算復(fù)合而成。該文采用先開運算(先腐蝕后膨脹)再閉運算(先膨脹后腐蝕)的方法。 大多數(shù)的背景建模算法在處理無人機平臺下的火災(zāi)檢測的時候,由于背景時時刻刻在發(fā)生變化,導致算法會出現(xiàn)大量的噪聲和誤檢,所以對于特定場景下的優(yōu)化處理就顯得格外重要。同樣由于無人機的快速移動,對算法的實時性也提出了很高的要求。該算法以自適應(yīng)高斯混合模型作為基礎(chǔ)模型,之所以采用自適應(yīng)高斯混合模型,是因為首先高斯混合模型本身就是一種非常優(yōu)秀的背景建模算法,很多其他的算法都是在此基礎(chǔ)上進行的改進。其次自適應(yīng)高斯混合模型是對高斯混合模型的一種改進,去掉了其中存在的冗余計算,提高了算法的性能,使算法具有更高的實時性。該算法大致分為預(yù)處理、檢測、后處理三個步驟。 首先提取無人機拍攝的視頻幀,視頻是由一系列靜止的畫面組成的,這些靜止的畫面被稱為幀,使用任何一種編程語言(使用python)對無人機拍攝的視頻進行視頻幀提取,就會得到一系列視頻幀圖像。預(yù)處理階段:使用公式(1)的HSV顏色模型和形態(tài)學方法(具體指膨脹運算)對視頻幀圖像進行煙霧預(yù)處理,就會得到初步去除噪聲的二值圖,使用煙霧預(yù)處理的目的是為了預(yù)先去除一些噪聲,為進一步的檢測做準備。再使用公式(2)的RGB、XYZ融合的顏色模型和形態(tài)學方法(具體指膨脹運算)對視頻幀圖像進行火焰預(yù)處理,同樣會得到去除噪聲的二值圖。然后將經(jīng)過煙霧預(yù)處理、火焰預(yù)處理后得到的二值圖做或運算就會得到經(jīng)過初步預(yù)處理的二值圖(此處的二值圖是初步去除非煙霧和非火焰后得到的結(jié)果)。檢測階段:顏色模型并不是萬能的,并不能總是非常精確地將目標的輪廓檢測出來,同時,由于幾乎所有的背景建模算法在面對背景時刻發(fā)生變化的情況時,都會在有明顯邊界的地方出現(xiàn)誤檢,形成一條細細的線狀的噪聲區(qū)域。為了解決這些問題,采用改進的三幀差分法,首先三幀差分法對于移動較為明顯的火焰有較好的提取效果,可以在一定程度上彌補顏色模型的缺陷,其次由于幀間差分法固有的缺陷,導致其在邊界也會形成細細的線狀的誤檢區(qū)域,但是其對于其他類型的噪聲有很強的抗干擾能力,所以其檢測出來的圖像很少帶有噪聲(除了邊界處的線狀噪聲),因此很容易提取這細細的線狀誤檢區(qū)域,在很大程度上抑制了這種噪聲的產(chǎn)生。接著使用改進的三幀差分法所檢測出來的線狀誤檢區(qū)域來改進自適應(yīng)高斯混合模型算法,然后使用改進的自適應(yīng)高斯混合模型算法進行運動前景目標檢測,檢測后得到二值圖,將此二值圖和前面的經(jīng)過煙霧、火焰預(yù)處理過的二值圖做與運算(去除掉自適應(yīng)高斯混合模型算法檢測帶有的噪聲)。后處理階段:使用形態(tài)學方法(具體是先開運算再閉運算)對檢測階段得到的二值圖進行進一步的降噪處理。偽代碼如圖1所示。 圖1 算法偽代碼 在win7系統(tǒng)下使用OpenCV進行仿真實驗,數(shù)據(jù)集來源于網(wǎng)絡(luò)視頻庫中無人機拍攝的森林火災(zāi)視頻,視頻幀大小為732×484,處理一幀大約需要35 ms,基本滿足實時性。該文抽取其中的300幀作為算法性能分析的數(shù)據(jù),數(shù)據(jù)中包括了場景發(fā)生較大變化的部分。 高斯混合模型是一種十分優(yōu)秀的背景建模算法,很多其他的算法都是在此基礎(chǔ)上進行的改進。由于無人機平臺的特殊性,導致視頻幀的背景時時刻刻在發(fā)生變化,所以高斯混合模型會產(chǎn)生大量的噪聲,通過對視頻幀圖像的預(yù)處理和后處理,可以在很大程度上抑制噪聲的產(chǎn)生,準確地檢測出煙霧和火焰。 (1)傳統(tǒng)的三幀差分法與改進的三幀差分法實驗對比如圖2所示。 圖2 傳統(tǒng)的三幀差分法與改進的三幀差分法的實驗對比 (2)GMM算法與文中算法的實驗對比如圖3所示。 圖3 GMM算法與文中算法的實驗對比 (3)形態(tài)學方法處理前后的實驗對比如圖4所示。 圖4 形態(tài)學方法處理前后的實驗對比 為驗證算法的有效性,分別利用GMM算法和文中算法計算了目標輪廓面積為50像素(見圖5、圖6)、100像素(見圖7、圖8)下的正確檢測率、錯誤檢測率。 圖5 50像素下的GMM算法和文中算法的正確檢測率對比 圖6 50像素下的GMM算法和文中算法的錯誤檢測率對比 圖7 100像素下的GMM算法和文中算法的正確檢測率對比 圖8 100像素下的GMM算法和文中算法的錯誤檢測率對比 在上述實驗對比圖中70幀左右的地方場景變化比較大,GMM算法對于這種突然較大的場景變化適應(yīng)性很差,需要很長的時間才能逐漸恢復(fù)到效果比較好的狀態(tài),而文中算法在70幀左右的地方性能也有一些下降,但很快就恢復(fù)到效果比較好的狀態(tài),并且一直保持著較高的準確率和穩(wěn)定性。文中算法對于場景會發(fā)生比較大變化的環(huán)境有很好的適應(yīng)性。 在考慮算法的基礎(chǔ)模型上嘗試過很多的算法,比如CodeBook算法、自組織背景建模算法等等,在實驗中的效果均不太理想。由于高斯混合模型是背景建模算法中非常優(yōu)秀的算法,很多其他算法都是在它的基礎(chǔ)上建立起來的,因此采用高斯混合模型作為基礎(chǔ)模型,但在實際運用過程中的效果并不好,會產(chǎn)生大量的干擾和噪聲,所以需要對算法進行優(yōu)化處理(包括預(yù)處理、后處理等)。 該文還沒有解決的問題主要有以下幾個方面:一是顏色模型并不是萬能的,在一些特殊的情況仍然會有噪聲產(chǎn)生,雖然改進的三幀差分法在一定程度上彌補了火焰顏色模型的缺陷,但仍有很大的改進空間;二是改進的自適應(yīng)高斯混合模型算法雖然在很大程度上抑制了邊界的誤檢,但是不能完全消除,仍然會有一些邊界誤檢存在,這種誤檢幾乎是所有的背景建模算法在面對背景時時發(fā)生變化的場景下的通病,其仍有很大的改進空間。 下一步的研究工作主要在于枯樹的檢測識別,無人機下的森林火災(zāi)檢測雖然可以在火災(zāi)初期及時發(fā)現(xiàn)火災(zāi),但是此時火災(zāi)已經(jīng)發(fā)生,為了更進一步地預(yù)防森林火災(zāi),需要研究枯樹的檢測識別,如果能夠在這上面獲得突破,那么就可以極大地減少森林火災(zāi)發(fā)生的可能。2.3 改進的三幀差分法
2.4 改進的自適應(yīng)高斯混合模型算法
2.5 圖像形態(tài)學處理
2.6 算法流程
3 實驗結(jié)果與分析
3.1 定性分析
3.2 定量分析
4 結(jié)束語