曹 融,郝曉麗
(太原理工大學 信息與計算機學院,太原 030600)
目前,在計算機視覺研究和數字圖像處理領域,運動目標檢測[1]一直是研究熱點之一。幀間差分法、光流法和背景差分法是目前比較經典和常用的目標檢測算法。幀間差分法[2]是一種通過對視頻圖像序列中的連續相鄰兩幀進行差分運算來檢測運動目標的方法,其特點是算法復雜度較低,穩定性較好,但比較容易出現“空洞”的現象。光流法[3]利用圖像序列中像素在時域上的變化以及相鄰幀之間的相關性來檢測運動目標,其不僅算法時間和空間復雜度高、抗噪能力較弱,且難以保證實時性。背景差分法[4]的檢測效果比較依賴背景模型,主要原理是為圖像中每個像素點建立相應背景模型,通過將當前像素點與其背景模型比對來確定該像素點是前景像素點還是背景像素點。
Vibe算法[5]是BARNICH et al在2011年提出的一種目標檢測算法。Vibe算法基于非參數化的背景建模,具有檢測效果好、速度快,且算法時間和空間復雜度低的優點。傳統Vibe算法特定的背景建模及初始化方法使得在目標檢測初期會產生“鬼影”現象,其局限性不利于實際場景的應用。因此,針對其弊端,國內外的許多專家學者進行了研究。文獻[6]通過計算圖像分割閾值來判定和抑制“鬼影”像素,但經過大范圍的動態背景處理之后仍會殘留較多的噪聲點;文獻[7]通過記錄相關像素值的時域變化,并結合幀間差分法來判定“鬼影”像素,并針對性提高“鬼影”的消除速率,但會出現前景像素可能被加入背景樣本的情況;CHENG et al[8]提出針對“鬼影”區域的每個像素都進行特殊的初始化處理,但“鬼影”像素仍然消除較慢;閔衛東等[9]通過引入最大類間方差法,同時結合動態閾值來抑制“鬼影”現象,但該方法在光照和背景的變化劇烈等動態復雜環境下效果不佳;楊依忠等[10]提出通過首幀建立背景模型,在前5幀中每個像素點的鄰域隨機選4個像素點背景模型,并結合三幀差法做“或”運算去改善漏檢的問題,但其在運動目標速度緩慢時其檢測效果不是很理想。
本文提出了一種融合混合高斯模型[11]和閾值自適應的改進Vibe運動目標檢測算法。通過融合混合高斯背景模型和形態學處理來消除“鬼影”,并在背景更新階段采用自適應動態閾值T(Px)和R(Px)提高算法精確度以適應復雜環境。實驗結果表明,在保證一定實時性的前提下,本文改進算法可快速有效地消除“鬼影”現象,并具有良好的檢測準確性和可靠性。
Vibe算法是一種基于背景建模和背景更新的前景檢測算法。大致原理是為每個像素點建立一個包含該像素點當前像素值及其八鄰域點的像素值的樣本集,當新的像素點出現需要判斷新像素點是屬于背景點還是前景點時,則通過將其的像素值與之前樣本集中所包含的采樣值進行比較來判斷。具體來看,該算法主要有背景建模及初始化、前景檢測以及背景更新三個步驟。
背景建模階段,需要為每個像素點建立一個包含有N個像素值的背景模型,可記為M(x)={v1,v2,…,vk,…,vN},通常N=20.初始化階段,選擇視頻圖像序列的首幀,在每個像素點的八鄰域內隨機選擇任意一點的像素值存儲至當前像素點的背景模型中,并重復N次,則得到初始背景模型M(x).
首先在歐式空間內定義一個半徑為R的圓,v(x)為圓心,用該圓來表示與v(x)的歐氏距離小于匹配閾值R的所有像素點的集合,如圖1所示。

