陳 偉,劉 宇,李宏濤,孫 靜,嚴(yán) 寧
(1.西安應(yīng)用光學(xué)研究所,陜西 西安,710065;2.西安文理學(xué)院 機(jī)械與材料工程學(xué)院,陜西 西安,710065)
運(yùn)動(dòng)目標(biāo)的有效檢測(cè)是目標(biāo)實(shí)時(shí)跟蹤、行為分析和行為判斷的前提[1]。運(yùn)動(dòng)目標(biāo)檢測(cè)已經(jīng)廣泛應(yīng)用于軍事安防、機(jī)器人導(dǎo)航、車輛輔助駕駛、醫(yī)學(xué)以及航空航天等領(lǐng)域,是計(jì)算機(jī)視覺領(lǐng)域的熱點(diǎn)問題[2-3]。目前主要的運(yùn)動(dòng)目標(biāo)檢測(cè)方法包括:光流法[4]、相鄰幀差法[5]及背景減除法[6]。光流法根據(jù)像素灰度值變化進(jìn)行運(yùn)動(dòng)目標(biāo)檢測(cè),其精度高且計(jì)算復(fù)雜,不能直接用于實(shí)時(shí)場(chǎng)景處理;相鄰幀差法計(jì)算量小、速度快,但檢測(cè)出的運(yùn)動(dòng)目標(biāo)會(huì)出現(xiàn)空洞,適用于簡(jiǎn)單場(chǎng)景;背景減除法計(jì)算量小、實(shí)時(shí)性好,是目前經(jīng)常使用的方法[7-10]。背景減除法按照模型參數(shù)分為2類:第1類是有參數(shù)模型,如混合高斯模型GMM(Gaussian mixed model)算法[11],其背景建模是基于像素樣本統(tǒng)計(jì)信息,計(jì)算量隨著高斯分布個(gè)數(shù)增加而增加,計(jì)算時(shí)間長(zhǎng),實(shí)時(shí)性差;第2類是無(wú)參數(shù)模型,如核密度估計(jì)KDE(kernel density estimation)算法[12]和ViBe(visual background extractor)算法[13],其特點(diǎn)是計(jì)算量小,實(shí)時(shí)性好。ViBe算法是一種全新的背景減除法,該算法的主要思想是利用單幀建立背景樣本,然后通過后續(xù)幀和背景樣本的距離提取后續(xù)幀中存在的運(yùn)動(dòng)目標(biāo),并動(dòng)態(tài)更新背景樣本。實(shí)際應(yīng)用中由于光照變化以及場(chǎng)景中的動(dòng)態(tài)事物(如晃動(dòng)的樹葉、水波紋等場(chǎng)景)會(huì)對(duì)檢測(cè)結(jié)果產(chǎn)生干擾,使得該算法仍有提升空間。本文針對(duì)ViBe算法的不足,對(duì)算法中的背景建模、前景和背景判斷以及更新因子選取等進(jìn)行了改進(jìn),改進(jìn)的算法可以有效地抑制各種干擾,適應(yīng)不同的場(chǎng)景。
ViBe算法計(jì)算過程簡(jiǎn)單,實(shí)時(shí)性高。該算法主要包括背景建立、前景和背景提取、背景更新策略等,具體過程如下文。
1)背景建立
選取第1幀建立背景樣本,對(duì)第1幀中每一個(gè)像素 (x,y)建立一個(gè)大小為 N 的背景樣本集M(x)={v1,v2,···,vN},其中vj為第j 個(gè)背景樣本,j=1,2,···,N,N取經(jīng)驗(yàn)值20。vj的像素值是其第1幀對(duì)應(yīng)位置的8鄰域隨機(jī)采樣值,循環(huán) N次,遍歷每一個(gè)像素點(diǎn),即完成背景樣本集的建立。
2)前景和背景提取
判斷當(dāng)前像素 (x,y)是否為背景。通過計(jì)算當(dāng)前位置像素值與所有對(duì)應(yīng)位置背景樣本集像素值的歐式距離,然后統(tǒng)計(jì)大于距離閾值的個(gè)數(shù),判斷當(dāng)前像素是背景還是前景,具體計(jì)算如(1)式、(2)式所示:
式中:j=1,2,···,N ; dis(fi(x,y),vj)表示第i幀圖像在( x ,y)處 的像素值與背景樣本集 vj在 ( x ,y)處像素值的歐式距離,通常 R= 20; cnti(x,y)是距離值小于R的個(gè)數(shù)。遍歷第 i幀所有像素點(diǎn),然后按照(2)式進(jìn)行二值化處理:
式中:T 表示匹配閾值,經(jīng)驗(yàn)值取2; Bi(x,y)為檢測(cè)結(jié)果。
3)背景更新策略
通過上面2個(gè)步驟分離出前景和背景,下面主要是針對(duì)前景和背景采用不同的更新策略。若當(dāng)前像素 (x,y)為前景,對(duì)應(yīng)計(jì)數(shù)值加1;若計(jì)數(shù)值大于50,當(dāng)前像素強(qiáng)制更新為背景,對(duì)應(yīng)計(jì)數(shù)值清零,當(dāng)前像素按照背景更新。若當(dāng)前像素 (x,y)為背景,按照1 /φ(φ為更新因子,經(jīng)驗(yàn)值16)的概率更新當(dāng)前位置背景樣本集和鄰域位置背景樣本集。更新當(dāng)前位置背景樣本集,用像素值 fi(x,y)替換隨機(jī)選取的背景樣本 vid對(duì)應(yīng)位置的像素值,即vid(x,y)=fi(x,y),其中 id 為從1到 N隨機(jī)選取。鄰域位置背景樣本集更新,隨機(jī)選取一個(gè)樣本 vidu,在當(dāng)前像素的8鄰域隨機(jī)選取一個(gè)位置 ( xu,yu),用當(dāng)前像素值fi(x,y)替 換樣本vidu在 ( xu,yu)的像素值,即vidu(xu,yu)= fi(x,y),其中 i du為 從1到 N隨機(jī)選取。
ViBe算法通過第1幀建立背景,如果第1幀存在運(yùn)動(dòng)目標(biāo),在后續(xù)的檢測(cè)中會(huì)出現(xiàn)“鬼影”現(xiàn)象,而且傳統(tǒng)算法中樣本集大小、前景和背景判斷閾值、匹配個(gè)數(shù)以及背景更新因子都采用固定值,不能適應(yīng)場(chǎng)景變化,容易出現(xiàn)目標(biāo)丟失。本文針對(duì)這些問題提出一種改進(jìn)的ViBe算法,背景建模采用隨機(jī)選取背景樣本和24鄰域法獲取初始背景;前景和背景判斷采用OTSU算法與均勻性度量法的平均值作為背景和前景判斷閾值;更新策略采用動(dòng)態(tài)更新因子的方法等,這些改進(jìn)措施可以有效地提高目標(biāo)檢測(cè)的準(zhǔn)確性和對(duì)不同場(chǎng)景的適應(yīng)性。
背景的建立方法很多,常用的有平均法、中位數(shù)法以及傳統(tǒng)的單幀法,當(dāng)用于建立背景的幀中存在運(yùn)動(dòng)目標(biāo)時(shí),檢測(cè)結(jié)果都會(huì)出現(xiàn)“鬼影”現(xiàn)象,不同的算法對(duì)“鬼影”消融起到了一定的作用,但是消融的時(shí)間長(zhǎng)短不一樣。實(shí)際應(yīng)用中,背景的建立希望獲取到真實(shí)的背景,即不包含運(yùn)動(dòng)目標(biāo)。當(dāng)圖像中存在運(yùn)動(dòng)目標(biāo)時(shí),可采用多幀隨機(jī)選取和24鄰域法建立背景。這樣可以有效避免像素的重復(fù)選取,最大概率選取到真實(shí)背景,降低錯(cuò)誤分類的概率。計(jì)算步驟如下:
1)選取被檢測(cè)圖像的前 m 幀;
2)建立背景樣本集 M(x)={v1,v2,···,vN},j=1,2,···,N ,隨機(jī)選取 m 幀圖像中的1幀,選取其對(duì)應(yīng)像素24鄰域的一個(gè)隨機(jī)值賦給 vj(x,y),循環(huán) N次完成1個(gè)像素背景樣本集的建立,按圖像大小遍歷每一個(gè)像素點(diǎn),即完成背景樣本集初始化。
本文采用標(biāo)準(zhǔn)數(shù)據(jù)集highway視頻序列對(duì)傳統(tǒng)算法單幀背景建模和本文算法背景建模的目標(biāo)檢測(cè)效果進(jìn)行了對(duì)比測(cè)試,測(cè)試程序在傳統(tǒng)ViBe算法基礎(chǔ)上更改背景建模部分算法。初始幀從第300幀開始,初始幀存在運(yùn)動(dòng)目標(biāo),本文算法中m=25,當(dāng)運(yùn)行到第344幀時(shí),傳統(tǒng)的單幀背景建模目標(biāo)檢測(cè)結(jié)果中殘留初始幀運(yùn)動(dòng)目標(biāo)像素點(diǎn)較多,存在明顯的“鬼影”。本文算法背景建模目標(biāo)檢測(cè)結(jié)果中殘留初始幀運(yùn)動(dòng)目標(biāo)像素點(diǎn)較少,“鬼影”消融速度較快,如圖1所示。從測(cè)試結(jié)果可以看出,本文的背景建模方法,可以有效抑制“鬼影”,加快其消融速度,明顯優(yōu)于傳統(tǒng)方法。
圖1 ViBe算法中不同背景建模算法目標(biāo)檢測(cè)效果對(duì)比圖Fig.1 Comparison images of target detection effects in ViBe algorithm with different background modeling algorithms
傳統(tǒng)ViBe算法在進(jìn)行前景和背景提取時(shí),采用固定閾值,固定閾值不能適應(yīng)各種場(chǎng)景的變化。閾值分割方法很多,場(chǎng)景不同、目標(biāo)大小不同,其效果都不一樣。經(jīng)過大量對(duì)比試驗(yàn),OTSU算法[14]和均勻性度量[15]法效果較好,但是OTSU算法容易將前景像素分割為背景,而均勻性度量法容易將背景分割為前景?;谶@種結(jié)果,本文的閾值采用二者閾值的平均值作為ViBe算法的自適應(yīng)閾值。下面分別看這2種算法的具體計(jì)算過程。
OTSU算法是一種動(dòng)態(tài)閾值分割算法。它的主要思想是按照灰度特性將圖像劃分為背景和前景,門限值使得背景和前景之間的方差最大,計(jì)算方法如下文1)~3)。
1)TH1從最小灰度值到最大灰度值進(jìn)行搜索;
2)按照 T H1對(duì)圖像進(jìn)行前景和背景分割,求取圖像總平均灰度μ,如(3)式所示:
式中:ω0和 μ0為前景個(gè)數(shù)占比和前景平均灰度;ω1和 μ1為背景個(gè)數(shù)占比和背景平均灰度;
均勻性度量法,基本思想是屬于一類的對(duì)象其分布有較大的一致性,所以算法以方差最小的灰度值作為分割閾值。計(jì)算方法如下文1)~4)。
1)T H2從最小灰度值到最大灰度值進(jìn)行搜索;
2)按照 TH2對(duì)圖像進(jìn)行前景和背景分割,分別計(jì)算前景與背景的類內(nèi)方差,如(5)式、(6)式所示:
式中:C1屬于前景集合; C2屬于背景集合; NC1為前景像素點(diǎn)數(shù); NC2為背景像素點(diǎn)數(shù);
3)分別計(jì)算2類像素在圖像中的分布概率,如(7)式所示:
式中:Nimage為圖像總的像素個(gè)數(shù);
圖2 ViBe算法中不同前景和背景判斷閾值目標(biāo)檢測(cè)效果對(duì)比圖Fig.2 Comparison images of target detection effects in ViBe algorithm with different foreground and background judgment thresholds
當(dāng)背景模型受到外界因素干擾時(shí),采用固定更新因子,會(huì)出現(xiàn)前景誤檢為背景或是背景誤檢為前景的現(xiàn)象,從而增大誤檢率。更新因子 φ是反映背景更新速率的一個(gè)參數(shù),φ越小背景更新越快。在模型的更新策略中,本文動(dòng)態(tài)地改變更新因子φ以適應(yīng)不同的場(chǎng)景,其原理是圖像中的運(yùn)動(dòng)目標(biāo)速度變化快,背景更新快,背景中運(yùn)動(dòng)目標(biāo)速度變化緩慢,背景更新也會(huì)放慢。本文改進(jìn)方法在前50幀檢測(cè)中,將更新因子 φ設(shè)置為1,這樣可增加背景的更新速率,促使背景中由于存在運(yùn)動(dòng)目標(biāo)而形成的“鬼影”迅速消融,然后可按照目標(biāo)在場(chǎng)景中的運(yùn)動(dòng)速率來動(dòng)態(tài)改變更新因子φ。如果視頻中存在運(yùn)動(dòng)目標(biāo),相鄰2幀檢測(cè)結(jié)果目標(biāo)的位置會(huì)發(fā)生變化。通過相鄰2幀求異或可以得到圖像中變化部分的像素點(diǎn),這些像素點(diǎn)的多少,可以間接地反應(yīng)出目標(biāo)速率的變化。具體計(jì)算方法見(9)式:
式中:Bi-1(x,y)和Bi(x,y)分別是前一幀和當(dāng)前幀的運(yùn)動(dòng)目標(biāo)檢測(cè)結(jié)果,前景像素點(diǎn)值為255,背景像素值為0; Si是 Bi-1(x,y)和Bi(x,y)對(duì)應(yīng)位置像素值異或操作的結(jié)果。統(tǒng)計(jì) Si和 Bi(x,y)中像素點(diǎn)值為255的個(gè)數(shù),分別是 count1和 count2 ,按(10)式計(jì)算 τ,τ間接反映目標(biāo)速度的變化。
按照 τ的變化大小確定更新因子 φ的值。傳統(tǒng)方法默認(rèn)其值為16,本文分析了大量視頻測(cè)試結(jié)果,根據(jù) τ值將更新因子 φ分為4檔,適用大多數(shù)場(chǎng)景,如(11)式所示:
采用本文的更新策略分別對(duì)MATLAB自帶的viptraffic視頻和測(cè)試數(shù)據(jù)集中的sofa視頻進(jìn)行目標(biāo)檢測(cè)效果對(duì)比測(cè)試,其中viptraffic視頻目標(biāo)移動(dòng)速度快,并且伴有光照變化;sofa視頻中有運(yùn)動(dòng)緩慢和由運(yùn)動(dòng)轉(zhuǎn)為靜止的物體。測(cè)試程序在傳統(tǒng)ViBe算法基礎(chǔ)上更改背景更新因子取值的相關(guān)算法,測(cè)試結(jié)果如圖3所示。從圖中看,viptraffic視頻從第1幀運(yùn)行至46幀,背景更新因子取值分別是 φ自適應(yīng)、 φ=32 、 φ=16 、 φ=1,可見,φ=1的噪點(diǎn)最少,與 φ自適應(yīng)的檢測(cè)效果最為接近,最能適應(yīng)當(dāng)前場(chǎng)景;sofa視頻,從第1幀運(yùn)行至344幀,背景更新因子取值分別是φ 自適應(yīng)、 φ =32 、φ =16、φ=1,可見,φ=32時(shí)由運(yùn)動(dòng)轉(zhuǎn)為靜止的盒子保留的有效像素最多,與 φ自適應(yīng)的檢測(cè)效果最為接近,最能適應(yīng)當(dāng)前場(chǎng)景。從測(cè)試結(jié)果可以看出,本文的改進(jìn)方法在背景更新策略上更加符合實(shí)際需求。
圖3 ViBe算法中不同背景更新因子目標(biāo)檢測(cè)效果對(duì)比圖Fig.3 Comparison images of target detection effects in ViBe algorithm with different background update factors
一幀圖像通過上述處理,會(huì)得到一幅二值化圖像,但是圖像中仍然會(huì)存在大量的噪點(diǎn)和孔洞,造成目標(biāo)的模糊和不完整。為了提高目標(biāo)提取的完整性和準(zhǔn)確率,本文采用了濾波和形態(tài)學(xué)操作來改進(jìn)檢測(cè)效果。具體的步驟為:
1)濾波 濾波的作用是去除噪點(diǎn),具體方法是分別統(tǒng)計(jì)檢測(cè)結(jié)果中二值圖像像素點(diǎn)的8鄰域內(nèi)值為0和255的像素點(diǎn)的個(gè)數(shù) K1和 K2。當(dāng)K1大 于閾值 τ1,將當(dāng)前像素點(diǎn)的值置為0;當(dāng) K2大于閾值 τ2時(shí) ,將當(dāng)前像素點(diǎn)的值置為255。τ1和τ2的值取5。
2)形態(tài)學(xué)操作 由于誤判,實(shí)際中二值圖像中會(huì)有一些孤立的點(diǎn)和孔洞,在實(shí)際處理時(shí),可以通過形態(tài)學(xué)操作將這些點(diǎn)連接起來,對(duì)孔洞進(jìn)行填充。形態(tài)學(xué)操作還包括開運(yùn)算、閉運(yùn)算等。實(shí)際應(yīng)用中,還會(huì)刪除像素?cái)?shù)小于10的連通區(qū)域,有效剔除一些干擾。通過這樣的操作,使目標(biāo)更加清晰和完整。
本文采用IEEE Change Detection Workshop[16]評(píng)價(jià)檢測(cè)標(biāo)準(zhǔn)來定量地對(duì)改進(jìn)ViBe算法的目標(biāo)檢測(cè)能力進(jìn)行客觀評(píng)價(jià)。指標(biāo)包括精確率Rprecision、召回率Rrecall、F度量值F、錯(cuò)誤分類百分比PPWC、假陽(yáng)性率RFPR、假陰性率RFNR6個(gè)指標(biāo)[17]進(jìn)行分析,如(12)式所示:
式中:NTP表示檢測(cè)正確的前景像素?cái)?shù);NTN表示檢測(cè)正確的背景像素?cái)?shù);NFP表示誤檢為前景的背景像素?cái)?shù);NFN表示誤檢為背景的前景像素?cái)?shù)。通常精確率和召回率越高,假陽(yáng)性率、假陰性率和錯(cuò)分率越低,其性能越好。
本文實(shí)驗(yàn)使用MATLAB R2016b軟件進(jìn)行實(shí)驗(yàn)數(shù)據(jù)的統(tǒng)計(jì)與計(jì)算。實(shí)驗(yàn)環(huán)境為CPU-Intel?Core(TM)i5-3470 CPU@3.2GHz,內(nèi)存為4 G,操作系統(tǒng)為Windows7旗艦版。為了測(cè)試本文改進(jìn)算法的性能,分別與GMM算法、ViBe算法和KDE算法在不同的場(chǎng)景進(jìn)行了測(cè)試,測(cè)試視頻來自WWW.changedetection.net網(wǎng)站,分別選取了canoe、highway、pedestrians、snowFall、park、sofa視頻進(jìn)行了測(cè)試,這些視頻包括基本視頻、含動(dòng)態(tài)背景視頻、紅外視頻、惡劣天氣視頻、過程中有短暫停留視頻等。本文測(cè)試時(shí),KDE算法中,選取高斯核函數(shù),訓(xùn)練集N=20,帶寬 h=45,閾值 thr=0.000002。GMM算法的參數(shù)設(shè)置中,高斯分量 C=3,背景分量 M=3,正偏差閾值 D=2.5,學(xué)習(xí)率 alpha=0.001,前景閾值thresh=0.25,初始標(biāo)準(zhǔn)偏差 sd_init=16。傳統(tǒng)ViBe算法的參數(shù)設(shè)置中,樣本 N=20,閾值半徑 R=20,匹配閾值 T=2 ,更新因子 φ =16。本文算法的參數(shù)設(shè)置中,樣本 N=20,匹配閾值 T=2,初始背景建模選取幀數(shù) m=25,其余均采用自適應(yīng)閾值。測(cè)試時(shí)highway、pedestrians、snowFall、park、sofa初始幀存在運(yùn)動(dòng)目標(biāo)。MATLAB仿真操作界面如圖4所示。
圖4 MATLAB仿真操作界面Fig.4 Simulation operation interface in MATLAB
4種方法在6種不同場(chǎng)景測(cè)試效果如圖5所示。其中:圖5(a)為canoe視頻測(cè)試效果圖,圖5(b)為highway視頻測(cè)試效果圖,圖5(d)為snowFall視頻測(cè)試效果圖,由圖可見,本文改進(jìn)算法相對(duì)于KDE算法、GMM算法、傳統(tǒng)ViBe算法可以很好地抑制水波紋、樹葉晃動(dòng)以及雪片等帶來的干擾,圖中的目標(biāo)周邊較為干凈,內(nèi)部沒有太多的孔洞,目標(biāo)輪廓更加的完整;圖5(c)為pedestrians視頻測(cè)試效果圖,圖5(f)為sofa視頻測(cè)試效果圖,可見,本文改進(jìn)算法可以消除部分陰影以及光照帶來的影響;圖5(e)為park視頻測(cè)試效果圖,可見,該測(cè)試視頻為紅外圖像,其他算法在目標(biāo)周邊都存在大量的噪點(diǎn),本文改進(jìn)算法可以有效濾除目標(biāo)周邊的噪點(diǎn),使目標(biāo)更加完整和清晰。由于測(cè)試視頻初始幀存在運(yùn)動(dòng)目標(biāo),圖5中KDE算法和ViBe算法在部分測(cè)試結(jié)果中仍有初始幀運(yùn)動(dòng)目標(biāo)的殘留像素,本文算法初始幀中運(yùn)動(dòng)目標(biāo)已經(jīng)完全融入背景,適應(yīng)能力更強(qiáng)。為了進(jìn)一步驗(yàn)證算法的可行性,按照3.1節(jié)量化指標(biāo)進(jìn)行了測(cè)試和對(duì)比。分別在6種場(chǎng)景下對(duì)每種算法進(jìn)行測(cè)試,求各項(xiàng)指標(biāo)的平均值,測(cè)試結(jié)果見表1。從表中可以看到本文改進(jìn)算法在不同場(chǎng)景下,相對(duì)于KDE算法、GMM算法和傳統(tǒng)ViBe算法,各項(xiàng)指標(biāo)均有大幅度提高,精確度分別提高30.44%、40.72%和20.95%,錯(cuò)分比分別降低了43.28%、40.59%和29.43%,召回率、F度量值、假陽(yáng)性率和假陰性率均優(yōu)于其他3種算法。
圖5 4種算法在6類場(chǎng)景下目標(biāo)檢測(cè)效果對(duì)比圖Fig.5 Comparison images of target detection effects of four algorithms in six types of scenes
表1 4種算法在6類場(chǎng)景下測(cè)試指標(biāo)平均值Table 1 Average values of test indexes of four algorithms in six types of scenes
本文針對(duì)傳統(tǒng)ViBe算法動(dòng)態(tài)場(chǎng)景適應(yīng)性差、初始背景幀有運(yùn)動(dòng)目標(biāo)存在“鬼影”現(xiàn)象等問題,提出一種改進(jìn)的ViBe算法,改進(jìn)內(nèi)容包括背景建模、背景和前景的自適應(yīng)閾值判斷、動(dòng)態(tài)更新因子等,并將改進(jìn)算法與傳統(tǒng)ViBe算法、GMM算法、KDE算法進(jìn)行了對(duì)比試驗(yàn),結(jié)果表明本文改進(jìn)算法對(duì)有水波紋、樹葉晃動(dòng)、下雪、強(qiáng)光等場(chǎng)景有較好的適應(yīng)性,其準(zhǔn)確率和誤檢率等多項(xiàng)評(píng)價(jià)指標(biāo)均優(yōu)于其他對(duì)比算法。