发明名称 基于视频序列的人脸表情识别方法
摘要 本发明基于视频序列的人脸表情识别方法,涉及用于识别图形的方法,是一种利用HCBP-TOP算法提取人脸表情序列的动态时空纹理特征的人脸表情识别方法,步骤是:人脸表情序列预处理;采用空间金字塔分割方式对人脸表情序列图像分层分块处理;利用HCBP-TOP算法提取人脸表情序列图像的动态时空纹理特征;采用SVM分类器进行人脸表情的训练和预测。本发明方法克服了现有技术没有考虑中心像素,忽视局部细节信息,人脸表情识别的效率和识别精度均较低,不具有普遍的适用性的缺陷。
申请公布号 CN105139004A 申请公布日期 2015.12.09
申请号 CN201510612526.X 申请日期 2015.09.23
申请人 河北工业大学 发明人 于明;郭迎春;师硕;于洋;刘依;阎刚;邓玉娟
分类号 G06K9/00(2006.01)I;G06K9/62(2006.01)I;G06K9/66(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 天津翰林知识产权代理事务所(普通合伙) 12210 代理人 胡安朋
主权项 基于视频序列的人脸表情识别方法,其特征在于:是一种利用HCBP‑TOP算法提取人脸表情序列的动态时空纹理特征的人脸表情识别方法,具体步骤如下:第一步,人脸表情序列图像预处理:(1)人脸表情序列图像裁剪:将从已有人脸表情视频序列数据库读取到的人脸表情序列图像由RBG空间转化到灰度空间,采用的公式(1)如下:Gray=0.299R+0.587G+0.114B     (1),其中,Gray为灰度值,范围一般从0到255,R为红色分量,G为绿色分量,B为蓝色分量,根据人脸面部“三庭五眼”的特征和人脸的几何模型,对转化到灰度空间的人脸表情序列图像进行裁剪,设双眼之间的水平距离为d,以两眼连线的中点为基准点,向上距离基准点0.55d处定为上边界,向下距离基准点1.45d处定为下边界,向左距离0.9d处定为左边界,向右距离0.9d处定为右边界,由此完成人脸表情序列图像裁剪;(2)人脸表情序列图像缩放:对上述(1)裁剪后的人脸表情序列采用双三次插值算法改变图像的尺度,实现尺度归一化,以进行人脸表情序列图像缩放,经过人脸表情序列缩放后的人脸图像大小为64×64像素;(3)人脸表情序列图像灰度均衡化:采用直方图均衡化对上述(2)处理得到的人脸表情序列图像进行灰度处理,至此完成人脸表情序列图像预处理;第二步,采用空间金字塔分割方式对人脸表情序列图像分层分块处理:空间金字塔分割即在空间上对图像进行逐步细分,这里采用的空间金字塔分割方式是在人脸表情序列图像的水平和竖直两个标准坐标方向上进行2的指数倍数的划分,设金字塔的总层数为L+1,金字塔各层的层数i分别为0,1,2,…,L,金字塔第i层的分割方法为:在水平标准坐标方向把人脸表情序列图像划分为2<sup>i</sup>块,在竖直标准坐标方向把人脸表情序列图像划分为2<sup>i</sup>块,最终将人脸表情序列图像划分为2<sup>i</sup>×2<sup>i</sup>块,这里设定上述L=2,即利用空间金字塔分割方式把第一步中预处理后的人脸表情序列图像分成2+1层,第零层为原人脸表情序列图像,第i层把原人脸表情序列图像分成2<sup>i</sup>×2<sup>i</sup>的子块,i=1,2;第三步,利用HCBP‑TOP算法提取人脸表情序列图像的动态时空纹理特征:利用HCBP‑TOP算法对人脸表情序列图像进行分层分块的动态时空域纹理特征的提取,所述的“分层分块”是上述第二步中得到的人脸表情序列图像分层分块,经过第二步空间金字塔分割方式对人脸表情序列图像分层分块处理后,进一步用HCBP‑TOP算法获取到每个子块X轴、Y轴、时间T轴三个维度的特征向量,并组合拼接成块内整体特征向量,再将整幅图像内的所有块的特征向量整合,形成一幅图像某个分层上的特征数据,最后将金字塔的各层人脸表情序列图像的动态时空纹理特征直方图按照权重分配串联成整个人脸表情序列图像的动态时空纹理特征直方图,具体方法如下:(1)提取图像子块的HCBP特征:在每一层中,利用HCBP‑TOP算法对每个序列中对应位置的子块上提取图像子块的HCBP特征,对该子块进行人脸表情序列图像的动态时空纹理特征的直方图统计,然后将所有子块的人脸表情序列图像的动态时空纹理特征直方图串联成整个人脸表情序列中各层的人脸表情序列图像的动态时空纹理特征直方图,即获取人脸表情序列在X‑Y平面的形变信息和在X‑T平面和Y‑T平面的运动信息,提取过程是通过如下HCBP编码计算的:8组HCBP编码模型M<sub>1</sub>‑M<sub>8</sub>如公式(2)所示:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>M</mi><mn>1</mn></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000021.GIF" wi="582" he="399" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>M</mi><mn>2</mn></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000022.GIF" wi="633" he="399" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>M</mi><mn>3</mn></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000023.GIF" wi="588" he="399" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>M</mi><mn>4</mn></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000024.GIF" wi="573" he="400" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>M</mi><mn>5</mn></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000025.GIF" wi="581" he="399" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>M</mi><mn>6</mn></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000026.GIF" wi="636" he="405" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>M</mi><mn>7</mn></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000027.GIF" wi="587" he="403" /></maths><maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mi>M</mi><mn>8</mn></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000028.GIF" wi="861" he="388" /></maths>上式中每组模型中最外层5个像素被设定权重为1,相邻的第二外层5个像素被设定权值为‑1,其他部分被设定权重为0,中心点P<sub>0</sub>用来记录存储Haar‑like型特征的纹理变化,在X‑Y、X‑T、Y‑T每个平面上以P<sub>0</sub>为中心构成了一个如公式(3)所示5×5的小窗口,周围有24个邻域点P<sub>i</sub>(i=1,2,…,24),<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mi>W</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>P</mi><mn>9</mn></msub></mtd><mtd><msub><mi>P</mi><mn>10</mn></msub></mtd><mtd><msub><mi>P</mi><mn>11</mn></msub></mtd><mtd><msub><mi>P</mi><mn>12</mn></msub></mtd><mtd><msub><mi>P</mi><mn>13</mn></msub></mtd></mtr><mtr><mtd><msub><mi>P</mi><mn>24</mn></msub></mtd><mtd><msub><mi>P</mi><mn>1</mn></msub></mtd><mtd><msub><mi>P</mi><mn>2</mn></msub></mtd><mtd><msub><mi>P</mi><mn>3</mn></msub></mtd><mtd><msub><mi>P</mi><mn>14</mn></msub></mtd></mtr><mtr><mtd><msub><mi>P</mi><mn>23</mn></msub></mtd><mtd><msub><mi>P</mi><mn>8</mn></msub></mtd><mtd><msub><mi>P</mi><mn>0</mn></msub></mtd><mtd><msub><mi>P</mi><mn>4</mn></msub></mtd><mtd><msub><mi>P</mi><mn>15</mn></msub></mtd></mtr><mtr><mtd><msub><mi>P</mi><mn>22</mn></msub></mtd><mtd><msub><mi>P</mi><mn>7</mn></msub></mtd><mtd><msub><mi>P</mi><mn>6</mn></msub></mtd><mtd><msub><mi>P</mi><mn>5</mn></msub></mtd><mtd><msub><mi>P</mi><mn>16</mn></msub></mtd></mtr><mtr><mtd><msub><mi>P</mi><mn>21</mn></msub></mtd><mtd><msub><mi>P</mi><mn>20</mn></msub></mtd><mtd><msub><mi>P</mi><mn>19</mn></msub></mtd><mtd><msub><mi>P</mi><mn>18</mn></msub></mtd><mtd><msub><mi>P</mi><mn>17</mn></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000029.GIF" wi="970" he="386" /></maths>由以上描述可知,图像序列I中的任意一个像素点I(x,y,t)在其四周存在小窗W<sub>j</sub>(x,y),j=0,1,2,W<sub>0</sub>(x,y)表示该像素点在X‑Y平面上对应的小窗口,W<sub>1</sub>(x,y)表示该像素点在X‑Z平面上对应的小窗口,W<sub>2</sub>(x,y)表示该像素点在Y‑Z平面上对应的小窗口,W<sub>j</sub>(x,y)的HCBP值f<sub>j</sub>(x,y,t)的计算公式如下式:<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><msub><mi>f</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>H</mi><mi>C</mi><mi>B</mi><mi>P</mi><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi></mrow><mo>)</mo><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mn>8</mn></munderover><mi>B</mi><mrow><mo>(</mo><msub><mi>a</mi><mrow><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>)</mo></mrow><mo>&times;</mo><msup><mn>2</mn><mrow><mn>8</mn><mo>-</mo><mi>k</mi></mrow></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000031.GIF" wi="1269" he="143" /></maths>其中<maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><mi>B</mi><mrow><mo>(</mo><msub><mi>a</mi><mrow><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mn>1</mn><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>a</mi><mrow><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>&GreaterEqual;</mo><msub><mi>T</mi><mrow><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub></mrow></mtd></mtr><mtr><mtd><mrow><mn>0</mn><mo>,</mo></mrow></mtd><mtd><mrow><msub><mi>a</mi><mrow><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>&lt;</mo><msub><mi>T</mi><mrow><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mo>(</mo><mn>5</mn><mo>)</mo><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000032.GIF" wi="897" he="167" /></maths><maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><msub><mi>T</mi><mrow><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><mn>8</mn></munderover><mn>5</mn><mrow><mo>(</mo><mi>I</mi><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi></mrow><mo>)</mo><mo>-</mo><mo>(</mo><mrow><msub><mi>C</mi><mi>k</mi></msub><mo>&CenterDot;</mo><msub><mi>W</mi><mi>j</mi></msub><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo></mrow><mo>+</mo><mi>I</mi><mrow><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi></mrow><mo>)</mo></mrow></mrow><mo>)</mo><mo>/</mo><mn>11</mn><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000809156890000033.GIF" wi="1222" he="147" /></maths>a<sub>j,k</sub>=M<sub>k</sub>·W<sub>j</sub>(x,y)     (7),M<sub>k</sub>为编码模型,C<sub>k</sub>为每个编码模型中权值不为零的像素求和模型,C<sub>k</sub>=|M<sub>k</sub>|,B(x)为HCBP值的阈值比较函数,T<sub>j,k</sub>为阈值,a<sub>j,k</sub>为小窗W<sub>j</sub>(x,y)和编码模型M<sub>k</sub>卷积后得到的十进制数;对每个图像子块利用模型M<sub>1</sub>‑M<sub>8</sub>对图像区域像素进行扫描,模型窗口大小为5×5像素,每个模型对应一个阈值,阈值的计算方法为,先计算每个模型中10个权值不为零像素与中心像素共11个像素的和,即C<sub>k</sub>·W<sub>j</sub>(x,y),然后求出这11个像素的平均值,每个模型的阈值为中心像素与平均值的差值的5倍,然后利用公式(4)计算人脸表情序列的动态时空纹理特征,权值为1的5个像素值的和减去权值为‑1的5个像素值的和,即外侧向里侧的变化信息,得到一个十进制数a<sub>j,k</sub>,将a<sub>j,k</sub>与阈值T<sub>j,k</sub>比较,若a<sub>j,k</sub>大于阈值则HCBP‑TOP码值为1,否则计为0;(2)提取人脸表情序列图像的动态时空纹理HCBP‑TOP特征:利用HCBP‑TOP算法对第二步生成的分层金字塔子块提取人脸表情序列图像的动态时空纹理特征,根据上述(1)中提取图像子块的HCBP特征计算每块内的人脸表情序列图像的动态时空纹理HCBP‑TOP特征,每个子块X、Y、T三个维度的在XY、XT、YT方向上的HCBP特征向量组合拼接成块内整体特征向量HCBP‑TOP,再将整幅图像内的所有块的特征向量整合,形成一幅图像某个分层上的特征数据,根据直方图函数得到某层的特征直方图,由于图像分类时各层图像的空间信息不同和各层图像块在图像分类时所起到的作用不同,将金字塔的各层人脸表情序列图像的动态时空纹理特征直方图按照权重分配串联成整个人脸表情序列图像的动态时空纹理特征直方图,权重分配原则为大尺度的子块所属的图层的人脸表情序列图像的动态时空纹理特征直方图权重小,而小尺度的子块所属的图层的人脸表情序列图像的动态时空纹理特征直方图权重大,定义金字塔第i层的人脸表情序列图像的动态时空纹理特征直方图的权重为i+1,则第零层原图特征直方图分配的权重为1,第一层特征直方图分配的权重为2,随着层数越大,该层特征直方图分配的权重越大,即该层特征信息在总特征表示中的比重就越大;然后将各层人脸表情序列图像的动态时空纹理特征直方图根据划分的权重组合拼接成整体图像的人脸表情序列图像的动态时空纹理特征直方图,其中第i层的子块个数为2<sup>i</sup>×2<sup>i</sup>,每个子块的人脸表情序列图像的动态时空纹理特征取值范围为0到255,并经过规范化处理得到最终的人脸表情序列图像的动态时空纹理特征表示,将提取到的人脸表情序列图像的动态时空纹理特征数据输入SVM中训练分类器;第四步,采用SVM分类器进行人脸表情的训练和预测:将第三步提取到的人脸表情序列图像的动态时空纹理特征数据输入SVM训练分类器进行人脸表情的训练和预测,判断提取的人脸表情序列图像的动态时空纹理特征究竟属于哪类人脸表情,采用留一法,取实验的平均结果为表情识别率,具体操作流程如下:(1)将上述第三步提取到的人脸表情序列图像的动态时空纹理特征数据输入SVM训练分类器,根据这些人脸表情序列图像的动态时空纹理特征样本构造出与训练样本人脸表情序列图像的动态时空纹理特征矩阵和测试样本人脸表情序列图像的动态时空纹理特征矩阵分别对应的训练和测试类别样本矩阵,该训练和测试类别样本矩阵中的值为样本的分类类别;(2)针对局部人脸表情序列图像的动态时空纹理特征采用自定义核函数,采用交叉验证选择最佳参数c与g,拉格朗日因子c=790,g=1.9,首先将训练样本人脸表情序列图像的动态时空纹理特征矩阵和测试样本人脸表情序列图像的动态时空纹理特征矩阵送入svmtrain函数得到支持向量,再将测试样本人脸表情序列图像的动态时空纹理特征矩阵和上述支持向量送入svmpredict函数中进行预测,由此完成人脸表情识别,在Cohn‑Kanade库和SFEW库中实验得到生气、厌恶、害怕、高兴、伤心和惊讶6种表情,由此完成人脸表情的识别。
地址 300130 天津市红桥区丁字沽光荣道8号河北工业大学东院330#