基于矩阵乘法的快速动作单元识别方法

文档序号:9397168阅读:464来源:国知局
基于矩阵乘法的快速动作单元识别方法
【技术领域】
[0001] 本发明属于计算机视觉技术领域,具体涉及快速动作单元识别方法。
【背景技术】
[0002] 面部动作编码系统(Facial Action Coding System,简称FACS),FACS理论于 1969 年由心理学家提出,其目的是为了客观刻画人的面部表情。该理论使用一组编码描述表 情,每个编码称为一个动作单元(Action Unit)。FACS把人的面部表情用一系列动作单元 (Action Unit)表示,每个动作单元用一个预先规定的编号表示。例如,一个惊讶的表情包 括眉毛内侧上扬、外侧眉毛上扬、上眼睑上扬、下颚张开,这些动作对应的动作单元编号分 别是1、2、5和26。因此,可以用这组编码描述该惊讶的表情。动作单元识别可以客观描述 人的面部动作,也可以用来分析表情对应的情绪状态。
[0003] 现有识别算法通常提取通用的计算机视觉特征,对每个动作单元独立建模,并建 立一个二分类器来识别该动作单元是否在图像或图像序列中出现;再将识别的结果组合, 得到完整的动作单元组合。这样的方法忽略了动作单元之间的关系,如某些动作单元是互 斥的,而有些动作单元倾向于同时发生,这在传统框架中都无法对这些现象加以鼓励或者 惩罚。同时,现有方法使用的视觉特征通常涉及非线性操作,比较耗时。
[0004] 该领域已经有不少前人工作,参见文献:【1】--【7】
[0005] 其中,在[4]中研究人员使用受限局部模型(Constrained Local Model,简 称CLM)定位人脸的关键点;针对每个动作单元,选择与其高度相关的关键点,在这些关 键点周围选择图像块作为识别依据;具体地,使用非负矩阵分解(Non-negative Matrix Factorization,简称NMF)对每个图像块提取特征;对每个动作编码训练一个支持向量回 归(Support Vector Regression,简称SVR)。该方法可以估计每个动作单元的强度。但是 根据动作单元选择关键点通常需要领域知识,后者在一定程度上取决于选择者的经验。
[0006] 另一种方法则不需要特定的领域知识。在[5]中研究人员抽取面部图像的加伯 (Gabor)特征,对每个动作单元训练一个二分类的支持向量机(Support Vector Machine, 简称SVM)进行对应动作单元的检测。为了降低加伯特征的维度,该方法针对每个动作单 元,使用Adaboost选择最优特征,并将所有动作单元对应特征的合集作为最后使用的特 征。
[0007] 另一种方法不使用高维度的加伯特征,如[3]中研究人员使用局部二值模式 (Local Binary Pattern,简称LBP)作为特征,对每个动作单元训练二分类的支持向量机, 用于识别对应的动作单元。
[0008] 然而使用这些计算机视觉特征并不能对表情提供可解释性;同时,对每个动作单 元单独建模,忽略了动作单元之间的关系:如动作单元24是嘴唇抿紧(lip presser),动作 单元25是嘴唇分开(lip apart),这两个动作单元是互斥的,这在独立建模的框架下可能 被同时误检测到。此外,由于计算特征和使用支持向量机的过程中牵涉到大量非线性操作, 时间性能并不理想。
[0009] 因此,本发明提出一种简洁的识别方法。它仅对面部图像进行矩阵乘法,对得到的 响应进行分析作为检测的依据;同时对所有动作单元协同建模,规避了独立建模的弊端。

【发明内容】

