陸泊帆,何立風,2*,周廣彬,袁 樸,蘇亮亮
(1.陜西科技大學電子信息與人工智能學院,西安 710021;2.日本愛知縣立大學信息科學學院,愛知縣 480-1198)
運動目標檢測在日常生活中應用十分廣泛。目前,常見的提取運動前景的方法有背景減除法、光流法[1],以及后來提出的幀間差分法[2]。幀間差分法的計算量較小,實時性較高,背景不積累,可以抑制鬼影,但是提取的前景目標易產生空洞。背景減除法將當前圖像的像素點與其背景模型進行對比和更新,從而提取到前景目標,主要通過為每個像素點建立背景模型來進行前景目標的檢測,原理簡單,性能比較好。目前以混合高斯算法(Gaussian mixture model,GMM)[3]和視覺背景提取(visual background extractor,ViBe)算法[4]為代表的背景建模法是當前主流的研究算法。為了能夠讓混合高斯算法適應復雜場景,文獻[5-6]從不同方面對GMM算法進行改進,但由于物體運動狀態的不確定性,提取運動前景仍舊有困難。
由Barnich提出的視覺背景提取算法(ViBe)是一種基于像素點鄰域空間的運動前景提取算法,該算法原理簡單,但提取到的前景易出現噪聲點、鬼影以及陰影等問題。為了解決上述問題,文獻[7-9]使用自適應閾值代替固定閾值從而實現前景點與背景點的分割,但是提取的目標出現了不同程度的不完整。文獻[10]通過改變背景模型更新因子,結合三幀差分技術一定程度上抑制鬼影,但是易產生空洞。文獻[11]通過改進Harr-like特征結合級聯分類器能夠抑制鬼影像素點,但鬼影消除的速度依舊不能滿足實時性的要求。文獻[12]通過像素點的時間和空間特征進行前景提取,計算復雜度較高。文獻[13]通過選取同質像素點來初始化背景模型,自適應調整半徑閾值和背景模型的更新速率,同時根據光流將鬼影和真實目標進行區分,雖然可以去除鬼影,但是過程較復雜。
基于以上研究的不足,現提出一種復雜場景下自適應視頻前景提取算法。通過背景模型中樣本之間最小歐氏距離的均值衡量背景動態波動程度,當背景動態波動大時,增加半徑閾值,反之則減小半徑閾值,從而更加準確地進行像素點分類。針對靜止物體突然運動、運動物體突然靜止以及利用首幀初始化而產生鬼影的問題,根據物體的運動速度,自適應調整一次更新的背景模型中樣本個數,加快鬼影融入背景模型,使得背景模型更加符合真實場景,提高檢測的準確性。
首先,ViBe算法隨機選取像素點鄰域空間內的樣本構建背景模型;其次,對比當前像素點與其模型的相似程度進行像素點的分類;最后,根據分類結果更新其對應的模型。
假設視頻幀中x位置處的像素值為v(x),設P(x)為像素點x的背景模型,即該像素點的樣本集,該背景模型的定義如式(1)所示。
P(x)={P1,P2,…,PN}
(1)
式(1)中:Pi為對x一定范圍內的像素點隨機抽取后生成的樣本集中索引為i的樣本元素;N為該樣本集的大小。
x像素的空間鄰域記為NG(x)。通常來說NG(x)是像素x的8鄰域,利用視頻的第一幀初始化背景模型,如式(2)所示。
P(x)={P[y|y∈NG(x)]}
(2)
式(2)中:y為像素x的8鄰域中任意樣本索引號。
從第二幀開始進行前景檢測,為了確定t時刻像素點x是屬于前景范圍的像素點還是屬于背景范圍的像素點,定義一個以Pt(x)為中心、R為半徑的空間SR[Pt(x)],如圖1所示。

圖1 二維歐氏空間Fig.1 Two-dimensional Euclidean space
若背景模型P(x)中落入SR[Pt(x)]中樣本的個數R#>min#,則判斷為背景像素點,否則是前景像素點。具體細則如式(3)和式(4)所示。
{SR[Pt(x)]∩{P1,P2,…,PN}}=R#
(3)
(4)
式中:vb和vf分別為背景集合和前景集合;min#取經驗值2。
為了適應背景時刻變化的場景,如光照影響,背景物體突然運動(如突然抬起的攔車器)以及運動物體突然靜止,ViBe算法使用的更新方法是保守的更新策略和隨機采樣。保守的更新策略即屬于前景的像素點永遠不會被用來填充背景模型,比如一塊靜止的區域若被錯誤地判斷為前景,那么就會一直被當作運動物體,在檢測過程中背景物體開始運動,則該物體靜止時的位置在保守更新的策略中永遠被認為屬于前景范圍,從而在該處會留下一個虛假目標。采用隨機采樣方法時,當一個像素點被判斷為背景點時,它有1/φ的概率去更新背景模型。由于隨機的策略,模型中的樣本值存在的概率呈指數型衰減,使得模型更新狀態達到最佳。若時間是連續的,那么在dt時間之后,模型中的樣本值仍然不被更新的概率如式(5)所示。

