曹 融,郝曉麗
(太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,太原 030600)
目前,在計(jì)算機(jī)視覺研究和數(shù)字圖像處理領(lǐng)域,運(yùn)動(dòng)目標(biāo)檢測(cè)[1]一直是研究熱點(diǎn)之一。幀間差分法、光流法和背景差分法是目前比較經(jīng)典和常用的目標(biāo)檢測(cè)算法。幀間差分法[2]是一種通過(guò)對(duì)視頻圖像序列中的連續(xù)相鄰兩幀進(jìn)行差分運(yùn)算來(lái)檢測(cè)運(yùn)動(dòng)目標(biāo)的方法,其特點(diǎn)是算法復(fù)雜度較低,穩(wěn)定性較好,但比較容易出現(xiàn)“空洞”的現(xiàn)象。光流法[3]利用圖像序列中像素在時(shí)域上的變化以及相鄰幀之間的相關(guān)性來(lái)檢測(cè)運(yùn)動(dòng)目標(biāo),其不僅算法時(shí)間和空間復(fù)雜度高、抗噪能力較弱,且難以保證實(shí)時(shí)性。背景差分法[4]的檢測(cè)效果比較依賴背景模型,主要原理是為圖像中每個(gè)像素點(diǎn)建立相應(yīng)背景模型,通過(guò)將當(dāng)前像素點(diǎn)與其背景模型比對(duì)來(lái)確定該像素點(diǎn)是前景像素點(diǎn)還是背景像素點(diǎn)。
Vibe算法[5]是BARNICH et al在2011年提出的一種目標(biāo)檢測(cè)算法。Vibe算法基于非參數(shù)化的背景建模,具有檢測(cè)效果好、速度快,且算法時(shí)間和空間復(fù)雜度低的優(yōu)點(diǎn)。傳統(tǒng)Vibe算法特定的背景建模及初始化方法使得在目標(biāo)檢測(cè)初期會(huì)產(chǎn)生“鬼影”現(xiàn)象,其局限性不利于實(shí)際場(chǎng)景的應(yīng)用。因此,針對(duì)其弊端,國(guó)內(nèi)外的許多專家學(xué)者進(jìn)行了研究。文獻(xiàn)[6]通過(guò)計(jì)算圖像分割閾值來(lái)判定和抑制“鬼影”像素,但經(jīng)過(guò)大范圍的動(dòng)態(tài)背景處理之后仍會(huì)殘留較多的噪聲點(diǎn);文獻(xiàn)[7]通過(guò)記錄相關(guān)像素值的時(shí)域變化,并結(jié)合幀間差分法來(lái)判定“鬼影”像素,并針對(duì)性提高“鬼影”的消除速率,但會(huì)出現(xiàn)前景像素可能被加入背景樣本的情況;CHENG et al[8]提出針對(duì)“鬼影”區(qū)域的每個(gè)像素都進(jìn)行特殊的初始化處理,但“鬼影”像素仍然消除較慢;閔衛(wèi)東等[9]通過(guò)引入最大類間方差法,同時(shí)結(jié)合動(dòng)態(tài)閾值來(lái)抑制“鬼影”現(xiàn)象,但該方法在光照和背景的變化劇烈等動(dòng)態(tài)復(fù)雜環(huán)境下效果不佳;楊依忠等[10]提出通過(guò)首幀建立背景模型,在前5幀中每個(gè)像素點(diǎn)的鄰域隨機(jī)選4個(gè)像素點(diǎn)背景模型,并結(jié)合三幀差法做“或”運(yùn)算去改善漏檢的問(wèn)題,但其在運(yùn)動(dòng)目標(biāo)速度緩慢時(shí)其檢測(cè)效果不是很理想。
本文提出了一種融合混合高斯模型[11]和閾值自適應(yīng)的改進(jìn)Vibe運(yùn)動(dòng)目標(biāo)檢測(cè)算法。通過(guò)融合混合高斯背景模型和形態(tài)學(xué)處理來(lái)消除“鬼影”,并在背景更新階段采用自適應(yīng)動(dòng)態(tài)閾值T(Px)和R(Px)提高算法精確度以適應(yīng)復(fù)雜環(huán)境。實(shí)驗(yàn)結(jié)果表明,在保證一定實(shí)時(shí)性的前提下,本文改進(jìn)算法可快速有效地消除“鬼影”現(xiàn)象,并具有良好的檢測(cè)準(zhǔn)確性和可靠性。
Vibe算法是一種基于背景建模和背景更新的前景檢測(cè)算法。大致原理是為每個(gè)像素點(diǎn)建立一個(gè)包含該像素點(diǎn)當(dāng)前像素值及其八鄰域點(diǎn)的像素值的樣本集,當(dāng)新的像素點(diǎn)出現(xiàn)需要判斷新像素點(diǎn)是屬于背景點(diǎn)還是前景點(diǎn)時(shí),則通過(guò)將其的像素值與之前樣本集中所包含的采樣值進(jìn)行比較來(lái)判斷。具體來(lái)看,該算法主要有背景建模及初始化、前景檢測(cè)以及背景更新三個(gè)步驟。
背景建模階段,需要為每個(gè)像素點(diǎn)建立一個(gè)包含有N個(gè)像素值的背景模型,可記為M(x)={v1,v2,…,vk,…,vN},通常N=20.初始化階段,選擇視頻圖像序列的首幀,在每個(gè)像素點(diǎn)的八鄰域內(nèi)隨機(jī)選擇任意一點(diǎn)的像素值存儲(chǔ)至當(dāng)前像素點(diǎn)的背景模型中,并重復(fù)N次,則得到初始背景模型M(x).
首先在歐式空間內(nèi)定義一個(gè)半徑為R的圓,v(x)為圓心,用該圓來(lái)表示與v(x)的歐氏距離小于匹配閾值R的所有像素點(diǎn)的集合,如圖1所示。
圖1 Vibe算法閾值判定原理圖Fig.1 Schematic diagram of threshold determination of Vibe algorithm
然后統(tǒng)計(jì)M(x)中與v(x)歐氏距離小于R的像素點(diǎn)的個(gè)數(shù),若數(shù)量大于最小匹配數(shù)Dmin,則判定該像素點(diǎn)為背景像素點(diǎn);若數(shù)量小于最小匹配數(shù)Dmin,則此像素點(diǎn)為前景像素點(diǎn)。如公式(1)所示(其中0表示判定為背景點(diǎn);1表示判定為前景點(diǎn))。
(1)
背景模型的更新策略是,若某個(gè)像素點(diǎn)被判定為前景像素點(diǎn),此像素點(diǎn)則無(wú)需更新背景樣本集。另外,為避免誤檢測(cè)的前景像素?zé)o法被修正,連續(xù)k次被判定為前景像素的像素點(diǎn)會(huì)被修正為背景像素。當(dāng)某像素點(diǎn)被判定為前景像素點(diǎn)時(shí)會(huì)有1/w的概率來(lái)更新該像素點(diǎn)和其鄰近某個(gè)像素點(diǎn)的背景樣本集。其中,w為時(shí)間采樣因子,故樣本值在時(shí)間t時(shí)刻不更新的概率為(N-1)/N,該樣本值則經(jīng)過(guò)時(shí)間dt后仍然被保留的概率為:
(2)
傳統(tǒng)Vibe算法使用的背景模型初始化方法會(huì)導(dǎo)致在目標(biāo)檢測(cè)的初期產(chǎn)生“鬼影”現(xiàn)象,而混合高斯背景建模方法在目標(biāo)檢測(cè)初期的準(zhǔn)確性較高,故考慮在背景建模及初始化階段將背景模型進(jìn)行形態(tài)學(xué)膨脹處理后,與混合高斯背景模型進(jìn)行融合來(lái)消除傳統(tǒng)Vibe算法在檢測(cè)初期產(chǎn)生的“鬼影”。
2.1.1混合高斯模型
混合高斯模型的原理是,為表示圖像中每個(gè)像素點(diǎn)所具有的特征建立K個(gè)高斯模型(K通常取3~5),像素點(diǎn)I(x,y)的取值序列在t時(shí)刻可表示為{X1,X2,L,Xt}={I(x,y,i)|1≤i≤t},則像素點(diǎn)Xt通過(guò)加權(quán)函數(shù)表示的概率密度函數(shù)為:
(3)
式中:ωk,t表示第k個(gè)高斯模型的數(shù)學(xué)期望;∑k,t為第k個(gè)高斯模型的協(xié)方差矩陣;η為高斯概率密度函數(shù):
(4)
(5)
其中,α為模型的學(xué)習(xí)速率。
如果某像素點(diǎn)與K個(gè)已知高斯分布無(wú)匹配的高斯分量,則重新建立一個(gè)高斯分布,并由大到小進(jìn)行排序,背景模型由上述序列中前L個(gè)高斯模型來(lái)決定:
(6)
其中,TB為背景模型閾值。
2.1.2形態(tài)學(xué)運(yùn)算——膨脹
在圖像的形態(tài)學(xué)運(yùn)算中,膨脹或腐蝕[12]就是將圖像(或圖像的部分區(qū)域,稱為A)與核(稱為B)進(jìn)行卷積。核的形狀和大小可以為任意,同時(shí)有一個(gè)單獨(dú)定義的參考點(diǎn)??梢园押艘暈閳D像的一種模板或者類比成掩碼,而膨脹就是求局部最大值的操作。簡(jiǎn)單來(lái)說(shuō),膨脹會(huì)使目標(biāo)區(qū)域的范圍“擴(kuò)大”,目標(biāo)邊界會(huì)向外擴(kuò)張。所以圖像通過(guò)膨脹處理可以填補(bǔ)目標(biāo)區(qū)域中產(chǎn)生的某些空洞,同時(shí)消除包含在目標(biāo)區(qū)域中的噪聲。
圖2 圖像的膨脹示意圖Fig.2 Schematic diagram of expansion principle
傳統(tǒng)Vibe算法進(jìn)行目標(biāo)檢測(cè)時(shí),匹配閾值半徑R和背景模型的更新概率T都是定值,故不能較好地適應(yīng)復(fù)雜場(chǎng)景變化,魯棒性較差。例如,當(dāng)更新半徑R設(shè)置較大時(shí),導(dǎo)致像素值與背景像素值比較接近的前景像素就會(huì)被誤檢為背景像素;而更新半徑R設(shè)置較小時(shí),部分背景像素會(huì)被誤檢為前景像素,且檢測(cè)結(jié)果中就會(huì)出現(xiàn)較多噪聲。本算法為每個(gè)像素點(diǎn)設(shè)置自己的閾值匹配半徑R(Px)和背景模型的更新概率T(Px),可根據(jù)背景變化復(fù)雜程度自適應(yīng)調(diào)整變化。定義為公式:
(7)
式中:I(Px)表示新像素點(diǎn)的像素值;Bj(Px)表示樣本像素。用公式(7)中計(jì)算新像素點(diǎn)與樣本集的方差Lt(Px)來(lái)度量背景變化復(fù)雜程度。
當(dāng)背景變化復(fù)雜程度較高時(shí),R(Px)應(yīng)自適應(yīng)性增大,以規(guī)避錯(cuò)誤的前景像素值對(duì)背景模型的干擾;相反,在背景變化復(fù)雜程度較低的穩(wěn)定場(chǎng)景中,R(Px)應(yīng)自適應(yīng)性縮小,算法對(duì)場(chǎng)景細(xì)微變化的敏感度應(yīng)增加。故定義公式為:
R(Px)=R(Px-1)×|1-Lt(Px)| .
(8)
當(dāng)背景變化復(fù)雜程度較高時(shí),背景模型的更新概率T(Px)應(yīng)自適應(yīng)性降低,可以保持背景模型與實(shí)際的一致性;相反,在背景變化復(fù)雜程度較低的穩(wěn)定場(chǎng)景中,T(Px)應(yīng)自適應(yīng)性提高,以保證可以準(zhǔn)確地檢測(cè)到目標(biāo)物體。故定義公式為:
(9)
步驟1視頻圖像輸入。
步驟2背景建模及初始化。在每個(gè)像素點(diǎn)的八鄰域內(nèi)隨機(jī)選擇任意一點(diǎn)的像素值存儲(chǔ)至當(dāng)前像素點(diǎn)的背景模型中,并重復(fù)N次,則得到初始背景模型M(x),同時(shí)為每個(gè)像素點(diǎn)建立混合高斯背景模型。
步驟3統(tǒng)計(jì)M(x)中與v(x)歐氏距離小于R的像素點(diǎn)的個(gè)數(shù),若數(shù)量大于最小匹配數(shù)Dmin,則將該像素點(diǎn)矩陣值設(shè)置為0;若數(shù)量小于最小匹配數(shù)Dmin,則將該像素點(diǎn)矩陣值設(shè)置為1,由此得到初步結(jié)果f(x,y).
步驟4對(duì)f(x,y)進(jìn)行形態(tài)學(xué)膨脹處理得到f′(x,y).
步驟5將圖像中每個(gè)像素點(diǎn)與對(duì)應(yīng)的K個(gè)高斯分布進(jìn)行匹配判斷,將背景圖像像素點(diǎn)的矩陣值設(shè)置為0,否則設(shè)置為1,由此得到結(jié)果g(x,y).
步驟6將f′(x,y)和g(x,y)進(jìn)行邏輯“與”運(yùn)算得到最終結(jié)果h(x,y),其中像素點(diǎn)矩陣值為0的為背景像素點(diǎn),像素點(diǎn)矩陣值為1的則為前景像素點(diǎn)。
步驟7更新背景模型,并自適應(yīng)調(diào)整閾值匹配半徑和背景模型更新概率。
為驗(yàn)證本文改進(jìn)算法的有效性,實(shí)驗(yàn)使用PETS2009和CDnet中選取的共3段視頻數(shù)據(jù),并將實(shí)驗(yàn)結(jié)果分別與經(jīng)過(guò)三幀差分算法、GMM算法、傳統(tǒng)Vibe算法所得出的實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比。實(shí)驗(yàn)軟件開發(fā)環(huán)境為Visual studio 2017,算法程序使用C++并借助openCV4.0.0編寫,實(shí)驗(yàn)硬件配置為:CPU Intel(R) Core i7-8750H 2.20 GHz,RAM 8G.
為驗(yàn)證本文算法針對(duì)“鬼影”的消除效果,分別對(duì)場(chǎng)景一和場(chǎng)景二兩段視頻數(shù)據(jù)進(jìn)行了實(shí)驗(yàn),結(jié)果如下。
場(chǎng)景一為一段單目標(biāo)通過(guò)監(jiān)控畫面的視頻(Test1),實(shí)驗(yàn)結(jié)果如圖3所示。其中圖(a)為視頻第15幀原圖像,(b)(c)(d)(e)分別為經(jīng)過(guò)三幀差分算法、GMM算法、傳統(tǒng)Vibe算法以及本文改進(jìn)算法得出的檢測(cè)效果圖??梢悦黠@看出,三幀差分算法(b)檢測(cè)出的前景區(qū)域較為模糊,且輪廓不完整;經(jīng)過(guò)GMM算法(c)得出的前景區(qū)域輪廓較為完整,但目標(biāo)內(nèi)部存在“空洞”;經(jīng)過(guò)傳統(tǒng)Vibe算法(d)得出的前景區(qū)域輪廓清晰完整,且目標(biāo)內(nèi)部無(wú)“空洞”,但存在“鬼影”現(xiàn)象;經(jīng)過(guò)本文改進(jìn)算法(e)得出的前景區(qū)域,輪廓清晰,目標(biāo)內(nèi)部無(wú)“空洞”,也無(wú)“鬼影”現(xiàn)象。故經(jīng)對(duì)比可以得出,本算法可快速有效去除“鬼影”。
圖3 場(chǎng)景一實(shí)驗(yàn)結(jié)果對(duì)比圖Fig.3 Scene 1 comparison of experimental results
場(chǎng)景二為一段多目標(biāo)通過(guò)監(jiān)控畫面的視頻(Test2),實(shí)驗(yàn)結(jié)果如圖4所示。其中圖(a)為視頻第23幀原圖像,(b)(c)(d)(e)分別為經(jīng)過(guò)三幀差分算法、GMM算法、傳統(tǒng)Vibe算法、本文改進(jìn)算法得出的檢測(cè)效果圖??梢悦黠@看出,三幀差分算法(b)檢測(cè)出的前景區(qū)域較為模糊,多個(gè)目標(biāo)輪廓已失真;經(jīng)過(guò)GMM算法(c)得出的前景區(qū)域輪廓較為完整,但6個(gè)目標(biāo)中有5個(gè)目標(biāo)內(nèi)部存在“空洞”;經(jīng)過(guò)傳統(tǒng)Vibe算法(d)得出的前景區(qū)域輪廓清晰完整,且目標(biāo)內(nèi)部無(wú)“空洞”,但有三個(gè)目標(biāo)出現(xiàn)“鬼影”,且存在較多無(wú)關(guān)噪點(diǎn);經(jīng)過(guò)本文改進(jìn)算法(e)得出的前景區(qū)域,輪廓清晰完整,6個(gè)目標(biāo)內(nèi)部均無(wú)“空洞”和“鬼影”現(xiàn)象,且噪點(diǎn)有所減少。故經(jīng)對(duì)比可以得出,本文算法可快速有效去除“鬼影”。
為驗(yàn)證本文算法引入閾值自適應(yīng)后針對(duì)復(fù)雜環(huán)境的適應(yīng)性,選取了一段復(fù)雜背景環(huán)境下拍攝的視頻(場(chǎng)景三)數(shù)據(jù)進(jìn)行實(shí)驗(yàn),結(jié)果如下。
圖4 場(chǎng)景二實(shí)驗(yàn)結(jié)果對(duì)比圖Fig.4 Scene 2 comparison of experimental results
場(chǎng)景三為一段行人通過(guò)監(jiān)控畫面的視頻,其中背景環(huán)境中存在波動(dòng)的湖面以及較多搖曳的樹葉,背景復(fù)雜度較高,實(shí)驗(yàn)結(jié)果如圖5所示。其中圖(a)為視頻第408幀原圖像,(b)(c)(d)(e)分別為經(jīng)過(guò)三幀差分算法、GMM算法、傳統(tǒng)Vibe算法、本文改進(jìn)算法得出的檢測(cè)效果圖??梢悦黠@看出,三幀差分算法(b)檢測(cè)出的前景區(qū)域完全失真,難以辨別目標(biāo);經(jīng)過(guò)GMM算法(c)得出的前景區(qū)域輪廓較為清晰,但內(nèi)部空洞嚴(yán)重;經(jīng)過(guò)傳統(tǒng)Vibe算法(d)得出的前景區(qū)域輪廓清晰完整,且目標(biāo)內(nèi)部無(wú)“空洞”,但周圍搖曳的樹葉產(chǎn)生了較多無(wú)關(guān)的噪聲,影響了檢測(cè)效果;而經(jīng)過(guò)本文改進(jìn)算法(e)得出的前景區(qū)域,輪廓清晰完整,無(wú)關(guān)噪聲較少,復(fù)雜環(huán)境對(duì)檢測(cè)效果影響不大。故經(jīng)對(duì)比可以得出,本文算法對(duì)復(fù)雜環(huán)境的適應(yīng)性較強(qiáng)。
圖5 場(chǎng)景三實(shí)驗(yàn)結(jié)果對(duì)比圖Fig.5 Scene 3 comparison of experimental results
為了更加客觀而全面地評(píng)價(jià)本文改進(jìn)算法的檢測(cè)效果,故選取Precision精度、Recall召回率以及F-Measure評(píng)價(jià)值三個(gè)定量指標(biāo)來(lái)評(píng)價(jià)檢測(cè)的性能和實(shí)際效果[13]。Precision精度表示正確分類的前景像素點(diǎn)的個(gè)數(shù)占檢測(cè)出的全部前景像素點(diǎn)的比值;Recall召回率指標(biāo)表示正確分類的前景像素點(diǎn)的個(gè)數(shù)占真實(shí)的前景像素點(diǎn)個(gè)數(shù)的比重;F-Measure評(píng)價(jià)值則綜合考慮精度和召回率2個(gè)指標(biāo),F(xiàn)-Measure數(shù)值越大,反映檢測(cè)的整體效果越好。計(jì)算公式分別如式(10)、式(11)、式(12)所示:
(10)
(11)
(12)
式中:P代表Precision精度;R代表Recall召回率;F代表F-Measure評(píng)價(jià)值;TP代表被正確檢測(cè)為前景的像素?cái)?shù)量;FN代表被錯(cuò)誤檢測(cè)為背景的像素?cái)?shù)量;FP代表被錯(cuò)誤檢測(cè)為前景的像素?cái)?shù)量。
對(duì)場(chǎng)景一和場(chǎng)景二兩組視頻序列進(jìn)行實(shí)驗(yàn)后得出4種算法的性能指標(biāo)統(tǒng)計(jì)結(jié)果見表1所示。從表1可以看出,本文改進(jìn)算法在精度和召回率方面與另外三種傳統(tǒng)檢測(cè)算法相比明顯較高,同時(shí)綜合評(píng)價(jià)指標(biāo)F-measure較另外三種傳統(tǒng)檢測(cè)算法分別提升了32.34%、21.89%、13.94%.
表1 性能評(píng)價(jià)結(jié)果Table 1 Performance evaluation results
經(jīng)過(guò)本文算法處理后輸出的視頻圖像速率基本與原視頻同步,主觀來(lái)看通過(guò)肉眼基本無(wú)法分辨延遲。為了更加客觀地驗(yàn)證本文算法的實(shí)際運(yùn)算效率,對(duì)三組實(shí)驗(yàn)視頻序列T1、T2、T3分別使用4種檢測(cè)算法進(jìn)行多次實(shí)驗(yàn),分別得出相應(yīng)的平均處理時(shí)間,實(shí)驗(yàn)結(jié)果如表2所示。實(shí)驗(yàn)結(jié)果表明,本文改進(jìn)算法在運(yùn)算效率方面與另外三種傳統(tǒng)檢測(cè)算法基本保持一致,延遲在500 ms以內(nèi),基本可以滿足實(shí)時(shí)性。
表2 效率評(píng)價(jià)結(jié)果(平均處理時(shí)間)Table 2 Efficiency evaluation results(Average processing time) ms
本文提出一種改進(jìn)的Vibe算法。在背景建模及初始化階段,通過(guò)結(jié)合圖像形態(tài)學(xué)處理并融合混合高斯背景模型消除“鬼影”,并在背景更新階段引入自適應(yīng)的更新半徑和更新概率來(lái)提高算法精確度,使得算法可以適應(yīng)多目標(biāo)復(fù)雜環(huán)境。為驗(yàn)證本文算法的有效性,分別使用三種經(jīng)典目標(biāo)檢測(cè)算法和本文改進(jìn)算法進(jìn)行反復(fù)實(shí)驗(yàn),得出主觀性評(píng)價(jià)結(jié)果和客觀性指標(biāo)評(píng)價(jià)結(jié)果。實(shí)驗(yàn)結(jié)果表明,在基本保證一定實(shí)時(shí)性的前提下,本文改進(jìn)算法可以快速有效地消除“鬼影”現(xiàn)象,對(duì)復(fù)雜環(huán)境適應(yīng)性較強(qiáng),并具有良好的檢測(cè)準(zhǔn)確性和可靠性,可廣泛應(yīng)用于視頻監(jiān)控、醫(yī)療、遙感等領(lǐng)域。但是本文改進(jìn)算法在運(yùn)算效率方面還有待進(jìn)一步優(yōu)化和提升,這將是今后工作的重點(diǎn)和研究方向。