APP下载

基于人脸检测和特征的跟踪方法

2013-06-28梁露花鄢展鹏

关键词:链表实时性人脸

梁露花,鄢展鹏

(1.沈阳药科大学数学教研室,辽宁沈阳110016;2.苏州科达科技有限公司上海研发中心,上海200233)

基于人脸检测和特征的跟踪方法

梁露花1,鄢展鹏2

(1.沈阳药科大学数学教研室,辽宁沈阳110016;2.苏州科达科技有限公司上海研发中心,上海200233)

在智能视频监控中,常常会发生对同一人脸重复定位的问题.通过分析人脸的非刚体特征和人脸监控视频的特点,提出了一种基于帧间人脸位置匹配的思想和基于颜色直方图的Meanshift算法二者相结合的方法.实验结果表明,提出的方法具有一定的实时性,并能够降低对同一人脸的重复识别率.

人脸检测;跟踪;位置匹配

在人脸视频监控分析中,由于人员极易产生转头、低头、扭头的现象,加之可能由于恶劣天气、相机振动、相机镜头沾有灰尘等导致的像质模糊、人脸被遮挡等不利因素,常常会发生对同一人脸重复定位的问题.在实际的系统中,即常说的重复报警问题,简称重报问题.要解决该问题,常见的思路分为四类.一类是以人脸定位算法为主,这类方法多以检测得到的人脸作为参考,实施帧间位置匹配[1];另一类则是将人脸检测与跟踪结合起来,其主要思想是,根据实时性要求确定一个对视频降采样的频率,当一个降采样周期到来时,就实施一次人脸检测,一个周期内的其他时间就对周期开始时通过检测得到的人脸进行跟踪[2];第三类一般将人脸的出现看做一个Markov过程,其把不同人脸看作样本,并建立随机的马尔科夫场,通过对场模型进行动态的参数估计,确定样本属于的人脸标签[3];第四类方法多基于人脸中的特征点处的特征,然后用相应的模版匹配的思想进行跟踪[4].本文进一步再分析视频监控领域中的人脸成像特点.考虑如果视频中的人员并排行走,由于行人之间一般会保持一定的距离(即使他们没有亲密无间,人脸也定会位于人员的两肩之间,人脸宽度必然还小于两肩宽度);如果人员前后行走,由于监控相机架设角度一般与地面呈俯视状态,所以尽管后面的人员可能发生了遮挡,但上面的人脸多半还是会露出来.因此由遮挡引起的情况一般来自于外物(比如道路两旁的花卉树枝).基于这种思考,认为遮挡不是人脸视频监控中的主要因素,所以急需一个比较优越的方法来解决本文提出的问题.文章的结构安排如下,第一节通过对常用的四种解决此类似问题方法的分析,给出了本文方法提出的背景.第二节指出一些与跟踪相关的工作,主要是基于视频的人脸检测的方法;第三节说明位置匹配思想和Meanshift算法[5]结合的原理,并给出了待删链表的定义和作用;第四节是该文方法的实验例子说明.

1 本文方法的提出背景

