文献标识码:A
文章编号: 0258-7998(2013)03-0014-03
人体建模识别技术一直是信号与信息处理领域的研究热点,在远程医疗、模式识别、安防监控等各个方面都有着广泛的应用。但传统的人体建模识别技术需要被测人体佩戴复杂的关节传感器网络,通过高清红外摄像头获取人体运动节点信息,从而实现目标的三维建模。这种方法实施复杂,且价格昂贵。本文设计了一款新型的人体三维建模识别系统,无需人体佩戴特殊的传感器,仅通过光学摄像头阵列即可完成人体建模,系统具有高速的视频处理帧速率,可实现多人体运动目标同时建模的功能,具有广泛的应用前景。
1 系统体系结构
实时视频处理算法涉及到复杂的数学计算,需要消耗大量的处理器资源。为提高效率,本系统将控制器与数据处理器分开,由2片TITMS320C64x+系列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.