发明名称 基于混合误差编码的人脸识别方法
摘要 一种基于混合误差编码的人脸识别方法,为了排除遮挡和光照变化所形成的局部显著特征的影响,利用遮挡和光照变化的空间结构,即:连续性和局部方向性,构造结构化误差,以选取待识别图像的有效特征;为了弥补遮挡和光照变化所造成的特征损失,由稀疏表示理论和图像在高维特征空间中的表示,构造判别误差,以有效地识别人脸图像。结构化误差和判别误差既相互独立又相互影响,本发明将基于这两种误差编码的人脸识别方法称为混合误差编码方法。实验表明,混合误差编码方法,可以有效地识别现实中的人脸图像,为面向现实的人脸识别系统提供了有力的支撑。本发明识别率高、可行性好,特别地,对于有遮挡或光照变化的人脸图像,具有良好的识别性能。
申请公布号 CN104915639A 申请公布日期 2015.09.16
申请号 CN201510257647.7 申请日期 2015.05.19
申请人 浙江工业大学 发明人 李小薪;梁荣华;冯远静;蒋莉
分类号 G06K9/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 杭州斯可睿专利事务所有限公司 33241 代理人 王利强
主权项 一种基于混合误差编码的人脸识别方法,其特征在于:所述人脸识别方法包括以下步骤:步骤1将实数域上的m×n维的人脸图像y作为待识别人脸图像,将来自于K个人的N个不含遮挡的且在正常光照条件下采集到的人脸图像集<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>A</mi><mo>=</mo><mo>{</mo><msubsup><mi>a</mi><mn>1</mn><mn>1</mn></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>a</mi><msub><mi>N</mi><mn>1</mn></msub><mn>1</mn></msubsup><mo>,</mo><msubsup><mi>a</mi><mn>1</mn><mn>2</mn></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>a</mi><msub><mi>N</mi><mn>2</mn></msub><mn>2</mn></msubsup><mo>.</mo><mo>.</mo><mo>.</mo><msubsup><mi>a</mi><mn>1</mn><mi>K</mi></msubsup><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msubsup><mi>a</mi><msub><mi>N</mi><mi>K</mi></msub><mi>K</mi></msubsup><mo>}</mo></mrow>]]></math><img file="FDA0000719698770000011.GIF" wi="911" he="111" /></maths>作为训练样本,这里,<img file="FDA0000719698770000012.GIF" wi="72" he="87" />为实数域上的m×n阶矩阵,表示第k个人的第i个训练样本,k=1,2…K,<img file="FDA0000719698770000013.GIF" wi="343" he="111" />N<sub>k</sub>为第k个人的人脸图像的样本数;步骤2将y和A分别变换到梯度方向域中:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>&phi;</mi><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mi>arctan</mi><mrow><mo>(</mo><mfrac><mrow><mi>y</mi><mo>*</mo><msubsup><mi>h</mi><mi>d</mi><mi>T</mi></msubsup></mrow><mrow><mi>y</mi><mo>*</mo><msub><mi>h</mi><mi>d</mi></msub></mrow></mfrac><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000719698770000014.GIF" wi="563" he="187" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>&Phi;</mi><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow><mo>=</mo><mo>{</mo><mi>&phi;</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mn>1</mn><mn>1</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>&phi;</mi><mrow><mo>(</mo><msubsup><mi>a</mi><msub><mi>N</mi><mn>1</mn></msub><mn>1</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mi>&phi;</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mn>1</mn><mn>2</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>&phi;</mi><mrow><mo>(</mo><msubsup><mi>a</mi><msub><mi>N</mi><mn>2</mn></msub><mn>2</mn></msubsup><mo>)</mo></mrow><mo>.</mo><mo>.</mo><mo>.</mo><mi>&phi;</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mn>1</mn><mi>K</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>&phi;</mi><mrow><mo>(</mo><msubsup><mi>a</mi><msub><mi>N</mi><mi>K</mi></msub><mi>K</mi></msubsup><mo>)</mo></mrow><mo>}</mo><mo>,</mo></mrow>]]></math><img file="FDA0000719698770000015.GIF" wi="1540" he="120" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>&phi;</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mi>i</mi><mi>k</mi></msubsup><mo>)</mo></mrow><mo>=</mo><mi>arctan</mi><mrow><mo>(</mo><mfrac><mrow><msubsup><mi>a</mi><mi>i</mi><mi>k</mi></msubsup><mo>*</mo><msubsup><mi>h</mi><mi>d</mi><mi>T</mi></msubsup></mrow><mrow><msubsup><mi>a</mi><mi>i</mi><mi>k</mi></msubsup><mo>*</mo><msub><mi>h</mi><mi>d</mi></msub></mrow></mfrac><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000719698770000016.GIF" wi="609" he="186" /></maths>这里,*表示二维卷积,arctan(·)为反正切函数,h<sub>d</sub>为差分滤波器的系数矩阵,符号T表示矩阵的转置;步骤3将待识别图像y和训练集A变换到高维特征空间中:<img file="FDA0000719698770000017.GIF" wi="1070" he="241" />其中,<img file="FDA0000719698770000018.GIF" wi="48" he="79" />表示待识别图像y在高维特征空间中的表示,<img file="FDA0000719698770000019.GIF" wi="56" he="82" />表示训练集A在高维特征空间中的表示,V(·)为拉伸变换,即:将m×n阶矩阵拉伸为D=m×n维列向量,或者将所有的m×n阶矩阵的集合A中的元素依次拉伸为D=m×n维列向量,然后再将拉伸后的列向量组装成矩阵,即:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mfenced open='' close=''><mtable><mtr><mtd><mi>V</mi><mrow><mo>(</mo><mi>cos</mi><mrow><mo>(</mo><mi>&Phi;</mi><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>)</mo></mrow><mo>=</mo><mo>[</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>b</mi><mn>1</mn><mn>1</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>b</mi><msub><mi>N</mi><mn>1</mn></msub><mn>1</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>b</mi><mn>1</mn><mn>2</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>b</mi><msub><mi>N</mi><mn>2</mn></msub><mn>2</mn></msubsup><mo>)</mo></mrow><mo>.</mo><mo>.</mo><mo>.</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>b</mi><mn>1</mn><mi>K</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>b</mi><msub><mi>N</mi><mi>K</mi></msub><mi>K</mi></msubsup><mo>)</mo></mrow><mo>]</mo></mtd></mtr><mtr><mtd><mi>V</mi><mrow><mo>(</mo><mi>sin</mi><mrow><mo>(</mo><mi>&Phi;</mi><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>)</mo></mrow><mo>=</mo><mo>[</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>c</mi><mn>1</mn><mn>1</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>c</mi><msub><mi>N</mi><mn>1</mn></msub><mn>1</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>c</mi><mn>1</mn><mn>2</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>c</mi><msub><mi>N</mi><mn>2</mn></msub><mn>2</mn></msubsup><mo>)</mo></mrow><mo>.</mo><mo>.</mo><mo>.</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>c</mi><mn>1</mn><mi>K</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>c</mi><msub><mi>N</mi><mi>K</mi></msub><mi>K</mi></msubsup><mo>)</mo></mrow><mo>]</mo></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000719698770000021.GIF" wi="1707" he="232" /></maths>其中,<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>b</mi><mi>i</mi><mi>k</mi></msubsup><mo>=</mo><mi>cos</mi><mrow><mo>(</mo><mi>&phi;</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mi>i</mi><mi>k</mi></msubsup><mo>)</mo></mrow><mo>)</mo></mrow><mo>,</mo><msubsup><mi>c</mi><mi>i</mi><mi>k</mi></msubsup><mo>=</mo><mi>sin</mi><mrow><mo>(</mo><mi>&phi;</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mi>i</mi><mi>k</mi></msubsup><mo>)</mo></mrow><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000719698770000022.GIF" wi="851" he="122" /></maths>步骤4初始化待识别人脸图像y相对于训练集A的编码系数为<img file="FDA0000719698770000023.GIF" wi="327" he="149" />这里,1<sub>N×1</sub>表示N维列向量,其全部元素为1;步骤5初始化参数:t=1,ζ<sup>*</sup>=+∞,这里,t表示迭代次数,ζ<sup>*</sup>表示历次迭代过程中产生的判别误差的最小质量;步骤6在像素空间中,按照如下公式,计算待识别图像y的重构图像<img file="FDA0000719698770000024.GIF" wi="114" he="94" /><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msup><mover><mi>y</mi><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msup><mo>=</mo><msub><mi>M</mi><mrow><mi>m</mi><mo>&times;</mo><mi>n</mi></mrow></msub><mrow><mo>(</mo><mi>V</mi><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow><mo>&times;</mo><msup><mi>x</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000719698770000025.GIF" wi="612" he="122" /></maths>其中,M<sub>m×n</sub>(·)是V(·)的逆运算,即把D=m×n维列向量还原为m×n阶矩阵,x<sup>(t)</sup>为实数域上的N维列向量,表示在第t次迭代时所产生的待识别人脸图像y相对于训练集A的编码系数;V(A)为集合A的拉伸变换:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mi>V</mi><mrow><mo>(</mo><mi>A</mi><mo>)</mo></mrow><mo>=</mo><mo>[</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mn>1</mn><mn>1</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>a</mi><msub><mi>N</mi><mn>1</mn></msub><mn>1</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mn>1</mn><mn>2</mn></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>a</mi><msub><mi>N</mi><mn>2</mn></msub><mn>2</mn></msubsup><mo>)</mo></mrow><mo>.</mo><mo>.</mo><mo>.</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>a</mi><mn>1</mn><mi>K</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>V</mi><mrow><mo>(</mo><msubsup><mi>a</mi><msub><mi>N</mi><mi>K</mi></msub><mi>K</mi></msubsup><mo>)</mo></mrow><mo>]</mo><mo>;</mo></mrow>]]></math><img file="FDA0000719698770000026.GIF" wi="1537" he="115" /></maths>步骤7将<img file="FDA0000719698770000027.GIF" wi="82" he="95" />变换到梯度方向域中:<img file="FDA0000719698770000028.GIF" wi="662" he="197" />步骤8计算待识别图像y与其重构图像<img file="FDA0000719698770000029.GIF" wi="90" he="96" />的梯度方向之差△θ<sup>(t)</sup>:<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><msup><mi>&Delta;&theta;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msup><mo>=</mo><mi>&phi;</mi><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mi>&phi;</mi><mrow><mo>(</mo><msup><mover><mi>y</mi><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msup><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA00007196987700000210.GIF" wi="543" he="124" /></maths>步骤9将△θ<sup>(t)</sup>在cos域中做如下变换:<img file="FDA00007196987700000211.GIF" wi="495" he="122" />步骤10对<img file="FDA00007196987700000212.GIF" wi="82" he="98" />进行均值滤波:<img file="FDA00007196987700000213.GIF" wi="357" he="98" />这里,h<sub>m</sub>为均值滤波器的系数;步骤11将<img file="FDA0000719698770000031.GIF" wi="94" he="82" />做如下变换,得到结构化误差:<img file="FDA0000719698770000032.GIF" wi="648" he="248" />这里,D=m×n为<img file="FDA0000719698770000033.GIF" wi="88" he="83" />的维数,|·|表示取绝对值,||·||<sub>1</sub>表示l<sub>1</sub>范数;步骤12对结构化误差<img file="FDA0000719698770000034.GIF" wi="74" he="83" />进行阈值聚类,得到待识别图像y的有效特征支撑的初步估计s<sup>τ(t)</sup>:<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><msubsup><mi>s</mi><mi>i</mi><mrow><mi>&tau;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></msubsup><mo>=</mo><msub><mi>&kappa;</mi><mi>&tau;</mi></msub><mrow><mo>(</mo><msubsup><mover><mi>e</mi><mo>~</mo></mover><mi>i</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn></mtd><mtd><msubsup><mover><mi>e</mi><mo>~</mo></mover><mi>i</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>&lt;</mo><mi>&tau;</mi></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msubsup><mover><mi>e</mi><mo>~</mo></mover><mi>i</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></msubsup><mo>&GreaterEqual;</mo><mi>&tau;</mi></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000719698770000035.GIF" wi="712" he="208" /></maths>其中,κ<sub>τ</sub>(·)表示阈值滤波算子,s<sup>τ(t)</sup>和<img file="FDA0000719698770000036.GIF" wi="82" he="82" />的下标i∈{1,2,…,m×n}表示s<sup>τ(t)</sup>和<img file="FDA0000719698770000037.GIF" wi="78" he="83" />中元素的索引,τ为给定的阈值;步骤13通过如下公式,进一步估计待识别图像y的有效特征支撑s<sup>(t)</sup>:<img file="FDA0000719698770000038.GIF" wi="1199" he="179" />其中,s表示优化式中的与s<sup>(t)</sup>相对应的有效特征支撑的变元,s和s<sup>τ(t)</sup>的维数相同,下标i,j∈{1,2,…,m×n}表示s和s<sup>τ(t)</sup>中元素的索引,<img file="FDA00007196987700000315.GIF" wi="147" he="89" />表示i的邻域节点,λ<sub>s</sub>为光滑参数,λ<sub>u</sub>为数据参数;步骤14由待识别图像y的有效特征支撑s<sup>(t)</sup>,计算y在高维特征空间中的表示<img file="FDA00007196987700000312.GIF" wi="42" he="72" />相对于训练集A在高维特征空间中的表示<img file="FDA00007196987700000313.GIF" wi="52" he="76" />的稀疏编码系数x<sup>(t)</sup>,以及与x<sup>(t)</sup>相关联的判别误差<img file="FDA00007196987700000314.GIF" wi="106" he="72" /><img file="FDA0000719698770000039.GIF" wi="692" he="129" /><img file="FDA00007196987700000310.GIF" wi="493" he="96" />其中,s.t.表示约束条件,||·||<sub>2</sub>表示l<sub>2</sub>范数,<img file="FDA00007196987700000411.GIF" wi="55" he="60" />表示点乘,<img file="FDA0000719698770000041.GIF" wi="391" he="258" />x表示优化式中的与x<sup>(t)</sup>相对应的稀疏编码系数的变元,<img file="FDA0000719698770000042.GIF" wi="42" he="64" />表示优化式中的与<img file="FDA0000719698770000043.GIF" wi="78" he="83" />相对应的判别误差的变元;步骤15度量判别误差<img file="FDA0000719698770000044.GIF" wi="86" he="84" />的质量ζ<sup>(t)</sup>:<img file="FDA0000719698770000045.GIF" wi="470" he="254" />如果ζ<sup>(t)</sup><ζ<sup>*</sup>,则令ζ<sup>*</sup>=ζ<sup>(t)</sup>,x<sup>*</sup>=x<sup>(t)</sup>,<img file="FDA0000719698770000046.GIF" wi="220" he="88" />这里,ζ<sup>*</sup>,x<sup>*</sup>,<img file="FDA0000719698770000047.GIF" wi="56" he="73" />分别记录ζ<sup>(t)</sup>,x<sup>(t)</sup>,<img file="FDA0000719698770000048.GIF" wi="82" he="86" />的最优表示;步骤16令t=t+1,迭代上述步骤6~步骤15,直至给定的最大迭代次数;步骤17在高维特征空间中,按如下公式,计算待识别图像y在训练集中的每一个人的样本空间中的投影残差r<sub>k</sub>:<img file="FDA0000719698770000049.GIF" wi="630" he="133" />其中,k∈{1,2,…,K},δ<sub>k</sub>(x<sup>*</sup>)表示将x<sup>*</sup>中的所有除了对应于第k个人的编码系数外的元素全部置为0;步骤18按如下公式对待识别图像y进行分类:<maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><mi>ID</mi><mrow><mo>(</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mi>arg</mi><munder><mi>min</mi><mi>k</mi></munder><msub><mi>r</mi><mi>k</mi></msub><mo>.</mo></mrow>]]></math><img file="FDA00007196987700000410.GIF" wi="466" he="108" /></maths>
地址 310014 浙江省杭州市下城区朝晖六区潮王路18号浙江工业大学