<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 視頻跟蹤算法在Davinci SOC上的實(shí)現與優(yōu)化

視頻跟蹤算法在Davinci SOC上的實(shí)現與優(yōu)化

作者:楊成 馮巍 潘吉彥 許俊澤 胡波 復旦大學(xué)電子工程系DSPT實(shí)驗室 時(shí)間:2008-11-05 來(lái)源:電子產(chǎn)品世界 收藏

摘要:本文提出了在最新的Davinci SOC DM6446上實(shí)現智能視頻跟蹤系統的方案。我們在模板匹配跟蹤算法的基礎上,多種改進(jìn)算法來(lái)提高跟蹤的精確性和魯棒性。整個(gè)系統充分利用Davinci SOC上的ARM核和DSP核的強大處理能力。經(jīng)過(guò)算法優(yōu)化和編程優(yōu)化,跟蹤算法可以在DSP核上實(shí)時(shí)跟蹤128×128像素的目標。同時(shí),ARM核并行負責視頻采集,顯示,算法控制,網(wǎng)絡(luò )傳送等任務(wù)。測試結果表明,我們的系統可以在目標形變、部分或全部遮擋、背景干擾等情況下也具有較好的性能。

本文引用地址:http://dyxdggzs.com/article/89232.htm

關(guān)鍵詞:實(shí)時(shí);Davinci SOC

引言

  目標跟蹤作為計算機視覺(jué)的一個(gè)極具挑戰性的研究任務(wù),已被廣泛的應用在人機交互、智能監控、醫學(xué)圖像處理等領(lǐng)域中。目標跟蹤的本質(zhì)是在圖像序列中識別出目標的同時(shí)對其進(jìn)行精確定位。為了克服噪聲、遮擋、背景的改變等對目標識別帶來(lái)的困難,出現了很多的跟蹤算法。

  因為目標跟蹤算法需要處理的數據量大、運算復雜,需要性能強大的處理器才能實(shí)時(shí)處理。我們選用TI推出的最新產(chǎn)品TMS320DM6446實(shí)現算法。TMS320DM6446是一款高度集成的片上系統,集成了可以運行頻率高達594MHz的C64x+ DSP核和297MHz的ARM926處理器核。另外它還集成了數字視頻所需的許多外部組件,如視頻加速器,網(wǎng)絡(luò )外設及高速外部存儲接口。本設計充分利用DM6446的強大運算能力,在DSP內核上實(shí)時(shí)運行目標跟蹤算法。 設計還在A(yíng)RM處理器上執行多線(xiàn)程應用程序,負責視頻采集,顯示,網(wǎng)絡(luò )通信,外圍器件控制等工作。

算法介紹

  本系統實(shí)現的可參考文獻[1]-[5],整個(gè)算法分為基本算法和改進(jìn)算法兩部分。本算法是一種基于模板匹配技術(shù)的跟蹤算法,即在手工選定或自動(dòng)選定了待跟蹤目標后,提取目標的外觀(guān)信息作為模板,在后續的視頻序列中,將候選圖像區域與目標模板進(jìn)行匹配,將最相似的圖像區域作為運動(dòng)目標當前的位置。在本文中,采用結構相似度,即“歸一化互相關(guān)系數”作為候選區域與目標模板相似程度的度量標準,其計算公式如下所示:

  上式中,f(m,n)和g(m,n)分別為目標模板和候選區域的灰度值矩陣,尺寸為MxN。uf和ug分別為目標模板和候選區域的灰度平均值,然后再求出f(m,n)和g(m,n)的協(xié)方差、f(m,n)的方差、g(m,n)的方差后,求出歸一化互相關(guān)系數。式(1)通過(guò)從灰度值矩陣中減去灰度均值,有效地消除了光照給跟蹤結果帶來(lái)的影響。而對于匹配圖像區域的搜索,為了達到減少匹配次數從而降低計算量的目的,我們借鑒了視頻壓縮領(lǐng)域中的三步搜索法(Three Step Search, TSS) 作為最匹配點(diǎn)的搜索算法[2]。

  為了增加模板匹配視頻目標跟蹤算法的魯棒性,我們在基本算法的基礎上實(shí)現了改進(jìn)算法的部分。改進(jìn)算法具有自適應遮擋處理與模板漂移抑制的能力,能夠很好地解決前面提到模板匹配的視頻目標跟蹤算法需要解決的難題。具體來(lái)說(shuō),主要有如下四點(diǎn)改進(jìn):(1) 抑制漂移的帶掩蔽卡爾曼外觀(guān)濾波算法(Drift-Inhibitive Masked Kalman Appearance Filter, DIMKAF ) [1][3][4] ;(2) 內容自適應漸進(jìn)式遮擋分析算法(Content-Adaptive Progressive Occlusion Analysis, CAPOA)[1][5];(3) 可變掩蔽模板匹配算法(Variant-Mask Template Matching, VMTM)[1][5];(4) 局部最優(yōu)匹配鑒定算法(Local Best Match Authentication, LBMA)[1]。 改進(jìn)后整個(gè)算法的流程圖如下所示:


圖 1  跟蹤算法主流程圖

