《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于MPEG-4的運動目標(biāo)檢測跟蹤的DSP實現(xiàn)
基于MPEG-4的運動目標(biāo)檢測跟蹤的DSP實現(xiàn)
李 巖,,孫光民,吳 強,,于 慧
(北京工業(yè)大學(xué) 電子工程系,,北京100022)
摘要: 提出一種基于MPEG-4的運動目標(biāo)檢測跟蹤的方法,,通過對MPEG-4編碼中的運動矢量進行閾值分割,、形態(tài)濾波等,,實現(xiàn)運動物體的檢測,并在ADSP-BF533上進行實現(xiàn),,給出實驗結(jié)果,。
Abstract:
Key words :

摘   要: 提出一種基于MPEG-4的運動目標(biāo)檢測跟蹤的方法,,通過對MPEG-4編碼中的運動矢量進行閾值分割,、形態(tài)濾波等,實現(xiàn)運動物體的檢測,,并在ADSP-BF533上進行實現(xiàn),,給出實驗結(jié)果。
關(guān)鍵詞: 視頻監(jiān)控  運動檢測  ADSP-BF533  MPEG-4

1  研究現(xiàn)狀
  目前國內(nèi)數(shù)字化視頻監(jiān)控系統(tǒng)發(fā)展迅速,,嵌入式系統(tǒng)更是由于其成本低,、穩(wěn)定性高、可維護性強等優(yōu)勢而成為新的發(fā)展方向,。就壓縮技術(shù)來看,,主要采用MJPEG、MPEG-1和MPEG-4,,其中MPEG-4在壓縮方法上遠遠優(yōu)于其他2種,,在錄像存儲容量、清晰度,、幀率可調(diào)及網(wǎng)絡(luò)傳輸上都有大幅度的提高,,因此已成為目前發(fā)展的熱點。
  運動目標(biāo)的檢測和跟蹤是視頻監(jiān)控中的重要技術(shù),,現(xiàn)在的運動目標(biāo)檢測和跟蹤技術(shù)包括幀差法,、光流法、統(tǒng)計學(xué)方法和貝葉斯分割法等,,在視頻監(jiān)控中主要應(yīng)用的是幀差法,。這些方法都是基于象素進行處理的,,而且脫離了壓縮技術(shù),運算量和復(fù)雜度都比較大,,不適合嵌入式視頻監(jiān)控系統(tǒng),。
  本文提出一種基于MPEG-4編解碼系統(tǒng)的運動目標(biāo)檢測的方法,并在ADI公司的ADSP-BF533上進行實現(xiàn),,測試結(jié)果驗證了算法的正確性和可行性,。
  由于MPEG-4將對象按運動、形狀,、紋理三類信息進行編碼,,運動信息編碼主要是通過運動估計和補償來完成。其中運動估計就是在參考畫面上搜尋最相似的方塊,,并確定二塊相對位置的變化,,即確定運動矢量MV的過程。而運動目標(biāo)的檢測就是要將運動的物體與背景進行區(qū)分,。所以可以充分利用二者的聯(lián)系,,將MPEG-4編碼中運動估計所得到的運動矢量信息作為檢測依據(jù)的基本信息,這樣無須再增加額外的運算和存儲就能獲取整幀圖像的所有運動信息,。
  本文提出的檢測運動物體的方法就是在編碼端,,對提取的運動信息進行分析,濾除噪聲區(qū)域,,以準(zhǔn)確分割運動物體,,將目標(biāo)塊聚類在最小的外接矩形框內(nèi)。并且將此時劃分出來的運動目標(biāo)塊進行標(biāo)記,,隨編碼流輸出,。在解碼端,從碼流中讀取相應(yīng)運動塊標(biāo)志信息,,判斷邊緣塊,,在解碼圖像上疊加邊框后輸出顯示。對運動物體的跟蹤則主要通過將每幀識別出的運動圖像質(zhì)心相連來實現(xiàn),,所以跟蹤相對比較容易,,重點還是單幀的運動目標(biāo)檢測。
