楊 青,張著洪
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽 550025)
運(yùn)動(dòng)目標(biāo)檢測與跟蹤是動(dòng)態(tài)場景下運(yùn)動(dòng)目標(biāo)行為分析的關(guān)鍵問題,也是視頻分析的重要環(huán)節(jié),對(duì)有效提取運(yùn)動(dòng)目標(biāo)和正確分析目標(biāo)的運(yùn)動(dòng)行為具有重要的現(xiàn)實(shí)意義。已有的背景建模法種類繁多,如幀間差分法[1]、基于關(guān)鍵點(diǎn)的建模法[2]、光流法[3]、混合高斯算法[4]、ViBe算法[5]等。ViBe算法是一種被較為廣泛采納的背景建模方法,由于其不考慮目標(biāo)運(yùn)動(dòng)速度對(duì)目標(biāo)提取效果的影響,因此相較于幀間差分法和基于關(guān)鍵點(diǎn)的建模法,獲得的噪聲模型更能恰當(dāng)反映實(shí)時(shí)場景的背景狀況;與此同時(shí),相較于光流法和混合高斯算法,ViBe算法的設(shè)計(jì)思想簡單、計(jì)算量小,能滿足實(shí)時(shí)目標(biāo)檢測的要求??墒?,該方法的隨機(jī)更新策略也導(dǎo)致目標(biāo)提取的效果受到鬼影、陰影、背景高頻擾動(dòng)和攝像機(jī)抖動(dòng)的影響。鬼影是因視頻初始幀存在運(yùn)動(dòng)目標(biāo)而產(chǎn)生,其對(duì)后續(xù)目標(biāo)的檢測會(huì)造成較大影響;已有研究成果中[6-8],胡小冉[6]利用視頻幀前n幀構(gòu)建初始背景,進(jìn)而此背景進(jìn)行背景建模。該方法在背景簡單情形下,運(yùn)動(dòng)目標(biāo)提取的效果較為明顯,但在當(dāng)場景較為復(fù)雜時(shí)其自適應(yīng)能力弱。陰影是由運(yùn)動(dòng)目標(biāo)受到光源的照射而產(chǎn)生[9-10],其包含目標(biāo)的輪廓和位置信息,對(duì)目標(biāo)與背景分離處理會(huì)產(chǎn)生較大影響;張榮剛[11]利用視頻幀的色度信息確定候選陰影區(qū)域,并借助區(qū)域梯度閥值消除目標(biāo)提取時(shí)的陰影信息;該方法在一定條件下可獲得較好的目標(biāo)提取效果,但魯棒性差且計(jì)算量大。對(duì)于影響背景建模的高頻擾動(dòng)和攝像機(jī)抖動(dòng)抑制問題,閔衛(wèi)東[12]提出一種自適應(yīng)動(dòng)態(tài)閾值方法來提取背景信息,但對(duì)光照的靈敏度高且較難抑制抖動(dòng)的影響;隨后,莫邵文[13]等借助時(shí)間子采樣因子的自適應(yīng)策略,利用閃爍程度矩陣設(shè)計(jì)自適應(yīng)匹配閾值方案,進(jìn)而在傳統(tǒng)ViBe算法基礎(chǔ)上獲得改進(jìn)型視覺背景提取方法,能解決抖動(dòng)問題,但魯棒性有待提高。
綜上,盡管對(duì)ViBe算法的改進(jìn)已有一定的成果,但大多以削弱基本ViBe算法的固有特性為代價(jià)來換取前景效果的提升,算法的魯棒性和運(yùn)行效率均有待提高。為此,本文在文獻(xiàn)[13]的算法基礎(chǔ)上,提出一種改進(jìn)型ViBe方法(Improved ViBe Approach, IViBeA)。實(shí)驗(yàn)表明,該方法能較好地消除鬼影、陰影、高頻擾動(dòng)、攝像機(jī)抖動(dòng)對(duì)背景建模的影響,使目標(biāo)提取的效果較好。
ViBe算法是由Barnich等[14]于2011年提出的一種基于像素級(jí)的背景建模方法。它相較于經(jīng)典的基于運(yùn)動(dòng)特征的前景檢測算法,首次把隨機(jī)抽樣思想和鄰域傳播機(jī)制引入到背景建模和更新中。 由于它利用視頻序列的第一幀初始化背景模型,所以具有很高的實(shí)時(shí)性和魯棒性[15]。算法的描述如下:
步1輸入大小為M×N的灰度圖序列P0,P1,…,給定半徑閾值R,匹配閾值σ,灰度值替換概率p;
步2給定K個(gè)空背景圖M0,M1,…,MK-1;
步3初始幀P0中位置(x,y)的3×3空心鄰域內(nèi)8個(gè)灰度值中隨機(jī)抽取1個(gè)作為Mk的位置(x,y)處的灰度值,1≤k≤K;
步4置i=1;
步5對(duì)于1≤x≤N,1≤y≤M:
步5.1在Pi中位置(x,y)處灰度值的R鄰域VR(x,y)內(nèi),K幅背景圖的位置(x,y)處灰度值落在此鄰域的點(diǎn)數(shù)記為Li(x,y);
步5.2若Li(x,y)≤σ,則Pi中位置(x,y)處的像素點(diǎn)為前景點(diǎn);否則,則以概率p隨機(jī)抽一幅背景圖,比如Ml,然后將Pi中位置(x,y)處的灰度值取代Ml中位置(x,y)處的灰度值,以及以概率p替代Ml中位置(x,y)的3×3空心鄰域內(nèi)某位置處的灰度值;
步6置i=i+1,返回步5, 直到遍歷所有灰度圖為止。
經(jīng)由以上算法描述獲知,每幅灰度圖的前景提取主要依賴于步5.2完成,同時(shí)鄰域和隨機(jī)抽取的思想被用于更新背景信息。該算法中,R和σ作為可調(diào)參數(shù)直接影響其性能,如何較為合理設(shè)置此兩參數(shù)是該算法能否有效提取運(yùn)動(dòng)目標(biāo)的關(guān)鍵。另外,因隨機(jī)抽取背景進(jìn)行更新且每次僅有一幅背景圖依賴于當(dāng)前灰度圖進(jìn)行更新,易導(dǎo)致背景信息更新的不及時(shí)性和針對(duì)性弱。
ViBe算法的隨機(jī)抽樣和無記憶的背景灰度值更新策略使得它獲得的前景效果較好[16-18],可是鬼影、陰影、背景高頻擾動(dòng)和攝像機(jī)抖動(dòng)現(xiàn)象制約著其廣泛應(yīng)用。針對(duì)于此,圍繞閾值半徑R的自適應(yīng)性以及鬼影和陰影的清除問題提出改進(jìn)策略。具體如下:
(1)閾值半徑的自適應(yīng)性
在背景高頻擾動(dòng)及攝像機(jī)抖動(dòng)場景下,如果當(dāng)前灰度圖中像素點(diǎn)的鄰域半徑R保持不變,則從該圖中提取的前景必包含多個(gè)噪聲點(diǎn),從而影響前景提取的效果。另一方面,背景的復(fù)雜程度也影響R的設(shè)置;若背景較復(fù)雜,則R需取較大的值,反之則需取較小值。因此,R的取值應(yīng)隨著當(dāng)前場景的變化而作自適應(yīng)調(diào)整。在此,將當(dāng)前灰度圖中像素點(diǎn)(x,y)的梯度信息Grad(x,y)和K個(gè)背景圖在像素點(diǎn)(x,y)處像素值的均方差σ(x,y)加權(quán)來刻畫當(dāng)前灰度圖在該點(diǎn)處的背景復(fù)雜程度,即
θ(x,y)=wσ(x,y)+(1-w)G(x,y)。
(1)
其中,w(0,1],θ(x,y)是像素點(diǎn)(x,y)處的背景復(fù)雜度。若θ(x,y)越小,則該點(diǎn)處的背景越簡單,反之則較復(fù)雜?;诖?,當(dāng)前灰度圖中像素點(diǎn)(x,y)的鄰域半徑R(x,y)被設(shè)計(jì)如下:
(2)
其中R0為初始鄰域半徑,ξ與ζ是分別在(0,5)及(5,10)內(nèi)取值的均勻隨機(jī)變量;H是給定的閾值。
(2) 陰影檢測
(3)鬼影檢測
基本的ViBe算法中并未涉及鬼影去除的方法,因而不能及時(shí)、有效地去除鬼影。文獻(xiàn)[20]利用當(dāng)前幀的前景區(qū)域與前第n幀的同一位置的前景區(qū)域的顏色直方圖來檢測鬼影,可以較好地識(shí)別鬼影,但需保存額外的n幀信息且沒有采取有效的鬼影消除手段,致使鬼影存在的區(qū)域?qū)罄m(xù)目標(biāo)檢測造成影響。在此,通過前景-鄰域直方圖的相似度匹配方式檢測鬼影是否存在,進(jìn)而利用鬼影區(qū)域?qū)Ρ尘澳P瓦M(jìn)行二次更新。具體而言,假設(shè)當(dāng)前幀中有m個(gè)前景區(qū)域,F1,F2,…,Fm; 區(qū)域Fk的最小矩形框設(shè)為Bk,在Bk中去除Fk之后獲得的區(qū)域用Gk表示(在此,稱為鄰域)。于是,鬼影檢測規(guī)則是:若Fk和Gk依次對(duì)應(yīng)的直方圖的相似度大于閾值T,則前景區(qū)域Fk為鬼影,否則則為前景。圖1~2給出了前景-鄰域的直方圖分布。
圖1 基于ViBe的前景提取Fig.1 Prospect extraction based on ViBe algorithm
(a) 圖1(c)中前景 (b) 圖1(c)中鬼影圖2 運(yùn)動(dòng)目標(biāo)的直方圖Fig.2 Histogram of moving object
由圖1~2可看出,鬼影區(qū)域的前景-鄰域直方圖的相似度很高,而運(yùn)動(dòng)目標(biāo)的前景-鄰域直方圖相似度很低,因此通過前景-鄰域直方圖可快速檢測出鬼影。接著, 用當(dāng)前灰度圖中鬼影區(qū)域替換所有背景圖中對(duì)應(yīng)的區(qū)域,可清除初始幀中包含的運(yùn)動(dòng)目標(biāo)對(duì)背景建模的影響。
結(jié)合以上閾值半徑自適應(yīng)更新規(guī)則及陰影與鬼影檢測方法,IViBeA的描述如下:
步1輸入大小為M×N的灰度圖序列P0,P1,…,給定初始半徑閾值R0、背景復(fù)雜度閾值H、匹配閾值σ、灰度值替換概率p、陰影檢測因子a和鬼影檢測閾值T;
步2給定K個(gè)空背景模型M0,M1,…,MK-1;
步3在初始幀P0中位置(x,y)的3×3空心鄰域內(nèi)8個(gè)灰度值中隨機(jī)抽取1個(gè)作為Mk的位置(x,y)處的灰度值,1≤k≤K;
步4置i=1;
步5對(duì)于1≤x≤N,1≤y≤M:
步5.1通過式(1)、(2)確定Pi中位置(x,y)處的自適應(yīng)閾值半徑R;
步5.2同上算法的步5.1;
步5.3若Li(x,y)≤σ,則Pi中位置(x,y)處的像素點(diǎn)為前景點(diǎn),轉(zhuǎn)步5.4;否則,同上算法的步5.2的后一段描述,轉(zhuǎn)步7;
步5.4利用以上陰影檢測策略檢測陰影,并將陰影點(diǎn)設(shè)定為背景點(diǎn),轉(zhuǎn)步6;
步6利用步5.4得到的鬼影區(qū)域取代所有背景圖中對(duì)應(yīng)的區(qū)域;
步7置i=i+1,返回步5, 直到遍歷所有灰度圖為止。
以上算法中,通過步5.1給每個(gè)像素點(diǎn)i設(shè)定一個(gè)自適應(yīng)閾值半徑,使其能夠適應(yīng)各種復(fù)雜場景,增強(qiáng)算法的魯棒性,同時(shí)在算法中加入鬼影和陰影檢測策略,避免了后續(xù)處理中對(duì)圖像整體的遍歷,可極大削減計(jì)算量。
本實(shí)驗(yàn)在Windows7(CPU/3.70 GHz,RAM/4GB)/python3.6/OpenCV 3.4環(huán)境下進(jìn)行。為檢測以上算法在視頻幀出現(xiàn)背景高頻擾動(dòng)及攝像機(jī)抖動(dòng)和含有陰影、鬼影情形下是否能有效提取運(yùn)動(dòng)目標(biāo),選取參與比較的算法包括三幀差法、GMM和ViBe算法。測試樣本為4組開源視頻(A1:PETS2006; A2: Canoe; A3: Traffic; A4: Weizeman),如下圖3所示。參與比較的算法的參數(shù)設(shè)置與相應(yīng)文獻(xiàn)的參數(shù)設(shè)置相同;IViBeA的參數(shù)設(shè)置是:背景模型數(shù)N=20, 背景更新概率p=1/16,匹配閾值σ=2,初始半徑閾值R0=35,背景復(fù)雜度閾值H=20,陰影檢測因子a=0.65,鬼影檢測閾值T=0.8。
圖3 測試視頻序列Fig.3 Test video sequence
(1)算法比較分析
在圖3的視頻序列中,視頻序列(a)的場景為交通車輛場景,場景中攝像機(jī)存在抖動(dòng);視頻序列(b)為公園小湖中劃船場景,場景中存在水紋;視頻序列(c)為室內(nèi)商場場景,運(yùn)動(dòng)目標(biāo)隨帶有陰影;視頻序列(d)為視頻第一幀包含運(yùn)動(dòng)目標(biāo)的場景。依據(jù)本文要處理的問題,分析以上視頻是否存在攝像機(jī)抖動(dòng)現(xiàn)象、背景高頻擾動(dòng)、陰影和鬼影。將以上四種算法依次作用于視頻序列(a)~(d), 各算法獲得每種視頻的目標(biāo)提取效果圖(Traffic第715幀、Canoe第868幀、PEST2006第109幀、Winzeman中daria_walk的第18幀)如圖4所示。
圖4 以上四種算法作用于視頻序列(a)~(d)后獲得的目標(biāo)提取效果比較Fig.4 Comparisons of the effects of the above four algorithms on target extraction from video sequences(a)~(d)
借助圖3的視頻序列,圖4表明,以上四種算法獲得的目標(biāo)提取效果有明顯差異。雖然三幀差法對(duì)光照不敏感且處理速度快,但獲取目標(biāo)的信息量較少,僅能獲取目標(biāo)的輪廓信息,因此僅適用于背景較為簡單的場景且要求運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)速度快。相較于此方法,GMM、ViBe、IViBeA具有明顯優(yōu)勢;GMM能較完整地提取目標(biāo)信息,不會(huì)存在鬼影現(xiàn)象,但對(duì)光照敏感且較難清除陰影,不適用于存在背景高頻擾動(dòng)及攝像機(jī)抖動(dòng)的場景;ViBe能較為完整地提取目標(biāo)信息且有一定的陰影去除能力,但對(duì)噪聲干擾較大的信息較難清除,且也不能及時(shí)去除鬼影;IViBeA不僅具有GMM、ViBe的優(yōu)點(diǎn),而且對(duì)于干擾較大的噪聲具有強(qiáng)的抑制能力,能夠及時(shí)檢測出陰影和鬼影,適用于現(xiàn)實(shí)環(huán)境中的多種場景。
為了解決ViBe算法應(yīng)用于運(yùn)動(dòng)目標(biāo)提取易受背景高頻擾動(dòng)、攝像機(jī)抖動(dòng)、陰影及鬼影影響的問題,本文在分析ViBe算法存在的缺陷基礎(chǔ)上,提出一種改進(jìn)型ViBe算法。該算法利用自適應(yīng)閾值增強(qiáng)算法對(duì)環(huán)境的適應(yīng)能力,可有效消除背景高頻擾動(dòng)和攝像機(jī)抖動(dòng)對(duì)目標(biāo)提取的影響。針對(duì)前景中包含陰影或鬼影的問題,在檢測出前景點(diǎn)基礎(chǔ)上,結(jié)合陰影點(diǎn)在HSV空間的分布情況,設(shè)計(jì)一種陰影檢測策略,并在消除陰影后利用前景-鄰域直方圖相識(shí)度匹配及背景二次更新策略消除陰影和鬼影對(duì)目標(biāo)提取的影響。實(shí)驗(yàn)結(jié)果表明,以上改進(jìn)型ViBe算法能有效抑制背景高頻擾動(dòng)、攝像機(jī)抖動(dòng)、陰影與鬼影對(duì)目標(biāo)提取的影響。