圖1 Vibe算法閾值判定原理圖Fig.1 Schematic diagram of threshold determination of Vibe algorithm
然后統計M(x)中與v(x)歐氏距離小于R的像素點的個數,若數量大于最小匹配數Dmin,則判定該像素點為背景像素點;若數量小于最小匹配數Dmin,則此像素點為前景像素點。如公式(1)所示(其中0表示判定為背景點;1表示判定為前景點)。
(1)
背景模型的更新策略是,若某個像素點被判定為前景像素點,此像素點則無需更新背景樣本集。另外,為避免誤檢測的前景像素無法被修正,連續k次被判定為前景像素的像素點會被修正為背景像素。當某像素點被判定為前景像素點時會有1/w的概率來更新該像素點和其鄰近某個像素點的背景樣本集。其中,w為時間采樣因子,故樣本值在時間t時刻不更新的概率為(N-1)/N,該樣本值則經過時間dt后仍然被保留的概率為:
(2)
傳統Vibe算法使用的背景模型初始化方法會導致在目標檢測的初期產生“鬼影”現象,而混合高斯背景建模方法在目標檢測初期的準確性較高,故考慮在背景建模及初始化階段將背景模型進行形態學膨脹處理后,與混合高斯背景模型進行融合來消除傳統Vibe算法在檢測初期產生的“鬼影”。
2.1.1混合高斯模型
混合高斯模型的原理是,為表示圖像中每個像素點所具有的特征建立K個高斯模型(K通常取3~5),像素點I(x,y)的取值序列在t時刻可表示為{X1,X2,L,Xt}={I(x,y,i)|1≤i≤t},則像素點Xt通過加權函數表示的概率密度函數為:
(3)
式中:ωk,t表示第k個高斯模型的數學期望;∑k,t為第k個高斯模型的協方差矩陣;η為高斯概率密度函數:

(4)

(5)
其中,α為模型的學習速率。
如果某像素點與K個已知高斯分布無匹配的高斯分量,則重新建立一個高斯分布,并由大到小進行排序,背景模型由上述序列中前L個高斯模型來決定:
(6)
其中,TB為背景模型閾值。
2.1.2形態學運算——膨脹
在圖像的形態學運算中,膨脹或腐蝕[12]就是將圖像(或圖像的部分區域,稱為A)與核(稱為B)進行卷積。核的形狀和大小可以為任意,同時有一個單獨定義的參考點。可以把核視為圖像的一種模板或者類比成掩碼,而膨脹就是求局部最大值的操作。簡單來說,膨脹會使目標區域的范圍“擴大”,目標邊界會向外擴張。所以圖像通過膨脹處理可以填補目標區域中產生的某些空洞,同時消除包含在目標區域中的噪聲。

