朱一峰,陳麗華
(朝陽師范高等??茖W(xué)校,遼寧 朝陽 122000)
人體運(yùn)動目標(biāo)檢測與跟蹤系統(tǒng)設(shè)計及算法仿真實(shí)現(xiàn)
朱一峰,陳麗華
(朝陽師范高等??茖W(xué)校,遼寧 朝陽 122000)
在人體運(yùn)動目標(biāo)檢測部分,根據(jù)室內(nèi)監(jiān)控的特點(diǎn),提出了先采用統(tǒng)計平均法獲取室內(nèi)背景,然后選用背景減除法對運(yùn)動目標(biāo)進(jìn)行檢測,接著利用改進(jìn)的區(qū)域增長法對屬于同一目標(biāo)的像素區(qū)域進(jìn)行合并,判斷并提取人體目標(biāo)。在人體跟蹤部分,使用卡爾曼濾波器預(yù)測目標(biāo)參數(shù),再根據(jù)預(yù)測參數(shù)跟蹤人體目標(biāo),得到行人的運(yùn)動軌跡。利用Matlab/Simulink對整個系統(tǒng)進(jìn)行建模仿真,并不斷修正算法的參數(shù)。通過室內(nèi)實(shí)際采集的幾個視頻序列進(jìn)行試驗,該算法能夠正確地檢測并且跟蹤運(yùn)動的人體。
運(yùn)動目標(biāo)檢測與跟蹤;背景減除法;卡爾曼濾波;Simulink
人體運(yùn)動目標(biāo)跟蹤是計算機(jī)視覺研究[1]的一個核心課題之一,它在醫(yī)學(xué)研究、監(jiān)視、統(tǒng)計、安防等領(lǐng)域有著非常重要的實(shí)用價值和廣闊的發(fā)展前景。在視頻監(jiān)視中人體運(yùn)動目標(biāo)跟蹤不但可以提供被監(jiān)視人體目標(biāo)的運(yùn)動軌跡,也為進(jìn)行場景中人體目標(biāo)的運(yùn)動分析和場景分析[2]提供了可靠的數(shù)據(jù)來源,同時運(yùn)動目標(biāo)的跟蹤信息也為運(yùn)動目標(biāo)的正確檢測以及識別提供了幫助。
筆者研究的人體運(yùn)動檢測和跟蹤方法[3-4]主要是針對室內(nèi)的監(jiān)控應(yīng)用,尤其是在單個房間或病房內(nèi)的情況,這種應(yīng)用具有以下特點(diǎn):①背景相對簡單;②攝像頭固定;③光照等引起的背景變化比較緩和;④室內(nèi)人體的運(yùn)動速度比較緩慢;⑤對人體檢測和跟蹤必須具有實(shí)時性,應(yīng)最快地獲得人體的具體運(yùn)動信息??紤]以上特點(diǎn),為了減少計算復(fù)雜度,增強(qiáng)處理的實(shí)時性,采用背景減除法[5]來對場景中的運(yùn)動人體進(jìn)行檢測,然后采用Kalman濾波的方法[6]預(yù)測和估計人體目標(biāo)在下一幀中的位置,最后用矩形框標(biāo)識出人體并且輸出人體運(yùn)動的位置信息,為將來人體行為的理解和分析奠定基礎(chǔ)。
根據(jù)系統(tǒng)的設(shè)計目標(biāo)和對系統(tǒng)的分析,系統(tǒng)的總體設(shè)計框架如圖1所示。
圖1 系統(tǒng)總體設(shè)計框架圖
1)視頻序列輸入模塊:從視頻文件讀入一個視頻序列。
2)背景估計模塊:此模塊采用統(tǒng)計平均法來估計和更新背景模型。
3)圖像分割[7]模塊:在此模塊中,先通過背景減除法,再利用Otsu自動閾值法對圖像進(jìn)行分割,把表示運(yùn)動目標(biāo)的像素與背景相分離。
4)人體運(yùn)動檢測模塊:對于屬于同一目標(biāo)的區(qū)域進(jìn)行統(tǒng)計與合并,并且用矩形框標(biāo)記出檢測到的運(yùn)動目標(biāo),并根據(jù)人體特征判斷出目標(biāo)是否為人體。
5)人體運(yùn)動跟蹤模塊:在此模塊中,主要利用Kalman濾波原理預(yù)測和估計當(dāng)前幀的人體位置。
6)結(jié)果顯示模塊:顯示運(yùn)動人體的跟蹤結(jié)果。
Simulink是實(shí)現(xiàn)動態(tài)系統(tǒng)仿真的一個集成環(huán)境。其主要功能是對動態(tài)系統(tǒng)進(jìn)行適當(dāng)?shù)姆抡娣治?,從而可以在做出?shí)際系統(tǒng)之前預(yù)先對系統(tǒng)所采用的算法進(jìn)行分析,然后對其做出適當(dāng)?shù)男拚蛊涓臃舷到y(tǒng)的設(shè)計目標(biāo)。這樣做不僅可以得到更加合適的算法,而且還可以增強(qiáng)系統(tǒng)的性能,減少系統(tǒng)反復(fù)修改的時間,達(dá)到高效開發(fā)系統(tǒng)的目標(biāo)。鑒于Simulink的功能和優(yōu)點(diǎn),筆者在系統(tǒng)算法驗證階段采用Simulink對算法建模,然后根據(jù)分析結(jié)果對算法模型進(jìn)行修改,使其最終達(dá)到系統(tǒng)設(shè)計的目標(biāo)。
3.1 系統(tǒng)總體設(shè)計的Simulink模型
用Simulink表示系統(tǒng)的總體設(shè)計模型track. mdl如圖2所示。
3.2 背景估計模塊
考慮到攝像機(jī)固定以及室內(nèi)背景的相對簡單、穩(wěn)定,室內(nèi)場景的變化較為緩和,以及場景內(nèi)的目標(biāo)滯留時間較短,而且目標(biāo)出現(xiàn)又不頻繁,為了使背景的估計具有較快的運(yùn)算速度和較高的實(shí)時性,在不失準(zhǔn)確性的基礎(chǔ)上,該系統(tǒng)選用統(tǒng)計平均法作為自適應(yīng)背景的更新方法[8]對背景進(jìn)行估計。背景估計模塊的子系統(tǒng)模型如圖3所示。
子系統(tǒng)中的Mean模塊就是對背景圖像進(jìn)行多幀平均,Reshape模塊的參數(shù)則隨著輸入圖像的大小而做相應(yīng)的修改,最后輸出的為背景圖像BG。
3.3 圖像分割模塊
由于系統(tǒng)主要是針對室內(nèi)監(jiān)控,并且攝像機(jī)具有固定的特點(diǎn),所以在前面得到背景的基礎(chǔ)上,此模塊采用背景減除法來實(shí)現(xiàn)運(yùn)動目標(biāo)像素與背景的分離[9-10]。此子系統(tǒng)的Authreshold模塊采用的是由Otsu[11]自動閾值與分割因子seg_scale的乘積作為分割閾值對圖像進(jìn)行分割,輸出的Emetric表示對圖像分割的有效性度量值,若其大于所設(shè)定的度量值seg_metric,則表明輸出的二值圖像[12]效果較好,可以為后面的處理所使用。此子系統(tǒng)最終輸出運(yùn)動目標(biāo)的二值圖像。圖像分割模塊的詳細(xì)設(shè)計模型如圖4所示。
3.4 人體運(yùn)動檢測模塊
人體運(yùn)動檢測模塊的設(shè)計模型如圖5所示。
模塊首先對圖像分割的運(yùn)動目標(biāo)二值圖像進(jìn)行閉運(yùn)算,接著利用Simulink圖像處理工具包中的Blob Analysis單元分析得到屬于運(yùn)動目標(biāo)的多個片狀圖像區(qū)域 (blob),其中該系統(tǒng)在對二值圖像目標(biāo)進(jìn)行Blob Analysis單元分析的時候選用的是8連通區(qū)域。
圖2 系統(tǒng)的總體設(shè)計模型
圖3 背景估計模型
圖4 圖像分割模型
圖5 運(yùn)動人體檢測模型
模塊中的Blob Analysis單元可為視覺系統(tǒng)提供圖像中區(qū)域 (斑點(diǎn))的數(shù)量、位置、形狀和方向,還可提供相關(guān)斑點(diǎn)間的拓?fù)浣Y(jié)構(gòu)。Blob Analysis單元是一種對閉合目標(biāo)形狀進(jìn)行分析處理的基本方法,其輸入主要是針對二值化圖像,它被包含在Simulink的視頻與圖像處理工具包內(nèi),可以直接在 Simulink中調(diào)用。通過 Blob Analysis單元對閉運(yùn)算的結(jié)果進(jìn)行分析后,自動輸出被標(biāo)識模塊區(qū)域的大小、位置和數(shù)目等。最后用改進(jìn)的區(qū)域增長法對屬于同一目標(biāo)的區(qū)域進(jìn)行合并,其基本思想是:先計算各個區(qū)域之間的距離,再分別與在系統(tǒng)的Edit parameter屬性中設(shè)定的合并閾值merge_thresh相比較,然后再決定是否對區(qū)域進(jìn)行合并,最終檢測并提取出整個運(yùn)動目標(biāo)。判斷并合并目標(biāo)區(qū)域的詳細(xì)模型如圖6所示。檢測出的運(yùn)動目標(biāo)用矩形框標(biāo)識出來,位置用坐標(biāo)(r,c,h,w)表示,其中r和c分別代表矩形框左上頂點(diǎn)的橫坐標(biāo)與縱坐標(biāo),h和w分別代表矩形框的高與寬。最后根據(jù)運(yùn)動人體形狀與室內(nèi)其他運(yùn)動物體的明顯不同特征,依據(jù)得出的矩形框的高(h)、寬(w)比來判斷檢測出的運(yùn)動目標(biāo)是否為人體,從而完成人體運(yùn)動目標(biāo)的檢測,并輸出人體的位置坐標(biāo)。
3.5 人體運(yùn)動跟蹤模塊
人體運(yùn)動跟蹤模塊的設(shè)計模型如圖7所示。其中包括的主要子模塊有:
圖6 判斷合并區(qū)域模型
1)尋找并跟蹤匹配目標(biāo)子模塊。用矩形框之間距離Dis與設(shè)定的跟蹤匹配閾值track_thresh(指定兩個連續(xù)幀中同一運(yùn)動目標(biāo)之間的最大距離)相比較,尋找最佳匹配目標(biāo)。
2)Kalman預(yù)測更新子模塊。Kalman濾波器根據(jù)上一幀人體矩形框位置預(yù)測當(dāng)前幀的人體矩形框位置,并輸出當(dāng)前幀中人體矩形框所在位置的估計值。
圖7 運(yùn)動人體跟蹤模型
3.6 結(jié)果顯示模塊
1)根據(jù)人體位置坐標(biāo)(r,c,h,w)畫出跟蹤人體的矩形框。另外對于多人的情況,還利用矩形框的不同顏色區(qū)分同一場景中的不同人體。
2)利用Simulink中的Video Display模塊顯示檢測和跟蹤結(jié)果。其中包括提取的背景圖像,經(jīng)閾值分割后的二值圖像,在運(yùn)動人體上添加矩形框后的檢測和跟蹤圖像。
3)利用Simulink中的Scope模塊分別顯示檢測和跟蹤后的人體位置坐標(biāo)曲線圖。
4)輸出人體的二維(x,y)坐標(biāo)圖和三維(x,y,t)坐標(biāo)圖。
4.1 系統(tǒng)模型初始化設(shè)置
試驗前,根據(jù)所處的試驗環(huán)境和人體目標(biāo)的運(yùn)動情況對模型的Initfcn函數(shù)和主要子模塊進(jìn)行仿真參數(shù)設(shè)置。
1)Initfcn函數(shù)的參數(shù)設(shè)置為:
num_targets=8;%分割目標(biāo)的最大個數(shù)
seg_metric=0.70;%表示對圖像分割有效性度量的最小值
video_frame_size:[240 320]。%定義輸入視頻的大小。
2)系統(tǒng)的Edit parameter屬性:根據(jù)室內(nèi)場景的光線、目標(biāo)大小和運(yùn)動情況等并結(jié)合試驗效果不斷調(diào)整屬性中參數(shù)的大小。根據(jù)本系統(tǒng)的試驗環(huán)境,設(shè)置的參數(shù)大小分別為:
Segmentation threshold scale(即分割因子seg_scale的大小,通常在1附近):1.20;
Box merging thresholds(即檢測模塊中區(qū)域合并閾值merge_thresh的大小,取值范圍是[0,0]到[h,w]):[30,5];
Target tracking threshold(即跟蹤模塊中跟蹤匹配閾值track_thresh的大?。?5。
3)Kalman預(yù)測更新子模塊的初始化參數(shù)設(shè)置為:
初始狀態(tài)估計x^:zeros([6,1]);
初始估計誤差協(xié)方差P^:10*eye(6);
狀態(tài)轉(zhuǎn)換矩陣A:
[1 0 1 0 0 0;0 1 0 1 0 0;0 0 1 0 0 0;0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1];
狀態(tài)噪聲協(xié)方差Q:0.05*eye(6);
觀測矩陣H:[1 0 0 0 0 0;0 1 0 0 0 0;0 0 0 0 1 0;0 0 0 0 0 1];
觀測噪聲協(xié)方差R:2*eye(4)。
4.2 仿真結(jié)果及分析
4.2.1 試驗結(jié)果 試驗環(huán)境:為了真實(shí)模擬室內(nèi)監(jiān)控的效果,地點(diǎn)選在某大廳,利用CCD攝像機(jī)以俯瞰的方式拍攝,其中視頻共有474幀,每幀圖像大小為240×320,幀率為30 fps。然后在PC機(jī)上利用設(shè)計的系統(tǒng)模型對視頻進(jìn)行仿真處理,完成對算法的驗證。
試驗步驟:①從視頻中隨機(jī)抽取原始圖像序列。②原始圖像序列經(jīng)過背景減除法,然后再通過濾波和區(qū)域合并后輸出二值圖像序列。③輸出經(jīng)過人體運(yùn)動目標(biāo)檢測并對目標(biāo)加矩形框后的圖像序列。④ 輸出人體運(yùn)動目標(biāo)跟蹤后的圖像序列。
輸出的人體矩形框位置坐標(biāo)(r,c,h,w)的仿真曲線如圖8所示,其中圖的上半部分是由人體運(yùn)動檢測模塊輸出的仿真曲線,下半部分是由跟蹤模塊輸出的仿真曲線,橫坐標(biāo)表示仿真時間,r表示人體矩形框左上頂點(diǎn)的橫坐標(biāo),c表示人體矩形框左上頂點(diǎn)的縱坐標(biāo),h表示矩形框的高,w表示矩形框的寬。
為了對運(yùn)動人體的跟蹤結(jié)果有一個更加清楚的認(rèn)識,該系統(tǒng)還輸出了在整個視頻序列中人體運(yùn)動的二維(x,y)坐標(biāo)圖和三維(x,y,t)坐標(biāo)圖,如圖9所示。
此外為了更全面的驗證算法的正確性和魯棒性,在試驗中還選取了一個兩人出現(xiàn)的場景,此場景也是在同一室內(nèi)拍攝的,選取其中的幾幀圖像,并對其原始圖像序列和仿真試驗的跟蹤圖像序列進(jìn)行對比。
4.2.2 試驗結(jié)果分析 根據(jù)以上的試驗結(jié)果,結(jié)合系統(tǒng)的設(shè)計可以看出:
1)根據(jù)本系統(tǒng)中室內(nèi)監(jiān)控的特點(diǎn),利用統(tǒng)計平均法提取的背景能夠反映室內(nèi)真實(shí)背景情況,可以滿足室內(nèi)監(jiān)控的需要,為下一步運(yùn)用背景減除法進(jìn)行運(yùn)動目標(biāo)檢測奠定了基礎(chǔ)。
2)通過背景減除法與Otsu自動閾值法相結(jié)合,成功地從每一幀的原始圖像中提取出含有人體運(yùn)動目標(biāo)的像素區(qū)域,再通過數(shù)學(xué)形態(tài)學(xué)的閉運(yùn)算對像素區(qū)域進(jìn)行處理,成功地消除了前景圖像中的噪聲和空洞影響,然后選取合適的合并閾值,通過改進(jìn)的區(qū)域增長法對屬于同一目標(biāo)像素的區(qū)域進(jìn)行合并,從而完成目標(biāo)檢測分析,提取出完整的運(yùn)動目標(biāo)。同時試驗也表明合并閾值的設(shè)置是合理的,能夠滿足合并和提取目標(biāo)的需要。
3)從圖8的人體位置坐標(biāo)曲線以及圖9的人體運(yùn)動的坐標(biāo)圖可以看出,基于Kalman濾波的目標(biāo)跟蹤模型能較為準(zhǔn)確、迅速地得到運(yùn)動目標(biāo)的軌跡,實(shí)現(xiàn)對人體運(yùn)動目標(biāo)的跟蹤。另外通過對兩人跟蹤的試驗結(jié)果可知,基于Kalman濾波的目標(biāo)跟蹤模型有較好的自適應(yīng)性和魯棒性,不僅對單個運(yùn)動目標(biāo)可以進(jìn)行跟蹤,同時也可以跟蹤多個目標(biāo),并且在系統(tǒng)中用不同顏色的矩形框?qū)Σ煌娜梭w運(yùn)動目標(biāo)進(jìn)行標(biāo)注。
圖8 人體位置坐標(biāo)曲線圖
圖9 人體運(yùn)動的二維和三維坐標(biāo)圖
通過對圖8中檢測曲線和跟蹤曲線的對比可知,由于卡爾曼濾波器的濾波功能,使得跟蹤曲線比檢測曲線更加平滑,輸出的人體位置也更加精確。
總之,基于卡爾曼濾波的跟蹤算法能夠?qū)崿F(xiàn)對運(yùn)動人體目標(biāo)的跟蹤,說明人體目標(biāo)的運(yùn)動軌跡能良好地反映目標(biāo)的運(yùn)動情況。
4)根據(jù)試驗結(jié)果,此系統(tǒng)基本上完成了預(yù)先設(shè)計的目標(biāo),驗證了算法的正確性和魯棒性。
筆者首先對要設(shè)計的系統(tǒng)進(jìn)行了分析,然后確定對算法進(jìn)行驗證的試驗平臺Matlab/Simulink,再結(jié)合運(yùn)動目標(biāo)檢測和跟蹤理論以及系統(tǒng)的設(shè)計目標(biāo),通過不斷的分析、調(diào)試和修改,設(shè)計出符合系統(tǒng)要求的Simulink模型。試驗結(jié)果表明,得到的人體目標(biāo)運(yùn)動軌跡能良好地反映人體目標(biāo)的運(yùn)動情況,證明系統(tǒng)能夠滿足設(shè)計要求。
[1]陳毓晶.視頻圖像序列中運(yùn)動目標(biāo)的檢測和跟蹤[D].大連:大連理工大學(xué),2009.
[2]金星.運(yùn)動目標(biāo)檢測和跟蹤及其在視頻監(jiān)控系統(tǒng)中的應(yīng)用[D].杭州:浙江工業(yè)大學(xué),2010.
[3] 滕游.基于DSP的運(yùn)動目標(biāo)檢測與跟蹤系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].杭州:浙江工業(yè)大學(xué),2009.
[4]趙志旭.智能視覺監(jiān)控中的運(yùn)動目標(biāo)檢測與跟蹤[D].成都:電子科技大學(xué),2009.
[5]邱道尹,張文靜,顧波,等.幀差法在運(yùn)動目標(biāo)實(shí)時跟蹤中的應(yīng)用[J].華北水利水電學(xué)院學(xué)報,2009,30(3):45-47.
[6]曲巨寶,林宏基.運(yùn)動圖像快速跟蹤技術(shù)研究[J].重慶師范大學(xué)學(xué)報,2011,28(1):44-48.
[7]楊愛麗.基于單目監(jiān)控中視覺的車輛檢測與跟蹤[D].合肥:合肥工業(yè)大學(xué),2010.
[8]馮形松.基于全方位的運(yùn)動目標(biāo)檢測跟蹤研究[D].杭州:浙江工業(yè)大學(xué),2009.
[9]張娟,毛小波,陳鐵軍.運(yùn)動目標(biāo)跟蹤算法研究綜述[J].計算機(jī)應(yīng)用研究,2009,26(12):4407-4410.
[10]張學(xué)賀,張學(xué)東,丁寧.基于OpenCV的運(yùn)動目標(biāo)檢測與跟蹤[J].遼寧科技大學(xué)學(xué)報,2010,33(5):490-494.
[11]Huston S J,Krapp H G.Visuomotor transformation in the fly gaze stabilization system[J].PLoS Biology,2008,6(7):1468-1478.
[12]張顯亭.復(fù)雜場景中運(yùn)動目標(biāo)魯棒檢測與跟蹤研究[D].太原:中北大學(xué),2010.
ZHU Yi-feng,CHEN Li-hua
(Chaoyang Teachers College,Chaoyang 122000,Liaoning,China)
Detecting and tracking moving object is one of the key technologies in analyzing human movement,and is also an important part of intelligent monitoring system.In the part of detecting,according to characteristics of indoor monitoring,this paper puts forward the method obtaining in indoor background by statistical averaging method,and then uses background subtraction method to detect indoor moving object,and uses an improved regional growth method to connect the areas which belong to the same moving object region.In the part of tracking,this paper uses Kalman filter to predict the location′s parameters of the object.According to the predicted parameters,the system tracks human target and obtains human moving track.The system is modeled and simulated through Matlab/Simulink,and the algorithm parameters are revised accordingly. Through testing several indoor video sequences,it is shown that the algorithm can detect and track human movement correctly.
detecting and tracking for moving object;background subtraction method;Kalman filter;Simulink
TN911.7;TP311
:A
:1673-0143(2012)03-0058-06
(責(zé)任編輯:陳 曠)
2012-04-09
朱一峰 (1983—),男,講師,碩士,研究方向:計算機(jī)教學(xué)研究。