著录项信息
专利名称 | 多姿态人脸检测与追踪系统及方法 |
申请号 | CN200610113423.X | 申请日期 | 2006-09-27 |
法律状态 | 暂无 | 申报国家 | 暂无 |
公开/公告日 | 2007-03-07 | 公开/公告号 | CN1924894 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06K9/00 | IPC分类号 | G;0;6;K;9;/;0;0查看分类表>
|
申请人 | 北京中星微电子有限公司 | 申请人地址 | 北京市海淀区学院路35号世宁大厦六层607号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京中星微人工智能芯片技术有限公司 | 当前权利人 | 北京中星微人工智能芯片技术有限公司 |
发明人 | 黄英;谢东海;王浩 |
代理机构 | 北京安信方达知识产权代理有限公司 | 代理人 | 许志勇;颜涛 |
摘要
本发明公开了一种多姿态人脸检测与追踪系统及方法,可实时检测视频序列中多个姿态的人脸,并在后续图像中对检测人脸进行持续跟踪。该方法首先通过人脸样本训练,分别获得人脸正面与半侧面检测模型,并确定AAM人脸模型;利用所述人脸正面与半侧面检测模型,对输入视频图像进行人脸检测,确定一帧图像中是否存在人脸;如果在某帧图像中检测到人脸,则在后续帧中追踪并验证该人脸。应用本发明所述的方法,可以追踪检测多姿态的人脸,且能克服受到与人脸肤色相近的非人脸区域干扰的缺点,并能确保多姿态人脸的持续跟踪和检测算法的稳定性,并获取人脸的平面旋转角度,输出人脸的准确尺寸。
1.一种多姿态人脸检测与追踪方法,其特征在于,包括:
(1)通过人脸样本训练,分别获得人脸正面与半侧面检测模型,并确 定主动外观人脸模型;
(2)利用所述人脸正面与半侧面检测模型,对输入视频图像进行人脸 检测,确定一帧图像中是否存在人脸;
(3)如果在某帧图像中检测到人脸,则在后续帧中追踪并验证该人脸, 包括步骤:
(31)追踪前一帧图像中的人脸位置,获得当前帧中人脸的初步位置;
(32)将所述获得的初步位置作为初值,利用当前帧与前一帧图像的 色度差异,计算人脸的平移速度;
(33)根据所述平移速度,估算出当前帧中人脸的大概位置,并利用所 述人脸正面模型与半侧面检测模型,在该位置附近进行检测,以验证该人脸;
(34)如果在该位置附近检测到人脸,则验证通过,并采用所述的主动 外观人脸模型计算当前人脸的仿射变换系数,获取当前帧人脸的特征参数。
2.如权利要求1所述的方法,其特征在于,所述步骤(3)进一步包括:
(35)将当前帧与前一帧图像人脸的关键点进行匹配,根据匹配结果进 一步修正所述计算出来的人脸平移速度,以及当前帧人脸的特征参数。
3.如权利要求2所述的方法,其特征在于,所述步骤(3)进一步包括:
(36)更新当前帧人脸的特征参数,利用这些参数用于下一帧图像的追 踪验证。
4.如权利要求1所述的方法,其特征在于,所述步骤(34)进一步包 括:如果在该位置附近未检测到人脸,则验证不通过,而在下一帧中进行追 踪验证。
5.如权利要求4所述的方法,其特征在于,所述步骤(34)进一步包 括:如果在后续数帧中人脸验证仍未通过,则停止追踪。
6.如权利要求5所述的方法,其特征在于,进一步包括步骤:
(4)前一个追踪目标停止追踪后,在后续图像中重新从步骤(2)开始 检测,直到找到新的人脸后继续进行追踪。
7.如权利要求1所述的方法,其特征在于,步骤(1)所述通过人脸样 本训练分别获得人脸正面与半侧面检测模型的步骤,包括:首先使用所有姿 态的人脸样本训练多层检测模型,再对正面、左侧面、右侧面姿态的人脸样 本分别进行训练,得到三个姿态的检测模型。
8.如权利要求1所述的方法,其特征在于,步骤(2)所述人脸检测步 骤,包括:首先采用所有姿态的检测模型对图像进行搜索,淘汰大部分搜索 窗口,然后将剩下的窗口分别输入到三个姿态的检测模型中,根据检测结果 确定人脸大致姿态。
9.一种多姿态人脸检测与追踪系统,其特征在于,包括:
训练模块,用于通过人脸样本训练,分别获得人脸正面与半侧面检测模 型,并确定主动外观人脸模型;
检测模块,用于根据所述人脸正面与半侧面检测模型,对输入视频图像 进行人脸检测,确定一帧图像中是否存在人脸;
追踪模块,用于在某帧图像中检测到人脸后,在后续帧中追踪并验证该 人脸,包括:
用于追踪前一帧图像中的人脸位置,获得当前帧中人脸的初步位置的单 元;
用于将所述获得的初步位置作为初值,利用当前帧与前一帧图像的色度 差异,计算人脸的平移速度的单元;
用于根据所述平移速度,估算出当前帧中人脸的大概位置,并利用所述 人脸正面模型与半侧面检测模型,在该位置附近进行检测,以验证该人脸的 单元;
用于在该位置附近检测到人脸后,采用所述的主动外观人脸模型计算当前 人脸的仿射变换系数,获取当前帧人脸的特征参数的单元。
10.如权利要求9所述的系统,其特征在于,所述追踪模块进一步包括:
用于将当前帧与前一帧图像人脸的关键点进行匹配,根据匹配结果进一 步修正所述计算出来的人脸平移速度,以及当前帧人脸的特征参数的单元。
11.如权利要求9所述的系统,其特征在于,所述训练模块,通过使用 所有姿态的人脸样本训练多层检测模型,并对正面、左侧面、右侧面姿态的 人脸样本分别进行训练,得到三个姿态的检测模型。
12.如权利要求11所述的系统,其特征在于,所述检测模块,通过采 用所有姿态的检测模型对图像进行搜索,淘汰大部分搜索窗口,并将剩下的 窗口分别输入到三个姿态的检测模型中,根据检测结果确定人脸大致姿态。
技术领域\n本发明涉及一种人脸检测与追踪系统及其方法,尤其涉及一种多姿态人 脸检测与追踪方法。\n背景技术\n人脸是计算机视觉系统中人机交互最便捷的方式之一。人脸检测就是在 图像或图像序列中确定所有人脸的位置、大小等信息,而人脸跟踪则是持续 跟踪视频序列中的一个或多个检测人脸。人脸检测与跟踪技术不仅是人脸识 别、表情识别、人脸合成等技术的必要前提,而且其在智能人机交互、视频 会议、智能监控、视频检索等领域有着广泛的应用价值。\n本系统针对的图像是视频摄像头输入的视频序列。之前,本申请人已经 提出了一种视频序列中人脸的实时检测与持续追踪的方法及系统,中国专利 申请号为200510135668.8,以下简称文献1,该申请在此被整体结合参考。 该申请提出的方法与系统采用了基于AdaBoost统计分层分类器的人脸检测 方法,实现正面直立人脸的实时检测,并结合基于Mean shift和直方图特征 的人脸跟踪方法,实现了人脸的实时跟踪系统。从实验结果看,该系统可检 测-20到20度深度旋转、-20到20度平面旋转的人脸,可检测不同肤色的 人脸、不同光照条件下的人脸、戴眼睛的人脸等。人脸的跟踪通过肤色实现, 跟踪算法不受人脸姿态的影响,侧面、旋转人脸同样可以跟踪。\n然而,上述专利申请中的算法也存在着一定的局限性。首先,该算法仅 训练了正面人脸的检测模型,无法检测偏侧面人脸,这就意味这人脸的检测 和验证都只能针对正面人脸,大大限制了算法的应用范围;其次,该算法仅 通过肤色直方图跟踪人脸,而人脸的肤色特征非常容易受到其他肤色区域如 脖子、手或者类似肤色区域如黄色衣服的干扰,反映在跟踪结果上就是跟踪 区域有时会跳到手、脖子或黄衣服上;再次,原来的算法获取的跟踪区域的 大小和位置变化比较剧烈,即使人脸保持不动,跟踪结果也会发生明显的抖 动;还有就是该算法无法获取人脸更进一步的姿态信息,如人脸的旋转角度、 当前大致姿态等。\n发明内容\n本发明所要解决的技术问题在于提供一种多姿态人脸检测与追踪系统 及方法,追踪检测多姿态的人脸,且能克服受到与人脸肤色相近的非人脸区 域干扰的缺点,并能确保多姿态人脸的持续跟踪和检测算法的稳定性,并获 取人脸的旋转角度,输出人脸的准确尺寸。\n为了解决上述技术问题,本发明提供了一种多姿态人脸检测与追踪方 法,包括:\n(1)通过人脸样本训练,分别获得人脸正面与半侧面检测模型,并确 定主动外观AAM人脸模型;\n(2)利用所述人脸正面与半侧面检测模型,对输入视频图像进行人脸 检测,确定一帧图像中是否存在人脸;\n(3)如果在某帧图像中检测到人脸,则在后续帧中追踪并验证该人脸, 包括步骤:\n(31)追踪前一帧图像中的人脸位置,获得当前帧中人脸的初步位置;\n(32)将所述获得的初步位置作为初值,利用当前帧与前一帧图像的 色度差异,计算人脸的平移速度;\n(33)根据所述平移速度,估算出当前帧中人脸的大概位置,并利用所 述人脸正面模型与半侧面检测模型,在该位置附近进行检测,以验证该人脸;\n(34)如果在该位置附近检测到人脸,则验证通过,并采用所述的AAM 人脸模型计算当前人脸的仿射变换系数,获取当前帧人脸的特征参数。\n其中,所述步骤(3)进一步包括:\n(35)将当前帧与前一帧图像人脸的关键点进行匹配,根据匹配结果进 一步修正所述计算出来的人脸平移速度,以及当前帧人脸的特征参数。\n其中,所述步骤(3)进一步包括:\n(36)更新当前帧人脸的特征参数,利用这些参数用于下一帧图像的追 踪验证。\n其中,所述步骤(34)进一步包括:如果在该位置附近未检测到人脸, 则验证不通过,而在下一帧中进行追踪验证。\n其中,所述步骤(34)进一步包括:如果在后续数帧中人脸验证仍未通 过,则停止追踪。\n其中,进一步包括步骤:\n(4)前一个追踪目标停止追踪后,在后续图像中重新从步骤(2)开始 检测,直到找到新的人脸后继续进行追踪。\n其中,步骤(1)所述通过人脸样本训练分别获得人脸正面与半侧面检 测模型的步骤,包括:首先使用所有姿态的人脸样本训练多层检测模型,再 对正面、左侧面、右侧面姿态的人脸样本分别进行训练,得到三个姿态的检 测模型。\n其中,步骤(2)所述人脸检测步骤,包括:首先采用所有姿态的检测 模型对图像进行搜索,淘汰大部分搜索窗口,然后将剩下的窗口分别输入到 三个姿态的检测模型中,根据检测结果确定人脸大致姿态。\n为了解决上述技术问题,本发明进而提供了一种多姿态人脸检测与追踪 系统,包括:\n训练模块,用于通过人脸样本训练,分别获得人脸正面与半侧面检测模 型,并确定AAM人脸模型;\n检测模块,用于根据所述人脸正面与半侧面检测模型,对输入视频图像 进行人脸检测,确定一帧图像中是否存在人脸;\n追踪模块,用于在某帧图像中检测到人脸后,在后续帧中追踪并验证该 人脸,包括:\n用于追踪前一帧图像中的人脸位置,获得当前帧中人脸的初步位置的单 元;\n用于将所述获得的初步位置作为初值,利用当前帧与前一帧图像的色度 差异,计算人脸的平移速度的单元;\n用于根据所述平移速度,估算出当前帧中人脸的大概位置,并利用所述 人脸正面模型与半侧面检测模型,在该位置附近进行检测,以验证该人脸的 单元;\n用于在该位置附近检测到人脸后,采用所述的AAM人脸模型计算当前 人脸的仿射变换系数,获取当前帧人脸的特征参数的单元。\n其中,所述追踪模块进一步包括:\n用于将当前帧与前一帧图像人脸的关键点进行匹配,根据匹配结果进一 步修正所述计算出来的人脸平移速度,以及当前帧人脸的特征参数的单元。\n其中,所述训练模块,通过使用所有姿态的人脸样本训练多层检测模型, 并对正面、左侧面、右侧面姿态的人脸样本分别进行训练,得到三个姿态的 检测模型。\n其中,所述检测模块,通过采用所有姿态的检测模型对图像进行搜索, 淘汰大部分搜索窗口,并将剩下的窗口分别输入到三个姿态的检测模型中, 根据检测结果确定人脸大致姿态。\n本发明所述的一种多姿态人脸检测与追踪系统及方法,可以追踪检测多 姿态的人脸,且能克服受到与人脸肤色相近的非人脸区域如脖子、人手或黄 衣服等于扰的缺点,并能确保多姿态人脸的持续跟踪和检测算法的稳定性, 并获取人脸的旋转角度,输出人脸的准确尺寸。\n附图说明\n图1是根据本发明实施例所述的一种多姿态人脸检测与追踪系统的结 构示意图;\n图2是根据本发明实施例所述的一种多姿态人脸检测与追踪方法的流 程示意图;\n图3是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中人 脸检测与跟踪结果的示意图;\n图4是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中人 脸检测算法选择的七组微特征的示意图;\n图5是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中人 脸样本的标定与采集;\n图6是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中4组 多姿态人脸检测结果的示意图;\n图7是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中人 脸验证模块的流程示意图;\n图8是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中通 过第一级验证的人脸验证结果的示意图;\n图9是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中通 过第二级验证的人脸验证结果的示意图;\n图10是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中 AAM算法仿射系数计算结果的示例示意图;\n图11是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中基 于AAM的人脸跟踪结果的示意图;\n图12是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中关 键点选取及跟踪结果的示意图;\n图13是根据本发明实施例所述的一种多姿态人脸检测与追踪方法中人 脸检测与跟踪结果的示例示意图。\n具体实施方式\n参见图1,本发明首先提供一种多姿态人脸检测与追踪系统,包括训练 模块100、检测模块200,以及追踪模块(图中未示)。其中:\n训练模块100用于通过人脸样本训练,分别获得人脸正面与半侧面检测 模型(包括右侧姿态、左侧姿态),并确定AAM(Active Appearance Models) 人脸模型;\n检测模块200用于根据所述人脸正面与半侧面检测模型,对输入视频图 像进行人脸检测,确定一帧图像中是否存在人脸;\n追踪模块用于在某帧图像中检测到人脸后,在后续帧中追踪并验证该人 脸,包括:\n用于追踪前一帧图像中的人脸位置,获得当前帧中人脸的初步位置的单 元;\n用于将所述获得的初步位置作为初值,利用当前帧与前一帧图像的颜色 差异,计算人脸的平移速度的单元;\n用于根据所述平移速度,估算出当前帧中人脸的大概位置,并利用所述 人脸正面模型与半侧面检测模型,在该位置附近进行检测,以验证该人脸的 单元;\n用于在该位置附近检测到人脸后,采用所述的AAM人脸模型计算当前 人脸的仿射变换系数,获取当前帧人脸的特征参数的单元;以及\n用于将当前帧与前一帧图像人脸的关键点进行匹配,根据匹配结果进一 步修正所述计算出来的人脸平移速度,以及当前帧人脸的特征参数的单元。\n根据图1所示实施例,参考训练模块100,首先需要进行两组模型的训 练,一是正面与半侧面人脸检测模型,二是AAM人脸模型(图中未示出)。 人脸的检测模型的训练算法可以采用基于AdaBoost算法的多级分类器,由 多个正面和半侧面人脸样本训练多级分类器,抽取的人脸大小为12×12。另 外,为了保证算法可以识别人脸的左侧、正面、右侧三个姿态,在本实施例 中,训练出了左侧姿态人脸检测模型,右侧姿态人脸检测模型和正面姿态人 脸检测模型,其中左侧姿态人脸检测模型和右侧姿态人脸检测模型可以被统 称为半侧面人脸检测模型,其中右侧姿态人脸检测模型是经过左侧姿态人脸 检测模型镜像处理后获得。此外,为了加速检测速度,本实施例还采用所有 姿态的人脸样本训练15层的所有姿态人脸检测模型,被称为第一级检测模 型,用来对输入图像进行初步检测以粗略获得人脸位置。\n训练模块100中,训练AAM人脸模型的目的是在已知输入人脸的大概 位置、大致尺寸的前提下计算该人脸相对标准人脸的仿射变换系数,获取其 较精确的位置、尺寸和旋转角度,这个算法采用主元分析方法(Principal Component Analysis,简称PCA)对大量的人脸样本进行训练,获取一个平 均人脸及多个正交向量,在应用时再采用迭代处理方法将输入人脸的灰度与 训练模型进行比较,计算人脸的仿射变换系数。\n参考检测模块200,在进行人脸检测时,本实施例首先采用所有姿态的 检测模型对输入图像进行搜索,淘汰大部分搜索窗口,接着将剩下的窗口分 别输入到三个姿态的检测模型中,返回最后的检测候选框,并根据检测结果 为每个候选框计算一个权重。一般说来,每个姿态的检测模型都会返回一些 候选框,将邻近的候选框合并,并统计各个姿态返回的候选框的权重。如果 某个合并框中正面人脸的权重比较大,则说明该检测人脸应该是正面人脸; 而如果左侧人脸的权重较大,就可判断该检测人脸大致是左侧人脸,由此即 可确定人脸的大概姿态。\n现在参见图2,为本发明实施例所述的多姿态人脸检测与追踪方法流程 示意图。\n步骤201:从视频摄像头输入一帧图像,在未获取跟踪目标前,每帧搜 索图像,检测人脸的存在;\n图3中的301给出了人脸检测的结果,其中的框为检测人脸框。\n步骤202:判断前一帧是否已经追踪到人脸;\n步骤203:在前一帧没有追踪到人脸时,对当前帧图像进行多姿态人脸 检测,如果在当前帧图像中找到一个或多个人脸,进行步骤204,否则在后 续图像中继续进行人脸检测;\n步骤204:在接下来的两帧图像中跟踪前一帧检测的人脸,并对跟踪人 脸进行验证,只有某个人脸连续两帧都通过验证后,算法才认为该人脸是真 实存在的,如多个人脸通过验证,则挑选出最大的人脸开始跟踪。这里人脸 验证就是重新对跟踪人脸所在区域通过参考检测模块200进行再次检测,判 断是否是真的人脸;\n步骤205:验证通过后开始追踪;\n在确定追踪到人脸后,在后续帧中持续跟踪该人脸,跟踪过程包括数个 步骤:\n步骤206:采用基于Mean Shift和直方图的人脸跟踪算法跟踪前一帧人 脸,获取当前人脸的初步位置;\n步骤207:上一步的跟踪算法获取的人脸位置并不准确,很容易受其他 与肤色较接近的区域的干扰,如脖子、手等,因此还需要利用当前帧与前一 帧图像的色度信息获取人脸的平移速度,此时本发明将上一步的跟踪结果作 为初值,采用Lucas-Kanade反算算法获取人脸比较准确的平移速度;\n步骤208:通过计算的平移速度估计人脸的大概位置,采用人脸检测模 型进行人脸验证,也就是,在这个位置附近进行搜索,判断该区域是否有人 脸存在,此处的人脸验证方法与步骤205所述的人脸验证方法一致;\n步骤209:判断人脸是否通过验证;\n如果当前区域人脸存在,人脸验证通过,则包括如下步骤:\n步骤210:采用AAM算法计算当前人脸的仿射变换系数,获取人脸的 包括准确位置、旋转角度和尺寸在内的特征参数;\n步骤211:对当前帧与前一帧图像人脸的关键点进行匹配,获取两帧图 像中两幅人脸比较准确的平移速度、尺度变换、旋转系数等,进而得到当前 帧人脸的准确特征参数。这一步的另一个目的则是保持跟踪结果的稳定,使 跟踪区域不会出现明显抖动。参考图3中的302表示通过验证的人脸追踪结 果;\n步骤212:更新当前帧人脸的特征参数,利用这些特征参数继续处理下 一帧图像;\n如果步骤209中,在跟踪区域内未搜索到人脸,即人脸验证不通过,这 说明当前跟踪区域不包含人脸或者人脸姿态变化过大,在后续帧中继续跟踪 该人脸,继续进行验证,包括如下步骤:\n步骤213:判断连续数帧是否仍未通过验证;\n步骤214:如果通过验证,则更新特征参数,继续追踪;\n步骤215:如果在后续数帧中人脸验证仍不通过,则认为当前跟踪目标 可能不是人脸,或者人脸姿态变化过大,跟踪价值不高,停止跟踪。参考图 3中的303表示未通过验证的人脸追踪结果的例子。\n前一个跟踪目标停止跟踪后,在后续图像中重新进行人脸检测,直到找 到新的人脸,再重新进行跟踪。\n下面对本发明处理过程中的一些关键技术点分别进行重点说明。\n第一,对本发明步骤203中所述的人脸检测算法作进一步的详细描述。\n本发明所述的人脸检测算法与文献1的原理基本一致,采用基于 AdaBoost统计分层分类器的人脸检测方法,正如之前的文献1所述,基于 AdaBoost的人脸检测算法(P.Viola,and M.Jones,Rapid object detection using a boosted cascade of simple features.Proc.on Computer Vision Pattern Recognition,2001,以下简称文献2),首先由大量“人脸”和“非人脸”样 本训练一个“人脸/非人脸”二类分类器,该分类器可以确定某个尺度的矩 形窗口是否是人脸,设矩形长为m,宽为n,则人脸检测的流程就是:先按 照一定比例连续放缩图像,在得到的系列图像中穷举搜索和判别所有大小 m×n象素窗口,将各个窗口输入到“人脸/非人脸”分类器中,留下识别为 人脸的候选窗口,再采用后处理算法合并相邻位置的候选,输出所有检测到 的人脸的位置、大小等信息。\n文献1只考虑了正面人脸的检测,参考图5中501所示的标准人脸图像 及502所示的裁剪后的标准人脸结果,而本发明还需要实现偏侧面人脸的检 测,以确保多姿态人脸的持续跟踪和检测算法的稳定性。本发明仍旧采用图 4中所示的七组微特征抽取人脸特征,但不同姿态人脸的图像差别非常大, 导致不同姿态人脸相同位置的微特征差别非常大,这意味着如果仍旧采用文 献1中所述的算法为所有的正样本训练一个AdaBoost强分类器,则训练算 法很难得到收敛的结果,即使各级弱分类器挑选了非常多的微特征,但反样 本的虚警率仍旧会比较高。为此,要将多姿态人脸的检测分两步完成,首先 采用所有姿态的人脸样本训练15层检测模型,接着再对三个姿态的样本分 别进行训练,为每个姿态训练一个检测模型。\n在本发明中共收集了约4500幅人脸图像,其中正面人脸图像约2500幅, 左侧人脸约1000幅,右侧人脸约1000幅。结合文献1中所提到的标准人脸 及裁剪方式,对人脸样本进行仿射变换、裁剪分割,参考图5中503所示的 人脸样本和标定点及504所示的裁剪结果,并将所有人脸区域归一化到12 ×12大小。设两眼的距离为r,两眼连线的中心点为(xcenter,ycenter),采集矩形 的长宽设为2r,即两倍双眼间距,则矩形裁剪区域的坐标(xleft,ytop,xright,ybottom) 为:\n\n为增强分类器对人脸一定角度的旋转和尺寸变化的检测鲁棒性,同样对 每个样本进行镜像变换、旋转±20°角度、尺寸放大1.1倍,这样每个样本 扩充为五个样本,如此总共得到了约22500个正样本。反样本图像就是大量 不包含人脸的图像,包括风景图像、动物、文字等,共有5400幅。各层 AdaBoost分类器训练过程中反样本特征的获取方法与文献1中所述也完全 一致,先随机挑选一幅反样本图像,并随机确定反样本在图像中的尺寸和位 置,接着到该图像中裁剪出对应的区域,将裁剪图像归一化到12×12的尺 寸,得到一个反样本。\n所有模型训练完毕后,第一级检测模型有15层,虚警率为0.0022,训 练正样本的分类错误率为4.8%,正样本错误率偏高,虚警率仍旧超过了 0.1%,这表明了不同姿态样本的特征数据差别较大,AdaBoost训练过程中 模型收敛较慢,这也就是需要为不同姿态分别训练模型的原因所在。正面姿 态的检测模型有18层,总的虚警率为2.6e-6,对通过了第一级检测的训练 样本的分类错误率为4.1%。左侧姿态的检测模型有16层,总的虚警率为 3.8e-7,对通过了第一级检测的训练样本的分类错误率为0.42%。为节省训 练时间,又考虑到左侧人脸与右侧人脸的灰度分布是完全对称的,便没有再 训练右侧姿态的检测模型,而是对左侧姿态的检测模型进行镜像处理,即可 得到右侧姿态人脸的检测模型。训练样本中正面样本比较多,且不少样本干 扰比较大,因此分类错误率高一些,而侧面样本比较少,干扰也非常小,因 此分类错误率非常低。\n在进行人脸检测时,本发明首先在多个尺度上缩小图像,例如对于160 ×120图像,考虑了9个尺度,图像的缩小倍数分别为1.5、1.88、2.34、2.93、 3.66、4.56、5.72、7.15、8.94,对应的原始图像中人脸框最小为18×18,最 大为107×107,然后采用第一级检测模型对各幅缩小图像进行搜索,淘汰 大部分搜索窗口,接着将剩下的窗口分别输入到三个姿态的人脸检测模型 中,返回最后的检测候选框,并根据检测结果为每个候选框计算一个权重。 一般说来,每个姿态的人脸检测模型都会返回一些候选框,将邻近的候选框 合并,并统计各个姿态返回的候选框的权重。如果某个合并框中正面人脸的 权重比较大,则说明该检测人脸应该是正面人脸;而如果左侧人脸的权重较 大,就可认为该检测人脸是左侧人脸,由此即可确定人脸的大概姿态。参考 图6,为几组多姿态人脸检测结果的示意图,不同姿态的检测结果已用不同 灰度的方框进行了标注。\n第二,对本发明步骤206中所述的基于Mean Shift的人脸跟踪算法作进 一步详细的描述:\n多姿态人脸检测算法可以检测正面和偏侧面人脸,但无法检测平面旋转 角度过大的人脸,此外,人脸检测算法是非常耗时的,一般需要数十毫秒时 间才能完成一幅320×240图像中所有人脸的检测,因此就不可以对实时输 入的视频序列的每帧图像都进行人脸检测,而是对检测人脸通过进行跟踪和 验证的方法大大提高算法的效率,且确保算法不会跟踪到其他非人脸目标。\n本发明的人脸跟踪算法首先在多姿态人脸检测的基础上,同样采用文献 1及Comaniciu等人在文献3(D.Comaniciu,V.Ramesh,and P.Meer. Kernel-Based Object Tracking.IEEE Trans.Pattern Analysis and Machine Intelligence,May 2003,25(5):564-577,简称文献3)中提到的基于Mean shift 和直方图特征的物体跟踪算法对检测人脸进行跟踪,由前一帧的人脸的位置 大小、人脸的长短期两组局部直方图特征到当前帧图像中搜索人脸的位置, 获取人脸区域中心点的坐标。这个算法的优点是效率非常高,不受人脸旋转、 姿态变化的影响,当人脸在视频中快速平移时该算法也可以粗略获取人脸中 心的位置。但其缺陷也比较明显,算法的跟踪精度不高,尽管可以很快地获 取人脸的位置,但获取的中心点坐标不够精确,即使人脸固定不动,受噪声 干扰等影响,中心点也会不停的抖动。另外,该算法采用肤色作为跟踪的特 征,这意味着算法也有可能跟踪到手、脖子等肤色区域上。\n基于这个跟踪算法的优缺点,在基于Mean Shift的跟踪结果的基础上加 入了人脸平移的精确估算、人脸图像的不断验证以及人脸尺度姿态的估算, 确保算法可一直跟踪到人脸区域,且使跟踪区域精度更高,并可获取人脸的 精确尺寸、旋转角度等。\n第三,对本发明步骤207中所述的平移估算作出详细的描述:\n基于Mean Shift的人脸跟踪算法能快速获取当前帧人脸中心点的粗略 位置,而所述平移估算的目的就是在这个粗略位置的基础上结合人脸色度分 布特征和Lucas-Kanade反算算法(I.Matthews and S.Baker.Active Appearance Models Revisited.International Journal of Computer Vision,Vol.60, No.2,November,2004,pp.135-164,以下简称文献4)精确估算出相邻帧人 脸的平移矢量,确定人脸中心点的精确位置。\nLucas-Kanade算法可以快速计算连续图像序列中某点的平移速度。给定 其中某点A,坐标为xA,I(xA,tk)为第k帧图像中该点的亮度,设相邻两 帧中A的平移速度为u=(u,v),则有:\nI(x-uδt,tk)=I(x,tk-1),δt=tk-tk-1 (2)\n在很多情况下知道A的速度初值,设为u0,如连续图像序列中前面一 帧该点的平移速度可设为其速度的初值,则有u=u0+Δu,且Δu一般比较 小。考虑A点邻域范围内的点,这些点的平移速度可以认为与u非常接近, 由此可以计算相邻两帧中邻域范围N内所有点象素差值的均方和:\n\n使上式最小的u就可作为A的平移速度的估算值。如果Δu很小,则可将上 式对δt进行泰勒级数展开,并去除高于一级的导数项,有:\n\n接着将展开式对Δu求导,使导数等于零,求解方程,得到:\n\n其中,H是Hessian矩阵:\n\n以上所述的速度估算公式仅能适应Δu很小的情形,因为采用了近似的 一级泰勒级数展开。为了保证算法可以估算比较大的平移速度,需要进行多 次迭代处理,前一次迭代估算的平移速度作为新的迭代步骤的初值,每次迭 代估算一个新的平移速度,并与原来的平移速度进行迭加,即:\nun=un-1+Δun (7)\n其中un是第n次迭代后总的速度,Δun第n次迭代求得的速度。另外,还 需要在多个分辨率上进行处理,先在较低分辨率上估算平移速度,将此速度 作为高的分辨率估算算法的初值,然后计算更精确的速度。\n根据式(7),每次迭代过程的初值是前一帧的计算值,因此每次迭代 时都必须重新计算H矩阵及其逆矩阵,这是非常耗时的,为此本 发明采用Lucas-Kanade反算算法提高算法的效率。\n以第n次迭代为例:\nI(x-unδ,tk)=I(x,tk-1)=I(x-un-1δt-Δunδt,tk) (8)\n将上式中的Δun换个位置,变为:\nI(x-un-1δt,tk)=I(x+Δunδt,tk-1) (9)\n由此可以求得Δun的计算式为:\n\n其中,H是Hessian矩阵:\n\n上式中H矩阵在整个迭代过程中是固定不变的,可以在迭代开始前先计算 其逆矩阵,然后就不需要再计算。这样在迭代时只需要不断计算 和Δun,使计算量大大减少。\n视频序列中人脸的尺寸变化非常剧烈,为保证估算算法在人脸尺寸非常 大时仍旧可以快速计算出平移速度,首先对不同尺度的人脸进行了归一化, 将人脸都缩放到同一尺寸。根据前一帧跟踪的人脸尺寸对当前帧图像进行缩 放,使人脸区域的尺寸近似为16×16。接着又以基于Mean shift算法估算的 速度作为反算算法的初值,在缩小后的两帧图像间计算平移速度,先对图像 进行多分辨率处理,将图像再缩小一倍,人脸尺寸近似为8×8,人脸中心 点的邻域N就是这8×8邻域,采用上面的反算算法估算平移速度;将估算 的速度翻倍,在16×16人脸区域上再估算平移速度。最后将总的速度还原 为原始视频上人脸中心点的平移速度。\n在实现平移估算时不仅要考虑灰度信息,还要充分考虑人脸的肤色信 息,将输入图像的RGB三个分量转化为YUV空间,将这三个分量分别送 入速度估算公式中。另外,为了减少人脸光照变化的影响,还将所有的亮度 值除以一个比较大的数,以降低了亮度Y的权重,强调了UV两个色度分量 的作用,从实际效果看这个处理方式明显提高了人脸快速运动时速度估算的 准确性。\n第四,对本发明步骤205和步骤208中所述的人脸验证作出详细的描述:\n在之前提到的文献1中,由于人脸检测算法只能检测正面直立人脸,而 跟踪算法只能获取人脸的区域,无法知道人脸的旋转角度姿态等,因此在进 行人脸验证操作时,只有连续数百帧都跟踪到目标,但在跟踪区域都没有检 测到正面人脸,才认为目标不一定是人脸,停止跟踪。这样做的缺点就是如 果跟踪到非人脸目标如脖子、手等,系统需要数十秒时间才能反应过来,这 也极大地影响了系统的性能。\n本发明所述的人脸验证模块解决了原有系统的缺陷,由于新的人脸检测 可以检测正面、侧面直立人脸,而后续的基于AAM的人脸仿射系数估计算 法可以获取人脸的旋转角度等,由此就可以实现跟踪人脸的持续验证,即每 帧都判别跟踪区域是否是人脸,如果是非人脸,则输出非人脸跟踪结果,另 外,如果连续数帧验证不通过,则停止跟踪。这样系统在跟踪到非人脸区域 时,可在1秒内反应过来,并停止跟踪该目标。\n参考图7,为人脸验证模块的详细流程图。具体过程为:\n步骤701:将前一帧人脸的尺度、旋转角度以及前面计算的平移参数, 还有当前帧的输入图像进行结合。\n步骤702:粗略确定当前帧人脸的位置、尺寸和旋转角度。\n步骤703:裁剪并归一化人脸区域,获取12×12的图像。\n由这些参数对当前帧图像进行仿射变换,并进行裁剪和尺寸归一化处 理,获取12×12的图像。\n步骤704:将该幅图像输入多姿态人脸检测模型中,判断是否为真人脸, 若是,进入步骤705,若不是,进入步骤706。将得到的图像送入多姿态人 脸检测模型中,计算各姿态检测模型的返回权重,并可将权重最大的检测器 所对应的姿态作为当前人脸的姿态,而如果各姿态检测器的权重均为零,则 认为输入图像不是人脸,则还需要对当前帧人脸位置的邻域进行搜索。\n步骤705:验证通过,返回人脸姿态。\n步骤706:在比较小的领域范围和尺度范围内再次搜索人脸。结合人脸 已知的尺寸和旋转角度在比较小的尺度内进行搜索,将通过所有姿态检测器 的候选人脸框合并,并将最大权重对应姿态作为当前帧人脸的姿态。如果找 到任何候选人脸框,进入步骤707,如果没有找到,进入步骤708。\n步骤707:合并候选人脸,返回原始图像中人脸新的位置、尺度和姿态。\n步骤708:验证未通过。当前搜索区域不包含人脸或者人脸姿态变化过 大,人脸验证没有通过。\n下面给出人脸验证的两个例子,用具体图像来说明。\n参考图8,为通过第一级验证的人脸验证结果的示意图。图8中所示的 801表示的是前一帧图像及追踪结果,802表示的是当前帧图像,而803则 是裁剪后的12×12图像。该图像尽管不是完全的正面人脸,但通过了所有 人脸检测器,且姿态识别为正面,这是由于此种算法可以检测一定角度范围 的平面旋转的人脸。\n参考图9,为通过第二级验证的人脸验证结果的示意图。图9中所示的 901表示的是前一帧图像及追踪结果,902表示的是当前帧图像,903表示 的是归一化的人脸,而904表示的是第二级验证的结果。该图表示的是第一 级验证不通过、第二级验证通过的例子,该例中平移速度估算有偏差,因此 归一化图像与真实人脸相比要偏左,第一级验证不通过,而在第二级验证中, 同样对输入图像进行仿射变换和裁剪处理,但裁剪的区域比第一级验证的区 域要大一些,搜索这个区域中的人脸,并合并候选结果,得到的检测人脸框 图如904所示。\n第五,对本发明步骤210中所述的基于AAM的人脸仿射系数估计作进 一步的详细描述。\n前面所述的人脸验证算法输出的人脸框可以将各个器官包括在内,但尺 度、旋转角度仍旧沿用前一帧结果,导致旋转角度过大的人脸无法通过人脸 验证,算法无法处理人脸的平面旋转动作。为保证本发明所述算法可以跟踪 任意角度旋转的人脸,又提出基于简化了的AAM的仿射变换系数估算算法, 获取当前帧人脸的旋转、平移、缩放系数等。\nAAM,是一个基于主元分析方法(PCA)、目标形状特征和颜色分布 特征的参数模型,目的是由一个事先训练好的模型获取目标区域的形状、仿 射变换系数等。AAM在人脸建模、人脸定位领域应用非常广泛,如文献4 采用AAM算法获取人脸的各个器官的轮廓信息。\n本发明中基于AAM的人脸仿射系数估计的目的就是为了获取跟踪人脸 的尺寸和旋转角度,也就是计算出四个仿射变换系数a={ai},i=0,1,2,3,只包 含了平移、缩放、旋转三个变换,即:\n\n由此式可知,本发明并不需要知道人脸各个器官的轮廓信息。因此可以 对文献4中的AAM模型进行简化,只需要为人脸灰度特征训练灰度PCA 模型,并采用只包含灰度模型的AAM搜索输入人脸,计算出人脸的仿射变 换系数。\n另外,不同姿态人脸的象素分布是不一样,为此,为三个姿态分别训练 AAM。首先对人脸检测中的人脸样本进行裁剪、尺度归一化和灰度归一化 处理,得到几千幅16×16的人脸图像,裁剪方式与人脸检测中的裁剪方式 一致,其中正面人脸两千多幅,左侧约1000幅,右侧也有1000幅。下面就 以正面人脸为例,说明AAM的训练和定位过程。\n设一幅人脸图像为A(x),其中x表示16×16图像中的一点。对所有训 练样本进行PCA变换,获取均值人脸A0、m个最大的特征值及对应的m个 特征向量Ai,i=1,2,...,m,将任意的正面人脸图像近似表示为A0与 Ai,i=1,2,...,m的线性求和:\n\n其中,λi是A(x)的线性加权系数。\n设输入到AAM定位算法的人脸图像为I(x),这个图像由人脸验证算法 返回的人脸中心点位置、人脸尺寸、前一帧人脸的旋转角度求得,需要计算 合适的λi和仿射变换系数a={ai},i=0,1,2,3,使I(x)与训练的AAM匹配, 使下式最小:\n\n其中,I(x,a)是对I(x)作仿射变换后得到的图像,同样采用迭代处理和 Lucas-Kanade反算算法获取a。每次迭代求得Δa,即为:\n\n由文献4中所述,采用了一种空间投影的技术先剔除上式中的λi,简化 最小化迭代处理的计算量。将矢量Ai张成的空间记为sub(Ai),Ai的正交 空间记为sub(Ai)⊥,那么上式可以写为:\n\n其中,第一项是在sub(Ai)⊥上来计算,包含Ai的所有项都可以被省掉, 因为它们在sub(Ai)⊥空间上投影都为零,即:\n\n上式中第一项与λi无关,由此可以先对第一项计算最小值,获取合适的 仿射系数,接着在对第二项计算最小值,计算λi:\n\n第一项的最小化过程可以通过Lucas-Kanade反算算法实现:\n\n其中 则有:\n\n其中Hessian矩阵H为:\n\n其中, 为:\n\nx对访射变化系数a的偏导数分别为:\n\n上式中完全由AAM中训练的均值图像及16×16图像中 各点坐标决定,可以事先计算,因此H的逆矩阵也可以事先计算。在迭代 过程中只需要不断更新I(x,a)和a,这样算法的效率可大大提高。\n整个AAM定位算法的步骤为:\n预先计算:\n(1)计算训练的均值图像的梯度\n(2)计算16×16图像中各点的\n(3)计算矩阵\n(4)计算Hessian矩阵及其逆矩阵;\n迭代处理:\n(5)根据前一帧的a计算I(x,a);\n(6)计算图像差值A0(x)-I(x,a)和Δa;\n(7)计算新的仿射变换系数a+Δa;\n后续计算:\n(8)由迭代完毕后计算的a返回去计算线性系数λi。\n同时也为左侧和右侧人脸各训练了一个AAM。参考图10,为AAM算 法仿射系数计算结果的示例示意图。图中给出了AAM算法的定位结果,其 中的黑色方框为人脸检测算法确定的人脸框,如图10中所示的1001输入为 正面人脸,1002为左侧人脸,1003为右侧人脸,白框为仿射变换后求得方 框,为方便查看,还由式(1)和白色线条框的位置反算出两眼睛的位置, 用+表示。参考图11,为基于AAM的人脸跟踪结果示意图,该图则示出一 段序列中的三幅图像,图像中人脸旋转角度很大,可是跟踪算法仍旧可以跟 踪这些旋转的人脸,且准确反映其角度。\n第六,对本发明步骤211中所述的人脸关键点的跟踪作进一步详细描 述。\n前面的平移速度估算、人脸验证和仿射系数计算都是在比较低的人脸分 辨率上实现,这样可以提高算法的效率,但也会降低求得的人脸参数的精度, 因为原始图像的分辨率要高得多。因此输出结果中人脸位置、尺度、角度等 数据与真实数据仍存在着微小的偏差。从结果来看,即使一段序列中人脸固 定不动,前述模块获取的人脸位置、大小、角度都会发生明显的抖动。为解 决这个问题,在系统最后加入了人脸关键点的跟踪模块,仍采用与所述的基 于Mean Shift的人脸跟踪算法一致的基于Lucas-Kanade反算算法的平移估 算方法,利用每个关键点的邻域象素点的颜色信息,由AAM定位结果设置 初始平移速度,接着在相邻帧输入图像间为各个关键点分别计算出平移速 度,确定人脸最终的位置等参数。\n参考图12,为关键点选取及跟踪结果的示意图。其中,关键点的确定 方式如图12中所示的1201,图中前一帧的方框为人脸框,ABCDE五个点 为关键点,A是中心点,BCDE为A与人脸框四个顶点连线的中心点。图12 中所示的1202为当前帧图像及由AAM确定的人脸框,对应的五个关键点 分别为A′B′C′D′E′,以这几个点的坐标作为平移估算的初值,每个点考虑了 其5×5邻域范围内的象素点,计算各个关键点的平移速度,得到新的点 A″B″C″D″E″,如图12中所示的1203。如果相邻帧人脸存在着明显的旋转, 单由关键点的平移速度确定人脸位置的方法有可能不能反映人脸的快速旋 转变化,因为对应关键点的邻域像素分布不再满足平移的关系式(2),平 移估算精度会降低,图1203中A″的估算速度就不够准。为此采取了折衷的 方法,将A′B′C′D′E′与A″B″C″D″E″的坐标进行加权求和,得到新的点 A″′B″′C″′D″′E″′,如图12中所示的1204,并由这些点最终确定人脸的位置、 外框、旋转角度、尺寸等。图1204中所示正方形框是人脸框,所示四条线 段是系统最终的输出结果,线段延长线的交点为方框的中心点,设方框的边 长为len,则各线段两端点到中心点的距离分别为len/2和len。\n由以上所述,整个多姿态人脸的检测与跟踪系统已在多场景多场合进行 了演示,并与人脸识别、三维人脸合成等程序相结合,实现了多个演示程序。 从多方面的测试结果看,本发明提出的人脸检测方法可检测-50°到50°深度 旋转、-20°到20°度平面旋转的人脸,可检测0°到30°的抬头人脸,可以检 测0°到30°的低头人脸,可检测不同肤色的人脸、不同光照条件下的人脸、 戴眼镜的人脸等,可以跟踪正面与半侧面人脸,跟踪任意角度的平面旋转人 脸,跟踪算法非常稳定,不会受与人脸肤色类似的非人脸区域如脖子、人手 等的干扰,且可以获取人脸的旋转角度,输出人脸的准确尺寸。\n本发明所述算法的效率非常高,根据测试结果,算法在P4 2.8GHz计算 机上跟踪320×240图像的人脸时每帧处理时间为8ms-15ms,处理帧率为 10fps的320×240视频图像时CPU占有率不超过12%,在处理帧率为10fps 的640×480视频图像时CPU占有率不超过18%。如图13所示,为一组人 脸检测与跟踪结果的示例示意图,其中,第一幅图是人脸检测结果,最后一 幅图是验证不通过的例子,用四条黑色线段表示。\n本发明针对原来算法的局限性,提出多种改进思路,解决了原有算法的 这些缺陷,实现了更加稳定可靠的跟踪结果,并保持了非常高的运行效率。 该方法可实时检测拍摄场景中的多个正面与半侧面直立人脸,挑选其中最大 的人脸,采用基于Mean Shift的跟踪算法和Lucas-Kanade反算算法对该人 脸进行持续跟踪,采用基于AAM的人脸模型计算跟踪人脸与训练好的人脸 模型的仿射变换系数,由此确定跟踪人脸的尺寸与旋转角度,本发明还采用 多姿态人脸检测模型对跟踪人脸进行持续的验证,判断跟踪区域是否是一个 真的人脸,确保人脸跟踪的稳定性。
法律信息
- 2018-04-24
专利权的转移
登记生效日: 2018.04.08
专利权人由北京中星微电子有限公司变更为北京中星微人工智能芯片技术有限公司
地址由100083 北京市海淀区学院路35号世宁大厦15层变更为100191 北京市海淀区学院路35号世宁大厦六层607号
- 2008-10-15
- 2007-05-02
- 2007-03-07
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2006-06-28
|
2005-12-31
| | |
2
| |
2006-06-28
|
2005-12-31
| | |
3
| | 暂无 |
1996-11-04
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |