APP下载

基于DM642的多姿态人脸检测实时系统

2013-08-13平,邹暘,熊

电视技术 2013年5期
关键词:人脸分类器灰度

王 平,邹 暘,熊 殷

(南昌大学信息工程学院,江西 南昌 330031)

人脸检测作为一项特殊的物体检测,来源于人脸识别技术,一直以来受到各界的广泛关注。人脸检测的方法多为基于统计学的后验学习方法,譬如ANN人工神经元网络、贝叶斯决策以及SVM支持向量机[1-2]。其中,Paul Viola[3]提出的Adaboost算法在保证高质量检测效果的同时,解决了检测速度的问题。同时,随着近年来嵌入式技术与视频通信设备的高速发展,DSP具有更加贴近视觉工程应用的特点,在人脸检测方面有了广泛的应用空间。

本文采用 Lienhart等人[4]提出的 Gentle Adaboost算法,提出并扩充了Haar特征,设计实现了以TMS320DM642为核心的多姿态人脸检测系统,最后对算法代码以及工程进行了优化处理。在略微损失系统实时速度的前提下,获得了很好的多姿态人脸检测效果,证明了该系统在实际工程应用中的可行性,为嵌入式人脸检测的后续应用打下了基础。

1 Gentle Adaboost人脸检测算法

Gentle Adaboost人脸检测算法是通过Gentle Adaboost算法学习出级联型人脸分类器,在此基础上进行Haar灰度特征值判别的算法,具有鲁棒性强、检测率高等特点。

1.1 扩展型Haar灰度特征

Gentle Adaboost算法采用Haar灰度矩形特征进行人脸建模[5],使用灰度积分图进行人脸特征值的快速计算。在传统人脸矩形特征的基础上,Lienhart等人[4]提出了扩展型矩形特征,将传统特征矩形旋转45°,用来检测倾斜的人脸。扩展型矩形特征分为三大类:边缘特征,线性特征,中心环绕特征。为满足多姿态检测的需要,本文又扩充了6种矩形特征,所有矩形特征如图1所示。用白色区域与黑色区域的灰度值差值作为该特征的特征值,每个特征都是一个弱分类器。

图1 Haar灰度值矩形特征

1.2 Gentle Adaboost算法

Gentle Adaboost算法从训练样本中挑选出一些最能代表人脸的矩形特征,将这些弱分类器组合成一个误检率低于最大误检率fmax(为0.4~0.5),人脸命中率高于最小命中率dmin(为0.995)的强分类器;将若干强分类器组合成一个级联型分类器,直到级联型分类器的误检率Fpre低于最大误检率Fmax。

1.2.1 强分类器的训练

强分类器的训练具体步骤为:

1)现有一组训练样本 (x1,y1),(x2,y2),…,(xi,yi),其中,xi表示的是样本,yi表示样本类别,当i=1时,为人脸样本,i=-1时,为非人脸样本。初始化所有样本的权值wi=1/m,m为总样本个数。

1.2.2 级联分类器的训练

级联分类器层数M=logFmax/log fmax。获取一个强分类器Hn(xi),与前n-1个强分类器组成当前级联分类器对人脸样本与非人脸样本进行验证,剔除被误检的人脸样本与被正确检测的非人脸样本;同时,补充无法被当前级联分类器正确分类的非人脸样本到训练样本中,更新样本个数,最后回到1.2.1节进行下一轮的强分类器训练,直到Fpre>Fmax。

本文使用Gentle Adaboost算法,训练了10层强分类器组成的级联分类器。训练样本中,正面人脸样本为3000张,图像大小全部归一化为20×20;噪声人脸、残缺人脸、背景图片等非人脸样本为7000张。

2 人脸检测系统

2.1 系统平台设计

系统总体设计可分为三大单元模块:DM642模块、视频采集回放模块、EMIF存储扩展模块。系统硬件框图如图2所示。

图2 系统硬件框图

2.1.1 DM642模块