(5)
式(5)中:N為樣本集中樣本個數。
(1)虛假目標。產生鬼影的根源可歸納為兩類原因:一是初始幀存在運動目標,即并非真實的背景圖像,進行背景建模的時候就會把運動目標加入背景模型中,檢測結果中就會出現虛假目標;二是物體的運動狀態發生轉變,比如運動目標從運動到靜止,背景模型的更新速度和背景的變率不同步,出現虛假目標,即鬼影。
(2)復雜場景。半徑閾值R是衡量當前像素點與背景模型相似度的重要依據,固定半徑閾值對于動態變化的背景分割效果較差,這些動態變化的背景像素點都有可能被判為屬于前景,進而出現噪聲點。還有光線的變化,場景中光線的變化使得背景也發生變化,很難將這些變化與檢測目標的變化區分開。
針對1.4節中提到的ViBe算法存在的主要問題,考慮到背景動態變化程度和目標的運動速度,從前景分割和背景更新兩個方面進行改進,提出了一種復雜場景下自適應視頻前景提取算法。
判斷一個像素點x屬于前景范圍還是背景范圍時,對應的半徑閾值R(x)起著重要的作用。由于ViBe算法對所有的像素點統一使用固定半徑來進行像素點分類,因而無法避免在復雜場景下的誤檢。為了在復雜場景下更加高效而準確地提取前景信息,對于背景中動態波動大的區域中的像素點x,應該增大所采用的半徑閾值R(x),以避免將動態變化大的背景像素點判斷為前景區域,從而產生噪聲點。反之,對于背景中動態波動較小的區域中的像素點x,應該減小半徑閾值R(x),以避免提取到的前景信息缺失。綜上,為了在復雜場景中高效而準確地提取完整的前景信息,視頻幀中的所有像素點,應該根據其模型的動態變化程度,采用不同的半徑閾值。
基于以上分析,提出一種基于時間和空間分布,來計算像素點x的背景模型動態程度f(x)的方法,并以f(x)為依據來調整該像素點的半徑閾值R(x)。這樣,對于任意時刻任意位置的像素點,不僅考慮時間分布,也考慮該像素點鄰域空間的像素點信息,從而可以更好地適應背景不斷變化的場景,極大提高了算法的魯棒性。主要步驟如下。
步驟一對于每一個像素點x,計算其背景模型中每個樣本與其他N-1個樣本的最小歐氏距離,計算過程如式(6)所示。
Di(x)=mindist[Pi(x),Pj(x)],j=1,2,…,N
(6)
式(6)中:Di(x)為編號為i的樣本對應的最小歐氏距離;mindist[Pi(x),Pj(x)]為像素點x的背景模型中第i個樣本與背景模型中其他所有樣本的最小歐氏距離。
步驟二對于每一個像素點x,根據式(6)得出其背景模型中每個樣本對應的最小歐氏距離,建立一個包含N個元素的基于時間和空間的動態變化程度采樣數組,如式(7)所示。
D(x)={D1(x),D2(x),…,DN(x)}
(7)
式(7)中:如果一個像素點被判斷為背景像素點,則需根據式(6)重新計算該像素點的背景變化程度,并更新該像素點的動態變化程度采樣數組。
步驟三計算每個像素點x的背景模型中每個樣本與其他所有樣本最小歐氏距離的平均值,如式(8)所示。

(8)
f(x)反映了每一時刻像素點x基于時間和空間的背景動態變化程度。當像素點x所在區域背景動態變化大時,f(x)增大,反之,則減小。
步驟四根據背景動態變化程度,任意像素點x對應的半徑閾值的計算方法如式(9)所示。

(9)
式(9)中:η和λ為用來實現背景動態變化程度與半徑閾值之間的轉換;Rb(x)為前一幀像素點x的匹配半徑。首次匹配時,R(x)=20。當像素點的背景動態變化程度較高時,即該像素點的樣本集中樣本對應最小歐式距離之和的平均值大于半徑閾值的值,需要增大自適應匹配半徑。反之,則需要減小自適應匹配半徑。
為了防止出現閾值過大,使得前景像素點判斷為背景像素點,將閾值上限設置為Rmax=50。另一方面,為防止閾值過小,將背景大面積誤判為前景,將閾值下限設置為Rmin=20。
為了適應不斷變化的背景,背景模型必須不斷更新。由1.3節可知不同于混合高斯模型[14]背景建模方法,ViBe算法不需對新圖像的背景模型中所有像素值進行替換。建立實時的背景模型主要難點是找到一種適應復雜場景的背景模型更新方法,來確定一次替換掉原模型中的幾個樣本,從而使得背景模型可以相對準確描述實時場景。
從上述分析可知一次替換樣本的個數M影響著背景模型的準確性,而M應該與目標的運動速度產生關聯。受到文獻[15]的啟發,引入了幀差測量值ΔD,以此來衡量一段時間內目標質心的運動速度,如式(10)所示。