圖2 圖像的膨脹示意圖Fig.2 Schematic diagram of expansion principle
傳統Vibe算法進行目標檢測時,匹配閾值半徑R和背景模型的更新概率T都是定值,故不能較好地適應復雜場景變化,魯棒性較差。例如,當更新半徑R設置較大時,導致像素值與背景像素值比較接近的前景像素就會被誤檢為背景像素;而更新半徑R設置較小時,部分背景像素會被誤檢為前景像素,且檢測結果中就會出現較多噪聲。本算法為每個像素點設置自己的閾值匹配半徑R(Px)和背景模型的更新概率T(Px),可根據背景變化復雜程度自適應調整變化。定義為公式:
(7)
式中:I(Px)表示新像素點的像素值;Bj(Px)表示樣本像素。用公式(7)中計算新像素點與樣本集的方差Lt(Px)來度量背景變化復雜程度。
當背景變化復雜程度較高時,R(Px)應自適應性增大,以規避錯誤的前景像素值對背景模型的干擾;相反,在背景變化復雜程度較低的穩定場景中,R(Px)應自適應性縮小,算法對場景細微變化的敏感度應增加。故定義公式為:
R(Px)=R(Px-1)×|1-Lt(Px)| .
(8)
當背景變化復雜程度較高時,背景模型的更新概率T(Px)應自適應性降低,可以保持背景模型與實際的一致性;相反,在背景變化復雜程度較低的穩定場景中,T(Px)應自適應性提高,以保證可以準確地檢測到目標物體。故定義公式為:
(9)
步驟1視頻圖像輸入。
步驟2背景建模及初始化。在每個像素點的八鄰域內隨機選擇任意一點的像素值存儲至當前像素點的背景模型中,并重復N次,則得到初始背景模型M(x),同時為每個像素點建立混合高斯背景模型。
步驟3統計M(x)中與v(x)歐氏距離小于R的像素點的個數,若數量大于最小匹配數Dmin,則將該像素點矩陣值設置為0;若數量小于最小匹配數Dmin,則將該像素點矩陣值設置為1,由此得到初步結果f(x,y).
步驟4對f(x,y)進行形態學膨脹處理得到f′(x,y).
步驟5將圖像中每個像素點與對應的K個高斯分布進行匹配判斷,將背景圖像像素點的矩陣值設置為0,否則設置為1,由此得到結果g(x,y).
步驟6將f′(x,y)和g(x,y)進行邏輯“與”運算得到最終結果h(x,y),其中像素點矩陣值為0的為背景像素點,像素點矩陣值為1的則為前景像素點。
步驟7更新背景模型,并自適應調整閾值匹配半徑和背景模型更新概率。
為驗證本文改進算法的有效性,實驗使用PETS2009和CDnet中選取的共3段視頻數據,并將實驗結果分別與經過三幀差分算法、GMM算法、傳統Vibe算法所得出的實驗結果進行對比。實驗軟件開發環境為Visual studio 2017,算法程序使用C++并借助openCV4.0.0編寫,實驗硬件配置為:CPU Intel(R) Core i7-8750H 2.20 GHz,RAM 8G.
為驗證本文算法針對“鬼影”的消除效果,分別對場景一和場景二兩段視頻數據進行了實驗,結果如下。
場景一為一段單目標通過監控畫面的視頻(Test1),實驗結果如圖3所示。其中圖(a)為視頻第15幀原圖像,(b)(c)(d)(e)分別為經過三幀差分算法、GMM算法、傳統Vibe算法以及本文改進算法得出的檢測效果圖。可以明顯看出,三幀差分算法(b)檢測出的前景區域較為模糊,且輪廓不完整;經過GMM算法(c)得出的前景區域輪廓較為完整,但目標內部存在“空洞”;經過傳統Vibe算法(d)得出的前景區域輪廓清晰完整,且目標內部無“空洞”,但存在“鬼影”現象;經過本文改進算法(e)得出的前景區域,輪廓清晰,目標內部無“空洞”,也無“鬼影”現象。故經對比可以得出,本算法可快速有效去除“鬼影”。

圖3 場景一實驗結果對比圖Fig.3 Scene 1 comparison of experimental results
場景二為一段多目標通過監控畫面的視頻(Test2),實驗結果如圖4所示。其中圖(a)為視頻第23幀原圖像,(b)(c)(d)(e)分別為經過三幀差分算法、GMM算法、傳統Vibe算法、本文改進算法得出的檢測效果圖。可以明顯看出,三幀差分算法(b)檢測出的前景區域較為模糊,多個目標輪廓已失真;經過GMM算法(c)得出的前景區域輪廓較為完整,但6個目標中有5個目標內部存在“空洞”;經過傳統Vibe算法(d)得出的前景區域輪廓清晰完整,且目標內部無“空洞”,但有三個目標出現“鬼影”,且存在較多無關噪點;經過本文改進算法(e)得出的前景區域,輪廓清晰完整,6個目標內部均無“空洞”和“鬼影”現象,且噪點有所減少。故經對比可以得出,本文算法可快速有效去除“鬼影”。
為驗證本文算法引入閾值自適應后針對復雜環境的適應性,選取了一段復雜背景環境下拍攝的視頻(場景三)數據進行實驗,結果如下。