事实上,第一类方法得到的位置信息准确可靠,并且单纯采用第一类方法就能解决对发生较短时间较小角度的低头、扭头、转头的情形引起的重复识别问题,但如果出现较长时间大角度的扭头、低头、转头,第一类方法就显得力不从心了.第二类方法由于是以一个降采样频率对人脸实施定位,所以该方法最突出特点是系统能较好的满足实时性要求,但是由于特征一般缺乏模版更新手段,在具有较多的与人脸特征相似的情况下,特征漂移现象会导致跟踪失败.第三类方法能够实现多人脸跟踪,并且对于人脸遮挡的情形具有较高的鲁棒性.但是,算法颇为耗时,且其在初始化和释放该样本的跟踪句柄时缺乏快速的适应机制,在一个帧率较高的视频中,如果人员移动速度过快,那么也将导致算法跟踪失败[3].值得一提的是,第三类方法却能够较好的解决由遮挡引起的重复定位,这也是第三类方法的突出特点.虽然前两类方法能通过引入一定的滤波手段对遮挡的情况进行预估校正,但仍然存在缺陷.例如Kalman滤波策略[5],其预测和校正过程能较好的满足实时性要求,但由于现实人脸特征因为人员的随机运动中产生了极为丰富的非线性特点,而系统状态和噪声必须满足高斯分布的线性Kalman模型,往往无法描述人脸的真实情况;再如粒子滤波策略[6],又称Condension算法,其能在遮挡问题中保持一定的跟踪鲁棒性.但根据大数定律知道,Monte-Carlo采样需要大量的试验,而每个试验点就是粒子,知道这些粒子的信息就能保证特征模型依概率收敛,但对众多粒子的特征匹配和更新将导致算法复杂度的急剧升高,最终影响实时性.所以由遮挡引起的重复定位是第一、二类算法的软肋,而实时性问题则是第三类算法的软肋.第四类方法对刚体这样轮廓鲜明,角点丰富的的物体较为奏效,由于仅跟踪特征点,因此满足实时性要求,但对非刚体,运动随机的人脸,却极易出现特征点的丢失和漂移问题,因此其不适用于非刚体跟踪.故急需一个比较优越的方法来解决本文提出的问题.

因此,本文的思路多半来自于第一类和第二类方法.如前所述,第一类和第二类方法各有优点.本文解决此类问题使用方法是,优先使用第一类的帧间位置匹配跟踪人脸,如果第一类方法失效,那么则采用第二类特征跟踪法对人脸进行跟踪.在帧间位置匹配上,没有使用IF―>THEN式的武断匹配,而是采用了一个叫做待删链表的数据结构,并在特征跟踪上,也充分利用了这个待删链表.

2 基于视频的人脸检测

2.1 单帧下的人脸检测

对于单帧的人脸检测主要还是基于Viola P等提出的Haar+Adaboost+Cascade框架[7],可以自行训练分类器,并利用分类器实施人脸检测.在算法的评估阶段,可以参考Intel公司开源机器视觉库OpenCV的通用正脸分类器实施单帧的人脸检测.具体操作是:调用cv Load函数把分类器结构体加载进来,利用cv Haar Object Detect函数实施人脸检测,这里缩放图像或缩放分类器步长取1.2,最小矩形合框邻居判决数取3,最小人脸检测尺寸为20* 20,最大人脸检测尺寸可根据视频的分辨率自动调整,并要求连带输出被是16层以上、20层以下的Cascade分类器拒绝的人脸矩形区域.

值得说明的是,由于要求连带输出被是16层以上、20层以下Cascade分类器拒绝的矩形区域,这在提高少量定位率的同时,也带来了大量虚警.因此,需要对这些矩形区域进行审核,具体操作是将分类器得到的矩形区域还原到原始RGB视频序列中,并使用肤色模型对这些人脸进行审核.通过实验前期的预研究,发现人脸的肤色区域最容易出现在鼻子部分,而鼻子又通常位于整个人脸的中心区域,基于这样的事实,将由分类器得到的RGB子图像分成十六宫格,又从中抠出中心4个宫格的RGB子图,接着把RGB空间转化到YCbCr Cg空间[8],通过阈值聚类技术对肤色进行判定,并记录具有肤色像素的RGB子图的面积比例,通过这一信息实现了对虚警的抑制.事实上,本文并没有照搬文献[8]的阈值,而是通过实验,对Cb、Cr、Cg三个阈值进行了一定的放宽,这主要是考虑到肤色模型仅是在系统中充当后处理的角色.事实上,利用肤色特征的初衷是在保证定位率的基础上降低虚警率.

2.2 单帧下人脸检测的预处理

进一步可以对视频中的每帧图像实施2.1的单帧检测机制,但是,巨大的计算量将使我们的想法变得不且实际.考虑到视频中的背景是没有必要对其实施人脸检测的.因此可以采用前景检测的方法,得到一个掩膜图像,然后对掩膜图像进行轮廓闭合,形成一个个的小矩形区域.然后在这些小矩形区域的基础上实施人脸检测即可.但是,如果这种预处理模块耗时,那么留给检测的时间就不多,但如果预处理效果较差,预处理加快后续检测速度的初衷就要打折.因而通过实验,采用VIBe算法对视频实施运动检测[9],并通过区域生长算法得到包含运动信息的轮廓集合,把轮廓以其外接矩形集合的形式作为分类器的输入级.