算法在Davinci SOC上的實(shí)現

DSP平臺的選擇

  DM6446采用ARM與DSP 雙核結構,其中ARM子系統搭載297 MHz主頻的ARM926 核,DSP部分則采用594 MHz的C64x+DSP核,外圍存儲均支持256 MB DDR2 RAM和各類(lèi)存儲卡,另外使用了VPSS 子系統豐富的視頻前后處理功能,且都配備了完善的外設接口。目標跟蹤算法需要做大量運算,DM6446 DSP核強大的運算處理能力保證了算法的實(shí)時(shí)處理。同時(shí)DM6446的ARM核可以進(jìn)行系統管理,數據讀寫(xiě),網(wǎng)絡(luò )傳輸等處理。

  我們使用Spectrum Digital公司的DVEVM平臺進(jìn)行算法仿真、原型制作和軟件優(yōu)化。DVEVM?還可實(shí)現視頻輸入/輸出連接、網(wǎng)絡(luò )接口、存儲器接口以及標準的子卡連接等。

系統軟件框架

  整個(gè)系統的軟件框架如圖2如示。DM6446的ARM核運行基于Linux操作系統的應用程序,所用的外圍設備都由ARM負責控制。ARM端的HTTP服務(wù)器通過(guò)Linux網(wǎng)絡(luò )協(xié)議棧來(lái)處理HTTP請求,并發(fā)送壓縮視頻數據。視頻跟蹤的應用程序由五個(gè)POSIX線(xiàn)程組成,分別是視頻捕捉線(xiàn)程,視頻跟蹤線(xiàn)程,視頻壓縮線(xiàn)程,顯示線(xiàn)程,系統控制線(xiàn)程。視頻捕捉線(xiàn)程通過(guò)V4L2接口設備驅動(dòng)從攝像頭讀取原始視頻數據。視頻跟蹤線(xiàn)程把視頻數據送到ARM和DSP的共享緩沖內存,并通知DSP執行跟蹤算法。壓縮線(xiàn)程負責控制DSP側的壓縮算法并從共享內存中讀取壓縮數據。視頻顯示線(xiàn)程從視頻緩存中讀取視頻數據幀,并疊加目標跟蹤框,最后通過(guò)Frame Buffer設備驅動(dòng)輸出顯示。系統控制線(xiàn)程負責響應遙控器和鼠標并執行相應操作。

  DM6446的DSP核上運行DSP/BIOS實(shí)時(shí)操作系統和目標檢測,跟蹤算法,視頻壓縮算法。所有的算法的接口都符合TI xDAIS標準,由Codec Engine調用。除了算法,DSP核上還集成了管理內存和DMA的Framework Component。

  ARM核和DSP核的通信由TI提供的Codec Engine軟件框架負責。Codec Engine是介于應用程序和具體算法之間的軟件模塊,其中的VISA API通過(guò)stub和skeleton訪(fǎng)問(wèn)Engine SPI最終調用算法。ARM和DSP的所用共享緩沖內存都是通過(guò)CMEM模塊在DDR中分配的,緩沖內存地址連續且與DSP核Cache對齊。


圖 2 軟件結構圖

跟蹤算法在DSP上的優(yōu)化

  為了充分發(fā)揮出Davinci SOC強大的視頻處理能力,滿(mǎn)足實(shí)時(shí)跟蹤的需要,我們通過(guò)算法優(yōu)化和編程優(yōu)化相結合的方法對Codec程序進(jìn)行了大量的優(yōu)化。

算法優(yōu)化

  算法優(yōu)化是指在不降低算法性能的情況下,采用等效算法來(lái)降低計算量,我們的工作主要集中在“歸一化互相關(guān)系數”的計算例程的簡(jiǎn)化上。根據均值和方差的性質(zhì),我們可以將(1)式化簡(jiǎn)為:
 


  上式與式(1)比較,減少了大量的加減法計算,而且將方差和協(xié)方差的計算轉化為大量的乘加運算,這為我們后面的編程優(yōu)化也提供了極大的便利。例如M=64, N=64時(shí),加法次數從36864減少到12288。

編程優(yōu)化

  編程優(yōu)化是在計算量不變的情況下,根據Davinci處理器DSP核心的特點(diǎn),通過(guò)優(yōu)化存儲器的存取效率和提高程序的并行化程度來(lái)縮短程序運行所需要的指令周期數,以使程序運行得更快。我們的編程優(yōu)化工作主要包含使用dsplib、使用線(xiàn)性匯編、使用內聯(lián)函數以及循環(huán)展開(kāi)等五個(gè)方面,下面將一一加以介紹。

* dsplib的使用

  在優(yōu)化過(guò)程中,我們還采用了CCS中提供的庫函數來(lái)對代碼進(jìn)行優(yōu)化。CCS中針對c64x+ DSP提供了高度優(yōu)化的dsplib庫函數供用戶(hù)使用,這些庫函數提供了數字信號處理中常見(jiàn)的處理例程,而且由匯編語(yǔ)言寫(xiě)成,具有極高效的代碼效率。特別是用于計算向量?jì)确e的DSP_dotprod和DSP_vecsumsq函數正好滿(mǎn)足了我們的計算需求。在計算尺寸為32x32的“歸一化互相關(guān)系數”時(shí),優(yōu)化后計算部分只需要271個(gè)DSP時(shí)鐘周期,而計算部分只需要267個(gè)DSP時(shí)鐘周期,這大大提高了程序運行的速度。