(10)
式(10)中:f為經過的幀數;di為前一幀與當前幀的時間間隔內目標質心移動的相對距離,即計算質心的二維矢量差,將其轉換為一維歐氏距離。給定的原則:去除前景中像素點少的區域,對于幀差測量值ΔD大且像素點多的前景區域,更新模型時加大一次更新的樣本個數;反之,則減少一次更新的樣本個數。具體更新方法如式(11)所示。

(11)
式(11)中:τ1、τ2的取值需要根據數據集的情況進行調整,一般取經驗值τ1=2,τ2=8。如果ΔD<τ1,即目標運動速度偏慢,說明需要減少一次更新樣本集中樣本的個數,避免出現提取到的前景信息不完整的情況;如果ΔD>τ2,即目標運動速度較快,需要加大一次更新樣本集中樣本的個數,加快背景模型更新,以提取到更加準確的結果;否則,按照式(11)中間情況進行處理。對于前景中存在的虛假目標,初期依舊會當成前景來更新背景模型。隨著鬼影消融的進行,虛假目標的質心也會變化,根據質心的運動速度繼續調整一次更新的樣本個數。此方法在一定程度上可以加快虛假目標融入到背景模型。
算法的實驗運行硬件環境:Intel(R)Core(TM)i7-67003,3.4 GHz,內存為8 G。軟件環境:64位Windows10操作系統,MATLAB2015。為驗證本文算法在復雜場景中的提取效果,選取ChangeDetection(CDnet2014)[16]公開數據集中有樹葉晃動、水波晃動、光線差異、物體運動狀態改變和首幀存在運動目標5種情況的視頻,從定性和定量兩個角度對本文算法的檢測結果進行評價。
鬼影消除實驗選取公開數據集中highwayII-raw視頻和campus-raw視頻。
3.1.1 運動狀態發生改變
campus-raw視頻中攔車器在第77幀由靜止狀態變為運動狀態,在第291幀攔車器運動狀態從運動變為靜止,實驗對比效果如圖2、圖3所示。

圖2 物體由靜止到運動實驗對比Fig.2 Experimental comparison of objects from static to moving

圖3 物體由運動到靜止實驗對比Fig.3 Experiment comparison of objects from moving to static
ViBe算法使用保守,固定的更新機制,因此在面對攔車器突然運動的情況時會在原位置留下鬼影,且鬼影融入背景模型慢。當ViBe算法提取的前景中仍有輪廓清晰的鬼影時,本文算法已經將鬼影的一部分融入背景模型中,在第87幀時只余留了1~2個噪聲點。同時,本文算法提取的前景信息相對完整。
攔車器靜止后,ViBe算法中鬼影融入背景非常緩慢,在第362幀仿真結果中鬼影十分清晰,經過68幀之后,ViBe算法檢測到的前景中鬼影區域仍舊很大,一直到第470幀依舊沒有完全消除,嚴重影響了前景目標檢測的效果。而本文算法在第362幀時鬼影就即將融入背景,到第371幀鬼影完全融入背景,且提取到的前景信息相對完整。
3.1.2 初始幀存在運動目標
highwayII-raw視頻中第一幀存在運動目標且攝像頭在抖動,實驗對比效果如圖4所示。

圖4 首幀存在運動目標實驗對比Fig.4 Experimental comparison of moving targets in the first frame
由于初始幀中存在運動目標以及固定的背景模型更新機制,ViBe算法提取的第115幀中鬼影區域依然很大。而本文算法在第115幀中所有虛假目標幾乎全部融入背景模型中。
為驗證自適應半徑閾值R的有效性,選取公開數據集people以及fountain01視頻,實驗對比效果如圖5所示。
由圖5可知,ViBe算法面對水波動態波動的情況很大概率會出現誤檢,而本文算法由于引入了自適應半徑閾值R,提取的前景中噪聲點大大減少。

圖5 背景動態變化對比實驗Fig.5 Background dynamic change contrast experiment
光線變化干擾實驗選取Laboratory-raw視頻序列,實驗對比效果如圖6所示。

