发明名称 一种基于半监督学的多姿态人脸表情识别方法
摘要 本发明涉及一种基于半监督学的多姿态人脸表情识别算法,包括采集n个人的n张正面表情图像和n张侧面表情图像,构成训练集X和测试集S,分割出正面和侧面表情图像的人脸区域,并采用直方图均衡化方法对人脸区域进行光照补偿。然后采用线性判别分析方法提取图像的表情特征,接下来对S中的样本进行表情识别。首先,采用欧式距离最近邻法,利用X中的已标记样本对X中每个未标记样本进行标记。然后,采用循环方式,对X进行重复抽样,得到新的训练集Xr。调用基本分类器利用Xr计算第t次循环时X中每个样本的标记ht,同时利用Xr计算第t次循环时S中每个样本的标记ft。最后,计算基本分类器对训练集中侧面样本的分类错误率εt,并更新X中所有训练样本的权重,直到达到循环结束条件。
申请公布号 CN103186774A 申请公布日期 2013.07.03
申请号 CN201310091795.7 申请日期 2013.03.21
申请人 北京工业大学 发明人 贾克斌;蒋斌
分类号 G06K9/00(2006.01)I;G06K9/62(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 吴荫芳
主权项 1.一种基于半监督学习的多姿态人脸表情识别方法,包括以下步骤:步骤(1),采集样本分别采集n个人的n张正面表情图像和n张侧面表情图像,所有表情图像及每张图像对应的样本标记构成实验样本,所述的样本标记指每个图像对应的表情类别,令n个正面图像和m个侧面图像构成训练集X,<img file="FDA00002947052900014.GIF" wi="157" he="101" />余下的n-m个侧面图像组成测试集S,其中训练集X中的部分图像有样本标记,样本标记用符号c表示,测试集S中的所有图像均有样本标记,且样本标记用符号l表示;步骤(2),样本预处理处理对象是X和S内的所有图像,分为两步:步骤(2.1),采用人工切分的方法,获取图像的人脸部分;步骤(2.2),采用直方图均衡化方法降低光照因素对图像的干扰;预处理后的图像进行尺度归一化处理;步骤(3),特征提取采用线性判别分析LDA算法对预处理后的X进行计算,得到一个投影矩阵,将投影矩阵与X中每一个图像矩阵相乘,得到X的表情特征,同样,采用LDA算法对预处理后的S进行计算,得到一个投影矩阵,将该投影矩阵与S中每一个图像矩阵相乘,得到S的表情特征;特征提取后,训练集X和测试集S的每个样本都被其自身的表情特征所替代,为了便于描述,训练集和测试集的符号不变,仍为X和S,并将X和S中的个体即每个图像的表情特征称为样本;步骤(4),对测试集中的样本进行表情识别,输出样本对应表情特征,具体内容如下:步骤(4.1)初始化步骤(4.1.1)设X的样本权重向量<img file="FDA00002947052900011.GIF" wi="496" he="71" />其中权重上标1表示算法的第1次循环,下标表示权重对应的训练样本,具体大小如下:<img file="FDA00002947052900012.GIF" wi="1017" he="227" />步骤(4.1.2)设置<img file="FDA00002947052900013.GIF" wi="480" he="90" />其中n为正面样本数量,N为最大循环次数;步骤(4.1.3)利用表情特征计算欧式距离,采用欧式距离最近邻法,利用X中的已标记样本对X中每个未标记样本进行标记,求解结果即为与该未标记样本距离最近的已标记样本的标记;步骤(4.2)算法的循环过程令t表示第t次循环,t的取值范围是[1,N],N为最大循环次数;开始循环:步骤(4.2.1)每次循环时,都要对步骤(4.1.3)中对未标记样本进行标记后的X进行重复抽样,得到新的训练集X<sub>r</sub>,X<sub>r</sub>的个数与X一致,且X<sub>r</sub>中的所有样本都有标记信息;步骤(4.2.2)调用基本分类器Learner,利用X<sub>r</sub>对X中每个样本重新标记,记为h<sub>t</sub>,利用X<sub>r</sub>对测试集S中每个样本重新标记,记为f<sub>t</sub>;步骤(4.2.3)计算步骤(4.2.2)中基本分类器对训练集中侧面样本的分类错误率ε<sub>t</sub>,计算公式如下:<maths num="0001"><![CDATA[<math><mrow><msub><mi>&epsiv;</mi><mi>t</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>+</mo><mi>m</mi></mrow></munderover><mfrac><mrow><msubsup><mi>w</mi><mi>i</mi><mi>t</mi></msubsup><mi>A</mi></mrow><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>n</mi><mo>+</mo><mn>1</mn></mrow><mrow><mi>n</mi><mo>+</mo><mi>m</mi></mrow></msubsup><msubsup><mi>w</mi><mi>i</mi><mi>t</mi></msubsup></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><mi>A</mi><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><msub><mi>h</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>&NotEqual;</mo><msub><mi>c</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><msub><mi>h</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>c</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中<img file="FDA00002947052900023.GIF" wi="65" he="68" />表示第t次循环时X中的第i个样本x<sub>i</sub>对应的权重,h<sub>t</sub>(x<sub>i</sub>)是上一步计算得到的X中的样本x<sub>i</sub>的标记,c<sub>t</sub>(x<sub>i</sub>)对应样本x<sub>i</sub>的真实标记,所述的真实标记由X中已标记样本的标记,以及步骤(4.1.3)计算出的未标记样本的标记构成;步骤(4.2.4)设置分类器参数β<sub>t</sub>=ε<sub>t</sub>/(1-ε<sub>t</sub>);步骤(4.2.5)更新训练集中所有训练样本的权重,更新公式如下,β见步骤(4.1.2),A见步骤(4.2.3);<maths num="0003"><![CDATA[<math><mrow><msubsup><mi>w</mi><mi>i</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>w</mi><mi>i</mi><mi>t</mi></msubsup><msup><mi>&beta;</mi><mi>A</mi></msup><mo>,</mo></mtd><mtd><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi></mtd></mtr><mtr><mtd><msubsup><mi>w</mi><mi>i</mi><mi>t</mi></msubsup><msubsup><mi>&beta;</mi><mi>t</mi><mrow><mo>-</mo><mi>A</mi></mrow></msubsup><mo>,</mo></mtd><mtd><mi>i</mi><mo>=</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi><mo>+</mo><mi>m</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中前一个表达式为前n个正面样本的权重表达式,后一个表达式为后m个侧面样本的权重表达式;如果循环次数达到N或分类错误率不小于0.5,循环结束,执行步骤(4.3);否则,跳转到步骤(4.2.1)继续循环;步骤(4.3),计算测试集S中第i个样本的样本标记h<sub>f</sub>(x<sub>i</sub>),i大于0小于等于n-m,计算公式如下:<maths num="0004"><![CDATA[<math><mrow><msub><mi>h</mi><mi>f</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>arg</mi><mi>max</mi><munderover><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mrow><mo>(</mo><mi>log</mi><mfrac><mn>1</mn><msub><mi>&beta;</mi><mi>t</mi></msub></mfrac><mo>)</mo></mrow><mi>C</mi><mo>,</mo><mi>C</mi><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><msub><mi>f</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>l</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><msub><mi>f</mi><mi>t</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>&NotEqual;</mo><mi>l</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中l(x<sub>i</sub>)是测试集S中样本x<sub>i</sub>对应的标记,f<sub>t</sub>(x<sub>i</sub>)表示步骤4.2的第t次循环时基本分类器Learner对测试集S中样本x<sub>i</sub>的识别结果,β<sub>t</sub>表示步骤4.2的第t次循环时得到的分类器参数。
地址 100124 北京市朝阳区平乐园100号