发明名称 基于多人脸数据采集策略和深度学的课堂考勤方法
摘要 本发明公开了一种基于多人脸数据采集策略和深度学的课堂考勤方法,用于解决现有基于人脸识别的考勤方法识别率差的技术问题。技术方案是利用AdaBoost算法和肤色模型进行多目标检测和提取。只需一次对所有参与考勤的人脸拍摄一段视频,并对视频序列中的人脸进行检测、提取,完成人脸数据库的建立。基于深度学的人脸识别方法,以深度卷积神经网络LeNet‑5模型为基础,应用简化的LeNet‑5模型对人脸数据库中不同场景下的人脸特征进行学,通过多层非线性变换得到新特征表示。这些新特征尽可能多的去掉了如光照、噪声、姿态和表情等类内变化,而保留身份不同产生的类间变化,提高了人脸识别方法在实际复杂场景下人脸识别率。
申请公布号 CN106204779A 申请公布日期 2016.12.07
申请号 CN201610504632.0 申请日期 2016.06.30
申请人 陕西师范大学 发明人 裴炤;张艳宁;彭亚丽;马苗;尚海星;苏艺
分类号 G07C1/10(2006.01)I;G06K9/00(2006.01)I;G06N3/02(2006.01)I 主分类号 G07C1/10(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 王鲜凯
主权项 一种基于多人脸数据采集策略和深度学习的课堂考勤方法,其特征在于包括以下步骤:(a)人脸数据获取;对被采集者脸部拍摄30秒的视频序列,在视频拍摄过程中,采集者制订一系列规则来模拟实际考勤中人脸可能发生的变化;包括微笑、皱眉的表情变化和张嘴、抬头、低头、改变面部朝向的动作变化;被采集者根据采集者的要求在视频拍摄过程中进行表情、动作变化;(b)利用AdaBoost算法结合肤色模型进行多人脸检测.将AdaBoost算法与肤色模型结合,通过AdaBoost算法定位人脸位置,再运用肤色模型对其进行肤色校验,方法如下:①利用Adaboost算法生成用于人脸检测的分类器,进行初步地人脸检测;②采用肤色模型校验Adaboost初步确定的人脸区域,通过将图像中的像素与标准肤色比较,区分图像中的肤色区域和非肤色区域;设置标准肤色范围时,采用三种颜色空间:RGB色彩空间、HSV色彩空间、YCbCr色彩空间;设置两个RGB标准肤色模型;模型一的阈值范围:G&gt;40、B>20、R&gt;G、R&gt;B、MAX(R,G,B)‑MIN(R,G,B)&gt;15;模型二的阈值范围:R&gt;220、|R‑G|&lt;15、R&gt;G、R&gt;B;采用公式(1)(2)(3)(4)将RGB颜色转换为HSV颜色,设置HSV标准肤色阈值范围:0&lt;H&lt;50、0.23&lt;S&lt;0.68;<maths num="0001"><math><![CDATA[<mrow><mi>H</mi><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>H</mi><mi>i</mi><mo>,</mo></mrow></mtd><mtd><mrow><mi>B</mi><mo>&le;</mo><mi>G</mi></mrow></mtd></mtr><mtr><mtd><mrow><mn>360</mn><mo>-</mo><mi>H</mi><mo>,</mo></mrow></mtd><mtd><mrow><mi>B</mi><mo>&GreaterEqual;</mo><mi>G</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000011.GIF" wi="1277" he="118" /></maths>式中,H为色调;其中,<maths num="0002"><math><![CDATA[<mrow><mi>H</mi><mi>i</mi><mo>=</mo><mfrac><mfrac><mn>1</mn><mrow><mn>2</mn><mrow><mo>(</mo><mi>R</mi><mo>-</mo><mi>G</mi><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mi>R</mi><mo>-</mo><mi>B</mi><mo>)</mo></mrow></mrow></mfrac><msqrt><msqrt><mrow><msup><mrow><mo>(</mo><mi>R</mi><mo>-</mo><mi>G</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mrow><mo>(</mo><mi>R</mi><mo>-</mo><mi>G</mi><mo>)</mo></mrow><mo>&times;</mo><mrow><mo>(</mo><mi>G</mi><mo>-</mo><mi>B</mi><mo>)</mo></mrow></mrow></msqrt></msqrt></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000012.GIF" wi="1310" he="173" /></maths>式中,R为红色通道的值,G为绿色通道的值,B为蓝色通道的值;<maths num="0003"><math><![CDATA[<mrow><mi>S</mi><mo>=</mo><mfrac><mrow><mi>M</mi><mi>A</mi><mi>X</mi><mrow><mo>(</mo><mrow><mi>R</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>B</mi></mrow><mo>)</mo></mrow><mo>-</mo><mi>M</mi><mi>I</mi><mi>N</mi><mrow><mo>(</mo><mrow><mi>R</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>B</mi></mrow><mo>)</mo></mrow></mrow><mrow><mi>M</mi><mi>A</mi><mi>X</mi><mrow><mo>(</mo><mrow><mi>R</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>B</mi></mrow><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000013.GIF" wi="1301" he="111" /></maths>式中,S为饱和度;<maths num="0004"><math><![CDATA[<mrow><mi>V</mi><mo>=</mo><mfrac><mrow><mi>M</mi><mi>A</mi><mi>X</mi><mrow><mo>(</mo><mrow><mi>R</mi><mo>,</mo><mi>G</mi><mo>,</mo><mi>B</mi></mrow><mo>)</mo></mrow></mrow><mn>255</mn></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000014.GIF" wi="1188" he="102" /></maths>式中,V为明度;利用公式(5)将RGB颜色转换为YCbCr颜色,之后设置YCbCr标准肤色阈值范围为:Y&gt;20、135&lt;Cr&lt;180、85&lt;Cb&lt;135;<maths num="0005"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>Y</mi><mo>=</mo><mn>0.299</mn><mi>R</mi><mo>+</mo><mn>0.587</mn><mi>G</mi><mo>+</mo><mn>0.114</mn><mi>B</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>C</mi><mi>b</mi><mo>=</mo><mrow><mo>(</mo><mi>B</mi><mo>-</mo><mi>Y</mi><mo>)</mo></mrow><mo>&times;</mo><mn>0.564</mn><mo>+</mo><mn>128</mn></mrow></mtd></mtr><mtr><mtd><mrow><mi>C</mi><mi>r</mi><mo>=</mo><mrow><mo>(</mo><mi>R</mi><mo>-</mo><mi>Y</mi><mo>)</mo></mrow><mo>&times;</mo><mn>0.713</mn><mo>+</mo><mn>128</mn></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000021.GIF" wi="1358" he="185" /></maths>式中,Y为亮度分量,Cb为蓝色色度分量,Cr为红色色度分量;(c)约束人脸中心位置出现的范围;①从所采集的视频序列中抽取20帧图像,利用公式(6)计算每一帧间的间隔g<maths num="0006"><math><![CDATA[<mrow><mi>g</mi><mo>=</mo><mfrac><mrow><mi>t</mi><mo>&times;</mo><mi>f</mi></mrow><mn>20</mn></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000022.GIF" wi="1096" he="98" /></maths>式中t为所拍视频长度,f为所拍摄视频每一秒的帧数;②通过AdaBoost算法和肤色模型对所抽取的20帧图像进行检测后,将检测得到的人脸坐标进行保存,利用公式(7)、(8)计算不同人脸中心坐标的平均值<maths num="0007"><math><![CDATA[<mrow><msub><mi>x</mi><mi>c</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>x</mi><mi>&gamma;</mi></msub><mo>-</mo><msub><mi>x</mi><mi>l</mi></msub></mrow><mn>2</mn></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000023.GIF" wi="1125" he="91" /></maths><maths num="0008"><math><![CDATA[<mrow><msub><mi>y</mi><mi>c</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>y</mi><mi>&gamma;</mi></msub><mo>-</mo><msub><mi>y</mi><mi>l</mi></msub></mrow><mn>2</mn></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000024.GIF" wi="1126" he="91" /></maths>式中,(x<sub>r</sub>,y<sub>r</sub>)为检测到的人脸右下角坐标,(x<sub>l</sub>,y<sub>l</sub>)为左上角坐标;将计算得到的平均值与实际图像中的人脸中心坐标进行对比,得到人脸中心坐标的误差范围,根据所得误差范围添加约束条件x<sub>c</sub>‑m≤x<sub>c_real</sub>≤x<sub>c</sub>+m    (9)y<sub>c</sub>‑n≤y<sub>c_real</sub>≤y<sub>c</sub>+n    (10)式中,(x<sub>c_real</sub>,y<sub>c_real</sub>)为实际检测得到的人脸中心位置坐标;(d)提取检测到的人脸并处理,完成人脸数据库的建立;提取检测到的人脸,将其转化为大小为28×28像素的人脸灰度图像;将处理后的人脸图像按约束条件的不同进行存储,完成实际考勤人脸数据库的建立;(e)训练模型;将人脸数据库中大小为28×28像素的人脸灰度图像作为训练数据输入深度卷积神经网络模型进行多次迭代训练,完成模型的训练;具体训练过程如下:训练过程分为两个步骤:前向传播及反向传播;①前向传播的目的是将训练数据送入网络以获得激励响应;包括一层卷积层和一层下采样层;首先对卷积层进行处理,在第l层卷积层上应用公式(11)得到卷积层l提取的卷积特征;<maths num="0009"><math><![CDATA[<mrow><msubsup><mi>x</mi><mi>j</mi><mi>l</mi></msubsup><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><msub><mi>M</mi><mi>j</mi></msub></mrow></msub><msubsup><mi>x</mi><mi>j</mi><mrow><mi>l</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>*</mo><msubsup><mi>k</mi><mi>j</mi><mi>l</mi></msubsup><mo>+</mo><msubsup><mi>b</mi><mi>j</mi><mi>l</mi></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>11</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000031.GIF" wi="1307" he="86" /></maths>式中,<img file="FDA0001036499670000032.GIF" wi="51" he="76" />为卷积层l的卷积特征,M<sub>j</sub>为选择输入的特征图集合,<img file="FDA0001036499670000033.GIF" wi="50" he="76" />为卷积层l上的卷积核,<img file="FDA0001036499670000034.GIF" wi="47" he="76" />为卷积层l上的偏置值,通过激活函数f得到卷积层l的卷积特征;得到卷积层的卷积特征后,应用公式(12)对卷积特征进行下采样处理,即对不同位置的特征进行聚合统计;<maths num="0010"><math><![CDATA[<mrow><msubsup><mi>x</mi><mi>j</mi><mi>l</mi></msubsup><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msubsup><mi>&beta;</mi><mi>j</mi><mi>l</mi></msubsup><mi>d</mi><mi>o</mi><mi>w</mi><mi>n</mi><mo>(</mo><msubsup><mi>x</mi><mi>j</mi><mrow><mi>l</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo><mo>+</mo><msubsup><mi>b</mi><mi>j</mi><mi>l</mi></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>12</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000035.GIF" wi="1294" he="79" /></maths>式中,down(·)为下采样函数,β为乘性偏置,b为加性偏置;②反向传播,通过最小化残差对权重和偏置进行调整;包括一层卷积层和一层下采样层;对于卷积层,下一层为下采样层的,利用公式(13)计算残差;<img file="FDA0001036499670000036.GIF" wi="1309" he="76" />式中,up(·)为一个上采样函数,о表示矩阵中对应元素相乘;其中,u<sup>l</sup>=W<sup>l</sup>x<sup>l‑1</sup>+b<sup>l</sup>    (14)x<sup>l</sup>=f(u<sup>l</sup>)    (15)式中,f为激活函数;由得到的残差<img file="FDA0001036499670000037.GIF" wi="74" he="77" />应用公式(16)计算偏置b的梯度;<maths num="0011"><math><![CDATA[<mrow><mfrac><mrow><mo>&part;</mo><mi>E</mi></mrow><mrow><mo>&part;</mo><msub><mi>b</mi><mi>j</mi></msub></mrow></mfrac><mo>=</mo><msub><mi>&Sigma;</mi><mrow><mi>u</mi><mo>,</mo><mi>v</mi></mrow></msub><mrow><mo>(</mo><msubsup><mi>&delta;</mi><mi>j</mi><mi>l</mi></msubsup><mo>)</mo></mrow><mi>u</mi><mi>v</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>16</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000038.GIF" wi="1155" he="117" /></maths>式中,u,v表示特征图中的坐标值;定义<img file="FDA0001036499670000041.GIF" wi="193" he="83" />为卷积时与逐元素相乘的n×n的像素块,应用公式(17)计算得到卷积核梯度;<maths num="0012"><math><![CDATA[<mrow><mfrac><mrow><mo>&part;</mo><mi>E</mi></mrow><mrow><mo>&part;</mo><msubsup><mi>k</mi><mrow><mi>i</mi><mi>j</mi></mrow><mi>l</mi></msubsup></mrow></mfrac><mo>=</mo><msub><mi>&Sigma;</mi><mrow><mi>u</mi><mo>,</mo><mi>v</mi></mrow></msub><msub><mrow><mo>(</mo><msubsup><mi>&delta;</mi><mi>j</mi><mi>l</mi></msubsup><mo>)</mo></mrow><mrow><mi>u</mi><mi>v</mi></mrow></msub><msub><mrow><mo>(</mo><msubsup><mi>p</mi><mi>i</mi><mrow><mi>l</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mrow><mi>u</mi><mi>v</mi></mrow></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>17</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000042.GIF" wi="1269" he="108" /></maths>输出的卷积特征图的(u,v)位置的值是上一层中(u,v)位置的n×n的像素块与卷积核k<sub>ij</sub>逐元素相的结果;对下采样层进行处理,下采样层的下一层为卷积层,应用公式(18)计算下采样的特征图残差;<img file="FDA0001036499670000043.GIF" wi="1486" he="79" />式中,<img file="FDA0001036499670000044.GIF" wi="319" he="80" />表示将卷积核<img file="FDA0001036499670000045.GIF" wi="99" he="77" />矩阵旋转180°,即将矩阵元素按照对角线进行交换;conv2为全卷积函数,′full′表示对全卷积得到的矩阵空缺处以0补全;得到残差后,再应用公式(19)计算偏置b的梯度;<maths num="0013"><math><![CDATA[<mrow><mfrac><mrow><mo>&part;</mo><mi>E</mi></mrow><mrow><mo>&part;</mo><msub><mi>b</mi><mi>j</mi></msub></mrow></mfrac><mo>=</mo><msub><mi>&Sigma;</mi><mrow><mi>u</mi><mo>,</mo><mi>v</mi></mrow></msub><mrow><mo>(</mo><msubsup><mi>&delta;</mi><mi>j</mi><mi>l</mi></msubsup><mo>)</mo></mrow><mi>u</mi><mi>v</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>19</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001036499670000046.GIF" wi="1166" he="117" /></maths>式中,u,v表示特征图中的坐标值;定义<img file="FDA0001036499670000047.GIF" wi="418" he="77" />利用已求得的残差应用公式(20)计算卷积核梯度;<img file="FDA0001036499670000048.GIF" wi="1178" he="117" />③输出层,对特征进行分类;其实质是一个分类器,采用softmax分类器,解决多分类问题;(f)使用测试数据对训练好的模型进行测试;①测试数据的获取;应用中,对所有被采集者拍摄图像;检测图像中出现的人脸,将检测到的人脸进行处理,得到大小为28×28像素的人脸灰度图像,并将处理后的图像保存为测试数据;②将测试数据输入已训练好的模型,模型对输入的测试数据进行识别,输出其对应的训练集上的人脸标签,完成人脸识别;(g)通过调整卷积神经网络的层数、每层网络的卷积核个数和学习率,进行多次实验,即重复步骤(e)和步骤(f),并对实验结果进行对比,选择识别率最高的模型参数,对参数及训练模型进行保存。
地址 710062 陕西省西安市雁塔区长安南路199号