3 基于检测和特征融合的多人脸跟踪

3.1 基于位置的匹配

位置匹配的思想是,如果两个矩形区域相交的面积较多,并且两个矩形区域的宽高相差不大,那么说明两矩形匹配.为此,设计三个循环链表,空闲链表、已用链表、待删链表.链表中的节点主要存储检测矩形框信息和位置是否匹配信息,以及它在已用链表和待删链表中存活的时间.为了避免由于反复申请和删除链表中节点产生的内存碎片,可以将这些链表共享一整块内存区域,即利用数组和指针来模拟这一过程.第一帧初始化时,空闲链表被赋予首地址.其他链表指向空地址.以后各帧采用如下算法进行人脸跟踪.

第一步:当分类器检测并验证完得到最终矩形框序列后,先将这些矩形序列与已用链表的每个节点的矩形区域进行位置匹配,如果位置匹配成功,则更新相应节点的位置信息,并且更新节点在已用链表中存活的时间.否则,将这些序列与待删链表的每个节点进行位置匹配,如果位置匹配成功,则将待删链表的节点调整到已用链表中,更新节点在已用链表中存活的时间,并将节点存活在待删链表中的时间重新赋0.

第二步:查看已用链表中的节点是否完成过更新,如果没有更新,那么将这些节点放置待删链表中,并初始化该节点在待删链表中存活的时间.

第三步:查看待删链表中的节点是否完成过更新,如果没有更新,那么更新该节点在待删队列中存活的时间,如果该时间达到一定阈值(比如30帧),则将待删链表中的节点调整到空闲链表中.

第四步:如果分类器检测并验证后得到的某个矩形框与已用链表和待删链表的节点内的矩形区域都没有匹配,那么,将从空闲链表尾(如果空闲链表没有空间了,那么就从待删链表头申请空间)申请一个节点到已链表,并将这个矩形框信息赋值到已用链表的该节点中,并初始化其存在于已用链表的时间.

3.2 融合基于颜色直方图的跟踪

基于颜色的Meanshift跟踪方法被大量文献证明了是一种对单目标实时的算法,其算法的思想是使得原始点和候选跟踪点的特征在巴氏相似度上达到最大.因此,只需对这个以候选点为自变量的巴氏相似度函数在初始点处一阶Taylor展开,并根据一阶条件,得到跟踪迭代过程的候选点,最后利用Meanshift算法进行迭代[5].基于上一节的讨论,可以对链表中的每个节点再添加一个成员,即跟踪器的句柄.但是,如果对于视频中的多个人脸,如5个以上的人脸都实施Meanshift算法跟踪,其跟踪模块的耗时将开始严重影响实时性.

为了满足实时性要求,本文的思路是,在已用链表节点调整到待删链表时才初始化跟踪句柄,而且仅对在待删链表的节点处实施Meanshift人脸跟踪.同时考虑当待删链表的节点调整到空闲链表的节点时,释放跟踪器句柄.

3.3 其他拓展

增加如下改进手段,重报率将进一步降低,但也势必带来更大的计算量.

在定位模块中,认为如果分类器和肤色校验得到的最终矩形框在已用链表存活的时间达到一个阈值(比如3帧),则产生人脸告警.

在待删链表的节点也采取与定位模块类似的方法实施初始化.这样,既可以减少虚警,又可以减少可能不必要的跟踪模块.

并不是每个人脸跟踪器句柄的释放一定要到矩形框存活在待删链表节点的时间达到预先设定的阈值才进行.事实上,如果该矩形框已经位于视频图像的下沿,那么也可以释放待删链表的相应节点.