[0010] 本发明的目的在于提出一种识别速度快,准确性高的动作单元识别方法。
[0011] 本发明提出的动作单元识别方法,并不显式提取特征,而是使用一种基于矩阵乘 法的识别方法,兼备特征提取和动作单元识别的作用,能极大提升识别速度。同时,该方法 对所有动作单元统一建模,该模型可以刻画动作单元之间的分布关系。图1为本发明识别 方法的流程图示。其过程为:
[0012] 首先,通过事先训练,可得到针对每个动作单元的模型矩阵:
[0013] M1, M2,…,Ml,其中 Mi € 臟?1n
[0014] L是动作单元的数量,m和η分别是训练图像的长和宽。每个矩阵与训练图像的尺 寸是相同的。对于待检测的人脸图像,首先将其缩放至与训练图像相同尺寸,然后与每个模 型矩阵进行点乘,得到的响应对应该动作单元;将得到的所有动作单元对应的响应归一化, 然后进行离散化,即得到该动作单元存在与否。具体地,本发明方法的具体步骤为:
[0015] (1)使用预先训练,得到模型矩阵阵列:
[0017] (2)对于一幅面部图像,对其进行人脸检测和切割,并缩放成尺寸为mXn的图像, 将人脸图像向量化,得到人脸图像向量:X € HTnrS
[0018] (3)计算模型M对于人脸图像X的响应:
[0019] R = XtM (2)
[0020] (4)计算归一化的响应:
[0022] 此步骤将所有相应归一化到[0, 1]之间,方便设定有意义的阀值;
[0023] (5)识别:找出对应R>0. 5的位置,则这些位置对应的动作单元在表情图像X中出 现,其他的动作单元没有出现。
[0024] 其中,模型训练过程见图2所示,具体步骤为:
[0025] 对数据集中图像进行人脸检测,得到人脸图像向量:馬€ ?mH:,i=l,2, ··%为 了用M直观地预测动作单元,需进行优化处理:
[0027] 其中,1^是X ;对应的动作单元组合,U {〇, 1} \ L是动作单元的数量,1表示该 动作单元出现,〇表示不出现。例如,Uit1= 〇表示第^个动作单元在第i个样例中不出 现,Uit2 = 1表示第、个动作单元在第i个样例中出现。N是样本个数。
[0028] 但是通常一个表情涉及到的动作单元数量非常少,因此U1是非常稀疏的,亦即大 多数情况下Ult= 0,这容易导致正例被错误划分为负例;因此,本发明假定数据集中给出的 U(即U1组成的矩阵)是由完整的动作单元标签经由一定的损失得到的,即每个样例的每个 动作单元都有一定概率丢失(无论原先值为0或者1,一律被置为0);并试图用一个扩充矩 阵B对U进行扩充,得到完整的动作单元标签。
[0029] 然而,由于我们对完整的动作单元标签U并不知道,因此,我们对现有的动作单元 标签进行损失,并通过B将损失后的标签扩充得到现有标签。其公式为:
[0031] 其中,O1是U1经过一定概率变换得来的,具体地:
[0033] 即动作单元组合中的每个动作单元以p的概率置为0。
[0034] 则可以计算重建误差期望:
[0038] 其中:
[0039] S = (l-p)UUT (9)
[0040] T = (l-p2)UUT+p(l_p) δ (UUt) (10)。
[0041] 由此,得到一个带有两项未知数的优化方程:
[0043] 其中,α,β,γ是各自对应项的权重,在模型训练时取若干值比较分类效果,得到 合理的权重组合。
[0044] 优化算法
[0045] 由于优化方程包含两个变量,无法直接优化。本发明使用坐标下降法(coordinate descent),循环地优化两个变量。具体地,给定B的情况下,对M求导数,并令之为0 :
[0046] M = (BUXt-β ) (ΧΧτ+Να I) (12)
[0047] 在给定M的情况下,对B求导数,并令之为0 :
[0048] B = ( γ S+MXUT) ( γ T+UUT) 1 (13)
[0049] 其中,α,β,γ与(11)式中相同。上述算法并不能保证收敛到全局最优值,因此 B的初值选择很重要。因为它等价于给定了动作单元标签到完整动作单元标签的条件分布, 在对完整标签并不了解的情况下,我们应当不做特殊假设,将B初始化为一个单位阵。
[0050] 具体地,我们有如下算法:
[0051] (1)将B初始化为单位阵;
[0052] (2)求解 M:
[0053] M = (BUXt- β ) (ΧΧΤ+Ν α I)
[0054] (3)求解 Β:
[0055] B = ( γ S+MXUT) ( γ T+UUT) 1
[0056] (4)重复步骤(2)-(3)直到M收敛或超出最大步数限制。
[0057] 时间性能
[0058] 本发明的核心优势在于识别速度,由于只涉及矩阵乘法,因此速度非常快。表1比 较了几种算法的操作数量。假设考虑L的动作单元,图像尺寸都是mXn的。
[0059] 局部二值模式(Local Binary Pattern,简称LBP)需要比较像素与周围(通常是 8个)像素的大小关系,并对L个动作单元进行二分类。因此包含Smn次比较和L次二分 类;
[0060] 离散余弦变换(Discrete Cosine Transformation,简称DCT)包含mn次余弦计 算,L次二分类;
[0061] 加伯特征涉及维数约简,假设对每个动作单元抽取κ个特征,不同动作单元的特 征选择存在可能的交集,总操作数需要O(KL)次指数计算和L次二分类,其中κ是每个动 作单元对应选择的特征数量。
[0062] 本发明只需要做1次矩阵乘法,具体可以分解为L次向量乘法,1次归一化操作。
[0063] 下面进一步介绍本方法在实验数据集上的识别效果。我们采用了四个数据集。
[0064] CK+(Cohn-Kanade+)是一个灰度图像数据集,包含了来自123个参与者的593段人 脸图像序列,总共10708张图像。图3展示了 CK+的一些示例图像。由于每个图像序列仅 有一张图像被明确标注,因此只采用被明确标注的图像作为训练和测试的数据集,即数据 集包括593个样例。由于样例数量较少,采用留一验证,即每次跳出一张图像作为测试集, 其余用作训练。
[0065] FERA(Facial Expression Recognition and Analysis)也是一个灰度图像数据 集,原先用作表情识别的竞赛。由于测试集的标注已经无法获取,只采用训练集,分割训练 和测试数据集。其中包括66个人脸图像序列,总共3900帧图像。由于使用协议的限制, FERA的图像不能展示。
[0066] 在上述两个数据集的基础上,构建了 FERA&CK+数据集,即把FERA和CK+的数据混 合,这样的实验是为了测试本发明在多种数据源的分布下的泛化能力。
[0067] BOSPHORUS是一个深度图像的表情数据集,包含了 4666个样例。这里选择了其中 2690张无遮挡的正脸图像用做实验。图4是BOSPHORUS的一些样例。
[0068] 上述数据集中,除了 CK+使用留一验证,其余都适用10折的交叉验证。即把所有 样例平均分为10份,每次取其中9份作为训练数据集,1份作为测试数据集。
[0069] 作为比较方法,我们实现了基于加伯特征的方法,并使用Adaboost进行特征选 择。
[0070] 实验使用Fl分数作为性能指标,其定义是这样的:
CN 105117703 A 明 Ti 5/9 页
[0074] 在上述定义中,tp表示正确分类的正例,tn表示正确分类的负例,fp表示错误分 为正例的负例,fn表示错误分为负例的正例。
[0075] 实验1,表2、表3、表4、表5展示了四个数据集上本发明和基于加伯特征的方 法的比较。可以看到本发明和基于加伯特征的方法的性能是接近的,在深度图像数据集 BOSPHORUS上,本发明的识别率超过了基于加伯特征的方法。
[0076] 实验2,图5、图6分别展示了从CK+和BOSPHORUS上学习得到的动作单元模型。 CK
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1