* 線(xiàn)性匯編

  對于uf和ug的計算,如果使用for循環(huán)實(shí)現,將會(huì )大大拖累整個(gè)“歸一化互相關(guān)系數”計算例程的執行效率。我們用手工編寫(xiě)線(xiàn)性匯編代碼的方式實(shí)現了dspsum函數,利用C64x + DSP中的8個(gè)并行計算單元,在每個(gè)DSP時(shí)鐘周期內同時(shí)進(jìn)行4個(gè)16位加16位的加法操作,對于尺寸為32x32的求和計算而言,該函數只需要258個(gè)DSP時(shí)鐘周期。

* 內聯(lián)函數的使用

  C64x+編譯器提供的內聯(lián)函數可快速優(yōu)化C代碼。內聯(lián)函數是直接映射為內聯(lián)的C64x+指令的特殊函數,內聯(lián)函數用前下滑線(xiàn)(_)來(lái)表示,使用時(shí)同調用普通函數一樣使用它。我們在優(yōu)化過(guò)程中,使用了許多內聯(lián)函數,如_round()等,大大提高了代碼的執行效率。

* 循環(huán)展開(kāi)

  由于for技術(shù)循環(huán)需要打斷C64x+ DSP內部的軟件流水線(xiàn),而頻繁的for循環(huán)會(huì )大大降低DSP的處理效率,所以我們在優(yōu)化過(guò)程中,將部分for循環(huán)進(jìn)行了展開(kāi),以代碼增加為代價(jià)提高了代碼的執行效率。通過(guò)上述方法,可將代碼的處理效率提高3-5倍。

測試結果

  為了獲得Codec運行所需要的DSP時(shí)鐘周期數,進(jìn)而估計出優(yōu)化后的算法代碼是否已經(jīng)滿(mǎn)足實(shí)時(shí)跟蹤的需要,我們使用CCStudio v3.3對同一測試序列,同一起始目標位置,不同大小模板的情況進(jìn)行了離線(xiàn)仿真。

表 1  視頻跟蹤算法優(yōu)化結果


表 2  DSP負載測試

結論

  我們在基于雙核DM6446的系統平臺上,利用改進(jìn)后的跟蹤算法實(shí)現了智能目標跟蹤系統。DM6446 ARM核上的Linux操作系統上的多線(xiàn)程程序負責視頻采集、視頻顯示、算法控制、外圍設備處理等任務(wù)。通過(guò)在TI Codec Engine軟件架構下擴展目標跟蹤算法的接口,我們成功在DM6446的DSP核上運行了跟蹤算法。經(jīng)過(guò)算法優(yōu)化和編程優(yōu)化,系統可以對采集輸入的25fps,720×480分辨率視頻中的128×128大小的目標進(jìn)行實(shí)時(shí)跟蹤。實(shí)驗結果表明,該算法可以成功跟蹤目標,并具有較強的魯棒性。該技術(shù)將會(huì )在智能視頻監控、智能用戶(hù)接口、基于對象的視頻壓縮、巡航導彈末端制導和輔助駕駛等領(lǐng)域有廣泛應用前景。

參考文獻:

1.Jiyan Pan, Bo Hu, and Jian Q. Zhang, "Robust and Accurate Object Tracking under Various Types of Occlusions," to appear in IEEE Transactions on Circuits and Systems for Video Technology (CSVT).
2.Michael H. Fischer, and Jiyan Pan, "A Novel Visual Tracking Algorithm based on Adaptive Three-Step Search, Hybrid Correlation, and Adaptive Template Renewal," Stanford Undergraduate Research Journal, vol. 5, pp. 54-60, spring 2006.
3.Jiyan Pan, Bo Hu, and Jian Q. Zhang, "Drift-Inhibitive Object Tracking Algorithm," submitted to Chinese Journal of Electronics (in Chinese).
4.Jiyan Pan, and Bo Hu, "Robust Object Tracking against Template Drift," to appear in Proc. IEEE Int. Conf. on Image Processing, San Antonio, Texas, September 2007.
5.Jiyan Pan, and Bo Hu, "Robust Occlusion Handling in Object Tracking," Proc. IEEE Conf. on Computer Vision and Pattern Recognition, pp. 1-8, Minneapolis, Minnesota, June 2007.
6.SPRU187L: TMS320C6000 Optimizing Compiler User’s Guide
7.SPRU198G: TMS320C6000 Programmer’s Guide
8.SPRU862A: TMS320C64x+ DSP Cache User's Guide
9.SPRUED6B: Codec Engine Algorithm Creator User’s Guide
10.SPRUE67: Codec Engine Application Developer’s Guide
11.SPRUED5: Codec Engine Server Integrator's Guide
12.SPRUEC8: xDAIS-DM (Digital Media) User Guide



關(guān)鍵詞: 視頻跟蹤算法 200810

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>