2  運動目標(biāo)檢測與跟蹤
2.1 編碼端實現(xiàn)運動目標(biāo)分割

  編碼部分主要是檢測分割出運動物體,,并對物體包含的所有運動塊進行標(biāo)記,,隨碼流輸出。為便于監(jiān)測觀看,,檢測出的運動物體要聚類成矩形,。編碼端實現(xiàn)框圖如圖1所示。


  MPEG-4的運動信息編碼有多種算法,本文采用的運動估計算法是塊匹配方法,,既可以基于宏塊(16*16),,也可以基于塊(8*8)。匹配準(zhǔn)則用的是絕對誤差和(SAD)準(zhǔn)則,。在尋找最佳匹配點的搜索算法中則采用先整象素再半象素的搜索,。整象素用的是菱形而半象素用的則是方形。運動估計后輸出的運動矢量以宏塊和塊為單元,。由于宏塊的運動矢量已體現(xiàn)了各塊運動的大致信息,,所以運動物體檢測算法提取的運動矢量以宏塊為基本單元。
  運動檢測就是通過對提取的運動矢量所形成的二維圖進行分割,。運動物體分割框圖如圖2所示,。
  由于運動矢量包括x和y二個分量,為便于后面分析處理,,先通過下式對其進行降維:

  式(1)中,,I(x,y)是一維運動信息變量,,其中x和y分別代表宏塊位置的水平和垂直坐標(biāo),,MVx和MVy是該位置運動矢量的2分量。然后將I(x,,y)進行閾值分割得二值函數(shù)B(x,,y),即:

式(2)中,,Thresh為分割的閾值,。閾值分割可以大致確定運動區(qū)域。由于太微小的變化多半是噪聲,,所以忽略不計。其中閾值的選取可根據(jù)需要按監(jiān)控對象來定:對于劇烈運動的可選取范圍大些,,如監(jiān)視人員的出入,,這樣可使最后框定的物體更精確;反之,,對于細微運動的則選取小閾值,,以免漏報。
  通過閾值分割得到的二值圖只是標(biāo)識了運動的大致區(qū)域,,要想準(zhǔn)確地確定運動物體,,還需從二方面進行濾波處理。(1)對于本不屬于運動物體但被標(biāo)識為運動塊的區(qū)域進行處理,,即除噪,。這里的噪聲主要是指由于物體運動而帶來的陰影和周邊光線的變化。噪聲的連通區(qū)域一般很小或為孤立宏塊。(2)對屬于運動物體但未進行標(biāo)識的塊進行處理,,即填補,。這里所要填補的是由于該宏塊運動前后的屬性相差不大經(jīng)過閾值分割后錯判而造成的。這種情況一般表現(xiàn)為運動區(qū)域中的空洞或區(qū)域邊緣凹槽,。這二部分的處理采用形態(tài)濾波,,其實現(xiàn)框圖如圖3所示。


  形態(tài)濾波包括邊緣除噪,、中心除噪和中心填補三部分,。形態(tài)濾波中,B表示二值圖像,,S表示結(jié)構(gòu)元素,,Sxy表示一個結(jié)構(gòu)元素的原點平移到點(x,y),。邊緣除噪運算如下:

  

式(3)中的A表示結(jié)構(gòu)元素與二值圖像的交集,,式(4)中COUNT(A)表示計算集合A中的元素個數(shù)。根據(jù)邊緣位置不同,,選取的結(jié)構(gòu)元素為不同類型的全1三鄰域,。
  中心除噪與邊緣除噪類似,在具體實現(xiàn)過程中為減少計算量,,將除噪和填補同時進行,,運算過程如下:

  

其中,COUNT(A)<thresh_noise為中心除噪過程,,而COUNT(A)>thresh_padding為中心填補過程,。結(jié)構(gòu)元素Sxy取全1八連通域。
  形態(tài)濾波包含多種算法,,考慮到該算法要應(yīng)用于DSP中,,編程時判斷語句會大大增加運算時間。所以在是否屬于運動塊的判定上,,沒對鄰域運動信息分布采用復(fù)雜的判斷,,而是通過計算其中包含運動塊的個數(shù)來判定。形態(tài)濾波前后的效果圖如圖4所示,。


  圖4中疊加在原圖像上的陰影就是對運動宏塊作的標(biāo)記,。從圖中可以看出,由于物體運動產(chǎn)生的陰影噪聲已得到很好的消除,,即左圖中最下邊的標(biāo)記塊,,而運動物體左邊的零散標(biāo)記塊,是由于運動造成的背景變化,,也基本濾除了,。此時運動物體已基本被標(biāo)志出。
  形態(tài)濾波參數(shù)變化的效果圖如圖5所示,它對分割運動區(qū)域會產(chǎn)生影響,。左圖中thresh_noise=4,、thresh_padding=5;右圖中thresh_noise=2,、thresh_padding=7,,從圖中可看出左邊的形態(tài)濾波效果更好。


  經(jīng)過除噪和填補的形態(tài)濾波,,基本分割出運動物體,。最后將運動物體聚類到最小矩形區(qū)域內(nèi),并對所有矩形區(qū)域內(nèi)的塊進行標(biāo)記并輸出到碼流,。