圖4 場景二實驗結果對比圖Fig.4 Scene 2 comparison of experimental results
場景三為一段行人通過監控畫面的視頻,其中背景環境中存在波動的湖面以及較多搖曳的樹葉,背景復雜度較高,實驗結果如圖5所示。其中圖(a)為視頻第408幀原圖像,(b)(c)(d)(e)分別為經過三幀差分算法、GMM算法、傳統Vibe算法、本文改進算法得出的檢測效果圖。可以明顯看出,三幀差分算法(b)檢測出的前景區域完全失真,難以辨別目標;經過GMM算法(c)得出的前景區域輪廓較為清晰,但內部空洞嚴重;經過傳統Vibe算法(d)得出的前景區域輪廓清晰完整,且目標內部無“空洞”,但周圍搖曳的樹葉產生了較多無關的噪聲,影響了檢測效果;而經過本文改進算法(e)得出的前景區域,輪廓清晰完整,無關噪聲較少,復雜環境對檢測效果影響不大。故經對比可以得出,本文算法對復雜環境的適應性較強。

圖5 場景三實驗結果對比圖Fig.5 Scene 3 comparison of experimental results
為了更加客觀而全面地評價本文改進算法的檢測效果,故選取Precision精度、Recall召回率以及F-Measure評價值三個定量指標來評價檢測的性能和實際效果[13]。Precision精度表示正確分類的前景像素點的個數占檢測出的全部前景像素點的比值;Recall召回率指標表示正確分類的前景像素點的個數占真實的前景像素點個數的比重;F-Measure評價值則綜合考慮精度和召回率2個指標,F-Measure數值越大,反映檢測的整體效果越好。計算公式分別如式(10)、式(11)、式(12)所示:
(10)
(11)
(12)
式中:P代表Precision精度;R代表Recall召回率;F代表F-Measure評價值;TP代表被正確檢測為前景的像素數量;FN代表被錯誤檢測為背景的像素數量;FP代表被錯誤檢測為前景的像素數量。
對場景一和場景二兩組視頻序列進行實驗后得出4種算法的性能指標統計結果見表1所示。從表1可以看出,本文改進算法在精度和召回率方面與另外三種傳統檢測算法相比明顯較高,同時綜合評價指標F-measure較另外三種傳統檢測算法分別提升了32.34%、21.89%、13.94%.

表1 性能評價結果Table 1 Performance evaluation results
經過本文算法處理后輸出的視頻圖像速率基本與原視頻同步,主觀來看通過肉眼基本無法分辨延遲。為了更加客觀地驗證本文算法的實際運算效率,對三組實驗視頻序列T1、T2、T3分別使用4種檢測算法進行多次實驗,分別得出相應的平均處理時間,實驗結果如表2所示。實驗結果表明,本文改進算法在運算效率方面與另外三種傳統檢測算法基本保持一致,延遲在500 ms以內,基本可以滿足實時性。

表2 效率評價結果(平均處理時間)Table 2 Efficiency evaluation results(Average processing time) ms
本文提出一種改進的Vibe算法。在背景建模及初始化階段,通過結合圖像形態學處理并融合混合高斯背景模型消除“鬼影”,并在背景更新階段引入自適應的更新半徑和更新概率來提高算法精確度,使得算法可以適應多目標復雜環境。為驗證本文算法的有效性,分別使用三種經典目標檢測算法和本文改進算法進行反復實驗,得出主觀性評價結果和客觀性指標評價結果。實驗結果表明,在基本保證一定實時性的前提下,本文改進算法可以快速有效地消除“鬼影”現象,對復雜環境適應性較強,并具有良好的檢測準確性和可靠性,可廣泛應用于視頻監控、醫療、遙感等領域。但是本文改進算法在運算效率方面還有待進一步優化和提升,這將是今后工作的重點和研究方向。