劉志豪,黃 俊,劉武啟,李英杰,鄭小楠
(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
運動目標(biāo)檢測在智能視頻監(jiān)控系統(tǒng)中處于相對關(guān)鍵的一步,其檢測效果的好壞直接影響著后續(xù)的目標(biāo)跟蹤以及行為檢測.運動目標(biāo)檢測,也稱前景檢測,是指將運動目標(biāo)從背景中提取出來的過程.運動目標(biāo)檢測自研究以來發(fā)展了大致三類方法,分別是光流法[1]、幀間差分法[2]以及背景建模法.光流法能夠很好地適應(yīng)動態(tài)場景的變化,但是由于算法復(fù)雜度高,在實際中難以使用;幀間差分法算法復(fù)雜度低,能夠很好地應(yīng)對光照突變的影響,但是在其檢測出的前景目標(biāo)內(nèi)部會出現(xiàn)大量空洞的現(xiàn)象,影響檢測的效果;而以高斯混合模型(GMM)[3]和視覺背景提取算法(ViBe)[4]為代表的背景建模法是目前主流的研究方法,其算法表現(xiàn)接近實際使用,GMM利用K個高斯分布在時域上構(gòu)建背景模型,是運動目標(biāo)檢測研究中使用最廣泛的方法之一,但算法表現(xiàn)相比ViBe稍差.
ViBe算法是一種像素級的背景建模方法,借鑒了聚類的思想,通過背景模型的創(chuàng)建、前景檢測和背景模型更新三個步驟對運動目標(biāo)進行檢測.具備了較好的魯棒性,算法邏輯簡單、計算量不大、實時性好,但仍有許多的缺點[5].ViBe采用了第一幀初始化背景模型的方式,若首幀出現(xiàn)運動目標(biāo)后會在后續(xù)一定范圍的幀中產(chǎn)生鬼影,影響檢測效果,對于噪聲的干擾比較敏感,不能適應(yīng)動態(tài)背景的變化.針對ViBe存在的問題.文獻(xiàn)[6]利用超像素分割的方法將圖像分割成許多超像素區(qū)域,將超像素與ViBe檢測的結(jié)果進行匹配從而分離出鬼影區(qū)域,同時利用超像素的方法在前景檢測階段抑制噪聲的影響;文獻(xiàn)[7]提出了輔助樣本集的概念,判斷像素點的鬼影程度,從而限制像素點的傳播速度,加快鬼影消除的速率,并判斷噪聲的擾動程度動態(tài)更新輔助樣本;文獻(xiàn)[8]通過比較鬼影區(qū)域與真實背景區(qū)域的像素直方圖的差異判斷出鬼影,并更新鬼影區(qū)域的背景模型消除鬼影;文獻(xiàn)[9]采用多幀平均法初始化背景模型,進而消除鬼影,結(jié)合OTSU算法自適應(yīng)半徑閾值,并借助背景差分法分離運動區(qū)域,只對運動區(qū)域的背景模型進行更新;文獻(xiàn)[10]結(jié)合五幀差分法與ViBe在初始化背景時消除鬼影,借助高斯混合模型權(quán)值與ViBe隨機更新策略更新背景模型.
本文針對ViBe算法存在的問題,在ViBe算法的基礎(chǔ)上提出一種改進算法.通過在前N幀初始化背景模型的方式構(gòu)建可靠的背景模型,快速消除鬼影帶來的影響,在前景檢測階段,通過提出的背景擾動指數(shù)判斷當(dāng)前幀背景擾動程度,出現(xiàn)背景擾動時以自增適應(yīng)參數(shù)適當(dāng)增大匹配閾值,背景表現(xiàn)平緩時,保持匹配閾值不變,這樣可以很好地應(yīng)對動態(tài)背景擾動帶來的影響,對于算法在發(fā)生光照突變時表現(xiàn)敏感問題,提出統(tǒng)計當(dāng)前幀像素點與前一幀像素點像素值差異較大的個數(shù),若超過設(shè)定的范圍判斷為發(fā)生了光照突變,并采用從當(dāng)前幀開始重新初始化背景模型的方式抑制光照突變的影響.通過公開數(shù)據(jù)集與本文算法與其它算法比較,本文算法總體表現(xiàn)優(yōu)于ViBe算法以及其它算法.
ViBe算法(視覺背景提取算法)是一種簡潔高效的運動目標(biāo)檢測算法,是Barnich等人在2011年提出的一種像素級的背景建模法,其算法邏輯簡單,通過初始化背景模型、前景檢測、背景更新完成檢測任務(wù)[11].
假設(shè)每一個像素點和其領(lǐng)域像素點的像素值在空域上有相似的分布,在視頻的第一幀中,任意一個像素點x,像素為v(x),在以像素點x為中心的3×3領(lǐng)域范圍的八領(lǐng)域中等概率隨機選取N個背景樣本元素值作為像素點x的背景模型樣本集B(x),即:
B(x)={B1(x),B2(x),B3(x),…,BN(x)}
(1)
B(x)即為像素點x建立的背景模型,至此完成背景模型的初始化.
圖1 ViBe前景檢測示意圖Fig.1 ViBe foreground detection diagram
在第一幀完成背景模型初始化后,在隨后幀進行前景檢測的思想是將該幀中的任一像素點與其背景模型的像素點計算其歐式距離,統(tǒng)計歐式距離小于一個固定閾值R的個數(shù),若個數(shù)大于等于經(jīng)驗閾值Tmin,表明像素點與其背景模型有很大的相似度,將其判定為背景點,反之為前景點.如圖1所示,過程可描述為:
(2)
其中,SR[v(x)]是以像素點x為圓心,R為半徑的歐式空間,BG為背景像素點,F(xiàn)G為前景像素點,Tmin一般取2.從而得到前景目標(biāo).
在背景模型更新中,判斷為背景的像素點有1/φ的概率替代背景模型中的任意一個樣本值,φ為時間二次抽樣因子,同時也有1/φ的概率隨機更新領(lǐng)域像素的背景模型.
ViBe的首幀初始化背景模型的方式會帶來鬼影問題,且采用固定閾值的方式進行前景檢測以及隨機更新背景的策略不能很好地應(yīng)對復(fù)雜環(huán)境所帶來的影響,針對以上問題,本文提出一種改進方法.改進方法流程如圖2所示.
圖2 改進算法流程圖Fig.2 Improved algorithm flow chart
若視頻的首幀就出現(xiàn)了運動目標(biāo),運用ViBe算法對目標(biāo)進行檢測過程中,采用了在視頻的首幀初始化背景模型方式,前景像素值被用于構(gòu)建背景,導(dǎo)致背景模型出現(xiàn)了前景目標(biāo),在隨后幀中會出現(xiàn)“鬼影”區(qū)域,雖然后續(xù)借助背景模型的更新,會逐漸消除鬼影區(qū)域,但過程緩慢,差不多經(jīng)過100多幀以后才會完全地消失,假如在之后的短暫時間內(nèi)有運動目標(biāo)經(jīng)過這部分區(qū)域,會受到影響.
ViBe算法運用空域相似性原則,認(rèn)為相鄰像素點有相似的分布;但這樣的情況在首幀出現(xiàn)運動目標(biāo)的邊緣處是不成立的.本文提出時空相似性相結(jié)合的背景模型初始化方法,選擇視頻開始的前N幀初始化背景模型.對于任一像素點x,在第i幀處的像素值為vi(x),在視頻的第i幀中,依然采用像素點x八領(lǐng)域中等概率隨機選擇的M個樣本點組成的樣本集,表示為:
(3)
到第N幀時,總共M×N個樣本點用于構(gòu)建背景模型.這樣連續(xù)多幀建立背景模型的方式使得背景模型更加的豐富,既保證了空域的信息,又保證了時域的信息,空域的信息使得背景模型具備了隨機性,時域的信息使得背景模型具備了多樣性,避免了只用首幀初始化背景模型的局限性,即使在第一幀出現(xiàn)運動目標(biāo)時,運動目標(biāo)在隨后幀中也會離開這個位置,故空間中同一個位置出現(xiàn)更多的是背景像素點,采取多幀初始化的方式使得背景模型具備了更多真實可靠的背景信息,加快了鬼影消除的速度.
選取多少幀初始化背景模型,以及每幀選取多少個樣本對于鬼影的消除效果是關(guān)鍵.若選取幀數(shù)過多,不能迅速初始化背景模型,選取幀數(shù)過少,鬼影消除效果會受到影響,而每幀從像素點x的領(lǐng)域中選取的M個背景樣本點,若選取背景過多,由于相鄰像素點的像素值具有相似性,會產(chǎn)生不必要的冗余計算,并且多幀累加之后背景樣本總數(shù)會更多,影響前景檢測階段像素點的匹配速度.
為確定選取幀數(shù)與選取樣本數(shù)的最佳方案.選取了CDnet2014數(shù)據(jù)集[12]中的pets2006視頻進行實驗比較,把出現(xiàn)運動目標(biāo)的20幀作為檢測的首幀,視頻共1180幀,統(tǒng)計采取不同樣本數(shù)檢測所需要的時間如表1所示.
表1 樣本數(shù)與時間關(guān)系
Table 1 Sample number versus time
選取樣本數(shù)1020253035檢測時間/s117.43203.13245.39284.27347.68
由表1可以看出,檢測所需的時間與選取樣本數(shù)成正比關(guān)系,雖然選取10個樣本點檢測速度最快,但由于樣本選取過少,導(dǎo)致檢測效果不明顯,故本文算法最終選取20個樣本點初始化背景模型.而原始的ViBe算法也是采用的20個背景樣本點,這也是和原始的算法相契合的,區(qū)別是原始的ViBe是在第一幀選取的背景點.
確定為選取20個左右背景樣本點,分配到每幀上初步設(shè)定為5幀(每幀4個樣本點)、4幀(每幀5個樣本點)、3幀(每幀7個樣本點)、6幀(每幀3個樣本點).比較這四種方案下該視頻檢測中的F-measure值,F(xiàn)-measure是衡量算法綜合表現(xiàn)的一個重要指標(biāo).比較結(jié)果如表2所示,比較得出5幀(每幀4個樣本點)的F-measure的值最高,故本文選取前5幀,從每幀的像素點x的領(lǐng)域中選取4個樣本點,總共20個樣本點初始化背景模型.
表2 選取方案F-measure對比
Table 2 Selection scheme F-measure comparison
選取方案5×44×53×76×3F-measure0.910.890.850.87
采用前5幀初始化背景模型之后的算法能夠快速地消除鬼影,但ViBe算法在復(fù)雜環(huán)境中表現(xiàn)得不太好,任然存在一些問題.在面對類似于水紋波動等一些背景擾動的影響下,會將其檢測為前景點.而在ViBe的前景檢測階段是采用了像素點x的以固定閾值R為半徑的歐式空間來匹配背景模型,這樣全程不變的閾值對于靜態(tài)背景沒有影響,但在動態(tài)背景擾動下會將虛假的背景點檢測為前景,故在前景檢測階段本文提出一種能夠自適應(yīng)背景影響的方法來抑制背景擾動,即閾值R可以根據(jù)環(huán)境調(diào)整大小,增強算法自適應(yīng)背景變化的能力.本文提出一種衡量背景擾動影響的指標(biāo)μ(x),表達(dá)式如公式(4)所示:
(4)
即計算當(dāng)前幀像素點x的像素值與其背景模型中的背景樣本像素值差分和的均值,μ(x)越大,表明背景有明顯的擾動情況,應(yīng)適當(dāng)增大匹配閾值R(x)抑制背景擾動的影響;μ(x)越小,表明背景趨于平穩(wěn).R(x)的判斷策略如式(5)所示:
(5)
其中α為自增適應(yīng)參數(shù),δ為尺度因子,Ri(x)和Ri-1(x)分別表示像素點x在第i幀和i-1幀的匹配閾值,當(dāng)背景擾動程度較大時,適當(dāng)?shù)卦龃笄耙粠袼攸c的匹配閾值,背景趨于穩(wěn)定時,則保持原匹配閾值.這樣在背景擾動超過一定界限時,匹配閾值的自適應(yīng)總是根據(jù)當(dāng)前幀背景擾動程度在上一幀閾值的基礎(chǔ)上建立的,保證了閾值變化的時序性,又考慮到擾動程度一直比較大,Ri(x)就會無限增大,故給Ri(x)設(shè)置一個上限Rmax(x),當(dāng)Ri(x)大于Rmax(x),就保持Rmax(x)閾值.即:
(6)
實際的監(jiān)控環(huán)境下總是會面臨光照的變化,表現(xiàn)為緩慢光照變化和光照突變,基于背景建模的方法在面對光照變化下都表現(xiàn)得比較敏感,產(chǎn)生大片區(qū)域誤檢的現(xiàn)象,ViBe算法也不例外.光照變化也屬于背景擾動,而按上一節(jié)提到的自適應(yīng)匹配閾值的改進方法在對緩慢光照背景下的檢測有很好的抑制效果,但對于光照突變就表現(xiàn)得性能不足,原因是光照突變使得背景變化得太突然,而且基本覆蓋到當(dāng)前幀的整幀圖片,所以本文采取在發(fā)生光照突變時,從當(dāng)前幀開始按照本文提出的初始化背景模型的方法重新快速地初始化背景模型.這個過程中關(guān)鍵的一步是確定光照突變的判斷依據(jù),在當(dāng)前幀發(fā)生光照突變時,其像素點的像素值與前一幀像素點的像素值表現(xiàn)差異較大,統(tǒng)計差異較大的像素點的個數(shù),判別條件如式(7)所示:
f(x)=vi(x)-vi-1(x)
(7)
設(shè)經(jīng)驗閾值η,若f(x)大于了閾值η,則將其歸納為發(fā)生了光照突變的像素點, 統(tǒng)計發(fā)生了光照突變像素點的個數(shù),計算其與當(dāng)前幀像素點總數(shù)的比,如公式(8)所示:
(8)
若比值大于經(jīng)驗閾值φ,則表明當(dāng)前幀發(fā)生了光照突變,并從當(dāng)前幀開始重新初始化背景模型.
本文所進行實驗的軟硬件條件為:操作系統(tǒng)選用Windows10,在VS2017編譯環(huán)境下編譯程序,并運用opencv,實驗所采用的主機信息:(Intel(R) Core(TM) i5-8250U 1.60GHz 1.80GHz 8GB 內(nèi)存).實驗中的部分閾值取自經(jīng)驗閾值,部分閾值取自原ViBe算法.初始匹配閾值R取20,二次時間抽樣因子φ取16,自增適應(yīng)參數(shù)α取0.05,尺度因子δ取5,匹配閾值上限Rmax(x)取30,η取5,φ取70%.
鬼影消除實驗對比同樣選取CDnet2014數(shù)據(jù)集[12]中的pets2006視頻,把第20幀作為視頻首幀,對比本文改進算法的效果,實驗對比如圖3所示.
20幀作為首幀到70幀時,經(jīng)過50幀之后,ViBe仍殘留了輪廓清晰的鬼影區(qū)域,鬼影消除緩慢,到第117幀時仍存留了部分殘留的鬼影區(qū)域,而采取前5幀初始化的方式在第70幀時鬼影就得到了消除.多幀初始化的方式同時融入了時域和空域的信息,使初始化的背景模型更具真實性,加快了鬼影消除的速度.
為驗證應(yīng)對背景擾動的效果,選取CDnet2014數(shù)據(jù)集[12]中overpass視頻進行驗證,視頻中存在風(fēng)吹過樹枝造成樹葉擺動的高頻擾動的影響,對比ViBe算法以及本文改進算法的效果,實驗結(jié)果如圖4所示.
圖3 鬼影消除實驗對比Fig.3 Ghost elimination experiment comparison
圖4中ViBe算法在動態(tài)背景擾動下,錯誤地將背景像素點檢測為了前景像素點,而本文采用的自適應(yīng)匹配閾值的方法雖然處理之后任然殘留一些前景像素點,但對比ViBe算法已經(jīng)有了很大的改善.
圖4 背景高頻擾動實驗對比Fig.4 Background high frequency disturbanceexperiment comparison
光照突變免疫實驗選取了Pets2015中的“l(fā)ightswitch”視頻序列,這個視頻序列包含了人進入黑暗的室內(nèi)打開燈發(fā)生突然變亮的情形,ViBe算法在這種情形下表現(xiàn)為更新背景模型遲鈍,產(chǎn)生大量誤檢區(qū)域,發(fā)生檢測錯亂,影響直觀的效果.
圖5 光照突變免疫實驗對比Fig.5 Comparison of light mutation immunoassay
而本文采用了統(tǒng)計當(dāng)前幀與上一幀發(fā)生差異較大的像素點的個數(shù)判斷發(fā)生光照突變的情形,可以很好地判斷出圖5中發(fā)生了光照突變,并從當(dāng)前幀開始重新初始化背景模型,適應(yīng)背景模型的變化已經(jīng)有了很大的改善,可以從發(fā)生光照突變迅速地檢測出輪廓較為清晰的運動目標(biāo),文本提出的算法有很好的表現(xiàn).
為對比本文算法與其它算法在去除鬼影、面對背景擾動以及光照變化的性能表現(xiàn),采用通用的前景檢測評價指標(biāo).本文選用的指標(biāo)有準(zhǔn)確率(Precision)、召回比(Recall)、F評分(F-measure)、漏檢率(FNR),定義為:
(9)
(10)
(11)
(12)
其中TP表示結(jié)果中正確檢測為前景點的個數(shù),TN表示結(jié)果中正確檢測為背景點的個數(shù),F(xiàn)P表示檢測結(jié)果為前景點但真實為背景點的個數(shù),F(xiàn)N表示檢測結(jié)果為背景點但真實為前景點的個數(shù).
本文選用了CDnet2014數(shù)據(jù)集[12]中的比較有代表性的“canoe”視頻序列、“highway”視頻序列和“overpass”視頻序列以及Pets2015中的“l(fā)ightswitch”視頻序列總計4個 實驗樣本.其中“canoe”視頻序列包含了湖面水紋波動的動態(tài)背景擾動的情形,“overpass”視頻序列包含了樹枝晃動的動態(tài)背景擾動的情形,“l(fā)ightswitch”包含了室內(nèi)環(huán)境下進行開關(guān)燈時光照突變的情形,人為地截取了“highway”序列中有汽車駛過作為首幀形成的視頻.實驗選用了ViBe、GMM、三幀差分法以及本文算法作為對比,比較算法在鬼影消除的效果、動態(tài)背景擾動以及光照突變環(huán)境下的表現(xiàn).實驗結(jié)果如圖6所示.
圖6 改進算法與其它算法對比Fig.6 Improved algorithm compared with other algorithm
“overpass”序列中有樹葉晃動背景的干擾,GMM、三幀差分法、ViBe算法都出現(xiàn)不同程度地將其檢測為前景像素點的情形,而本文算法在ViBe算法的基礎(chǔ)上在前景檢測的匹配閾值階段采用了動態(tài)自適應(yīng)閾值的策略很好地抑制了動態(tài)背景的干擾,提高了檢測的正確率.“canoe”序列中存在湖面水紋波動的動態(tài)背景的干擾,同樣本文的算法具備了很好地表現(xiàn).截取的“highway”序列出現(xiàn)了首幀就有運動目標(biāo)的情形,由于ViBe算法采用首幀初始化背景模型的方式,在隨后幀中出現(xiàn)了鬼影,且鬼影消除緩慢,出現(xiàn)鬼影是ViBe算法的特例,同樣是基于背景建模的GMM算法由于采用K個相互獨立的高斯分布來表征莫一像素點的像素值特征,故不會出現(xiàn)鬼影現(xiàn)象,三幀差分的方式也是不會出現(xiàn)鬼影的,而本文在ViBe算法的基礎(chǔ)上采用了前5幀初始化背景模型的方法,使得背景模型更加真實,鬼影消除速度有了很好地改善.“l(fā)ightswitch”序列中包含了室內(nèi)環(huán)境下打開燈出現(xiàn)突然變亮的情形,可以看到基于背景建模的GMM以及ViBe算法都出現(xiàn)了來不及更新背景模型,導(dǎo)致檢測錯亂的現(xiàn)象,對光照敏感是基于背景建模方法的通病,而三幀差分法由于采用了前后兩幀相“與”能夠很好地適應(yīng)光照變化的情形,但是內(nèi)部卻出現(xiàn)了大量的空洞,影響觀察的效果,而本文在ViBe算法的基礎(chǔ)上采用了判斷前景像素點占總像素點的比,若比值大于了70%,判斷為發(fā)生了光照突變的情形,并從當(dāng)前幀開始采用本文提出的初始化背景模型的方式重新初始化背景模型的策略,很好地適應(yīng)了光照突變的情形.綜上,三幀差分法優(yōu)點是對光照不敏感,但是檢測效果不好,內(nèi)部會出現(xiàn)大量空洞,故許多學(xué)者將三幀差分法作為一種融合方法,結(jié)合GMM或者ViBe算法改進,可以應(yīng)對光照突變的情形.經(jīng)典的GMM算法相比于ViBe效果要差一點,內(nèi)部同樣會有空洞,且目標(biāo)輪廓沒有ViBe明顯,但不會出現(xiàn)鬼影.而本文算法很好地解決了ViBe存在的一些問題,體現(xiàn)了很好的效果,各方面都表現(xiàn)不俗.
同時,本文計算了各算法在選用的視頻場景中的4個評價指標(biāo),并以折線圖的形式可以直觀地進行對比.
圖7 各算法評價指標(biāo)對比Fig.7 Comparison of evaluation indexes of various algorithms
從圖7可以看出:highway視頻中出現(xiàn)了首幀就包含有運動目標(biāo)的情形,導(dǎo)致ViBe在準(zhǔn)確率上相比于overpass視頻以及canoe視頻有大幅的下降;而在lightswitch視頻中出現(xiàn)了光照突變的情形,導(dǎo)致對光照突變敏感的GMM以及ViBe在準(zhǔn)確率以及F評分上下降顯著.本文算法在4個視頻中準(zhǔn)確率、召回比、F評分相比于ViBe都有顯著的提高,且優(yōu)于其它算法.在漏檢率上相比于其它算法都處于最低,且檢測速度均保持在25frames/s左右,滿足實時檢測的需求.
本文在ViBe的基礎(chǔ)上提出了一種改進算法,通過前N幀初始化背景模型加快鬼影消除的速度,根據(jù)環(huán)境復(fù)雜度自適應(yīng)匹配閾值以抑制噪聲的干擾,統(tǒng)計前后幀差異超過閾值的個數(shù)判斷發(fā)生光照突變的情形,判斷為發(fā)生光照突變從當(dāng)前幀開始重新初始化背景模型.實驗驗證,本文算法可以有效地解決鬼影消除以及在復(fù)雜場景下表現(xiàn)不佳等問題,相比于ViBe以及其它算法本文算法在各項指標(biāo)上都有不錯的表現(xiàn).