基于aam的对象定位方法

文档序号:6560910阅读:173来源:国知局
专利名称:基于aam的对象定位方法
技术领域
本发明涉及图像处理领域,尤其涉及一种在人脸检测与追踪处理过程中基于AAM的对象定位方法。
背景技术
人脸是计算机视觉系统中人机交互最便捷的方式之一。人脸检测就是在图像或图像序列中确定所有人脸的位置、大小等信息,而人脸跟踪则是持续跟踪视频序列中的一个或多个检测人脸。人脸检测与跟踪技术不仅是人脸识别、表情识别、人脸合成等技术的必要前提,而且其在智能人机交互、视频会议、智能监控、视频检索等领域有着广泛的应用价值。
本系统针对的图像是视频摄像头输入的视频序列。之前,本申请人已经提出了一种视频序列中人脸的实时检测与持续追踪的方法及系统,中国专利申请号为200510135668.8,以下简称文献1,该申请在此被整体结合参考。该申请提出的方法与系统采用了基于AdaBoost统计分层分类器的人脸检测方法,实现正面直立人脸的实时检测,并结合基于Mean shift和直方图特征的人脸跟踪方法,实现了人脸的实时跟踪系统。从实验结果看,该系统可检测-20到20度深度旋转、-20到20度平面旋转的人脸,可检测不同肤色的人脸、不同光照条件下的人脸、戴眼睛的人脸等。人脸的跟踪通过肤色实现,跟踪算法不受人脸姿态的影响,侧面、旋转人脸同样可以跟踪。
然而,上述专利申请中的算法也存在着一定的局限性。首先,该算法仅训练了正面人脸的检测模型,无法检测偏侧面人脸,这就意味这人脸的检测和验证都只能针对正面人脸,大大限制了算法的应用范围;其次,该算法仅通过肤色直方图跟踪人脸,而人脸的肤色特征非常容易受到其他肤色区域如脖子、手或者类似肤色区域如黄色衣服的干扰,反映在跟踪结果上就是跟踪区域有时会跳到手、脖子或黄衣服上;再次,原来的算法获取的跟踪区域的大小和位置变化比较剧烈,即使人脸保持不动,跟踪结果也会发生明显的抖动;还有就是该算法无法获取人脸更进一步的姿态信息,如人脸的旋转角度、当前大致姿态等。

发明内容
本发明所要解决的技术问题在于提供一种基于AAM的对象定位方法,在追踪检测多姿态的对象的过程中,快速准确的定位对象。
为了解决上述技术问题,本发明提供了一种基于AAM的对象定位方法,在对象检测与跟踪结果的基础上,进一步获得已检测对象的定位信息,其包括如下步骤(1)通过对象图像的样本训练,分别获得对象不同姿态的AAM模型,其中,只对对象灰度特征训练灰度PCA模型,获得的是只包含灰度模型的AAM模型,所述灰度模型为均值对象;(2)根据对象检测与跟踪过程返回的对象中心点位置、对象尺寸、前一帧对象的旋转角度,获得输入到所述AAM模型的当前对象图像;(3)根据所述AAM模型的均值对象,由AAM模型获得各个输入对象图像相对于训练样本的仿射变换系数;(4)根据所述仿射变换系数,获得当前对象的定位信息。
本发明进而一种基于AAM的人脸定位方法,包括如下步骤(1)通过对人脸样本进行训练,分别获得人脸正面、左侧和右侧的AAM模型,其中所述AAM模型只对人脸图像灰度特征进行训练,其包括有灰度PCA模型及均值人脸图像;(2)根据人脸检测和跟踪获得的人脸中心位置、人脸尺寸、人脸旋转角度,获得输入到所述AAM模型的当前人脸图像;(3)由所述AAM模型的灰度PCA模型获得输入人脸图像相对于均值人脸图像的仿射变换系数;(4)根据所述仿射变换系数,获得当前人脸的定位信息。
利用本发明,在多姿态人脸检测与跟踪结果的基础上,进一步确定已检测人脸的精确位置、尺寸和平面旋转角度等信息,从而实现更加稳定精确的人脸检测与跟踪,可以跟踪多种姿态的人脸,可跟踪任意平面旋转角度的人脸,且可由本发明获取跟踪人的旋转角度、尺寸等信息。
本发明不仅可以用于人脸定位,也可用来处理其他目标,如各种内部特征比较鲜明的物体等。同样可以由某个物体的多个样本图像训练AAM模型,然后由AAM模型获取各个输入样本相对训练样本的仿射变换系数,进行定位。


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