发明内容
本发明的目的是提供一种基于嵌入式系统的人脸检测与跟踪方法,使得人脸检测与跟踪能应用于数码相机、数码摄相机、手机等采用嵌入式系统的电子产品中,解决嵌入式系统因本身DSP处理速度慢、内存资源有限、平台开放性差等因素导致无法实现人脸检测与跟踪的技术问题。
本发明基于嵌入式系统的人脸检测与跟踪方法,包括以下步骤:
S1、图像预处理
S11、对输入图像降采样;
S12、计算降采样后图像的灰度积分图;
S2、人脸检测
S21、在预处理后的图像上进行肤色检测,标识出肤色区和非肤色区;
S22、分别用不同尺度的搜索窗口按照一定间隔移动,遍历上述肤色分割后的图像,利用肤色比例判决方法和眼睛灰度特征判决方法,从搜索到的窗口排除掉大量非人脸窗口,然后用基于Adaboost算法的人脸分类器对剩下的窗口分类;
S23、根据人脸分类器输出的人脸窗口,在图像上标识出人脸区域;
S3、人脸跟踪
S31、在步骤S2检测到的人脸区域内,分别计算颜色直方图和人脸椭圆轮廓,建立跟踪模型;
S32、在后续输入图像上确定搜索区域;
S33、在步骤S32确定的搜索区域内进行窗口搜索,计算每个窗口的颜色直方图和椭圆梯度,并与所述跟踪模型匹配,找出具有最佳颜色直方图和最佳椭圆梯度值的窗口,作为目标人脸在该帧图像中的位置;
S34、判断是否退出跟踪,如果不退出,转去执行步骤S32。
由于在人脸检测步骤前对输入的每一帧图像进行了降采样和计算灰度积分图的预处理,在人脸检测步骤中首先采用肤色比例判决方法和眼睛灰度特征判决方法排除掉了大量的非人脸窗口,只有剩余的少量窗口用基于Adaboost算法的人脸分类器进行检测和定位,因此大大地减少了人脸检测的运算量,使得本发明人脸检测与跟踪方法能应用于数码相机、数码摄相机、手机等采用嵌入式系统的电子产品中。
而且,本发明在跟踪步骤中,采用了简化的椭圆轮廓信息和颜色直方图信息联合的方法,来综合考虑可能的人脸目标区域是否存在,在不降低跟踪速度的基础上提高了跟踪精度。
具体实施方式
本发明针对嵌入式系统本身的特点及应用的局限性,如内存资源有限、DSP处理速度慢、平台开放性差等,提出了一种基于嵌入式系统的人脸检测与跟踪方法,实现了数码相机、手机等采用嵌入式系统的电子产品在各种复杂环境下进行多人脸的实时检测和快速跟踪。
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,本基于嵌入式系统的人脸检测与跟踪方法包括以下步骤:S0、通过图像传感器从外界实时获取每帧图像。S1、对每帧图像进行预处理。S2、对预处理后的图像进行快速多人脸检测。S3、在稳定检测到人脸信息后,启动人脸跟踪模块,对人脸实时跟踪。
参照图2,其中,图像预处理包括以下步骤:S11、对图像降采样;S12、计算降采样后图像的灰度积分图。通过图像降采样对输入图像进行降采样处理,输出分辨率为320x240像素的图像和分辨率为160x120像素的图像。160x120像素的图像应用于0.5米处的近距离人脸检测,320x240像素的图像应用于中远距离(2.5米)人脸检测。降采样处理主要是为了减少运算量和运算时间,加快检测速度。由于人脸检测采用基于灰度图的检测,因此对指定区域块中的灰度统计计算非常频繁,为减少计算时间,本发明采用了2001年Viola等人提出的灰度积分图概念,在人脸检测前,对降采样输出的图像计算灰度积分图。
人脸检测时,由于对人脸的尺度大小无法预先判断,因此需要通过变化尺度来搜索各种不同尺度下的人脸。具体方法如下:
参照图3,人脸检测包括以下步骤:S21、在预处理后的图像上进行肤色检测,标识出肤色区和非肤色区,实现肤色区域分割。S22、分别用不同尺度的搜索窗口按照一定间隔(例如1像素)移动,遍历上述肤色分割后的图像,利用肤色比例判决方法和眼睛灰度特征判决方法,从搜索到的窗口排除掉大量非人脸窗口,然后用基于Adaboost算法的人脸分类器对剩下的窗口分类。S23、根据人脸分类器输出的人脸窗口,在图像上标识出人脸区域。
人脸的肤色信息是人脸的重要特征,它不受人的表情、角度、姿态等因素的影响,有很高的稳定性。 而且肤色和大部分的背景颜色是有区别的,采用肤色模型检测人脸有很高的鲁棒性。目前比较适用的肤色模型有RGB、YCBCR、HSV等。HSV模型中H表示色调信息,S为色彩的饱和度信息,V为色彩的亮度信息。由于HSV模型能较好地将亮度信息和色彩信息分离开来,能一定程度抑制复杂环境光照的影响,因此,在步骤S21中,采用了HSV肤色模型来进行肤色分割,通过HSV肤色模型检测图像中可能的肤色区域,并标识“1”为肤色,“0”为非肤色。
步骤S22中,所述肤色比例判决方法包括以下步骤:计算窗口中肤色像素所占比例,将该比例与设定的人脸窗口阈值比较,小于人脸窗口阈值则判决该窗口为非人脸窗口。
步骤S22中,所述眼睛灰度特征判决是利用人脸五官特征基本成比例的特点,结合灰度积分图,在搜索窗口内先对人眼区域的灰度比例特征进行预判断,排除大量非人脸窗口。具体的眼睛灰度特征判决方法包括以下步骤:根据人脸五官具有相对固定的对称比例关系和眼睛具有相对较低的灰度值的特征,利用先验知识建立一个人脸比例模板,将窗口与所述人脸比例模板进行比例判断,是否存在成对的人眼区域有明显的灰度值下降,满足设定的阈值条件则认为当前窗口是可能的人脸窗口。
通过前面的粗检测(肤色比例判决和眼睛灰度特征判决),已经排除了大量非人脸区域,接下来要对剩余的相对少的区域进行人脸分类检测。采用基于特征的人脸检测算法有很多,本发明结合嵌入式系统的特点,采用速度相对比较快的基于Adaboost算法的人脸分类器检测人脸。Adaboost算法根据人脸面部的灰度分布特征,选择使用了haar特征。haar特征是一种基于积分图像的特征,主要在灰度图像中使用,该特征计算简单,提取速度较快。Adaboost算法首先提取图像中的haar特征,然后通过训练过程从中选出最优的haar特征,再将训练得到的haar特征转换成弱分类器,最后将得到的弱分类器进行优化组合用于人脸检测。2001年,Voila提出了基于Adaboost算法的层级结构的人脸检测算法,其中主要提出了积分图,haar特征和层级结构的检测机制,采用由粗到细的检测策略,真正实现了实时检测正面人脸。具体原理及实现步骤可以参考其相关论文。图5为使用Adaboost算法进行人脸检测的流程图。
对当前窗口采用Adaboost算法的人脸检测器进行判断,如果全部通过人脸检测器,则认为存在人脸,并标识该窗口为人脸窗口。在完成当前窗口的人脸检测之后,判断是否已经完成当前尺度下的所有窗口的搜索,如果没有,则移动到下一检测窗口继续检测,如果已完成当前尺度下的所有窗口的搜索,进一步判断是否已完成了所有尺度的窗口搜索,如果否,则继续缩放改变当前尺度,重新开始窗口搜索,如果已完成了所有尺度的窗口搜索,则退出窗口搜索流程,进入检测的后期处理。在检测的后期处理中,将多个满足设定值的距离相近的人脸标识窗口合并,对于不满足设定值的孤立人脸标识窗口,则丢弃该窗口。
本发明能搜索的最小人脸为30x30像素,进行人脸搜索时,在此基础上依次以1.2的比例放大搜索窗口尺度直到最大尺度比例为4.0为止。实验表明这种变尺度的窗口搜索方法基本能保证1米~2.5米范围内的人脸,对0.5米~1米近距离的大人脸,我们采用降低图像分辨率的方法,可以实现近距离的人脸检测。采用这种变分辨率的搜索策略能有效地减少DSP的计算量,加快检测速度。
由于人脸检测流程耗时较多,如果每一帧都采用检测算法,则无法实现人脸的实时跟踪。本发明采用间隔若干帧检测,其余帧跟踪的方法来快速实现人脸的响应。关于人脸跟踪,本发明主要是基于颜色直方图信息和椭圆轮廓信息,来实现人脸的快速跟踪。
参照图4,人脸跟踪包括:S31、在步骤S2检测到的人脸区域内,分别计算颜色直方图和人脸椭圆轮廓,建立跟踪模型。S32、在后续输入图像上确定搜索区域。S33、在步骤S32确定的搜索区域内进行窗口搜索,计算每个窗口的颜色直方图和椭圆梯度,并与所述跟踪模型匹配,找出具有最佳颜色直方图和最佳椭圆梯度值的窗口,作为目标人脸在该帧图像中的位置。S34、判断是否退出跟踪,如果否,转去执行步骤S32,如果是,则结束跟踪。
上述步骤S31中,通过在步骤S2检测到的人脸区域内,分别统计R、G、B三个通道的直方图信息,获得颜色直方图信息。通过计算人脸区域灰度图的梯度图,获取人脸椭圆轮廓。通过采用Sobel算子提取人脸区域灰度图的横向和纵向的边缘信息,得到梯度图。本发明采用的Sobel算子分为水平和垂直方向两种,分别如下所示:
上述步骤S32中,根据目标人脸在前一帧输入图像中的位置和大小,确定当前输入图像上的搜索区域。例如,在前一帧输入图像中,目标人脸位于以P(300,200)为中心10mm×10mm的矩形区域内,那么在当前输入图像中,则将以M(300,200)为中心12mm×12mm的矩形区域作为搜索区域。
本发明在嵌入式平台下实现了人脸检测与跟踪,它采用基于Adabooost算法的由粗到细的检测策略,并利用粗略椭圆模板和颜色直方图联合跟踪,可以快速实现人脸检测和跟踪。实验中,在主频率为235M,ARM9的某嵌入式处理器上实现了算法,实验表明本发明提出的方法可以达到人脸的快速检测与跟踪效果。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。