系统选用的CPU为TI公司TMS320DM642芯片(简称DM642),该芯片是基于C64X内核的高端视频处理芯片,并扩展了外围设备接口。DM642采用二级Cache缓存结构(32 kbyte的L1与256 kbyte的L2);其64位外部存储器接口(EMIF)能够无缝连接异步存储器(SRAM,EPROM)及同步存储器(SDRAM,FIFO),方便大量数据的搬移;3个可配置的视频端口(VPORT0~2)能够与视频编、解码器实现无缝连接,同时支持多种视频分辨率及视频标准和RAW视频输入/输出。系统主要使用了VP1和VP2视频端口,EMIF端口,并且采用50 MHz晶振作为外部时钟输入,通过PLL锁相环12倍频后获取600 MHz的CPU内部时钟。利用TI公司的TPS54350芯片为系统提供3.3 V电源(包括1.4 V的内核电压和3.3 V的I/O外部设备电压)来确保DM642高频率下的稳定工作,同时监控输入电压,实现上电初始化复位。

2.1.2 视频采集回放模块

由于输入信号是CCD摄像头采集的模拟信号,因此采用TI公司的TVP5150PBS解码器与VP2口连接,对输入信号按照YCbCr 4∶2∶2格式进行A/D转换后,输出ITU-RBT.656格式视频信号。TVP5150PBS支持PAL/NTSC/SECAM格式视频,DM642通过I2C总线配置其内部寄存器进行视频格式的设置。硬件连接图如图3所示。图中,YOUT[7-0]口与 VP2 数据位 VP2_D[7-2]相连,用于传输数据。时钟线PSLK/SCLK与DM642的VP2_CLK1相连,为数据传输提供时钟信号。同时为满足视频自环回放,需要将DSP处理后的数字信号转换为模拟信号输出。因此,采用PHILIPS公司的SAA7104编码器对处理后的BT.656视频信号进行D/A转换后输出给显示器。DM642通过I2C总线对SAA7104进行视频格式的配置。硬件连接图如图4所示。图中,时钟线PIXCLK1与VP2CLK1相连,因此SAA7104时钟由TVP5150提供,实现视频采集与回放的同步。SAA7104将输入的YCbCr视频信号分离后单独进行数模转换,通过引脚输出复合视频信号或者S-子端信号。

图3 TVP5150端口连接图

2.1.3 EMIF存储扩展模块

图4 SAA7104端口连接图

系统人脸检测涉及到大批量程序处理,同时伴随大量数据的产生。为了保证系统的运行效率,DM642内部的256 kbyte Cache全部用于代码运算,同时必须外接SDRAM满足系统开销。DM642提供的EMIF端口具有64 bit数据线、若干控制总线和4个片使能地址空间(CE0~CE3,其中CE0分配给SDRAM,CE1分配给Flash)。系统选用2片MT 48LC4M32B2(4 Bank×1 M×32 bit)构成4 M×64 bit的外设RAM,供程序开销与数据存储;采用1片AM29L008B Flash芯片(4 M×8 bit)组成外设ROM,供程序烧录。

2.2 系统检测流程

系统运行后,通过摄像头采集一帧视频信号,缓存在SDRAM中供DSP芯片进行人脸检测。计算出图像的灰度积分图,利用24×24规格的窗口遍历整个图片。对第一个窗口图像进行特征值与扩大窗口的相似度特征值的计算,根据训练的10层级联分类器进行阈值判断。通过了所有强分类器阈值检测的窗口及扩大窗口被标记为人脸窗口,否则,立即停止该窗口的检测,进行下一窗口的处理。所有窗口检测完毕后将重复标记的人脸窗口进行合并,获得有人脸标记的图像后并将其输出,同时进行下一帧图像的获取与检测。检测流程图如图5所示。

图5 系统检测流程图

2.3 检测算法实现与优化

2.3.1 算法的实现

参考Intel公司开源的Opencv计算机视觉库代码。由于该库的C及C++类代码基于X86构造芯片进行了优化,因此必须对代码中的数据结构和人脸检测算法进行裁剪、修改,使其适合在DSP系统上运行。利用CCS2.20.18在系统初始的视频回放工程文件基础上进行代码修改与工程配置,将工程的软件流水线优化选项设置为-ms0,以此提高代码的运行效率。结合EMCV库,最终在DSP上实现人脸检测算法。

2.3.2 浮点运算定点化

