基于DSP的实时人脸检测系统设计
摘 要:阐述了硬件设计思想、软件开发流程及人脸检测算法的实现。首先以TMS320DM642建立实时图像处理的硬件系统,通过CCD获取视频序列,对当前图像进行降噪、图像增强以及边缘检测的预处理,再利用基于肤色和差分帧相结合的算法对视频序列进行检测、跟踪人脸。本系统所有算法均使用C和汇编语言混合编程并在TI DM642EVM上开发实现。实验结果表明,本系统的算法简单、快速、鲁棒性强。
关键词:DSP;人脸检测;人脸跟踪
引言
作为一种典型的非刚体目标检测课题,人脸检测在机器视觉研究中具有重要意义,在生物测量身份识别、安全监控、图像与视频检索和智能人机接口等方面有广泛的应用。由于受到光照、姿态、表情和年龄等因素的影响,从视频中检测人脸是一项很有挑战性的工作。人脸检测是人脸识别的初步阶段,但有的人脸检测系统是在PC上实现的,并非在线检测,具有非实时性和滞后性等缺点。因此,需要将嵌入式系统设计技术与数字图像处理技术相结合研究小型化的、实时的人脸识别系统的关键子系统-人脸检测系统。
系统方案设计时考虑了系统数据处理的实时性、硬件系统的规模、软件系统调试难度等诸多因素,所以本系统采用TI公司TMS320DM642[1]芯片为核心处理器。
1 TMS320DM642的特点
TMS320DM642是TI公司推出的一款针对多媒体处理领域应用的DSP。主频600MHz,8个并行运算单元,处理能力达4800MIPS,L1PCache和L1DCache分别为16KB,L2Cache为256KB,采用高级超长指令字结构和硬件流水机制,使其在一个指令周期能够并行处理多条指令,从而加速了处理速度。这使得构建小型实时化的视频实时处理系统成为可能。
2 基于TMS320DM642的图像系统硬件构成及原理
图像系统基本框架如图1所示。
系统从CCD输入PAL/NTSC制式的视频信号,通过视频信号输入与复合模块进行同步分离、A/D转换。视频解码器采用TI公司的TVP5150,PAL/NTSC、CVBS或Y/C模拟视频输入,8位BT.656数字视频数据流输出;视频编码器使用SAA7121芯片。600MHz的DM642能以每秒30帧的速度同时处理多达4个MPEG2视频译码及D1(720*576)分辨率。根据不同的配置,视频编码器能够支持NTSC/PAL等不同格式的视频信息,并把信息输出到对应的输出端口,输出为4:2:2的YCbCr格式的图像数据。
由于整个系统过程为输入-处理-输出,因此在处理前和处理后都存在一个显示同步的问题。行同步、场同步信号和消隐信号的正确设定,可以避免由于奇偶场不同步造成图像混叠的现象。可以利用DM642的EDMA通道进行数据块的整体搬移,从而实现视频数据的传输。
系统采用的FPGA芯片为Xilinx公司的XC2S300,支持串行编程,在系统复位后,由DSP对它进行编程。FPGA用于实现系统各部分的粘合逻辑,FPGA的内部寄存器映像在DSP的地址空间上,可通过对寄存器的读写来配置整个系统的参数。
TMS320DM642的存储空间分配:可以寻址4G*8位的物理空间,通过EMIF64可外扩连接4M*64位的SDRAM,4M*8位的FLASH,两个通道8*8位的UART,CE0配置为64位的SDRAM接口,0x80000000-0x81FFFFFF(32MB);采用ROM BOOT时,CE1空间必须配置为8位异步存储器接口,其中0x90000000-0x9007000F(512KB)的FLASH,0x90008000-0x9008000F(16B)的UART。
3 基于TMS320DM642的图像处理系统软件设计
3.1系统工作流程
通过CCD对一个环境连续摄像,首先对当前图像进行预处理,按照中值滤波对图像进行降噪以及利用SOBEL算子进行边缘检测,然后基于肤色[2]和差分帧[3]来检测、跟踪人脸。
所有算法都是在DSP上实现的,软件设计中不仅要实现基本的功能,还要考虑程序的效率,使整个系统能够在最优化最快速的情况下运行。用C语言开发DSP程序可以缩短开发周期,提高程序开发的效率,还可以使程序的可读性、可移植性以及算法的通用性大大提高,为系统的改进和升级换代也带来了极大的便利。软件设计采用C语言和汇编语言混合编程的方法。汇编程序主要实现系统的初始化、图形操作和串口操作;C程序主要用来实现整个系统的流程控制以及图像处理算法的实现。图2说明了整个人脸检测系统的流程。
图2人脸检测系统流程
3.2 图像处理算法
3.2.1图像预处理
图像预处理主要有噪声滤除和图像增强,提高图像的质量。本系统中采用中值滤波进行噪声滤除。与其它滤波等方法相比,中值滤波不仅能有效滤除图像中的孤立噪声点,还能有效地保护边界信息。图像增强技术主要包括直方图修改处理,图像平滑处理,图像锐化处理等。所以,实际的人脸检测系统采用图像增强来消除光照影响。
本系统采用的图像边缘处理算法基于SOBEL边缘检测算子。图像的边缘是由灰度不连续性所反映的,是的最基本信息。边缘检测算子检查每个像素的邻域并对灰度变化率进行量化和方向的确定。
3.2.2人脸检测、跟踪算法
本系统采用基于肤色和差分帧相结合的方法来确定视频序列中的人脸。这样不但可以排除类似肤色背景的干扰,提高人脸检测的准确性,还可以保证检测与跟踪的实时性。
大量实验表明,人脸肤色在YCrCb空间内的Cr和Cb值分布在特定的范围之内,Cr范围为135~156,Cb的范围为108~123。由此建立人脸肤色聚类模型,即彩色图像的像素P满足条件:108≤Cb≤123和135≤Cr≤156,则P是肤色点。对图像中的每一个像素P(i,j)。
根据公式(1)可将图像转化为一个二值图像,其中白色像素点为肤色点,黑色像素点为非肤色点。
由于头部与背景的相对运动,差分帧法是运动图像分析的有效方法。它检测图像序列相邻两帧之间的变化,即直接比较两帧图像对应像素点的灰度值。帧 之间的变化可用一个二值差分图像 表示:
式中T是阈值,本系统采用自适应阈值。
在整个软件系统中,除了自己定义的函数外,可以使用TI针对TMS320DM642用户提供的IMG64X. LIB库函数。在这个库中,包含许多常用函数,可以完成边缘检测、中值滤波、膨胀、腐蚀、直方图等功能。这些函数都是优化过的,完全能够实现软件流水,效率很高。
4 实验结果
采用TI DM642EVM作为整个硬件平台,使用C和汇编语言混合编程上述算法,并在CCS2.20.18(C6000)环境下硬仿真实现,最终形成基于DM642的人脸实时检测系统。该系统处理速度可以达到30fps,完全能实时进行人脸的检测和跟踪。
5 结论
可以看出,该系统非常灵活,能够稳定、精确和实时地检测和跟踪人脸,并支持FULL、CIF和QCIF多种分辨率,可以满足不同应用的要求。本系统仅考虑使用DSP来实现人脸的实时检测和跟踪,是人脸识别的初步阶段,较进一步的人脸识别还有一定距离,为此还有待对基于DSP的人脸识别系统做进一步的研究。
|