文獻標識碼: A
文章編號: 0258-7998(2013)03-0014-03
人體建模識別技術一直是信號與信息處理領域的研究熱點,在遠程醫療、模式識別、安防監控等各個方面都有著廣泛的應用。但傳統的人體建模識別技術需要被測人體佩戴復雜的關節傳感器網絡,通過高清紅外攝像頭獲取人體運動節點信息,從而實現目標的三維建模。這種方法實施復雜,且價格昂貴。本文設計了一款新型的人體三維建模識別系統,無需人體佩戴特殊的傳感器,僅通過光學攝像頭陣列即可完成人體建模,系統具有高速的視頻處理幀速率,可實現多人體運動目標同時建模的功能,具有廣泛的應用前景。
1 系統體系結構
實時視頻處理算法涉及到復雜的數學計算,需要消耗大量的處理器資源。為提高效率,本系統將控制器與數據處理器分開,由2片TI TMS320C64x+系列DSP處理器組成數據處理單元,由1片S3C6410 ARM1176JZF-S嵌入式處理器作為核心控制單元,以最大限度地提高DSP處理器的數字信號處理能力。ARM11處理器與DSP處理器之間通過高速同步SPI協議通信。
光學攝像頭陣列采集的視頻流數據由ARM11處理器按統一的時序實施總線控制,視頻流由高速數據總線輸送給DSP處理器系統,DSP處理器系統負責對視頻流進行編解碼操作并進一步完成三維建模算法。系統總體結構如圖1所示。
2 系統各功能模塊
2.1 攝像頭采集陣列
攝像頭陣列由不同類型的攝像頭模塊組成光學采集系統,具體介紹如下:
(1)紅外發射攝像頭:發射近紅外光譜,當紅外光線投射到三維物體表面時,反射光譜會發生扭曲,扭曲的差值數據會被深度感應攝像頭讀取。
(2)深度感應攝像頭:分析紅外光譜,按深度重構算法對2D平面圖像進行處理,進而生成3D圖像的深度相對值坐標。
(3)256色真色彩攝像頭:高速彩色攝像頭,拍攝物體的實時彩色圖像,供處理器獲取原始的流媒體彩色數據。
(4)平面建模攝像頭:數字濾波攝像頭,負責拍攝物體的邊緣銳化效果圖像,以獲取物體的邊緣輪廓數據,使之作為3D建模的基礎數據之一。
(5)熱感感應攝像頭:負責拍攝物體的熱感輻射照片,以獲取人體、動物等運動目標數據并與環境背景相區分,使之作為人體運動跟蹤算法的重要基礎數據。
2.2 ARM11處理器系統(S3C6410)
使用三星S3C6410 ARM1176JZF-S處理器,最高主頻可達667 MHz,它由8級流水線組成,比以前的ARM內核提高了至少40%的吞吐量[1]。在本產品中,ARM11處理器主要作為控制中樞系統,負責完成攝像頭采集陣列的驅動和控制功能,以及對藍牙、USB接口、以太網、RS232等外設的驅動控制功能。
2.3 C64x+ DSP處理器系統
使用TI公司的高性能DSP處理器TMS320C64x+系列,該系列處理器中的 8 個功能單元可以并行操作,大大地提高了乘法速度,非常適合于視頻、圖像處理等領域的應用[2-3]。在本產品中,共采用2片TMS320C64x+數字信號處理器,負責對實時視頻圖像數據進行編解碼計算,并完成復雜的人體三維建模算法。
2.4 電源管理模塊
由ARM11處理器實現電源管理的控制功能,實現包括低功耗模式、休眠模式、電壓調節輸出、電流檢測等電源管理功能。
3 算法移植及改進
傳統上,人體三維建模技術常見的算法主要有曲面建模算法[4]、基于物理特性的建模算法[5]、基于解剖學的分層建模算法[6]和多剛體動力學建模算法[7]。但這些算法并不能很好地滿足實時人體運動目標的建模要求。2011年,Microsoft公司免費公布了Kinect SDK開發包Beta版,該版本針對計算機系統的Windows開源代碼數據包,運用了新一代的動態骨骼追蹤算法。本文對KInect SDK開發包進行了算法移植,將其移植到DSP數字信號處理器,使其可以脫離Windows系統在硬件上獨立運行,并進一步對算法進行了改進,使人體追蹤目標數由原來的1~2人提高到1~4人。
3.1 系統初始化
3.1.1 ARM11系統的初始化
上電復位后,ARM開始從起始空間執行程序,存放在該地址處的指令為中斷向量表。該中斷向量表共有8條跳轉指令。系統最先執行復位指令,該指令通過修改CPSR更改處理器運行模式。CPSR設置完成后,ARM11系統將進行CPU初始化,CPU初始化主要涉及關閉指令緩存(ICache)和數據緩存 (DCache)等過程。
3.1.2 TMS320C64+ DSP處理器系統初始化
為適應算法移植的要求,使用DSP/BIOS來初始化DSP系統。DSP/BIOS是TI公司提供的一套初始化代碼接口,它以API和宏的形式封裝了TI公司的所有硬件模塊[8],其初始化過程如下:
(1)初始化DSP引導程序。DSP/BIOS程序從入口c_int00開始。復位后,復位中斷向量將程序指針自動引導到c_init00。(2)BIOS_init執行基本的模塊初始化,然后調用MOD_init宏分別初始化每個使用的模塊。(3)調用用戶主程序。在完成所有DSP/BIOS模塊的初始化后,硬件中斷和軟件中斷均為使能,此時應用程序可以添加代碼對各種外設進行初始化。最后,調用BIOS_start啟動DSP/BIOS。DSP/BIOS系統啟動流程如圖2所示。
3.2 DSP人體建模算法流程
攝像頭采集陣列均由ARM11處理器統一總線控制,并通過數據總線將幀圖像數據傳遞給TMS320C64x+ DSP處理器1,由該處理器完成深度圖像處理算法、2D圖像重構算法、2D圖像互補算法,最后可生成單幀人體三維建模圖像,并將數據輸出給TMS320C64x+ DSP處理器2。
TMS320C64x+ DSP處理器2通過提取256色真色彩攝像頭的流媒體同步數據信息,并運用3D視頻流重構算法,即可實現對單幀人體三維建模圖像的視頻流重構計算,從而生成連續幀結構的人體3D建模數據流,最后運用視頻流媒體壓縮算法,即可輸出完整流暢的人體三維建模結果。DSP雙處理器陣列算法流程如圖3所示。
3.3 算法改進
原Kinect SDK開源數據包只支持1~2個人體運動目標的捕捉及建模功能。本系統運用迭代算法,計算出第3個及第4個人體運動目標的解析方程,代入攝像頭陣列的采集參數后,即可確定4個動態的人體運動目標的坐標參數,從而完成4個人體運動目標的三維建模。按迭代算法計算,系統理論上可實現12個人體運動學目標的三維建模結果,目前已經實現了1~4個人體運動目標的實時追蹤及三維建模功能。
4 實驗結果及性能分析
使用該系統分別對1個、2個、3個、4個人體運動學目標進行了實時三維人體建模實驗。結果顯示,在單目標識別時,系統能夠在較快時間內捕獲運動目標,生成初始化建模參考原點,并在2 s內實現人體17節點的三維骨架建模,整體性能良好。同時,多人體運動目標建模實驗也獲得了較好的性能,實測結果如圖4~圖7所示。
本文提出的人體三維建模系統的實測性能如表1所示。
經測試,該人體三維建模系統可實現多人體運動目標的實時追蹤及三維建模功能,實測最大人體追蹤目標數為4人,系統初始響應時間低于2 s,二次建模重建時間低于1 s,系統整體上已達到了較好的性能。在單個人體目標三維建模時,系統的各項性能均達到最佳值,隨著人體建模目標個數的增加,系統的響應時間及幀速率等指標均有輕微的下降,這表明隨著人體目標個數的增加,DSP系統處理能力出現了輕微下降,在下一步的研究中需要對算法進行優化改進。
參考文獻
[1] S3C6410X RISC microprocessor user′s manual,revision1.10[Z].Samsung Electronics Co.Ltd,2008.
[2] TMS320DM642 video/imaging fixed-point digital signal processor data manual[Z].Texas Instruments,2010.
[3] TMS320DM642 evaluation module with TVP video decoders technical reference[Z].Spectrum Digital,Inc.,2004.
[4] GHEORGHE P.Computing with membranes[J].Journal of Computer and System Sciences,2000,61(1):108-143.
[5] GHEORGHT P.P systems with active membranes:Attacking NP complete problems[J].Journal of Automata Languages and Combinatorics,2001,6(1):75-90.
[6] QI Zhengwei,You Jinyuan.Formalization of P systems by Maude[J].Journal of Shanghai Jiaotong University(Science),2005,10(3):260-264.
[7] HANAVAN E P.A Mathematical model of the human body[R].Biomechanics Laboratory,Faculty of Physical Education,University of Calgary,Canada,1984.
[8] 鄭翔,王賢菊,張寒,等.基于DSP/BIOS的VoIP語音通信終端設計[J].軍事通信技術,2012,33(2):89-92.