DM642是一款定点运算的DSP处理器。由于人脸检测算法采用了大量浮点运算,为提高检测速度,必须采取浮点运算转定点运算的优化措施。定点化的优化方法有两种:1)在保证精度的前提下,手工对数据位进行修改,提取指数和尾数,最后对尾数进行移位操作;2)直接调用TI公司浮点运算转定点的FastRts库,利用库函数进行浮点运算定点化的优化。系统采用后者的优化方案,并使用DSP C6000系列芯片独有的内联函数_mpyd(),_addd(),_fixfi(),_divd()等,对算法循环体系内的算术代码进行运算加速优化。调用Bios函数CLK_getltime()获取检测算法在DM642上的检测时间。

2.3.3 图像Scale预处理

选取分辨率为704×480的NTSC格式视频,对其缩放并获取分辨率为352×240的CIF格式图像。由于人脸检测是基于灰度值进行计算的,对于待检图像的分辨率要求也不高,因此只对Y分量灰度值信号进行Scale预处理,除去其奇数行扫描线与奇数列像素信息,使待检图像面积缩小为CIF图像的1/4,从而减少待检图像的信息量。采用此方法优化后,DSP从PC机上读取100张待检彩色人脸图片进行检测。调用函数CLK_getltime()获取对图片人脸检测的检测时间。

3 实验结果

3.1 优化算法对系统性能的提升

在人脸检测系统上(图6所示)采用算法优化方案,使用训练的10层级联分类器对100张彩色待检图片进行检测,其检测速度、检测率和误检、漏检率结果如表1所示。

图6 系统实物图

表1 实验数据

从表1中可以得出,在保证较高检测率的前提下,对算法进行浮点运算定点化和图像Scale预处理的优化后,系统检测速度分别提高了8倍和10倍。虽然误检率与漏检率较未优化前有所提高,但仍处于可接受的范围内。而检测率保证在90%,确保了系统检测的高精度性,同时系统检测速度最终达到了13 f/s的实时速率。

3.2 多姿态人脸检测

在该系统上对采集的多姿态人脸视频信号进行人脸检测,检测结果如图7所示。

图7 多姿态人脸检测结果

实验结果表明该系统在光照充足的条件下,使用Gentle Adaboost人脸检测算法和Haar特征训练出的人脸分类器可以对多个姿态的正面人脸进行正确的人脸分类,同时可以检测出有一定偏转角度的人脸,并且没有误检出背景图像,保证了较低的误检率,证明Gentle Adaboost算法在多姿态人脸检测中有着优异的表现,该系统能够准确检测并标记出各个姿态和小角度偏转人脸。

4 结束语

本文使用Gentle Adaboost算法训练出级联型人脸分类器,基于DM642设计并实现了多姿态人脸检测实时系统,并对系统检测速度进行了一系列的优化处理。在保证高检测率的前提下,获得了80倍的系统性能提升,达到了13 f/s的实时检测速度。实验证明,该检测系统很好地排除了背景区域,检测出了图像中各种姿态的人脸,拓展了人脸检测在嵌入式领域的应用范围,也为下一阶段的人脸识别、智能监控、区域安防等具体应用奠定了基础。

[1]艾海舟,肖习攀,徐光佑.人脸检测与检索[J].计算机学报,2003,26(7):874-881.

[2]杨稀,杨帆,李岩,等.复杂背景的快速人脸检测研究[J].电视技术,2011,35(23):125-128.

[3]VIOLA P,JONES M.Rapid object detection using a boosted cascade of simple features[C]//Proc.IEEE Conference on Computer Vision and Pattern Recognition.Hawaii,USA:IEEE Press,2001:511-518.

[4]LIENHART R,MAYDT J.An extended set of Haar-like features for rapid object detection[J].IEEE ICIP,2002,1:900-903.

[5]孙伟,张震国,张忠.基于DSP的多视角人脸检测系统设计[J].信息技术,2008(9):75-79.

猜你喜欢

人脸分类器灰度
采用改进导重法的拓扑结构灰度单元过滤技术
有特点的人脸
一起学画人脸
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
三国漫——人脸解锁
基于实例的强分类器快速集成方法
基于最大加权投影求解的彩色图像灰度化对比度保留算法
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
基于灰度线性建模的亚像素图像抖动量计算