圖6 抑制光線變化對比實驗Fig.6 Comparison experiment of restraining light changes
實驗結果顯示,ViBe算法受光線干擾十分明顯,出現了拖影和誤檢。而本文算法能很好地將人的雙腿和雙腳分開,雖然也將手柄部分誤判為前景,但是區域十分小,同時能很快將虛假目標融入背景中。
為對比本文算法與幀間差分法、光流法、ViBe算法以及GMM算法,在消除鬼影以及面對復雜環境的性能表現時,選用了具有代表性的highway、PETS2006、pedestrians(選取第598幀建立背景模型)以及people視頻序列。其中highway視頻序列中有攝像頭晃動、樹葉晃動以及光線變化的干擾,PETS2006視頻序列中有光線變化的干擾,pedestrians視頻序列中首幀存在運動目標,且有光線的干擾,people視頻序列中水面不停晃動。實驗結果如圖7所示。

圖7 改進算法與其他代表性算法對比Fig.7 Comparison of improved algorithm with other representative algorithms
在highway視頻序列中,幀間差分法、光流法、GMM算法以及ViBe算法都在不同程度上誤將晃動的樹葉檢測為前景,且提取的內部信息出現了一定程度的漏檢。此外,由于光線的影響,光流法還將斑馬線檢測為前景。而本文算法幾乎沒有將晃動的樹葉誤判為前景,且提取的前景目標相對完整。
在PETS2006視頻序列中,光流法、GMM算法以及ViBe算法在室內光線的影響下提取的前景都有不同程度的拖影。特別是光流法受光線干擾的影響十分嚴重,不僅將地面物體的邊界以及列車融入前景中,而且提取的行人內部信息缺失嚴重,本文算法很好地抑制了光線的干擾。由于pedestrians視頻首幀中存在行人,所以GMM算法、ViBe算法以及本文算法提取的結果中都出現了鬼影,但從結果中可以看到,本文算法消除鬼影的速度明顯優于其他兩種算法。幀間差分法和光流法由于檢測機制結果中沒有出現鬼影,但是不同程度上出現了大片噪聲點和空洞。而本文算法很好地抑制了光線的干擾,提高了檢測的準確率。在people視頻序列中,其他4種算法都在不同程度上將晃動的水面誤判為前景,本文算法雖然也將部分背景點檢測為前景點,但是誤檢現象得到了很大改善。由結果可知,在4組測試視頻下,本文算法的效果都明顯優于其他4種算法。
為了更加準確地評估算法效果,采用通用的4個量化評價指標:準確率(precision,P)、召回率(recall,R)、假正率(false positive rate,F)以及F評分(F-measure,Fm),具體定義如下。
(12)

(13)

(14)
(15)
式中:TP為提取的前景中正確檢測為前景的像素點個數;TN為提取的前景中正確檢測為背景的像素點個數;FP為提取的前景中誤判為前景的像素點個數;FN為提取的前景中誤判為背景的像素點個數。對算法的性能進行評價時,P、R、Fm越大,F越低,說明算法的性能越好。使用以上通用指標對實驗結果進行定量評價,并對結果取平均值,結果如表1所示。
由表1的結果可知,由于幀間差分法幾乎只提取了前景目標的部分輪廓信息,易產生空洞,R最低。與ViBe算法及GMM算法相比,光流法雖然在部分幀中提取的前景信息較完整,但由于在光線的影響下提取目標內部的空洞比較大,導致R較低。此外,光流法誤判的程度較高,把一些靜態的背景區域誤判為前景,所以導致光流法的F較高,而且P較低。GMM算法的P和ViBe算法的P相差不大,但R低于ViBe算法,說明GMM算法雖然對前景點分類的準確程度和ViBe算法相差不大,但是提取的內部信息十分不完整。本文算法的準確率P明顯高于ViBe算法,而R值也稍高于ViBe算法,說明本文算法在保證內部信息較完整的前提下,能很好地適應光線變化、背景波動大以及易產生鬼影的場景。此外,本文算法在假正率F指標上是最低的,進一步證明了本文方法的檢測結果的準確程度大大高于其他代表性算法。

表1 檢測結果對比Table 1 Comparison of detection results
分析了ViBe算法的原理、優勢以及不足。在此基礎上,從兩個方面對其進行了改進,提出了一種復雜場景下自適應視頻前景提取算法。由于像素點分類和半徑閾值有很大的關系,因此本文算法利用像素點鄰域空間信息,使得半徑閾值能夠自適應調整,從而提高了算法檢測的準確性,增強了算法對動態場景的適應性。同時,本文算法還利用幀差測量值衡量物體的運動速度,并以此為依據自適應調整一次更新樣本集中樣本個數,加快了鬼影的消除。實驗結果表明,與其他4種代表性運動目標檢測算法相比,本文算法能更快地將鬼影融入背景模型并且可以抑制背景干擾。下一步將在此基礎上研究背景模型的建立,在初始化背景模型時消除由于初始幀存在運動目標而產生的鬼影。