賈澎濤,侯長民,李娜
(西安科技大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,陜西 西安 710054)
運(yùn)動目標(biāo)檢測的目的是從視頻中檢測得到運(yùn)動目標(biāo),在目標(biāo)識別與跟蹤、行為分析、視頻監(jiān)控等方面有著廣泛應(yīng)用[1-4]。在實(shí)際場景中,光照變換、樹葉晃動、水面閃爍、雨雪天氣等干擾因素都會增加運(yùn)動目標(biāo)檢測的難度,如何從視頻中快速準(zhǔn)確地檢測出完整運(yùn)動目標(biāo)成為了研究熱點(diǎn)。ViBe算法[5-7]是較為常用的運(yùn)動目標(biāo)檢測算法之一,因其具有檢測精度高和實(shí)時檢測的特點(diǎn),而被廣泛應(yīng)用。但是,Vibe 算法使用單幀初始化背景模型,當(dāng)視頻首幀存在運(yùn)動目標(biāo)時,后續(xù)檢測結(jié)果中便會出現(xiàn)鬼影現(xiàn)象[8];同時,在強(qiáng)光照場景下,ViBe 算法會將背景中的陰影部分誤檢為前景目標(biāo)。
針對ViBe 算法中存在的鬼影問題,尹芳等人[9]使用幀間差分法消除鬼影,但如果運(yùn)動目標(biāo)長時間存在,檢測效果便不夠理想。JIN D L [10]和ZHANG Y J[11]分別使用改進(jìn)的Canny 算子和Sobel 算子與ViBe 算法結(jié)合,通過邊緣檢測區(qū)分前景目標(biāo)與鬼影,取得了較好的鬼影消除效果,但是當(dāng)鬼影與前景區(qū)域重疊時,就難以檢測出完整前景目標(biāo)。劉家軍等人[12]通過選擇顏色和空間位置相近的像素點(diǎn)作為樣本集初始化背景模型,該算法在保證實(shí)時性的前提下能檢測出完整運(yùn)動目標(biāo),但有時也會將陰影誤檢為前景目標(biāo)。崔鵬翔等人[13]結(jié)合YCbCr 顏色空間和混合高斯模型(Gaussian mixture model, GMM)來消除鬼影,但是對于復(fù)雜背景的魯棒性較低。
上述方法雖然能夠有效消除鬼影,但是對于陰影誤檢問題卻難以解決。為了消除陰影對目標(biāo)檢測的影響,研究者們提出了一系列基于各種特征的陰影檢測算法。SALVADOR 等人[14]在HSV(hue,saturation, value)顏色空間下根據(jù)明度分量V 檢測陰影;韓延祥等人[15]通過計算當(dāng)前圖像與背景圖像的紋理相似度來區(qū)分圖像中的陰影和前景目標(biāo)。上述兩種方法均屬于單特征陰影檢測算法,顏色空間法在光線較暗的環(huán)境下檢測效果較差,而紋理法則容易將深色目標(biāo)誤檢為陰影。為了克服單特征方法的局限性,李鵬等人[16]提出了一種將顏色特征、歸一化向量距離和亮度比值相融合的陰影去除方法,甘玲等人[17]結(jié)合色相和紋理特征進(jìn)行特征融合進(jìn)行運(yùn)動車輛陰影的檢測與去除,龍浩等人[18]結(jié)合HSV 顏色特征和LBP(local binary pattern)紋理特征進(jìn)行陰影檢測,上述3 種方法將顏色特征和紋理特征并行處理后進(jìn)行融合,這3 種多特征融合方法能有效克服單特征方法的不足,較好地去除陰影,并保留完整的前景目標(biāo),但是會引入新的陰影和噪聲破壞檢測結(jié)果,尤其是在陰影與前景目標(biāo)的交界處檢測效果還需進(jìn)一步改進(jìn)。
為了解決ViBe 算法存在的上述問題,論文提出了一種復(fù)雜背景下改進(jìn)的ViBe 運(yùn)動目標(biāo)檢測算法——GS-ViBe(GMM and shadow detection ViBe),GS-ViBe 從背景模型初始化、前景檢測和背景模型更新3 個階段進(jìn)行改進(jìn)。改進(jìn)的算法可以有效抑制各種干擾,適應(yīng)各種復(fù)雜背景,并且滿足實(shí)時性檢測需求。
針對ViBe 算法背景初始化時容易產(chǎn)生鬼影的問題,GS-ViBe 使用改進(jìn)的GMM 背景初始化方法代替單幀背景初始化方法,通過最大后驗(yàn)估計法引入先驗(yàn)概率影響,實(shí)現(xiàn)自適應(yīng)更新高斯分布數(shù)量,并重新設(shè)計了學(xué)習(xí)率公式,使其可以動態(tài)調(diào)整,加速背景建模,提高了算法的魯棒性,解決了鬼影問題;對于ViBe 算法的陰影誤檢問題,GSViBe 在前景檢測階段增加了多特征融合陰影檢測過程,將陰影檢測結(jié)果和前景結(jié)果結(jié)合,消除陰影對于前景檢測的影響;同時GS-ViBe 在背景模型更新階段引入動態(tài)更新因子代替固定更新因子,使得背景可以自適應(yīng)更新,從而降低背景的誤檢率。
GMM 作為一種基于像素的背景建模方法,主要使用K個高斯分布對視頻幀的每個像素建模,對于t時刻的視頻幀Xt,高斯混合模型分布概率公式如下所示:
式中 θi,t表示t時刻第i個高斯分布的均值 μi.t和協(xié)方差矩陣 τi,t。σi,t為標(biāo)準(zhǔn)差,若滿足條件|Xt-μi,t-1|≤2.5σi,t-1,則認(rèn)為該像素點(diǎn)與該高斯分布匹配,此時記Mi,t=1,否則Mi,t=0。
如果出現(xiàn)Xt與所有高斯分布均不匹配時,則需要使用新的高斯分布代替優(yōu)先級 ωt/σt較低的分布,高斯分布參數(shù)更新公式如下:
式中:α代表學(xué)習(xí)率;ρ的大小與學(xué)習(xí)率 α相關(guān),表示參數(shù)的更新速率。
將式(2)中的權(quán)重序列作為一個隱式的多項(xiàng)式分布看待,引入多項(xiàng)式分布的共軛先驗(yàn)狄利克雷分布:
式中ci是第i個分布的先驗(yàn),即屬于第i個分布的先驗(yàn)樣本數(shù)量。
在引入先驗(yàn)概率分布后,通過極大似然法求解得到最終的權(quán)重更新公式:
式中d為先驗(yàn)估計引入的影響因子。負(fù)數(shù)權(quán)重的狄利克雷分布將使與像素?zé)o法匹配的分布權(quán)重減小,當(dāng)其權(quán)重減小為負(fù)數(shù)時便舍棄該分布,保證了分布權(quán)重的非負(fù)性。
此外,背景模型應(yīng)盡可能保留初始幀的特征,傳統(tǒng)GMM 中的學(xué)習(xí)率是一個固定值,影響背景模型的準(zhǔn)確性,因此改進(jìn)的GMM 中重新設(shè)計了學(xué)習(xí)率更新公式:
式中:t代表視頻幀編號;L為初始化視頻幀數(shù)。隨著輸入視頻幀數(shù)的增加,學(xué)習(xí)率會從較大值逐漸趨于穩(wěn)定,所包含的初始幀特征達(dá)到最大化,確保了背景模型的準(zhǔn)確性。
為了消除陰影對于前景檢測結(jié)果的影響,充分利用各個特征來輔助陰影檢測,GS-ViBe 中提出了一種基于串行結(jié)構(gòu)的多特征融合陰影檢測算法。針對現(xiàn)有算法容易引入新的陰影和噪聲以及在陰影與目標(biāo)邊界不明顯時檢測效果較差的問題,改進(jìn)算法對顏色特征、紋理特征和邊緣特征進(jìn)行融合,通過新引入的邊緣特征計算圖像邊緣與前景檢測結(jié)果之間的差異,獲得目標(biāo)周圍的邊緣特征,之后將其他特征檢測得到的陰影結(jié)果與邊緣特征融合,最大限度地去除陰影部分,解決了邊界模糊時目標(biāo)難以完整檢測的問題;此外,為了解決前景目標(biāo)中易出現(xiàn)孔洞的問題,改進(jìn)算法采用串行結(jié)構(gòu)進(jìn)行特征融合,盡量充分利用各種特征來輔助陰影檢測,并添加了形態(tài)學(xué)處理步驟,對檢測結(jié)果進(jìn)行修正,降低孔洞現(xiàn)象的出現(xiàn)。在光照環(huán)境下,運(yùn)動目標(biāo)在顏色構(gòu)成上與陰影部分存在較大差異,并且當(dāng)陰影將背景像素覆蓋之后,其紋理特征變化較小。因此,通過計算背景圖像和當(dāng)前幀圖像之間的顏色特征和紋理特征的差異,可以初步得到當(dāng)前幀位于(x,y)處的陰影檢測結(jié)果S(x,y)。
式中:Fb(x,y)和Fi(x,y)分別表示背景圖像和當(dāng)前第i幀的特征值;α和β是兩個閾值,用于判斷當(dāng)前像素點(diǎn)是否屬于陰影部分。
之后,使用邊緣特征獲取當(dāng)前幀圖像邊緣結(jié)果后,將其檢測結(jié)果與ViBe 前景結(jié)果進(jìn)行對比,進(jìn)而保留目標(biāo)周圍的邊緣:
式中P(x,y)和Eall(x,y)分別表示當(dāng)前幀圖像的ViBe前景檢測結(jié)果和邊緣檢測結(jié)果中位于(x,y)處的像素值。
在對目標(biāo)邊緣經(jīng)過形態(tài)學(xué)膨脹處理后,將當(dāng)前幀圖像在位置(x,y)處的陰影檢測結(jié)果與邊緣檢測結(jié)果的像素值相減,得到最終的陰影檢測結(jié)果SF(x,y)。
最后,將陰影檢測結(jié)果和ViBe 前景檢測結(jié)果融合,得到消除陰影后的前景目標(biāo)D(x,y)。
在復(fù)雜背景下,背景模型更新容易受到環(huán)境干擾,如果采用傳統(tǒng)ViBe 算法中的更新策略,則可能使得前景被誤檢為背景或者背景被誤檢為前景,進(jìn)而導(dǎo)致誤檢率升高。因此為了降低誤檢率,GS-ViBe 在背景模型更新階段引入空間一致性原則,即為每個像素點(diǎn)定義一個鄰域集合,通過判斷該鄰域集與其背景模型的空間一致性,來決定背景模型的更新概率。
當(dāng)前視頻幀位于(x,y)處的像素點(diǎn)的 δ鄰域定義為
式中 δ為一正整數(shù)。
然后,計算像素點(diǎn)鄰域N(x,y)與其背景模型集合B(x,y)的交集:
之后將空間一致性系數(shù)定義為
空間一致性系數(shù)C(x,y)作為像素點(diǎn)被判定為背景點(diǎn)的度量標(biāo)準(zhǔn),其值越大,說明像素點(diǎn)鄰域中屬于背景的像素點(diǎn)也越多,進(jìn)而說明該點(diǎn)作為背景的可能性也越高,該像素點(diǎn)的背景模型更新概率也就越高,因此使用空間一致性系數(shù)定義自適應(yīng)更新因子:
式中:φ為初始更新因子;φ(x,y)為自適應(yīng)更新因子該像素點(diǎn)有1/φ(x,y)的概率去更新背景模型。這樣不,僅可以有效減少前景被誤檢為背景的概率,而且可以進(jìn)一步增強(qiáng)算法的魯棒性。
為了驗(yàn)證GS-ViBe 算法的有效性,選用具有復(fù)雜背景的數(shù)據(jù)集CDNet2014[19]進(jìn)行實(shí)驗(yàn)。CDNet2014數(shù)據(jù)集中包含大量有復(fù)雜背景的視頻數(shù)據(jù),包括雨雪環(huán)境、強(qiáng)光照環(huán)境、晃動的樹葉、水面以及夜間環(huán)境等。同時,數(shù)據(jù)集中每個視頻都標(biāo)注有真值標(biāo)簽,便于算法性能的定量分析。
算法代碼是在Windows 10 操作系統(tǒng)下使用Visual Studio 2022、C++和OpenCV 4.5.2 編寫運(yùn)行,實(shí)驗(yàn)環(huán)境為i5-11400H 2.70GHz CPU,內(nèi)存為16.0 GB。實(shí)驗(yàn)中GMM 背景模型初始化視頻幀數(shù)L=500,初始高斯分布個數(shù)M=6,ViBe 算法初始化匹配半徑R=20,樣本個數(shù)N=20,背景更新因子φ=16,最小匹配數(shù)Qmin=2。
為了對比各種背景模型初始化算法的背景建模結(jié)果,選取了數(shù)據(jù)集中的3 個視頻(PETS2009、Highway 和Skating),將多幀平均法、多幀中位數(shù)和GMM 背景初始化方法與GS-ViBe 算法中改進(jìn)的多幀背景初始化方法進(jìn)行實(shí)驗(yàn)對比,圖1 為各視頻使用不同的背景模型初始化方法的結(jié)果對比圖,圖2 為Highway 數(shù)據(jù)集通過背景建模后300 個像素點(diǎn)的高斯分布數(shù)目曲線圖。
圖1 各種背景初始化算法結(jié)果對比Fig.1 Comparison of results of various background initialization algorithms
圖2 像素點(diǎn)高斯分布數(shù)目Fig.2 The number of Gaussian distribution of pixels
由圖1 可知,對于多幀平均法和多幀中位數(shù),在目標(biāo)較多的視頻PETS2009 和Skating上,初始化背景中存在虛影,對于目標(biāo)移動過快的Highway數(shù)據(jù)集,其初始化背景中虛影被拖長,而傳統(tǒng)的GMM 算法背景中的虛影現(xiàn)象更嚴(yán)重。GS-ViBe算法背景初始化結(jié)果中幾乎不含運(yùn)動目標(biāo)和虛影,更加接近于真實(shí)背景,能夠適應(yīng)各種不同復(fù)雜背景。
從圖2 中可以看出,像素的高斯分布數(shù)目最高可高達(dá)12個,最低則為2個,由于使用視頻的前500 幀進(jìn)行高斯混合模型的訓(xùn)練,所以當(dāng)某一幀的某一像素位置處出現(xiàn)運(yùn)動目標(biāo)或是受到其他干擾時,會導(dǎo)致高斯分布數(shù)目變化,但是基本上集中在3~6 個之間,傳統(tǒng)ViBe 算法的高斯分布數(shù)目一般設(shè)定為3~5個,高斯分布數(shù)目實(shí)驗(yàn)既驗(yàn)證了算法有效性,也證明了自適應(yīng)高斯分布數(shù)目可以適應(yīng)復(fù)雜背景下視頻幀的變化。
為了驗(yàn)證多特征融合陰影檢測算法的效果,實(shí)驗(yàn)選擇了HSV 顏色特征和Canny 邊緣特征進(jìn)行多特征融合陰影檢測,并選取了數(shù)據(jù)集中包含陰影的視頻(PETS2006、Pedestrian 和Bungalows),與文獻(xiàn)[15]、[16]和[17]中的陰影檢測算法在同一ViBe前景檢測結(jié)果下進(jìn)行陰影消除結(jié)果對比,表1 為各算法平均運(yùn)行時間對比,圖3 為陰影消除結(jié)果對比。
表1 不同數(shù)據(jù)集各算法的平均運(yùn)行時間Table 1 Average running time of each algorithm in different datasets ms/幀
圖3 陰影檢測算法結(jié)果對比Fig.3 Comparison of results of shadow detection algorithm
從圖3 可以看出,在PETS2006 和Pedestrians兩種復(fù)雜光照環(huán)境下,文獻(xiàn)[15]、[16]和[17]中的方法均可有效消除光照環(huán)境對陰影檢測的影響,能夠檢測出較為完整的前景目標(biāo),但是依然存在一些面積較小的陰影部分無法消除;此外,從表1中數(shù)據(jù)可以發(fā)現(xiàn),3 種對比算法的運(yùn)行耗時均高于改進(jìn)算法,不適用于實(shí)時性檢測場景。在Bungalows 場景下,由于檢測目標(biāo)為車輛,而車輛上的玻璃等反光設(shè)備會對檢測結(jié)果造成影響,文獻(xiàn)[15]、[17]中的方法無法區(qū)分本影與投影,導(dǎo)致陰影消除效果較差,將大量陰影部分誤檢為了前景目標(biāo),文獻(xiàn)[16]雖然可以區(qū)分本影和投影,陰影消除效果較好,但與文獻(xiàn)[15]和[17]類似,均導(dǎo)致運(yùn)動目標(biāo)中存在大量孔洞。GS-ViBe 在3 種場景下不僅能有效消除陰影,也并未引入新的噪聲,降低了誤檢率,保證了前景目標(biāo)的完整性,且在運(yùn)行時間上相較其他方法更快,可以滿足實(shí)時性檢測需求。
為了驗(yàn)證動態(tài)更新因子的有效性,對 φ取不同值時的目標(biāo)檢測結(jié)果進(jìn)行對比。如圖4 所示,根據(jù)公式(14)中更新因子的變化范圍,分別選取自適應(yīng)更新因子φ(x,y)、φ=1、φ=16、φ=32這4 種情況,在PETS2006、Pedestrian 和Bungalows 3 個視頻上驗(yàn)證其有效性。
圖4 背景更新與目標(biāo)檢測結(jié)果Fig.4 Results of background update and target detection
從圖4 可以看出,無論是在Skating 或是Canoe這種復(fù)雜背景下,固定更新因子的檢測結(jié)果中噪點(diǎn)較多,且檢測目標(biāo)中存在孔洞,而 φ自適應(yīng)下的目標(biāo)更加完整,噪點(diǎn)干擾也更少,其中Skating 視頻當(dāng)前幀的φ(x,y)=8,Canoe視頻當(dāng)前幀的φ(x,y)=18,StreetCornerAtNight 視頻當(dāng)前幀的φ(x,y)=22;在streetCornerAtNight 這種夜間環(huán)境下,無論是固定還是自適應(yīng)更新因子得到的檢測結(jié)果中噪點(diǎn)都很少,但是自適應(yīng)更新因子比固定更新因子得到的目標(biāo)更加完整;從使用動態(tài)更新因子后得到的背景更新結(jié)果可以看出,算法能夠明顯得到不含前景目標(biāo)的背景,可以有效提高后續(xù)前景檢測的準(zhǔn)確度??傊?,動態(tài)更新因子能夠有效降低背景與前景的誤檢率,得到更加完整的背景更新結(jié)果和運(yùn)動目標(biāo)。
為了綜合對比各種算法在復(fù)雜背景下的運(yùn)動目標(biāo)檢測結(jié)果,將GS-ViBe 算法與傳統(tǒng)ViBe 算法、文獻(xiàn)[8]和文獻(xiàn)[9]中的方法進(jìn)行對比,檢測結(jié)果對比如圖5 所示。從圖5 可以看出,在各類復(fù)雜場景下,GS-ViBe 都能較好地提取出完整的前景目標(biāo)。
圖5 復(fù)雜背景下不同算法檢測結(jié)果Fig.5 Detection results of different algorithms in complex background
其中,在Skating 和SnowFall兩個數(shù)據(jù)集上,ViBe 算法的檢測結(jié)果中存在明顯的鬼影和孔洞,文獻(xiàn)[8]和[9]的檢測結(jié)果中存在較多明顯的誤檢,GS-ViBe 檢測到的前景目標(biāo)比較符合其真值圖;在數(shù)據(jù)集PETS2006、Highway 和Bungalows上,其他算法提取到的前景目標(biāo)中均包含陰影和孔洞,而GS-ViBe 目標(biāo)提取不僅完整,且消除了陰影;在數(shù)據(jù)集Overpass 和Canoe上,ViBe 算法、文獻(xiàn)[8]和[9]的檢測結(jié)果中含有大量噪點(diǎn),前景目標(biāo)殘缺,而GS-ViBe 不僅消除了大量被誤檢為前景目標(biāo)的噪點(diǎn),且前景目標(biāo)更加完整;在數(shù)據(jù)集StreetCornerAtNight上,ViBe 算法和文獻(xiàn)[8]均比較完整地獲得了前景目標(biāo),但存在大量孔洞,文獻(xiàn)[9]算法雖然前景目標(biāo)中的孔洞較少,但存在大量噪點(diǎn),并且將陰影誤檢為了前景目標(biāo),而GS-ViBe 不僅降低了誤檢率,且不存在明顯的孔洞。
采用CDNet2014 中的召回率Re、準(zhǔn)確率Pr、F1分?jǐn)?shù)和誤檢百分比PWC以及每秒檢測幀數(shù)(FPS)這5 個指標(biāo)對算法進(jìn)行定量分析。其中,Re用來衡量檢測結(jié)果的完整性,Pr和PWC可以衡量檢測結(jié)果的正確性,F(xiàn)1分?jǐn)?shù)則體現(xiàn)算法的綜合性能。其計算公式如下所示:
式中:NTP為正確檢測為前景的像素數(shù);NTN為正確檢測為背景的像素數(shù);NFP為誤檢為前景的像素數(shù);NFN為誤檢為背景的像素數(shù)。Re、Pr、F1分?jǐn)?shù)和FPS 的值均是越大越好,而PWC則是越小越好。各種算法的對比結(jié)果如表2 所示。
表2 算法定量評價Table 2 Quantitative evaluation of algorithms
從表2 可以看出,在不同復(fù)雜場景下,GS-ViBe相對于傳統(tǒng)ViBe 算法、文獻(xiàn)[8]和文獻(xiàn)[9],各項(xiàng)指標(biāo)均有大幅度提高,召回率分別平均提高了37.74%、41.66%、11.71%;準(zhǔn)確率分別平均提高了19.83%、7.06%、39.97%;誤檢百分比分別平均降低了52.57%、46.79%、45.67%,F(xiàn)1分?jǐn)?shù)也優(yōu)于其他3 種算法。此外,GS-ViBe 雖然FPS 值不及經(jīng)典ViBe 算法,但是與其他兩種改進(jìn)方法的實(shí)時性相比,具有一定優(yōu)勢,平均FPS 能夠保持在32 左右,能夠滿足算法實(shí)時檢測的要求。
論文針對傳統(tǒng)ViBe 算法在復(fù)雜場景下適應(yīng)性較差,檢測結(jié)果中會存在鬼影、陰影、誤檢等問題,提出了一種改進(jìn)的ViBe 算法——GS-ViBe,主要內(nèi)容包括使用改進(jìn)的GMM 初始化背景模型、加入多特征融合的陰影檢測步驟和自適應(yīng)背景模型更新。實(shí)驗(yàn)結(jié)果顯示,與其他算法相比,GS-ViBe 無論是在動態(tài)背景或是在夜晚環(huán)境下都能夠準(zhǔn)確完整地檢測出運(yùn)動目標(biāo),其召回率、準(zhǔn)確率、F1分?jǐn)?shù)和誤檢百分比等指標(biāo)均優(yōu)于其他對比算法。但是該方法仍然存在一些缺點(diǎn),比如對于較小的運(yùn)動目標(biāo)不夠敏感,在檢測過程中會忽略這些小目標(biāo)。因此,如何對小目標(biāo)進(jìn)行提取是后續(xù)研究需要繼續(xù)解決的問題。