一种实时人脸检测算法的制作方法

文档序号:6401143阅读:356来源:国知局
专利名称:一种实时人脸检测算法的制作方法
技术领域
本发明涉及人机自然交互技术,特别涉及计算机视觉技术中的人脸检测技术及其实时实现。
背景技术
自然人机交互技术以及生物识别技术的应用越来越广,人脸检测与识别能极大地提升用户体验。目前,效果稳定且使用较多的人脸检测算法主要是基于Haar的AdaBoost人脸检测算法。该算法主要包括两个部分:训练和识别。训练一般采用离线方式,选取大量人脸样本作为正样本,同时选取大量非人脸图像作为负样本,进行训练,训练一般耗时较长,训练结果包含大量Haar特征及权值。现有的作法是:人脸检测时,通过一个固定大小的矩形遍历输入图像,对于该矩形处于的每一个位置,根据训练结果选取并计算该位置的图像的Haar特征,并判断该位置的图像是否是人脸。然后对输入图像缩放一定比例,重复以上检测过程,直到原始图像缩放到人脸检测设定的人脸大小的上下限为止。可见,该方法需要在图像的多尺度空间进行遍历,处理的数据量信息较大,随着处理图像尺寸的增大,计算量将大幅提升,处理每帧图像需要进行大量计算,将占用大量CPU资源。在通用计算机上,该算法也很难达到实时,况且占用大量系统资源。

