劉燕德,曾體偉,陳洞濱,王觀田
(華東交通大學 機電與車輛工程學院,南昌330013)
構(gòu)建智能交通監(jiān)控系統(tǒng)是保障城市安全的重要手段,而視頻行人檢測是智能化視頻監(jiān)控領(lǐng)域中的主要研究方向。運動前景目標檢測作為視頻行人檢測的關(guān)鍵技術(shù)之一,是實時視頻圖像處理技術(shù)的基礎,準確提取視頻序列前景運動區(qū)域,有助于其他后期處理,如行人識別和行人跟蹤等。近年來已有很多相關(guān)研究展開,目前常用的前景提取方法有光流法[1]、背景差分法[2-3]和幀間差分法等[4]。背景差分法較為常用,檢測性能高、實時性較好,但依賴于背景模型的準確性,難以解決實際場景中的背景動態(tài)變化、光線變化以及相機抖動等問題。光流法需要計算大量的光流場,實時性不高,難以應用于實際。幀差法計算簡單,算法復雜度低,但往往不能提取目標完整區(qū)域。
ViBe算法是一種像素級的前景檢測算法,具有運行速度快、可靠性高的特點,但其自身也存在著局限性:背景初始化僅用第1幀視頻序列,但當?shù)?幀圖像序列中存在運動目標時,運動目標所在區(qū)域的像素也會填充作為背景進行建模導致鬼影現(xiàn)象[3];在前景檢測階段,分類前景和背景像素點應用的是固定閾值,在動態(tài)背景中很容易造成擾動,影響檢測結(jié)果;對由靜轉(zhuǎn)動和由動轉(zhuǎn)靜的目標檢測時則存在拖影現(xiàn)象。雖然利用ViBe算法的更新機制可以有效解決這些問題,但往往耗時較長,誤檢區(qū)域長時間的存在會對后續(xù)的檢測帶來不便。
為提高ViBe算法在復雜環(huán)境下的檢測性能,文獻[5]提出一種多尺度變換的改進ViBe算法,對3種不同分辨率圖像的檢測結(jié)果進行融合,以達到減少動態(tài)背景影響的目的。文獻[6]設計了采用一維最大內(nèi)間方差法得出圖像幀的動態(tài)閾值替代靜態(tài)閾值,并結(jié)合像素生命長度進行二次更新消除鬼影。文獻[7-8]針對ViBe算法固定閾值問題,依據(jù)輸入圖像像素點與背景模型的標準差來評價環(huán)境的動態(tài)變化以調(diào)節(jié)參數(shù),但此方法計算復雜度較高。文獻[9]通過前景像素點所在區(qū)域求區(qū)域方差大小進行判定鬼影。文獻[10-11]采用前多幀圖像獲得構(gòu)建背景模型抑制鬼影的產(chǎn)生。也有許多學者嘗試將ViBe算法與其他方法相結(jié)合,文獻[12-14]結(jié)合幀差法或混合高斯模型(Gaussian Mixture Model,GMM)共同處理檢測前景目標,避免鬼影形成,但在后續(xù)的前景目標檢測中容易出現(xiàn)空洞以及邊緣不完整的情況。與其他方法的結(jié)合雖然能改善檢測效果,但也容易引入其他算法本身的缺陷。文獻[15]提出在初始化過程中擴大背景模型的取值范圍來減少判別誤差,并對鬼影區(qū)域重新構(gòu)建模型來抑制鬼影。文獻[16]針對運動目標檢測ViBe算法在執(zhí)行過程中的鬼影以及背景抖動問題,提出一種可以快速消除鬼影的目標檢測算法。文獻[17]針對固定閾值的問題,采用Otsu算法求取分割閾值來檢測運動目標,但仍不能完全去除鬼影。
針對上述研究的不足,本文提出一種改進的ViBe算法。采用Otsu算法得到圖像的動態(tài)閾值,增強算法在動態(tài)背景中的抗干擾能力,同時通過分析區(qū)域相似度判別鬼影、拖影或靜止目標區(qū)域,自適應地對不同類別區(qū)域像素進行更新抑制,從而提高檢測精度。
ViBe算法[3,18]是一種應用廣泛的快速背景提取算法,其檢測運動目標效果穩(wěn)定,算法計算過程簡單,魯棒性和實時性較高。ViBe算法主要由三部分組成,即背景像素模型建立及分類、像素模型初始化、背景模型的更新。
ViBe算法為每一個像素點F(x,y)建立N個背景樣本值的背景像素點樣本集S(x,y),N的取值通常為20,具體表達式如下:
S(x,y)={F1,F2,…,FN}
(1)
背景模型的初始化過程類似填充過程,因ViBe算法使用一幀圖像進行初始化,但包含的信息有限,利用相鄰像素點之間在時空分布上的特性,故在像素點8鄰域中隨機任選一點保存至其對應的背景模板中,重復N次。
前景檢測過程即對像素點與背景樣本集像素對比,判斷當前像素點屬于前景點還是背景點。圖1所示為像素點的分類過程。
圖1 ViBe算法分類過程
以像素點F(x,y)為圓心,固定閾值R為半徑的區(qū)域SR(F(x,y)),若SR(F(x,y))中與樣本集S(x,y)的像素點交集個數(shù)U大于設定的閾值Umin,則將該像素F(x,y)判定為背景像素,小于閾值Umin則判定為前景像素,分類過程如下:
(2)
其中,M(x)為檢測結(jié)果。
需要對背景模型進行更新以適應環(huán)境的動態(tài)變化,當檢測為背景點時,即M(x)=0時,有1/φ的概率替代該點樣本集S(x,y)中的任一樣本vi(φ稱為時間抽樣因子)。
vi=fi(x,y),i∈{1,2,…,N}
(3)
采用空間鄰域更新機制擴散到相鄰像素,在更新該點像素背景樣本集的同時有1/φ對其8鄰域隨機選取一像素f′i(x,y)的背景樣本集S′i(x,y)內(nèi)一個樣本vi進行隨機更新。
vi=f′i(x,y),i∈{1,2,…,N}
(4)
在連續(xù)時間(t,t+dt)內(nèi),背景模型樣本值隨時間變化的概率如下:
P(t,t+dt)=((N-1)/N)(t+dt)-t
(5)
P(t,t+dt)=e-ln(N/N-1)dt
(6)
式(5)和式(6)表明,樣本像素點的生命周期呈平滑指數(shù)衰減趨勢,無記憶性,在一定程度上表明該更新機制能夠適應場景變化,降低前景像素的誤檢性。
在ViBe算法中,劃分前景背景使用的是固定閾值即式(2),但固定閾值通常無法適應動態(tài)背景的目標檢測。因此,本文引入最大類間差分法(Otsu)算法[19]對原算法進行改進。Otsu算法將圖像根據(jù)灰度特性分為2個部分(前景像素區(qū)域和背景像素區(qū)域),并計算區(qū)域類間最大方差來確定最佳分割閾值,利用當前幀It和背景模型幀Bt的差分圖像Dt(x,y):
Dt(x,y)=|It-Bt|,?t≥2
(7)
ViBe算法檢測運動目標只含前景與背景兩部分,適用Otsu算法,最佳閾值可以減少分類誤差,設計思想為:設當前幀圖像I,圖像中前景像素和背景像素所占比例為w1和w2,區(qū)域內(nèi)平均灰度分別為u1和u2,并設平均灰度為u,設類間方差為σ2,最佳區(qū)分閾值設為Topt,將圖像分為灰度級分別是[0,Topt]和[Topt,L]的2個區(qū)域,分別對應的背景和運動目標如下:
u=w1×u1+w2×u2
(8)
σ2=w1[u1-u]>2+w2[u2-u]>2
(9)
其中,w1+w2=1,方差σ2最大,分割的效果閾值越好,σ2的求法采用遍歷整個圖像的灰度級的方式,對最佳閾值Topt上下值取值作門限限制Topt∈(10,150),這樣遍歷次數(shù)減少,能更快求取出最佳閾值[19],計算公式如下:
Topt=argmin(σ2)
(10)
結(jié)合Otsu算法求解最佳分割閾值后,能夠抑制噪聲并在一定程度上抑制鬼影,如文獻[6,17]中對Otsu最佳閾值分割Topt和ViBe算法進行二次判別,但仍有部分鬼影區(qū)域未能全部消除,這是因為當鬼影區(qū)域間于Otsu最佳閾值分割的前景和背景之間時,并不能很有效地去除鬼影,特別是在監(jiān)控復雜行人的檢測環(huán)境中,圖2所示為Otsu+ViBe算法的鬼影去除效果,其中,從左至右分別為PETS2009、dataset2014和文獻[17]中的實驗圖像。
圖2 基于Otsu+ViBe算法的鬼影消除效果
本文基于背景模型局部掩模區(qū)域與輸入圖像掩模區(qū)域的相似度匹配,提出鬼影區(qū)域即區(qū)域相似度鬼影的判斷方法,通過分析局部區(qū)域的背景幀和當前幀相似度來判定該區(qū)域?qū)儆诠碛斑€是靜止區(qū)域,并采取不同的更新策略,抑制靜止目標的消融,加快鬼影區(qū)域的消除速度。具體算法步驟如下:
1)算法初始化。構(gòu)建背景模板,并為每一像素p設置一個計數(shù)器TOS(p),計數(shù)為前景點的次數(shù),初始化為0,定義每個像素點標志位C初始化為0。
2)背景點模型更新。對新一幀像素進行分析,像素點為背景點的轉(zhuǎn)至第7步,像素點為前景點計數(shù)器加1,標志位C置1,若計數(shù)器TOS(p)達到閾值Q則轉(zhuǎn)第3步,否則前景點不做更新,轉(zhuǎn)第2步。
3)鬼影與靜止區(qū)域判別。達到閾值Q,判定為持續(xù)前景點,并且此前景點可能是鬼影或靜止區(qū)域,標記出持續(xù)前景點所在區(qū)域掩模,轉(zhuǎn)第4步。
5)相似度低于閾值T,判定掩模區(qū)域為鬼影區(qū)域,用當前幀像素點替換,并重新局部初始化。計數(shù)器清0,標志位C置0。
6)相似度高于閾值T,判定該區(qū)域為靜止區(qū)域,背景模型不做更新。TOS(p)置0,C置1。
7)1/φ的概率從M(x)中選取一個值采用新一幀像素點p代替,并且該像素點的8鄰域也以1/φ的概率更新,TOS(p)置0,C置0。
運動目標檢測過程中偶爾存在背景小目標擾動,并且當運動目標內(nèi)部存在與背景顏色相近的區(qū)域時,會出現(xiàn)孔洞殘缺現(xiàn)象,此時需要進行形態(tài)學處理。本文首先通過閉運算填充孔洞連接目標,然后采用開運算去除背景噪音,最后通過區(qū)域生長法完整地分割提取出前景區(qū)域。
本文算法實驗環(huán)境如下:處理器為Intel(R) Core(M) i5-6300HQ CPU@ 2.30 GHz 2.30 Hz,內(nèi)存為12 GB,程序代碼使用matlab2014b版本編寫。參數(shù)設置如下:背景模型中像素點構(gòu)建樣本樣本集N=20,前景檢測樣本匹配閾值d(H1,H2)=2,幀采樣頻率φ=16,計數(shù)器TOS(p)閾值Q=15。
針對鬼影的消除實驗,測試視頻選取dataset 2014數(shù)據(jù)集中的PETS2006和PETS2009中的View_002視頻序列,實驗結(jié)果如圖3、圖4所示。可以看出,雖結(jié)合三幀差可以去除鬼影區(qū)域,但在后續(xù)的檢測過程中容易出現(xiàn)孔洞現(xiàn)象(見PETS2006第50幀和View_002第48幀圖像的處理結(jié)果)。文獻[17]算法雖然通過引入Otsu閾值分割得到最佳閾值和ViBe算法進行二次判別進行去除鬼影,但仍存在部分鬼影區(qū)域未能全部消除的情況,這是因為第1幀鬼影區(qū)域位于Otsu最佳閾值分割的前景和背景之間,并不能很有效地去除鬼影。與上述3種典型的運動目標檢測算法相比,本文提出的改進ViBe算法對鬼影的消除效果較好,檢測的運動目標前景較為完整,沒有出現(xiàn)其他算法鬼影去除不干凈或是大范圍漏檢和誤檢的情形,在一定程度上抑制了陰影,并且能夠快速、有效地消除鬼影現(xiàn)象,提高檢測結(jié)果的準確性。
圖3 不同算法的鬼影消除實驗結(jié)果對比(PETS2006視頻序列)
圖4 不同算法的鬼影消除實驗結(jié)果對比(View_002視頻序列)
針對靜態(tài)目標轉(zhuǎn)變?yōu)閯討B(tài)目標產(chǎn)生的拖影,對其消除實驗的對比算法有GMM算法、三幀差法、原ViBe算法。實驗測試視頻選自dataset2014數(shù)據(jù)集中的winterDriveway視頻序列。在該組場景中,長時間停放的車倆早已融入背景模型中,當車輛由靜止狀態(tài)緩慢轉(zhuǎn)變成為運動狀態(tài)時出現(xiàn)拖影現(xiàn)象,需要很長時間消融。實驗結(jié)果如圖5所示??梢钥闯?在第1 487幀時,車輛尚處于靜止狀態(tài),原始ViBe算法由于環(huán)境中光照的變化、風吹過樹葉等噪聲干擾檢測已經(jīng)出現(xiàn)前景噪聲,改進ViBe融合Otsu最佳閾值分割能夠有效抑制干擾噪聲;在圖像第1 852幀~第1 970幀的這100幀中,目標逐漸由靜止狀態(tài)轉(zhuǎn)變?yōu)檫\動狀態(tài),原始ViBe算法很明顯出現(xiàn)了拖影現(xiàn)象,而三幀差法基本上測不到目標,這是由于車輛緩慢運動,依靠幀間信息并不能檢測出前景目標,GMM算法也出現(xiàn)了拖影現(xiàn)象,而改進的ViBe算法能夠很快抑制拖影;在第2 106幀時,距離產(chǎn)生拖影過去了250幀的時間,但原始ViBe算法的拖影現(xiàn)象仍非常明顯,而改進ViBe算法基本已經(jīng)沒有拖影。
圖5 不同算法的殘影消除實驗結(jié)果對比
上述實驗結(jié)果表明,本文提出的改進ViBe算法在消除靜止目標產(chǎn)生的拖影方面表現(xiàn)較好,未出現(xiàn)其他算法的拖影長時間去除不干凈的情形。因此,該算法能夠快速、有效地抑制靜止目標拖影現(xiàn)象,提高檢測結(jié)果的精準性。
本文對算法性能的評價,采用統(tǒng)計數(shù)值的方法反映算法的特征,選用召回率、檢測精度、誤匹配率、真負率、假正率、假負率和F度量值作為算法的評價指標。一般主要看3個指標,即檢測精度、召回率和綜合評價指標F值,其中:檢測精度表示前景像素分割的精準度;召回值是檢測出的前景像素點覆蓋有效像素點的度量;F度量值是算法性能的綜合評價因子,數(shù)值越高算法越優(yōu)秀。本文根據(jù)數(shù)據(jù)集dataset2014的PETS2006、winterDriveway和highway視頻序列提供的真值圖,分別取300~900、1 000~2 500、470~1 700共3 630幅真值圖像,參照網(wǎng)站http://www.changedetection.net/和文獻[20]中的分析方法進行定量分析。由表1可知,本文算法的檢測精度和綜合評價指標均為最高,召回率也較高。從3 630張真值圖像對比數(shù)據(jù)中可以看出,GMM算法和ViBe算法的前景檢測對于靜止目標運動狀態(tài)改變的適應能力較弱,檢測精度和綜合評價指標均低于本文算法,即使結(jié)合2種算法[15],處理效果總體上仍較差,并且由于提升了算法復雜度,檢測時間大幅提高。本文算法在召回率保持穩(wěn)定的情況下,可以獲得較好的檢測精度和綜合評價指標,抑制了孤立的噪聲點,并使檢測目標的完整性較好,對于靜止目標的檢測效果也是最好的,這也驗證了本文改進的有效性。
不同算法對highway視頻的平均處理速度如表2所示,其中數(shù)據(jù)為每幀處理時間。實驗結(jié)果表明,由于本文算法增加了動態(tài)環(huán)境自適應閾值和自適應判斷像素點類別進行更新,使處理時間有所增加,但仍滿足實時性要求。
表1 不同算法的客觀評價指標對比Table 1 Comparison of objective evaluation index of different algorithms
表2 不同算法的處理時間對比Table 2 Comparison of processing time of different algorithms s
ViBe算法在檢測過程中易受動態(tài)背景干擾,初始化圖像幀存在運動目標時易出現(xiàn)鬼影,并且對靜態(tài)目標檢測和轉(zhuǎn)變?yōu)檫\動狀態(tài)時會產(chǎn)生拖影現(xiàn)象,本文針對上述問題提出一種改進的ViBe算法。在前景檢測時結(jié)合Otsu算法求取最佳分割動態(tài)閾值,采用區(qū)域相似性對鬼影、拖影或靜止目標區(qū)域進行判斷,并自適應更新不同類別區(qū)域像素。實驗結(jié)果表明,該算法在動態(tài)背景下表現(xiàn)出良好的魯棒性,能夠有效抑制鬼影以及靜止目標產(chǎn)生的拖影,并且具有較高的實時性和較好的檢測性能。下一步將研究前景運動候選區(qū)域的目標檢測分類方法,同時解決目標間的遮擋問題。