2.2 解碼端實現(xiàn)運動目標(biāo)的檢測
  解碼部分主要就是在解碼圖像上為已經(jīng)標(biāo)記好的運動物體矩形區(qū)域加上框,,以顯示輸出。具體實現(xiàn)方法是:從碼流中提取各宏塊運動標(biāo)志信息,,對于運動塊,,判斷其是否為矩形區(qū)域邊緣,若是邊緣則根據(jù)類型繪出相應(yīng)框,。解碼端實現(xiàn)框圖如圖6所示,。


  判斷運動宏塊是否在矩形框邊緣時,采用模板匹配法,。模板使用四連通標(biāo)準(zhǔn),,將垂直和水平方向鄰點作為鄰域。宏塊與模板匹配后,,根據(jù)判定的邊緣類型再加邊,。邊緣四模板如圖7所示。


2.3 運動目標(biāo)的跟蹤
  MPEG-4將圖像幀分為I,、P,、B三種類型。P,、B屬于預(yù)測幀,,需要用到運動編碼。而I是幀內(nèi)編碼,,沒有運動估計。前面都是針對預(yù)測幀而做的運動物體檢測,,將每幀圖像確定的運動區(qū)域質(zhì)心提取,,整個視頻序列連接而成的軌跡就實現(xiàn)了對運動物體的跟蹤。其中I幀并沒有識別運動物體,,但由于I幀出現(xiàn)間隔一般在十幀或幾十幀,,所以對于整個物體運動的跟蹤沒有什么影響。
3  算法的DSP實現(xiàn)結(jié)果和結(jié)論
  本文提出的運動目標(biāo)檢測算法應(yīng)用于嵌入式視頻監(jiān)控系統(tǒng),而在嵌入式監(jiān)控系統(tǒng)中對于視頻壓縮處理部分都采用DSP芯片來完成,,所以需要使用DSP芯片來對算法進行測試和驗證,。Blackfin是ADI推出的一系列高性能16位定點處理器,專為滿足當(dāng)今嵌入式音頻,、視頻和通信的計算需要與功率限制而設(shè)計,。本文選用目前該系列中性能最好的處理器BF533。Visual DSP++是Blackfin的編譯器,,它支持C語言編譯,,還提供了很好的性能評估工具statistical profiling,可以方便地對C代碼進行評估和優(yōu)化,。測試環(huán)境:硬件為BF533的EZ-KIT,,軟件為Visual DSP++ 3.5。測試對象:(1)用攝像頭采集的30幀灰度視頻序列,,序列為在純色背景下晃動U盤形成的,,采集過程中攝像頭位置不變,處理格式為CIF(352*288),。前面采用的效果圖均出自此序列,。(2)針對實際監(jiān)控場景采集的100幀序列,處理格式為352*240,。
  U盤運動序列檢測結(jié)果圖像和人運動監(jiān)控監(jiān)測結(jié)果圖像分別如圖8和圖9所示,。可以看出本文提出的運動檢測算法能正確檢測出運動圖像,。從圖9的檢測圖像還可以看出該算法能檢測出多于一個的運動目標(biāo),。第30和60幀圖像中,能檢測出2個人同時運動,。


  對于算法的可行性主要從輸出碼率和DSP運行的周期數(shù)二方面來評估,。輸出碼率:每個運動標(biāo)志按4位輸出到碼流,以352*288圖像為例,,每幀增加了352*288/(16*16)*0.5=198字節(jié),,碼流的增加量非常小,對于網(wǎng)絡(luò)傳輸不會造成任何影響,。運行周期:用Blackfin 實現(xiàn)MPEG-4編碼每幀需要約10M周期,,而每幀用于檢測標(biāo)志運動區(qū)域的計算只占用不足0.4M周期,不會影響編碼的實時性,。
  由此可見,,本文提出的基于MPEG-4的運動檢測跟蹤方法正確可行,完全可用DSP來實現(xiàn),,并可應(yīng)用于嵌入式視頻監(jiān)控系統(tǒng)中,。
參考文獻
1   International Organization for Standardization ISO/IEC   JTC1/SC29/WG11 N3342.Overview of the MPEG-4 Standard,,2000
2   詹翊強,戚飛虎,,劉天明.基于MPEG-2視頻流的目標(biāo)跟蹤快速算法.上海交通大學(xué)學(xué)報,,2001;35(9)
3   袁潮,,黃曉偉,,李川.基于ADI公司Blackfin處理器的MPEG-4視頻編碼器的設(shè)計.電子產(chǎn)品世界,2003,;(9)
4   李在銘.數(shù)字圖像處理壓縮與識別技術(shù).成都:電子科技大學(xué)出版社,,2000

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。