发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供一种占用较少系统资源且快速的人脸检测方法。本发明采用的技术方案如下:包括以下步骤:
整帧检测步骤:对输入图像进行整帧人脸检测,若未检测到人脸信息,则对下一帧图像进行整帧人脸检测,直到检测到人脸信息;
记录整帧检测到的人脸区域步骤:记录人脸位于该帧图像的位置信息及人脸矩形大小,得到人脸区域;
对所述整帧检测到具有人脸信息图像后的第I帧图像、第2帧图像、第3帧图像及第4帧图像依次进行预测位置检测步骤,所述预测位置检测步骤为:对图像的预测位置进行人脸检测,并保存检测到的人脸区域位置及人脸区域面积;所述预测位置对应于前一帧图像中被检测到的人脸区域的位置,所述预测位置的范围为前一帧图像中被检测到的人脸区域面积的基础上各边分别加长20%,且不超过整个图像大小;
重复上述各步骤处理后续的图像。优选地,所述整帧检测步骤进一步包括:
步骤101:对图像数据进行肤色提取,得到肤色图像的二值 步骤102:对肤色二值图像先后进行列投影和行投影,并合并邻接的行和列,得到肤色区域块;步骤103:对各个肤色区域块分别进行人脸检测。优选地,所述整帧检测步骤101包括:
步骤1011:对输入的RGB图像进行色彩空间转换,得到YUV空间图像;
步骤1012:创建一幅与输入图像等宽等高的单通道掩码图像,所有像素值初始化为O ;步骤1013:遍历所述YUV空间图像的每个像素,如果某像素的V和U分量取值分别位于[8(Γ120]和[133 173]范围内,则将所述单通道掩码图像中相应像素的值置I ;从而得到二值化的掩码图像。优选地,所述步骤102包括:
步骤1021:将所述二值化的掩码图像按列对每列的像素值求和,得到一个行向量;步骤1022:从左到右扫描该行向量,以连续5个小于30的值为分隔符把该行向量分为数段,并舍弃长度小于20的段;
步骤1023:对剩余的每个段构造矩形得到一个子掩码图像列表;对每个段构造矩形得到子掩码图像的作法是:矩形左上顶点的X坐标为该段的起点位于行向量中的位置,矩形左上顶点的I坐标为0,矩形的宽度为该段的长度,矩形的高度为输入图像的高度;
对步骤1023中的子掩码图像列表中的每个子掩码图像进行如下操作:
步骤1024:按行对子掩码图像每行求和,得到一个列向量;
步骤1025:从上到下扫描该列向量,以连续5个小于10的值为分隔符,把该列向量分为数段,并舍弃高度小于10的段;
步骤1026:对剩余的 每个段构造矩形得到一个肤色区域块列表;对每个段构造矩形得到肤色区域块的作法是:矩形左上顶点的X坐标为其对应的子掩码图像左上顶点的X坐标,矩形左上顶点的y坐标为该段的起点位于列向量中的位置,矩形的宽度为其对应的子掩码图像的宽度,矩形的高度为该段的长度。优选地,对所述的每个肤色区域块进行人脸检测,获取人脸区域。优选地,所述人脸检测的方法为基于Haar的AdaBoost人脸检测算法。综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明对各帧采用不同的方法进行人脸检测,一般来说,对于第1,6,11,…等帧(每隔4帧)采用整帧检测的方式进行处理,对于第2,3,4,5,7,8,9,10,…等帧,即整帧检测帧的后继4帧,采用预测位置检测的方式进行处理。预测位置为上一帧的检测位置,范围大小为检测到的人脸区域的上下左右各扩大20%,但不超出整个图像大小。在该区域内只找最大人脸区域,速度很快,且占用系统资源较少。


本发明将通过例子并参照附图的方式说明,其中:
图1为原始输入图像到单通道掩码图像的转换过程示意图。图2为单通道掩码图像到子掩码图像列表的转换过程示意图。图3为子掩码图像列表到肤色区域块列表的转换过程示意图。图4为通过本发明一个实施例得到的肤色区域块列表示意图。图5为本发明预测位置检测步骤示意图。
具体实施例方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。本发明采用的算法改进点在于对各帧采用不同的方法进行人脸检测,具体做法是这样的,包括:
整帧检测步骤:对输入图像进行整帧人脸检测,若未检测到人脸信息,则对下一帧图像进行整帧人脸检测,直到检测到人脸信息;
记录整帧检测到的人脸区域步骤:所述人脸区域信号包括人脸位于该帧图像的位置信息及人脸矩形大小。从通过整帧检测到具有人脸信息的图像开始,依次对其后续的4帧图像进行预测位置检测步骤。所述预测位置检测步骤为:对图像的预测位置进行人脸检测,并保存检测到的人脸区域位置及人脸区域面积;所述预测位置对应于前一帧图像中被检测到的人脸的位置,所述预测位置的范围为前一帧图像中被检测到的人脸矩形面积的基础上各边分别加长20%,且不超过整个图像大小。如图5,在本发明一个实施例中,假设前一帧检测到的人脸矩形左上角定点坐标为(xl,y),宽度为wl,高度为h;则当前帧检测范围为矩形左上角定点坐标为(xl-wlX0.2,y-hX0.2),矩形宽度为 wlX (1+0.2),矩形高度为 hX (1+0.2)。若人脸矩形某一边往外扩大20%后超过了图像范围,则预测范围以该边对应的图像边界为限。重复上述三个步骤处理后续的图像。所述整帧检测步骤进一步包括:
步骤101:对图像数据进行肤色提取,得到肤色图像的二值 步骤102:对肤色二值图像先后进行列投影和行投影,并合并邻接的行和列,得到肤色区域块;
步骤103:对各个肤色区域块分别进行人脸检测。如图1,以640X480大小的图像为例,所述整帧检测步骤101包括:
步骤1011:对输入的640X480大小的RGB图像进行色彩空间转换,得到YUV空间图
像;
步骤1012:创建一幅与640X480大小的单通道掩码图像,所有像素值初始化为O ;步骤1013:遍历所述YUV空间图像的每个像素,如果某像素的V和U分量取值分别位于[8(Γ120]和[133 173]范围内,则将所述单通道掩码图像中相应像素的值置I ;从而得到640X480大小的二值化的掩码图像。如图2,所述步骤102包括:
步骤1021:将所述二值化的掩码图像按列对每列的像素值求和,得到一个具有640个元素的行向量;
步骤1022:从左到右扫描该行向量, 以连续5个小于30的元素为分隔符把该行向量分为数段,并舍弃长度小于20的段(例如,某段具有18个元素);
步骤1023:对剩余的每个段构造矩形得到一个子掩码图像列表;对每个段构造矩形得到子掩码图像的作法是:矩形左上顶点的X坐标为该段的起点元素位于行向量中的位置或者说序号,矩形左上顶点的I坐标为0,矩形的宽度为该段的长度(例如,该段具有50个元素,那么该段的长度为50),矩形的高度为输入图像的高度,即480个像素;
如图3,对步骤1023中的子掩码图像列表中的每个子掩码图像进行如下操作:
步骤1024:按行对子掩码图像每行求和,得到一个具有480个元素的列向量;
步骤1025:从上到下扫描该列向量,以连续5个小于10的元素为分隔符,把该列向量分为数段,并舍弃高度小于10的段;
步骤1026:对剩余的每个段构造矩形得到一个肤色区域块列表;对每个段构造矩形得到肤色区域块的作法是:矩形左上顶点的X坐标为其对应的子掩码图像左上顶点的X坐标,矩形左上顶点的y坐标为该段的起点元素位于列向量中的位置或者说序号,矩形的宽度为其对应的子掩码图像的宽度,矩形的高度为该段的长度。再对所述的每个肤色区域块进行人脸检测,获取人脸区域信息。本发明中预测位置检测步骤及步骤103中所说的人脸检测的方法可以为本领域常用的基于Haar的AdaBoost人脸检测算法,由于该算法为检测人脸的经典算法,在此不再详述其原理。本发明并不局限于前述的具体实施方式
。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
权利要求
1.一种实时人脸检测算法,其特征在于,包括以下步骤: 整帧检测步骤:对输入图像进行整帧人脸检测,若未检测到人脸信息,则对下一帧图像进行整帧人脸检测,直到检测到人脸信息; 记录整帧检测到的人脸区域步骤:记录人脸位于该帧图像的位置信息及人脸矩形大小,得到人脸区域; 对所述整帧检测到具有人脸信息图像后的第I帧图像、第2帧图像、第3帧图像及第4帧图像依次进行预测位置检测步骤,所述预测位置检测步骤为:对图像的预测位置进行人脸检测,并保存检测到的人脸区域位置及人脸区域面积;所述预测位置对应于前一帧图像中被检测到的人脸区域的位置,所述预测位置的范围为前一帧图像中被检测到的人脸矩形面积的基础上各边分别加长20%,且不超过整个图像大小; 依次重复前述各步骤处理后续的图像。
2.根据权利要求1所述的算法,其特征在于,所述整帧检测步骤进一步包括: 步骤101:对图像数据进行肤色提取,得到肤色图像的二值图; 步骤102:对肤色二值图像先后进行列投影和行投影,并合并邻接的行和列,得到肤色区域块; 步骤103:对各个肤色区域块分别进行人脸检测。
3.根据权利要求2所述的算法,其特征在于,所述整帧检测步骤101包括: 步骤1011:对输入的RGB图像进行色彩空间转换,得到YUV空间图像; 步骤1012:创建一幅与输入图像等宽等高的单通道掩码图像,所有像素值初始化为O ;步骤1013:遍历所述YUV空间图像的每个像素,如果某像素的V和U分量取值分别位于[8(Γ120]和[133 173]范围内,则将所述单通道掩码图像中相应像素的值置I ;从而得到二值化的掩码图像。
4.根据权利要求3所述的算法,其特征在于,所述步骤102包括: 步骤1021:将所述二值化的掩码图像按列对每列的像素值求和,得到一个行向量;步骤1022:从左到右扫描该行向量,以连续5个小于30的值为分隔符把该行向量分为数段,并舍弃长度小于20的段; 对步骤1023中的子掩码图像列表中的每个子掩码图像进行如下操作: 步骤1024:按行对子掩码图像每行求和,得到一个列向量; 步骤1025:从上到下扫描该列向量,以连续5个小于10的值为分隔符,把该列向量分为数段,并舍弃高度小于10的段; 步骤1026:对剩余的每个段构造矩形得到一个肤色区域块列表;对每个段构造矩形得到肤色区域块的作法是:矩形左上顶点的X坐标为其对应的子掩码图像左上顶点的X坐标,矩形左上顶点的y坐标为该段的起点位于列向量中的位置,矩形的宽度为其对应的子掩码图像的宽度,矩形的高度为该段的长度。
5.根据权利要求4所述的算法,其特征在于,对所述的每个肤色区域块进行人脸检测,获取人脸区域。
6.根据权利要求2-5中任意一项所述的算法,其特征在于,所述预测位置检测步骤及步骤103中的人脸检测的方法为基于Haar的AdaBoost人脸检测算法。
全文摘要
本发明公开了一种实时人脸检测算法,涉及人机自然交互技术,旨在提供一种占用较少系统资源且快速的人脸检测方法。本发明技术要点包括整帧检测步骤对输入图像进行整帧人脸检测,若未检测到人脸信息,则对下一帧图像进行整帧人脸检测,直到检测到人脸信息;记录整帧检测到的人脸区域步骤记录人脸位于该帧图像的位置信息及人脸矩形大小,得到人脸区域;对所述整帧检测到具有人脸信息图像后的第1帧图像、第2帧图像、第3帧图像及第4帧图像依次进行预测位置检测步骤;重复上述各步骤处理后续的图像。
文档编号G06K9/00GK103218600SQ201310105220
公开日2013年7月24日 申请日期2013年3月29日 优先权日2013年3月29日
发明者王昆 申请人:四川长虹电器股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1