王孝艷,張艷珠,董慧穎,李 媛,李小娟
(沈陽(yáng)理工大學(xué)信息科學(xué)與工程學(xué)院,遼寧沈陽(yáng)110159)
隨著信息技術(shù)的發(fā)展,人類(lèi)對(duì)數(shù)字視頻的應(yīng)用越來(lái)越廣泛[1]。運(yùn)動(dòng)目標(biāo)檢測(cè)與跟蹤是一個(gè)很重要的應(yīng)用方向[2]。運(yùn)動(dòng)目標(biāo)檢測(cè)技術(shù)是從數(shù)字視頻中將運(yùn)動(dòng)目標(biāo)和背景區(qū)分開(kāi),并從中提取出運(yùn)動(dòng)的目標(biāo),從而應(yīng)用到銀行、高速公路、小區(qū)等智能監(jiān)控系統(tǒng)中。運(yùn)動(dòng)目標(biāo)檢測(cè)效果的好壞直接影響到以后關(guān)于運(yùn)動(dòng)目標(biāo)跟蹤的結(jié)果。
目前,運(yùn)動(dòng)目標(biāo)檢測(cè)的方法較多,常用的有背景減除法(background subtraction)、光流法(optical flow)[2]和幀差法(temporal difference)[3-4]。背景減除法首先要通過(guò)視頻建立背景圖像的像素模型,然后通過(guò)對(duì)每幀圖像和背景圖像進(jìn)行對(duì)比,得到運(yùn)動(dòng)目標(biāo)。這種方法需要考慮背景模型的表示及初始化和背景更新的方法等。光流法的主要任務(wù)是計(jì)算光流場(chǎng),即在適應(yīng)的平滑約束性條件下,根據(jù)圖像序列的時(shí)空梯度估算運(yùn)動(dòng)場(chǎng),通過(guò)分析運(yùn)動(dòng)場(chǎng)的變化對(duì)運(yùn)動(dòng)目標(biāo)和場(chǎng)景進(jìn)行分割。但這種方法計(jì)算相當(dāng)復(fù)雜,且抗噪性能差,不能很好地應(yīng)用于實(shí)時(shí)監(jiān)控中。幀差法則是對(duì)相鄰兩幀的圖像進(jìn)行差分,并設(shè)定一個(gè)閾值,認(rèn)為差分結(jié)果大于閾值的像素點(diǎn)就是運(yùn)動(dòng)目標(biāo)。這種方法因其計(jì)算量小、實(shí)時(shí)性高,在目標(biāo)檢測(cè)中比較常用[5-6]。不過(guò),大部分方法的檢測(cè)結(jié)果都會(huì)伴有大量的噪聲。在此,使用三幀差法檢測(cè)運(yùn)動(dòng)目標(biāo),采用運(yùn)動(dòng)圖像形態(tài)學(xué)的方法對(duì)得到的結(jié)果進(jìn)行優(yōu)化處理,利用MATLAB實(shí)現(xiàn),驗(yàn)證文中提出的方法。
對(duì)于攝像機(jī)靜止時(shí)拍攝的視頻序列,首先對(duì)第k幀及k-1幀圖片進(jìn)行平滑去噪,再做幀差法處理,用第k幀圖片減去第k-1幀圖片,得到二值圖像。公式表示為
式中,T為預(yù)先設(shè)定的閾值,可根據(jù)經(jīng)驗(yàn)選取。若T選取過(guò)大,則檢測(cè)的目標(biāo)則可能出現(xiàn)較大的空洞甚至漏檢,若T選取過(guò)小,將會(huì)出現(xiàn)大量噪聲。
從幀差法的公式可以看出,如果運(yùn)動(dòng)目標(biāo)勻速運(yùn)動(dòng),幀差法得到的運(yùn)動(dòng)目標(biāo)會(huì)比較一致,但當(dāng)目標(biāo)加速或減速運(yùn)動(dòng)時(shí),檢測(cè)到的運(yùn)動(dòng)目標(biāo)會(huì)存在多檢或者少檢。其次,幀差法檢測(cè)出的運(yùn)動(dòng)目標(biāo)中包含兩幀中的運(yùn)動(dòng)信息,這樣會(huì)檢測(cè)出較多的目標(biāo)點(diǎn)。為了改進(jìn)幀差法的不足,提出了三幀差法[5]。
三幀差法首先對(duì)連續(xù)的三幀圖片進(jìn)行平滑去噪,再分別做幀差法處理,用第k幀圖片減去第k-1幀圖片,得到二值圖像D1(x,y),再用第k+1幀圖片減去第k幀圖片,得到二值圖像D2(x,y),最后用D1(x,y)和D2(x,y)進(jìn)行“與”運(yùn)算,便可得到三幀差圖像D(x,y)。公式表示為
幀差法的原理如圖1所示。其中,圖1a、圖1b和圖1c是連續(xù)的三幀圖片,兩幀差法的結(jié)果如圖1d和圖1e所示,三幀差法的結(jié)果如圖1f所示。從圖中可以看出,三幀差法檢測(cè)的結(jié)果更加完整,比兩幀差法檢測(cè)的結(jié)果更接近實(shí)際的運(yùn)動(dòng)目標(biāo)。
圖1 幀差法原理圖
Grzegorz M.Wojcik 等人[6]采用三幀差法,即分別對(duì)連續(xù)三幀圖像中前幀與中間幀,中間幀與后幀進(jìn)行兩幀差分運(yùn)算,定義連續(xù)三幀序列圖像前后灰度幀差重合的部分,作為中間幀運(yùn)動(dòng)目標(biāo)的邊緣,這樣可有效遮擋前后幀的遮擋問(wèn)題。李秋林等人[7]采用三幀差法和二維交叉熵閾值法相結(jié)合的方法對(duì)運(yùn)動(dòng)車(chē)輛進(jìn)行檢測(cè)。三幀差法充分考慮了運(yùn)動(dòng)像素的時(shí)間相關(guān)性,對(duì)動(dòng)態(tài)檢測(cè)比較靈敏,對(duì)隨機(jī)噪聲也有很好的抑制作用,但也存在一定缺陷,即差分圖像的檢測(cè)閾值需手動(dòng)設(shè)定,大多數(shù)情況下只能依據(jù)實(shí)踐經(jīng)驗(yàn)。
數(shù)學(xué)形態(tài)學(xué)在圖像處理中的主要作用是對(duì)圖像中目標(biāo)的幾何參數(shù)或者灰度值進(jìn)行變換。常用的方法有腐蝕、膨脹、開(kāi)運(yùn)算、閉運(yùn)算和形態(tài)學(xué)重構(gòu)等。本文主要使用腐蝕和膨脹兩種最基本的形態(tài)學(xué)運(yùn)算。膨脹具有擴(kuò)大圖像的作用,即將圖像的邊緣擴(kuò)大些,將目標(biāo)的邊緣或者是內(nèi)部的坑填掉。圖2簡(jiǎn)單說(shuō)明了膨脹運(yùn)算的作用。圖2a顯示包含一個(gè)簡(jiǎn)單的二值圖像;圖2b為一個(gè)結(jié)構(gòu)元素,在此例中它是一條8個(gè)像素長(zhǎng)的曲線(xiàn),并用方框表明結(jié)構(gòu)元素的原點(diǎn);圖2c所示的是圖2a被圖2b膨脹的結(jié)果。
圖2 膨脹示例
腐蝕具有收縮圖像的作用,即去除圖像中的噪聲,將目標(biāo)邊緣的“毛刺”踢除掉。圖3簡(jiǎn)單說(shuō)明了腐蝕運(yùn)算的作用。圖3a顯示包含一個(gè)簡(jiǎn)單的二值圖像;圖3b為一個(gè)結(jié)構(gòu)元素,在此例中它是一條3個(gè)像素長(zhǎng)的直線(xiàn),并用方框表明結(jié)構(gòu)元素的原點(diǎn);圖3c所示的是圖3a被圖3b腐蝕的結(jié)果[8-9]。
圖3 腐蝕示例
在數(shù)學(xué)上,膨脹和腐蝕的定義都是集合運(yùn)算。A被B膨脹,記為A⊕B,定義為A⊕B={z|(^B)z∩A≠φ};A被B腐蝕,記為AΘB,定義為:AΘB={z|(B)z∩AC≠φ}。其中φ為空集,B為結(jié)構(gòu)元素。
文中首先采用改進(jìn)的幀差法,即三幀差法對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè),在得到二值圖像后,運(yùn)用數(shù)學(xué)形態(tài)學(xué)腐蝕和膨脹的方法對(duì)二值圖像進(jìn)行處理。如用數(shù)學(xué)形態(tài)學(xué)的方法,大都是運(yùn)用開(kāi)閉運(yùn)算或更復(fù)雜的形態(tài)學(xué)方法對(duì)檢測(cè)結(jié)果進(jìn)行改進(jìn),文中只采用腐蝕和膨脹的方法。因?yàn)闊o(wú)論是開(kāi)運(yùn)算還是閉運(yùn)算,都是由一對(duì)腐蝕和膨脹運(yùn)算組成的,但腐蝕和膨脹的結(jié)構(gòu)元素是相同的。如果用腐蝕和膨脹的方法對(duì)圖像進(jìn)行處理,就可以隨意變換結(jié)構(gòu)元素,即將腐蝕的結(jié)構(gòu)元素設(shè)置成背景擾動(dòng)噪聲的形態(tài);將膨脹的結(jié)構(gòu)元素設(shè)置成目標(biāo)空洞的形態(tài)。和其它形態(tài)學(xué)方法比較,這兩種方法既可以降低計(jì)算量,又可以靈活控制結(jié)構(gòu)元素,這樣便可以去除噪聲,填充目標(biāo)的空洞,用最快的時(shí)間獲得最理想的效果。
實(shí)驗(yàn)中所用的視頻是用Cannon相機(jī)在室外拍攝的一組視頻,將該視頻轉(zhuǎn)化為圖片后,共有256幀240×320×3的unit8圖片。圖4為分別采用三幀差法和文中方法對(duì)室外運(yùn)動(dòng)的小車(chē)進(jìn)行檢測(cè)的結(jié)果對(duì)比圖。圖4a、圖4b、圖4c為連續(xù)的三幀圖片,圖4d為三幀差法檢測(cè)出的運(yùn)動(dòng)目標(biāo),圖4e為本文方法檢測(cè)結(jié)果。文中采用的方法比傳統(tǒng)的三幀差法效果好很多,它不僅排除了外界光線(xiàn)強(qiáng)烈變化下對(duì)運(yùn)動(dòng)目標(biāo)檢測(cè)帶來(lái)的影響,有效去除噪聲,并且可以清晰地檢測(cè)出運(yùn)動(dòng)的目標(biāo),使得運(yùn)動(dòng)目標(biāo)的輪廓清晰可見(jiàn)。從圖4d和圖4e的對(duì)比可以發(fā)現(xiàn),文中采用的方法增強(qiáng)了檢測(cè)系統(tǒng)的實(shí)時(shí)性和準(zhǔn)確性。
實(shí)驗(yàn)算法如下:
Step1:將連續(xù)的三幀圖片 fk-1(x,y),fk(x,y),fk+1(x,y)轉(zhuǎn)化為灰度圖片(x,y),'(x,y)(x,y);
Step2:利用幀差法求出差分圖像,并將圖像二值化為 Dk,k-1(x,y)和 Dk+1,k(x,y);
Step3:對(duì) Dk,k-1(x,y)和 Dk+1,k(x,y)進(jìn)行“與”運(yùn)算,得到含有運(yùn)動(dòng)目標(biāo)的圖像;
Step4:對(duì)圖像進(jìn)行圖像形態(tài)學(xué)的處理,得到待檢測(cè)的運(yùn)動(dòng)目標(biāo)。
圖4 檢測(cè)方法對(duì)比圖
文中采用一種運(yùn)動(dòng)目標(biāo)檢測(cè)的新方法,即采用改進(jìn)的幀差法-三幀差法對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè),在得到二值圖像后,運(yùn)用數(shù)學(xué)形態(tài)學(xué)中腐蝕和膨脹的方法對(duì)二值圖像進(jìn)行處理,與傳統(tǒng)方法不同的是,這里每次用的結(jié)構(gòu)元素是根據(jù)圖像的實(shí)際需要選取的。該方法對(duì)運(yùn)動(dòng)物體所在的環(huán)境沒(méi)有任何約束,所以,這種方法可以應(yīng)用到很多視頻場(chǎng)所中。該算法的特點(diǎn)是計(jì)算量小,實(shí)時(shí)性強(qiáng),準(zhǔn)確性高。大量實(shí)驗(yàn)的結(jié)果表明,文中的算法有很強(qiáng)的應(yīng)用性。
對(duì)于運(yùn)動(dòng)物體的檢測(cè),雖然能檢測(cè)出運(yùn)動(dòng)物體大概的輪廓,還會(huì)有一些地方被漏檢,對(duì)其分析原因。原因一,有可能是被漏檢的區(qū)域像素值變化不是很大,恰好小于幀差法公式中設(shè)定的閾值,如果是這種原因,可以考慮改變閾值設(shè)定的方法,即不采用傳統(tǒng)的根據(jù)經(jīng)驗(yàn)給值,可考慮根據(jù)統(tǒng)計(jì)理論獲得閾值或者設(shè)置動(dòng)態(tài)閾值;原因二,可能是成像和光強(qiáng)變化導(dǎo)致黑色小車(chē)上一些部分被漏檢。這一不足有待改進(jìn),將是下一步研究的重點(diǎn)。
[1]Lin Rui,Du Zhijiang,Sun Lining.Moving Object Tracking based on Mobile Robot Vision[C].China:International Conference on Mechatronies and Automation,2009:3625-3630.
[2]Yuqiang Fang,Bin Dai.An Improved Moving Target Detecting and Tracking Based On Optical Flow Technique and Kalman Filter[C].Proceedings of 2009 4th International Conference on Computer Science& Education,2009:1197-1202.
[3]Robert T.Collins,Alan J.Lipton,Takeo Kanade,et al.A system for video surveillance and monitoring:VSAM final report[R].The Robotics Institute,Carnegie Mellon University,Pittsburgh PA,2000.
[4]張 瑋,王 平.基于動(dòng)態(tài)背景的視頻圖像運(yùn)動(dòng)檢測(cè)[J].科技廣場(chǎng),2007,(11):127-130.
[5]何衛(wèi)華,李平,文玉梅,等.復(fù)雜背景下基于圖像融合的運(yùn)動(dòng)目標(biāo)輪廓提取算法[J].計(jì)算機(jī)應(yīng)用,2006,2(1):123-126.
[6]Grzegorz M.Wojcik,Wieslaw A.Kaminski.Liquid state machine built of Hodgkin-Huxley neurons and pattern recognition[J].Neurocomputing,2004,58-60:245-251.
[7]李秋林,何加峰.基于三幀差法和交叉熵閾值法的車(chē)輛檢測(cè)[J]. 計(jì)算機(jī)工程.2011,37(4):172-174.
[8]Claudio Rosito Jung.Unsupervised Multiscale Segmentation of Color Images[J].Pattern Recognition Letters ,2007 ,28:523-533.
[9]Rafael C.Gonzalez,Richard E.Woods,Steven L.Eddins.Digital Image Processing Using MATLAB[M].阮秋琦等譯.北京:電子工業(yè)出版社,2009.