劉武啟,譚欽紅,李英杰,劉志豪,鄭小楠
(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
常用的前景目標(biāo)提取算法有光流法、幀差法和背景減除法[1-3]。其中背景減除法中視覺背景建模(ViBe)因其較小的計(jì)算量、優(yōu)良的實(shí)時(shí)性,成為了目前廣泛應(yīng)用的一種前景提取方法[4,5]。ViBe算法利用第一幀就可快速地建立背景模型,極大提高了運(yùn)算量和實(shí)時(shí)性[6,7]。但同時(shí)ViBe算法仍然存在一定的不足,易產(chǎn)生“鬼影”干擾以及光照變化誤檢等問題。針對ViBe算法存在的問題,文獻(xiàn)[8]提出了一種基于時(shí)空梯度特征的解決方案,根據(jù)背景的復(fù)雜性和變化情況,對判別機(jī)制的參數(shù)進(jìn)行自適應(yīng)調(diào)整,有效解決了復(fù)雜場景下陰影和“鬼影”的干擾。文獻(xiàn)[9]利用幀間信息,引入二次判斷策略,提出一種ViBe結(jié)合幀間差分法的“鬼影”抑制策略。文獻(xiàn)[10]通過統(tǒng)計(jì)前景點(diǎn)在整幅圖像像素點(diǎn)中所占的比重來判斷光照變化情況,從而實(shí)現(xiàn)ViBe對光照變化的魯棒性。
結(jié)合以上學(xué)者的研究,針對ViBe算法在室內(nèi)監(jiān)控場景中的不足,提出一種改進(jìn)的ViBe算法。首先,針對“鬼影”干擾,本文采用一種外接矩像素直方圖對比法,通過對外接矩中目標(biāo)區(qū)域與其相鄰區(qū)域進(jìn)行直方圖對比消除“鬼影”;其次,針對室內(nèi)光照變化影響,本文通過鄰間幀圖像局部區(qū)域積分值快速匹配判斷光照變化情況,再根據(jù)不同光照變化類型采取不同改進(jìn)策略,提升室內(nèi)監(jiān)控場景光照變化魯棒性。
ViBe算法是比利時(shí)列日大學(xué)提出的一種高效的前景提取算法,其因?qū)崟r(shí)性好、計(jì)算效率高而受到了研究者的廣泛關(guān)注[11]。ViBe算法可分為3個(gè)步驟:背景模型初始化、前景目標(biāo)提取和背景模型更新。
ViBe算法利用第一幀就可以快速地建立好背景模型。算法通過給圖像中的每一個(gè)像素點(diǎn)都建立一個(gè)像素級模型完成初始化背景建模。設(shè)圖像中任意一點(diǎn)x, 它的像素記為f(x), 然后在與像素點(diǎn)x相鄰的八領(lǐng)域隨機(jī)選取N個(gè)像素點(diǎn),以此來作為像素點(diǎn)x的背景樣本集,我們記x位置的像素模型為M(x), 如下所示
M(x)={f1,f2,…,fN}
(1)
式中: {f1,f2,…,fN} 代表從八領(lǐng)域中隨機(jī)選取的N個(gè)像素點(diǎn)樣本值,N一般取20。
通過背景模型的初始化,ViBe算法為圖像中的每一個(gè)像素點(diǎn)都建立了一個(gè)像素模型M(x),當(dāng)新的一幀圖像到來時(shí),通過將新幀圖像中每一個(gè)像素點(diǎn)與對應(yīng)像素模型中的樣本值進(jìn)行距離比較,從而判斷出該像素點(diǎn)是前景點(diǎn)還是背景點(diǎn)。判定如圖1所示。
圖1 ViBe算法前景判定
圖1中f(x) 表示待檢測圖像中x點(diǎn)的像素值, {f1,f2,…,fN} 構(gòu)成x處的背景模型M(x),SR(f(x)) 是以x點(diǎn)為圓心、R為半徑的范圍空間,將x像素點(diǎn)與背景模型M(x) 中每個(gè)樣本值進(jìn)行距離比較,記錄下距離小于預(yù)設(shè)閾值的樣本點(diǎn)個(gè)數(shù)即SR(f(x))∩{f1,f2,…,fN}, 如果記錄的樣本點(diǎn)個(gè)數(shù)小于閾值#min, 則判定x點(diǎn)為前景點(diǎn),否則即為背景點(diǎn)。具體表示如下
(2)
式中:FG代表前景點(diǎn),BG代表背景點(diǎn),SR(f(x))∩{f1,f2,…,fN} 表示當(dāng)前像素點(diǎn)x與背景模型M(x) 在歐式距離上小于固定閾值R的個(gè)數(shù), #min表示規(guī)定的最小判定閾值, #min一般取2。
在背景模型更新中,ViBe算法采用了一種時(shí)間取樣更新策略,當(dāng)檢測出某點(diǎn)為背景像素點(diǎn)時(shí),會(huì)有1/ψ的概率更新該點(diǎn)的背景模型。其中ψ為時(shí)間采樣因子,一般取ψ為16。當(dāng)確定需要更新背景模型時(shí),以新的像素值隨機(jī)取代像素樣本集中樣本值。同時(shí)通過空間鄰域更新策略,將需要更新的像素點(diǎn)隨機(jī)更新到該點(diǎn)鄰域的背景模型中。
本文主要以ViBe算法在室內(nèi)監(jiān)控場景進(jìn)行前景提取為研究點(diǎn),考慮到ViBe算法“鬼影”效應(yīng)影響及室內(nèi)監(jiān)控場景中光照變化干擾,因此針對以上兩個(gè)關(guān)鍵問題對ViBe算法進(jìn)行改進(jìn),改進(jìn)后的算法流程如圖2所示。
圖2 ViBe改進(jìn)算法流程
ViBe算法進(jìn)行前景目標(biāo)提取時(shí),如果視頻首幀圖像中存在運(yùn)動(dòng)目標(biāo),那么在后續(xù)多幀前景提取中都會(huì)存在首幀運(yùn)動(dòng)目標(biāo)的影像,而這個(gè)通常被稱為“鬼影”?!肮碛啊钡拇嬖趯η熬疤崛‘a(chǎn)生很大的干擾,針對此問題,本文采用了一種基于外接矩像素直方圖對比的“鬼影”檢測算法。算法的主要思想為:當(dāng)外接矩中目標(biāo)區(qū)域與其相鄰區(qū)域在像素直方圖上表現(xiàn)為較強(qiáng)的相似性時(shí),則該外接矩標(biāo)定的目標(biāo)即為“鬼影”目標(biāo),接下來需要對判定出的“鬼影”點(diǎn)改變其像素值屬性(像素值置0)并同步更新背景模型。通過此過程,即可找出真實(shí)前景和“鬼影”,實(shí)現(xiàn)首幀“鬼影”影響的改進(jìn)。
圖3展示了真實(shí)前景目標(biāo)與“鬼影”在實(shí)際視頻幀中外接矩標(biāo)定情況。通過對每個(gè)外接矩內(nèi)所有像素進(jìn)行直方圖統(tǒng)計(jì),可得到圖4對比。從圖中可以看到,真實(shí)的前景目標(biāo)與其相鄰區(qū)域在像素直方圖上具有很大的差異性,而這種差異性在“鬼影”區(qū)域表現(xiàn)的極低。
為了更好地描述目標(biāo)區(qū)域與其相鄰區(qū)域在像素直方圖上的差異性,可以通過定義兩直方圖差異性閾值T來表示,具體表達(dá)式如式(3)。本文采用巴氏系數(shù)ρ(p,p′) 進(jìn)行計(jì)算,如式(4)所示,其中p和p′分別代表外接矩中目標(biāo)區(qū)域和其相鄰區(qū)域直方圖數(shù)據(jù)。當(dāng)巴氏系數(shù)小于給定的閾值T(0 圖3 真實(shí)目標(biāo)和“鬼影”標(biāo)定 圖4 外接矩區(qū)域像素直方圖對比 (3) (4) 傳統(tǒng)的ViBe算法不能適應(yīng)光照變化的影響,當(dāng)室內(nèi)監(jiān)控場景中突發(fā)光照變化時(shí),如突然開燈、門窗開閉行為等,都會(huì)使前景提取引入大片干擾區(qū)域,因此對光照突變魯棒性的改進(jìn)具有重要研究意義。由圖2中算法改進(jìn)流程可知,如何準(zhǔn)確判定監(jiān)控場景光照變化是改進(jìn)算法的核心。通過實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)有光照變化時(shí)鄰間幀在積分圖像上表現(xiàn)為很強(qiáng)的差異性,主要體現(xiàn)在圖像區(qū)域積分值上,而這種差異性在無光照變化時(shí)會(huì)很小。基于此本文設(shè)計(jì)了一種鄰間幀圖像局部區(qū)域積分值快速匹配方法來實(shí)現(xiàn)光照變化的檢測。 2.2.1 圖像局部區(qū)域積分值算法 對于一張灰度圖像,積分圖像中某點(diǎn)v(x,y) 的值就是該圖像從左上角開始到該點(diǎn)所圍成的矩形區(qū)域中所有點(diǎn)的灰度值之和[12]。表達(dá)式如下 (5) 式中:I(x′,y′) 表示在位置 (x′,y′) 像素點(diǎn)處的灰度值。對給定的一幅圖像通過從左到右、從上到下的方式全部遍歷一遍可得出積分圖像公式如下 U(x,y)=I(x,y)+U(x-1,y)+ (6) 通過式(6)可以得到整幅圖像的積分值,因此在積分圖像上可以得出任何局部區(qū)域的積分值大小,令所求局部區(qū)域積分值為sum(z), 如圖5陰影區(qū)域所示。 圖5 局部區(qū)域積分 所以任意區(qū)域圖像積分值可表示為 sum(z)=U(x,y)+U(x-w,y-h)- (7) 2.2.2 光照魯棒性改善 為實(shí)現(xiàn)局部積分值匹配,本文將一幅圖像重新劃分為N×N局部大小塊,通過圖像局部區(qū)域積分值算法可以得出每個(gè)區(qū)域的積分值,再將鄰間幀對應(yīng)區(qū)域積分值對比可以快速判斷光照的變化情況。本文選取N為6,共36個(gè)局部區(qū)域,通過對36個(gè)積分值進(jìn)行對比來判斷監(jiān)控場景中全局光照突變和局部光照突變情況。鄰間幀積分值對比如圖6所示。 圖6 不同光照下鄰間幀圖像積分值對比 圖6(a)、圖6(b)表示無光照變化時(shí)相鄰兩幀圖像,它們對應(yīng)的局部區(qū)域積分值對比如圖6(c)所示,在圖像局部區(qū)域積分值上無明顯變化;圖6(d)、圖6(e)表示實(shí)驗(yàn)者開燈行為前后兩幀圖像,燈光的開啟使得室內(nèi)發(fā)生了全局性光照突變,通過圖6(f)中相鄰兩幀局部區(qū)域積分值對比可以看到,積分值發(fā)生了急劇變動(dòng)。本文通過統(tǒng)計(jì)積分值發(fā)生劇烈波動(dòng)的區(qū)域塊個(gè)數(shù)占區(qū)域塊總數(shù)的比重來評判光照變化情況,判斷表達(dá)式如下 (8) (9) 其中,f(i) 用來判斷i區(qū)域是否發(fā)生光照變化,當(dāng)滿足相鄰兩幀對應(yīng)區(qū)域積分值大于給定閾值K時(shí),則記該區(qū)域?yàn)楣庹兆兓瘏^(qū)域。K為經(jīng)驗(yàn)閾值,本文選取K為2000。通過記錄光照變化區(qū)域個(gè)數(shù)num(f(i)) 占區(qū)域塊總數(shù)num(F) 的比重將光照變化分為無光照變化、局部光照突變和全局光照突變。 對于全局光照突變,視頻幀中完全無法定位到真實(shí)的前景目標(biāo),為了快速消除這種干擾,需要找到合適的新幀圖像來重新構(gòu)建背景模型。ViBe算法具有單幀建立背景模型的特性,因此可利用光照變化后的第一幀圖像來重新構(gòu)建新的背景模型。同時(shí)為了避免新“鬼影”的出現(xiàn),通過結(jié)合2.1節(jié)中“鬼影”消除算法可同步去除;對于局部光照突變,受干擾區(qū)域相對較小,通過重新調(diào)整背景模型更新因子ψ, 將其設(shè)為ψ/2, 加快背景模塊更新使其適應(yīng)局部光照變化。 為了驗(yàn)證本文改進(jìn)算法的有效性,驗(yàn)證實(shí)驗(yàn)利用VS2017及OpenCV 3.4.1作為開發(fā)工具,在內(nèi)存8 GB、Window10 64位操作系統(tǒng)上進(jìn)行。為了更有效驗(yàn)證改進(jìn)算法的性能,通過參考現(xiàn)有前景檢測相關(guān)評價(jià)指標(biāo),本文選擇查準(zhǔn)率Precision、查全率Recall、F度量F-measure和相似度Similarity這4個(gè)常用指標(biāo)作為衡量。具體計(jì)算公式如下 (10) (11) (12) (13) 其中,TP表示判定正確的前景點(diǎn)個(gè)數(shù),F(xiàn)N表示判定錯(cuò)誤的背景點(diǎn)個(gè)數(shù),F(xiàn)P表示判定錯(cuò)誤的前景點(diǎn)個(gè)數(shù)。 本文采用了網(wǎng)上公開的4個(gè)不同室內(nèi)監(jiān)控場景下數(shù)據(jù)集對改進(jìn)算法性能進(jìn)行驗(yàn)證,分別是Le2i公開數(shù)據(jù)庫中“home”序列和“office”序列、PETS2015公開數(shù)據(jù)庫中“l(fā)ightSwitch”序列以及“bootstrap”序列。其中“home”序列和“office”序列選取了首幀包含運(yùn)動(dòng)目標(biāo)的視頻,主要用來驗(yàn)證改進(jìn)算法中“鬼影”消除的有效性;“l(fā)ight-Switch”序列以及“bootstrap”序列分別代表了室內(nèi)突然開燈行為以及外界光線射入影響兩種情形,可以用來評估改進(jìn)算法對全局光照突變和局部光照突變的適應(yīng)能力。同時(shí)本文還將改進(jìn)算法與Codebook算法、GMM算法、傳統(tǒng)ViBe算法進(jìn)行了比較,通過采用主觀評價(jià)法與客觀評價(jià)法相結(jié)合來評價(jià)改進(jìn)算法的性能,各算法在4種不同監(jiān)控場景下效果如圖7所示。 在“home”序列和“office”序列中,由于視頻序列首幀存在運(yùn)動(dòng)目標(biāo),傳統(tǒng)的ViBe算法在前景提取時(shí)都出現(xiàn)了明顯的“鬼影”影響,而本文改進(jìn)的ViBe算法對“鬼影”現(xiàn)象進(jìn)行了有效的抑制;“l(fā)ightSwitch”序列中,室內(nèi)一開始為關(guān)燈狀態(tài),隨后實(shí)驗(yàn)者進(jìn)入房間并開起燈光,燈光開起的瞬間相鄰兩幀間發(fā)生了明顯的全局光照突變現(xiàn)象。由圖7可知,Codebook算法、GMM算法、傳統(tǒng)ViBe算法都出現(xiàn)了大片的誤檢區(qū)域,而本文改進(jìn)算法通過新幀圖像重新初始化背景模型很快適應(yīng)了光照的變化;“bootstrap”序列中,由于外界陽光的射入使得室內(nèi)光線發(fā)生了局部光照突變,Codebook算法、GMM算法、傳統(tǒng)ViBe算法都無法適應(yīng)局部光照的變化,本文改進(jìn)的ViBe算法通過調(diào)整背景更新因子能夠有效地抑制光照的影響。表1顯示了改進(jìn)算法與Codebook算法、GMM算法、傳統(tǒng)ViBe算法在處理速度上的對比,改進(jìn)后的算法由于引入了外接矩像素直方圖對比和局部區(qū)域積分值匹配,因此相比于傳統(tǒng)的ViBe算法需要更多的處理時(shí)間,傳統(tǒng)ViBe算法平均處理速度高達(dá)25.2幀/秒,而改進(jìn)后的算法平均處理速度只達(dá)到了20.9幀/秒,但仍能滿足室內(nèi)監(jiān)控場景的實(shí)時(shí)性要求。 圖7 4類場景各算法檢測效果對比 表1 4類場景各算法處理速度對比 為了更全面評估改進(jìn)算法的性能,本文還對比了4類監(jiān)控場景中各算法的查準(zhǔn)率、查全率、F度量和相似度。由圖8(a)、圖8(c)、圖8(d)可知本文改進(jìn)算法在查準(zhǔn)率、F度量和相似度上都優(yōu)于其它3類算法,在具有光線變化的復(fù)雜監(jiān)控場景中,如給出的“l(fā)ightSwitch”序列和“bootstrap”序列中,本文算法在查準(zhǔn)率、F度量和相似度上體現(xiàn)的優(yōu)越性更大。由圖8(b)看出本文改進(jìn)算法在“l(fā)ightSwitch”序列和“bootstrap”序列中查全率明顯低于其它3類算法,這是因?yàn)槠渌?類算法在光照變化的影響下帶入了大片誤檢區(qū)域,從而使得查全率提升。在“home”序列和“office”序列中,其它3類算法由于內(nèi)部空洞的影響,導(dǎo)致查全率均較改進(jìn)算法低。通過與其它3類經(jīng)典算法的對比可知,本文改進(jìn)算法具有較高的檢測效果,同時(shí)也保證了實(shí)時(shí)性要求。 圖8 4類場景各算法性能指標(biāo)對比 ViBe算法是一種高效的前景提取算法,但它在室內(nèi)監(jiān)控場景中容易受到“鬼影”及光照變化的影響。針對這兩方面問題,本文對ViBe算法進(jìn)行了改進(jìn)。首先通過外接矩像素直方圖對比檢測出“鬼影”區(qū)域,再對“鬼影”區(qū)域的像素點(diǎn)重新賦值并同步更新背景模型,實(shí)現(xiàn)對“鬼影”的快速去除;對于光照變化影響,通過鄰間幀圖像局部區(qū)域積分值快速匹配識別全局光照變化和局部光照變化,再根據(jù)不同變化情況采用不同改進(jìn)策略,實(shí)現(xiàn)不同光照的快速適應(yīng)。結(jié)果表明,改進(jìn)的ViBe算法有效地解決了監(jiān)控場景中“鬼影”及光照變化影響帶來的誤檢問題,提高了室內(nèi)監(jiān)控場景前景目標(biāo)提取的精度。2.2 針對光照變化影響的改進(jìn)
U(x,y-1)-U(x-1,y-1)
U(x-w,y)-U(x,y-h)3 實(shí)驗(yàn)評價(jià)指標(biāo)與參數(shù)設(shè)置
3.1 實(shí)驗(yàn)評價(jià)指標(biāo)
3.2 實(shí)驗(yàn)結(jié)果與分析
4 結(jié)束語