摘 要: 提出一種基于MPEG-4的運(yùn)動(dòng)目標(biāo)檢測跟蹤的方法,通過對MPEG-4編碼中的運(yùn)動(dòng)矢量進(jìn)行閾值分割,、形態(tài)濾波等,,實(shí)現(xiàn)運(yùn)動(dòng)物體的檢測,并在ADSP-BF533上進(jìn)行實(shí)現(xiàn),,給出實(shí)驗(yàn)結(jié)果,。
關(guān)鍵詞: 視頻監(jiān)控 運(yùn)動(dòng)檢測 ADSP-BF533 MPEG-4
1 研究現(xiàn)狀
目前國內(nèi)數(shù)字化視頻監(jiān)控系統(tǒng)發(fā)展迅速,,嵌入式系統(tǒng)更是由于其成本低,、穩(wěn)定性高、可維護(hù)性強(qiáng)等優(yōu)勢而成為新的發(fā)展方向,。就壓縮技術(shù)來看,,主要采用MJPEG、MPEG-1和MPEG-4,,其中MPEG-4在壓縮方法上遠(yuǎn)遠(yuǎn)優(yōu)于其他2種,,在錄像存儲容量、清晰度、幀率可調(diào)及網(wǎng)絡(luò)傳輸上都有大幅度的提高,,因此已成為目前發(fā)展的熱點(diǎn),。
運(yùn)動(dòng)目標(biāo)的檢測和跟蹤是視頻監(jiān)控中的重要技術(shù),現(xiàn)在的運(yùn)動(dòng)目標(biāo)檢測和跟蹤技術(shù)包括幀差法,、光流法,、統(tǒng)計(jì)學(xué)方法和貝葉斯分割法等,在視頻監(jiān)控中主要應(yīng)用的是幀差法,。這些方法都是基于象素進(jìn)行處理的,,而且脫離了壓縮技術(shù),運(yùn)算量和復(fù)雜度都比較大,,不適合嵌入式視頻監(jiān)控系統(tǒng),。
本文提出一種基于MPEG-4編解碼系統(tǒng)的運(yùn)動(dòng)目標(biāo)檢測的方法,并在ADI公司的ADSP-BF533上進(jìn)行實(shí)現(xiàn),,測試結(jié)果驗(yàn)證了算法的正確性和可行性,。
由于MPEG-4將對象按運(yùn)動(dòng)、形狀,、紋理三類信息進(jìn)行編碼,,運(yùn)動(dòng)信息編碼主要是通過運(yùn)動(dòng)估計(jì)和補(bǔ)償來完成。其中運(yùn)動(dòng)估計(jì)就是在參考畫面上搜尋最相似的方塊,,并確定二塊相對位置的變化,,即確定運(yùn)動(dòng)矢量MV的過程。而運(yùn)動(dòng)目標(biāo)的檢測就是要將運(yùn)動(dòng)的物體與背景進(jìn)行區(qū)分,。所以可以充分利用二者的聯(lián)系,,將MPEG-4編碼中運(yùn)動(dòng)估計(jì)所得到的運(yùn)動(dòng)矢量信息作為檢測依據(jù)的基本信息,這樣無須再增加額外的運(yùn)算和存儲就能獲取整幀圖像的所有運(yùn)動(dòng)信息,。
本文提出的檢測運(yùn)動(dòng)物體的方法就是在編碼端,,對提取的運(yùn)動(dòng)信息進(jìn)行分析,濾除噪聲區(qū)域,,以準(zhǔn)確分割運(yùn)動(dòng)物體,,將目標(biāo)塊聚類在最小的外接矩形框內(nèi)。并且將此時(shí)劃分出來的運(yùn)動(dòng)目標(biāo)塊進(jìn)行標(biāo)記,,隨編碼流輸出,。在解碼端,從碼流中讀取相應(yīng)運(yùn)動(dòng)塊標(biāo)志信息,,判斷邊緣塊,,在解碼圖像上疊加邊框后輸出顯示。對運(yùn)動(dòng)物體的跟蹤則主要通過將每幀識別出的運(yùn)動(dòng)圖像質(zhì)心相連來實(shí)現(xiàn),,所以跟蹤相對比較容易,,重點(diǎn)還是單幀的運(yùn)動(dòng)目標(biāo)檢測,。
2 運(yùn)動(dòng)目標(biāo)檢測與跟蹤
2.1 編碼端實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)分割
編碼部分主要是檢測分割出運(yùn)動(dòng)物體,并對物體包含的所有運(yùn)動(dòng)塊進(jìn)行標(biāo)記,,隨碼流輸出,。為便于監(jiān)測觀看,檢測出的運(yùn)動(dòng)物體要聚類成矩形,。編碼端實(shí)現(xiàn)框圖如圖1所示,。
MPEG-4的運(yùn)動(dòng)信息編碼有多種算法,本文采用的運(yùn)動(dòng)估計(jì)算法是塊匹配方法,,既可以基于宏塊(16*16),,也可以基于塊(8*8)。匹配準(zhǔn)則用的是絕對誤差和(SAD)準(zhǔn)則,。在尋找最佳匹配點(diǎn)的搜索算法中則采用先整象素再半象素的搜索,。整象素用的是菱形而半象素用的則是方形。運(yùn)動(dòng)估計(jì)后輸出的運(yùn)動(dòng)矢量以宏塊和塊為單元,。由于宏塊的運(yùn)動(dòng)矢量已體現(xiàn)了各塊運(yùn)動(dòng)的大致信息,,所以運(yùn)動(dòng)物體檢測算法提取的運(yùn)動(dòng)矢量以宏塊為基本單元。
運(yùn)動(dòng)檢測就是通過對提取的運(yùn)動(dòng)矢量所形成的二維圖進(jìn)行分割,。運(yùn)動(dòng)物體分割框圖如圖2所示,。
由于運(yùn)動(dòng)矢量包括x和y二個(gè)分量,為便于后面分析處理,,先通過下式對其進(jìn)行降維:
式(1)中,,I(x,y)是一維運(yùn)動(dòng)信息變量,,其中x和y分別代表宏塊位置的水平和垂直坐標(biāo),,MVx和MVy是該位置運(yùn)動(dòng)矢量的2分量。然后將I(x,,y)進(jìn)行閾值分割得二值函數(shù)B(x,,y),即:
式(2)中,,Thresh為分割的閾值。閾值分割可以大致確定運(yùn)動(dòng)區(qū)域,。由于太微小的變化多半是噪聲,,所以忽略不計(jì)。其中閾值的選取可根據(jù)需要按監(jiān)控對象來定:對于劇烈運(yùn)動(dòng)的可選取范圍大些,,如監(jiān)視人員的出入,,這樣可使最后框定的物體更精確,;反之,,對于細(xì)微運(yùn)動(dòng)的則選取小閾值,,以免漏報(bào)。
通過閾值分割得到的二值圖只是標(biāo)識了運(yùn)動(dòng)的大致區(qū)域,,要想準(zhǔn)確地確定運(yùn)動(dòng)物體,,還需從二方面進(jìn)行濾波處理。(1)對于本不屬于運(yùn)動(dòng)物體但被標(biāo)識為運(yùn)動(dòng)塊的區(qū)域進(jìn)行處理,,即除噪,。這里的噪聲主要是指由于物體運(yùn)動(dòng)而帶來的陰影和周邊光線的變化。噪聲的連通區(qū)域一般很小或?yàn)楣铝⒑陦K,。(2)對屬于運(yùn)動(dòng)物體但未進(jìn)行標(biāo)識的塊進(jìn)行處理,,即填補(bǔ)。這里所要填補(bǔ)的是由于該宏塊運(yùn)動(dòng)前后的屬性相差不大經(jīng)過閾值分割后錯(cuò)判而造成的,。這種情況一般表現(xiàn)為運(yùn)動(dòng)區(qū)域中的空洞或區(qū)域邊緣凹槽,。這二部分的處理采用形態(tài)濾波,其實(shí)現(xiàn)框圖如圖3所示,。
形態(tài)濾波包括邊緣除噪,、中心除噪和中心填補(bǔ)三部分。形態(tài)濾波中,,B表示二值圖像,,S表示結(jié)構(gòu)元素,Sxy表示一個(gè)結(jié)構(gòu)元素的原點(diǎn)平移到點(diǎn)(x,,y),。邊緣除噪運(yùn)算如下:
式(3)中的A表示結(jié)構(gòu)元素與二值圖像的交集,式(4)中COUNT(A)表示計(jì)算集合A中的元素個(gè)數(shù),。根據(jù)邊緣位置不同,,選取的結(jié)構(gòu)元素為不同類型的全1三鄰域。
中心除噪與邊緣除噪類似,,在具體實(shí)現(xiàn)過程中為減少計(jì)算量,,將除噪和填補(bǔ)同時(shí)進(jìn)行,運(yùn)算過程如下:
其中,,COUNT(A)<thresh_noise為中心除噪過程,,而COUNT(A)>thresh_padding為中心填補(bǔ)過程。結(jié)構(gòu)元素Sxy取全1八連通域,。
形態(tài)濾波包含多種算法,,考慮到該算法要應(yīng)用于DSP中,編程時(shí)判斷語句會(huì)大大增加運(yùn)算時(shí)間,。所以在是否屬于運(yùn)動(dòng)塊的判定上,,沒對鄰域運(yùn)動(dòng)信息分布采用復(fù)雜的判斷,而是通過計(jì)算其中包含運(yùn)動(dòng)塊的個(gè)數(shù)來判定,。形態(tài)濾波前后的效果圖如圖4所示,。
圖4中疊加在原圖像上的陰影就是對運(yùn)動(dòng)宏塊作的標(biāo)記,。從圖中可以看出,由于物體運(yùn)動(dòng)產(chǎn)生的陰影噪聲已得到很好的消除,,即左圖中最下邊的標(biāo)記塊,,而運(yùn)動(dòng)物體左邊的零散標(biāo)記塊,是由于運(yùn)動(dòng)造成的背景變化,,也基本濾除了,。此時(shí)運(yùn)動(dòng)物體已基本被標(biāo)志出。
形態(tài)濾波參數(shù)變化的效果圖如圖5所示,,它對分割運(yùn)動(dòng)區(qū)域會(huì)產(chǎn)生影響,。左圖中thresh_noise=4、thresh_padding=5,;右圖中thresh_noise=2,、thresh_padding=7,從圖中可看出左邊的形態(tài)濾波效果更好,。
經(jīng)過除噪和填補(bǔ)的形態(tài)濾波,,基本分割出運(yùn)動(dòng)物體。最后將運(yùn)動(dòng)物體聚類到最小矩形區(qū)域內(nèi),,并對所有矩形區(qū)域內(nèi)的塊進(jìn)行標(biāo)記并輸出到碼流,。
2.2 解碼端實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的檢測
解碼部分主要就是在解碼圖像上為已經(jīng)標(biāo)記好的運(yùn)動(dòng)物體矩形區(qū)域加上框,以顯示輸出,。具體實(shí)現(xiàn)方法是:從碼流中提取各宏塊運(yùn)動(dòng)標(biāo)志信息,,對于運(yùn)動(dòng)塊,判斷其是否為矩形區(qū)域邊緣,,若是邊緣則根據(jù)類型繪出相應(yīng)框,。解碼端實(shí)現(xiàn)框圖如圖6所示。
判斷運(yùn)動(dòng)宏塊是否在矩形框邊緣時(shí),,采用模板匹配法,。模板使用四連通標(biāo)準(zhǔn),將垂直和水平方向鄰點(diǎn)作為鄰域,。宏塊與模板匹配后,,根據(jù)判定的邊緣類型再加邊。邊緣四模板如圖7所示,。
2.3 運(yùn)動(dòng)目標(biāo)的跟蹤
MPEG-4將圖像幀分為I,、P、B三種類型,。P,、B屬于預(yù)測幀,需要用到運(yùn)動(dòng)編碼,。而I是幀內(nèi)編碼,,沒有運(yùn)動(dòng)估計(jì),。前面都是針對預(yù)測幀而做的運(yùn)動(dòng)物體檢測,將每幀圖像確定的運(yùn)動(dòng)區(qū)域質(zhì)心提取,,整個(gè)視頻序列連接而成的軌跡就實(shí)現(xiàn)了對運(yùn)動(dòng)物體的跟蹤,。其中I幀并沒有識別運(yùn)動(dòng)物體,,但由于I幀出現(xiàn)間隔一般在十幀或幾十幀,,所以對于整個(gè)物體運(yùn)動(dòng)的跟蹤沒有什么影響。
3 算法的DSP實(shí)現(xiàn)結(jié)果和結(jié)論
本文提出的運(yùn)動(dòng)目標(biāo)檢測算法應(yīng)用于嵌入式視頻監(jiān)控系統(tǒng),,而在嵌入式監(jiān)控系統(tǒng)中對于視頻壓縮處理部分都采用DSP芯片來完成,,所以需要使用DSP芯片來對算法進(jìn)行測試和驗(yàn)證。Blackfin是ADI推出的一系列高性能16位定點(diǎn)處理器,,專為滿足當(dāng)今嵌入式音頻,、視頻和通信的計(jì)算需要與功率限制而設(shè)計(jì)。本文選用目前該系列中性能最好的處理器BF533,。Visual DSP++是Blackfin的編譯器,,它支持C語言編譯,還提供了很好的性能評估工具statistical profiling,,可以方便地對C代碼進(jìn)行評估和優(yōu)化,。測試環(huán)境:硬件為BF533的EZ-KIT,軟件為Visual DSP++ 3.5,。測試對象:(1)用攝像頭采集的30幀灰度視頻序列,,序列為在純色背景下晃動(dòng)U盤形成的,采集過程中攝像頭位置不變,,處理格式為CIF(352*288),。前面采用的效果圖均出自此序列。(2)針對實(shí)際監(jiān)控場景采集的100幀序列,,處理格式為352*240,。
U盤運(yùn)動(dòng)序列檢測結(jié)果圖像和人運(yùn)動(dòng)監(jiān)控監(jiān)測結(jié)果圖像分別如圖8和圖9所示??梢钥闯霰疚奶岢龅倪\(yùn)動(dòng)檢測算法能正確檢測出運(yùn)動(dòng)圖像,。從圖9的檢測圖像還可以看出該算法能檢測出多于一個(gè)的運(yùn)動(dòng)目標(biāo)。第30和60幀圖像中,,能檢測出2個(gè)人同時(shí)運(yùn)動(dòng),。
對于算法的可行性主要從輸出碼率和DSP運(yùn)行的周期數(shù)二方面來評估。輸出碼率:每個(gè)運(yùn)動(dòng)標(biāo)志按4位輸出到碼流,,以352*288圖像為例,,每幀增加了352*288/(16*16)*0.5=198字節(jié),碼流的增加量非常小,,對于網(wǎng)絡(luò)傳輸不會(huì)造成任何影響,。運(yùn)行周期:用Blackfin 實(shí)現(xiàn)MPEG-4編碼每幀需要約10M周期,,而每幀用于檢測標(biāo)志運(yùn)動(dòng)區(qū)域的計(jì)算只占用不足0.4M周期,不會(huì)影響編碼的實(shí)時(shí)性,。
由此可見,,本文提出的基于MPEG-4的運(yùn)動(dòng)檢測跟蹤方法正確可行,完全可用DSP來實(shí)現(xiàn),,并可應(yīng)用于嵌入式視頻監(jiān)控系統(tǒng)中,。
參考文獻(xiàn)
1 International Organization for Standardization ISO/IEC JTC1/SC29/WG11 N3342.Overview of the MPEG-4 Standard,2000
2 詹翊強(qiáng),,戚飛虎,,劉天明.基于MPEG-2視頻流的目標(biāo)跟蹤快速算法.上海交通大學(xué)學(xué)報(bào),2001,;35(9)
3 袁潮,,黃曉偉,李川.基于ADI公司Blackfin處理器的MPEG-4視頻編碼器的設(shè)計(jì).電子產(chǎn)品世界,,2003,;(9)
4 李在銘.數(shù)字圖像處理壓縮與識別技術(shù).成都:電子科技大學(xué)出版社,2000