余長生, 秦倫明
(上海電力大學 電子與信息工程學院, 上海 200090)
近幾年,機器視覺領(lǐng)域發(fā)展尤為迅速,而運動目標檢測作為機器視覺研究的一個不可分割的重要分支,有著十分廣闊的應(yīng)用前景。文獻[1]最早提出了用于背景建模的混合高斯模型(Gaussian Mixture Model,GMM),在運動目標檢測領(lǐng)域應(yīng)用廣泛。文獻[2]通過結(jié)合codebook模型和GMM來確定合適的參數(shù)值,改進了GMM的效率。文獻[3]將幀間差分圖像與視覺背景提取差分圖像進行邏輯運算來去除鬼影。文獻[4]在文獻[1]的基礎(chǔ)上,將每幀圖像區(qū)分為背景區(qū)域、背景顯露區(qū)域和運動物體區(qū)域,在快速變換的場景下有較好的檢測效果。文獻[5]提出了一種非參數(shù)模型,通過粒子濾波更新參考數(shù)據(jù)的位置,可以加快處理速度。
運動目標檢測最經(jīng)典的方法包括幀間差分法、背景差分法和光流法。三幀差分法(Three-frame Difference Method,TFDM)是幀間差分法的一種。該方法相較于其他幾種算法有著計算量小、抗干擾能力強等優(yōu)點,但是該方法目標檢測不完整,檢測結(jié)果存在空洞現(xiàn)象。為了改進檢測效果,考慮將TFDM和一些好的建模方法相結(jié)合,其中最典型的就是混合高斯背景建模法,從而可以有效地提取出完整目標。本文采用兩種算法相結(jié)合(TFDM& GMM算法)來改善TFDM固有的檢測目標不完整的問題。
TFDM是一種通過對視頻圖像序列的連續(xù)幾幀圖像做差分運算以獲取運動目標輪廓的方法。當監(jiān)控場景中有目標運動時,相鄰幀圖像之間會出現(xiàn)較為明顯的差別,兩幀相減,可求得圖像對應(yīng)位置像素值差的絕對值,判斷其是否大于某一閾值,如果該絕對值大于預(yù)先設(shè)置的閾值,則該像素點屬于前景,否則屬于背景。
TFDM就是取連續(xù)的3幀圖像進行2次差分運算,再將2次差分得到的結(jié)果進行與運算即可得到運動目標[6]。TFDM的具體計算公式如下。
第k幀和第k-1幀的差分為
Dk(x,y)=
(1)
式中:fk(x,y)——第k幀圖像;
fk-1(x,y)——第k-1幀圖像;
T——預(yù)先設(shè)置好的閾值,若差分結(jié)果大于T就取1,否則取0。
第k+1幀和第k幀的差分為
Dk+1(x,y)=
(2)
式中:fk+1(x,y)——第k+1幀圖像。
將Dk(x,y)和Dk+1(x,y)取與運算即可得到檢測結(jié)果,即
Mk(x,y)=Dk(x,y)∩Dk+1(x,y)
(3)
GMM最早是在1999年由SRAUFFER C和GRIMSON W提出的。其算法的核心思想是:在一段時間的視頻圖像中,對于每一個像素點,用一個混合高斯分布模型來描述其樣本灰度值序列的分布情況是合理的。因為每一個像素點的GMM參數(shù)都是不同的,所以GMM能準確反映各個像素點不同的分布情況[7]。
圖像中每一個像素點的像素值不同,對于每一個像素點,可以用K(一般為3~5)個高斯分布的加權(quán)和來模擬該點的像素值[4]。t時刻的像素值xt屬于背景的概率p(xt)為
式中:ωi,t——t時刻第i個高斯分布的權(quán)重;
η(xt,μi,t,τi,t)——t時刻第i個高斯分布;
μi,t,τi,t——均值和協(xié)方差矩陣;
I——像素的顏色值。
算法運行時,每讀入一幀樣本,都要對樣本進行模型匹配,其目的是能更好地對前景和背景進行判定。其匹配的公式為
xt∈[μi,t-1-2.5σi,μi,t-1+2.5σi]
(7)
式中:σi——第i個高斯分布的標準差,1
xt代表t時刻的像素值,如果該像素值滿足式(7),則更新該分布的ωi,t;若不滿足,則增加一個新的分布來代替原來權(quán)值最小的高斯分布。
權(quán)值更新公式[8]為
ωi,t=(1-α)ωi,t-1+αMi,t
(8)
式中:α——學習速率;
Mi,t——第i高斯分布在t時刻的偏置。
用戶可以根據(jù)不同的應(yīng)用場景來設(shè)定不同的學習速率。對于環(huán)境復(fù)雜、背景變化快的場景,α的取值可以大一點。此外,當滿足式(7)時,Mi,t=1,否則Mi,t=0。
一般而言,背景像素值變化不大。反映時間占有率的指標主要有權(quán)重ω與標準差σ。首先需要計算出ω/σ2的值[9-10],然后根據(jù)其結(jié)果的大小來進行排序,權(quán)重大的靠前,再選取大于閾值T前B個高斯模型作為背景模型。其中B的計算公式為
(9)
閾值T一般根據(jù)經(jīng)驗選取0.85,但如果場景發(fā)生變化,0.85的閾值就不再適用,需要通過實驗來選取合適的閾值。得到用來匹配的背景模型后,可將像素值代入式(10)進行匹配,匹配成功的像素則判斷為背景,否則判斷為前景。
|Xt-μi,t-1|≤2.5σi,t-1
(10)
其中,13 混合高斯模型結(jié)合三幀差分法
利用TFDM可以快速地檢測出運動目標,對環(huán)境變化也有較好的適應(yīng)能力[11];混合高斯模型可以檢測到較為完整的運動目標。將兩者的優(yōu)點相結(jié)合,可以使檢測到的運動目標更加完整,檢測效果受噪聲的影響較小。具體算法流程如圖1所示。
圖1 TFDM& GMM算法流程
輸入視頻序列后,分別采用TFDM和GMM算法將兩種算法得到的結(jié)果進行邏輯或運算,通過先膨脹后腐蝕[11]的處理方式,可以填充細小的空洞,連接臨近物體,就能得到較為完整的運動目標。
本文分別用傳統(tǒng)的TFDM和GMM算法以及TFDM& GMM算法對同一視頻文件進行測試。其中:圖2為第412幀圖像采用傳統(tǒng)TFDM和GMM算法以及TFDM& GMM算法得出的檢測效果圖;圖3為第575幀圖像采用傳統(tǒng)TFDM和GMM算法以及TFDM& GMM算法得出的檢測效果。圖4是對檢測結(jié)果進行的描邊處理效果圖。視頻流幀速率為10幀/s。本次測試的結(jié)果均用二值化[12]表示,白色表示檢測到的目標,黑色即為背景,便于觀察。
圖2 采用3種算法對第412幀圖像的檢測效果
圖2(a)中,傳統(tǒng)TFDM能準確地檢測到行人,但檢測到的運動目標出現(xiàn)斷裂,不連續(xù)且有空洞現(xiàn)象。圖2(b)是采用GMM算法的檢測結(jié)果,相比于傳統(tǒng)的TFDM,GMM算法能較好地獲取到完整的運動目標,但8個目標中有3個目標內(nèi)部存在空洞。圖2(c)是采用TFDM& GMM算法得到的結(jié)果,可以明顯看到,所得到的檢測結(jié)果相比于傳統(tǒng)TFDM有了很大的改進,檢測結(jié)果右上角的3個運動目標信息完整,輪廓清晰,8個目標內(nèi)部均無空洞現(xiàn)象。
圖3(b)中,能明顯觀察到圖中有許多噪點影響檢測效果,這些噪點是外界的噪聲所引起的,這也是GMM算法的一個缺點,抗外界的干擾能力較差。而圖3(a)采用傳統(tǒng)TFDM則可以很好地抑制外界噪聲的干擾。由圖3(c)可以看到,TFDM& GMM算法既能獲取到較為完整的運動目標,且噪點明顯減少,故本文算法可以較好地抑制外界噪聲的干擾。
圖3 采用3種算法對第575幀圖像的檢測效果
圖4是對檢測到的運動目標進行的描邊處理,主要運用了OpenCV里的findContours函數(shù)和cvtColor函數(shù)[13]。findContours函數(shù)可以從二值圖像中找出運動目標的輪廓,再利用cvtColor函數(shù)對檢測到的輪廓進行顏色轉(zhuǎn)換,從而可以更加清晰地看到運動目標。
圖4 描邊效果示意
根據(jù)測試結(jié)果來看,本文算法還存在一些問題,如圖3(c)中,除了檢測到的運動目標外,還可以看到一條白色的虛影。這是微風吹動其他物體所引起的誤檢測。可以通過設(shè)置動態(tài)閾值來減小外部因素對檢測效果的影響[14],這是今后的工作重點和研究方向。
本文提出了一種將TFDM與GMM相結(jié)合的算法。該算法將TFDM和GMM算法得到的結(jié)果進行或運算,最后通過形態(tài)學處理即可得到較為完整的運動目標。將本文算法與單獨使用其中一種方法得到的檢測結(jié)果進行了對比,結(jié)果表明,相較于單獨使用兩種算法,本文算法的檢測效果好,優(yōu)化了檢測目標不完整的問題以及檢測目標出現(xiàn)空洞的現(xiàn)象,同時也減少了噪聲的干擾。