在位置匹配过程中,在遍历中采用IF―>THEN式的匹配可能导致人脸跟错的情况,如1号人脸被跟踪到2号人脸上,可通过贪心策略来降低这种情况的发生.具体的做法是,在遍历的同时,对帧间位置匹配信息排序.如果帧间人脸位置最为匹配(两矩形框之间位置偏移最少,尺寸最为接近),则被认为是同一个人脸.

4 实验结果与结论

实验中的视频序列主要来源于与机动车平行的人行道卡口得到的录像,人员行走的中间有路边绿化种植的樟树遮挡,人流较为密集,视频分辨率为720P和1080P,实现环境为VC2005,在没有经过任何优化的情况下,在2.2GHz双核的CPU上,整个人脸检测与跟踪系统实时性能达到10fps.我们考虑的人脸是在光照良好的情况下拍摄的,而且主要以正脸为主,容许的上下俯仰角度为15°之间,左右侧脸和左右偏摇角度为45°之间,最小人脸尺寸为20 *20,最大人脸尺寸为150*150.以下是实验数据,见表1.这里定位率和虚警率无需解释,重复识别率反应了同一张人脸被重报定位的次数,其比例越低,跟踪算法越优越.实验结论是,通过表1可知,本文改进的方法与改进前的方法比较,发现定位率、虚警率不管是雨天还是晴天都有所提高,从而使得重复辨识率也相应的降低,即说明基于检测和特征的跟踪能具有一定的实时性,且能在一定程度上克服重复识别的问题.

表1 实验结果数据

[1]Kasturi R,Goldgof D,Soundararajan P,et al.Framework for performance evaluation of face,text,and vehicle detection and tracking in video:data metrics and protocol[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2009,31 (2):319-336.

[2]陈煜.人脸检测跟踪算法的研究与基于Da Vinci的人脸检测系统实现[D].上海:上海交通大学,2009.

[3]时磊,谢晓方,乔勇军.基于SURF算法的人脸跟踪技术研究[J].计算机仿真,2010,27(12):227-230.

[4]Dockstader S L,Imennov N S,Tekalp A M.Markov-based failure prediction for human motion analysis[J].Computer Vision, 2003,Proceedings.Ninth IEEE International Canference,2003, 2:1283-1288.

[5]Omaniciu D C,Ramesh V,Meer P.Kernel-based object tracking[J].IEEE Transactions on Pattern and Analysis and Machine Intelligence,2003,25(5):564-577.

[6]张波.基于粒子的滤波图像跟踪算法研究[D].上海:上海交通大学,2007.

[7]Voila P,Jones M.Rapid object detection using a boosted cascade of simple features[J].Computer Vision and Pattern Recognition,2001.CVPR 2001.Proceedings of the 2001 IEEE Computer Society Conference.I,2001,1:511-518.

[8]李伟生,杨瑞娟,周丽芳,等.基于多肤色空间及AdaBoost算法的人脸检测方法[J].计算机应用研究,2012,29(6):2368-2370.

[9]Barnich O,Van Droogenbroeck M.ViBe:A universal background subtraction algorithm for video sequences[J].IEEE Transactions on Image Processing,2011,20(6):1709-1724.

(编辑:姚佳良)

A tracking method-based on face detection and feature

LIANG Lu-hua1,YAN Zhan-peng2
(1 Mathematics Teaching and Researching Office,Shenyang Pharmaceutical University,Shenyang 110016,China;2.Shanghai Reaserch Center of Kedacom,Shanghai 200233,China)

A face could be detected and labeled more than once when analysising the video. Through analyzing norigid features as well as the face-video′s characters,the paper proposed a method combined with the position matching and the Meanshift tracking.The experimental result shows that the propeosed method can reduce the ratio that a face is labeled more than once,and meanwhile,enjoys a real-time requirement.

face detection;tracking;position matching

1672―6197(2013)01―0046―04

TP277

A

2012- 11- 14

梁露花,女,liangluhua1988@163.com

猜你喜欢

链表实时性人脸
有特点的人脸
一起学画人脸
基于二进制链表的粗糙集属性约简
跟麦咭学编程
三国漫——人脸解锁
基于链表多分支路径树的云存储数据完整性验证机制
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
长得象人脸的十种动物
链表方式集中器抄表的设计