1.一种人脸活体检测方法,其特征在于包括如下步骤:步骤1:人脸检测与关键点定位;
步骤2:基于眨眼动作的活体检测;
步骤3:基于边框检测的活体检测;
骤4:结合边框检测与人眼眨眼判断的活体检测。
2.如权利要求1所述的人脸活体检测方法,其特征在于:所述步骤1具体如下:
利用MTCNN开源目标检测算法训练人脸检测模型和预测13个关键点位置,所述MTCNN算法是基于深度学习的目标检测算法,利用训练的模型检测人脸框位置信息(χf,yf,wf,hf),输出13个关键点位置信息((x1,y1),(x2,y2)…(x13,y13))。
3.如权利要求2所述的人脸活体检测方法,其特征在于:所述步骤2具体如下:
由步骤1得到的13个关键点中的第1点为左眼的左眼角点,第2点为左眼上眼皮的点,第
3点为左眼右眼角点,第4点为左眼角下眼皮的关键点,第5点为右眼的左眼角点,第6点为右眼上眼皮的点,第7点为右眼的右边眼角点,第8点为右眼角下眼皮的关键点;利用欧氏距离计算视频中第i帧人眼高hi和宽wi的比值ui,记录下ui的值,ui在设定的阈值T上呈现上下浮动,计算一段时间t内的睁眼总次数q和闭眼的次数k,当|q+k|≥2,|q-k|≤a,例如a取3,满足这些条件,则判断有眨眼动作发生,检测到的人脸为活体;
判断眨眼动作发生的条件:在第i+m帧时比值ui+m>T>ui+m+1且随后r帧出现ui+m+r
其中wi和hi的计算公式为:
所述阈值T的取值步骤为:
①统计数据集中n张图片人眼的宽和高,求取宽高的均值 和②计算阈值T:
。
4.如权利要求3所述的人脸活体检测方法,其特征在于:步骤3具体如下:
采用深度学习训练一个检测照片框、视频边框与手机边框的边框检测卷积神经网络模型,在视频第i帧检测到人脸框位置信息为(χfi,yfi,wfi,hfi),如果边框检测模型检测到有边框,其位置信息为(χbi,ybi,wbi,hbi),只要人脸框包含在模型检测到的边框内,则不认为是活体,反之,则认为是活体;
判断人脸框包含在检测到边框内的公式为:
χfi>χbi;yfi>ybi (7)
χfi+wfi<χbi+wbi (8)yfi+hfi
(3b)对图像数据进行数据增强:将N张图片通过平移、旋转图像(0°,90°,180°,270°)来增加数据,使数据变为原来的16倍;将数据集按找8:1:1的比例分成训练集,验证集和测试集;
(3c)对图像数据进行处理:将图像缩放到M×M的尺寸,再转换成灰度图片,把处理好的图片数据存为HDF5(Hierarchical Data Format)文件;
(3d)网络结构:所述的卷积神经网络层包含3个卷积层,1个BN层和2个全连接层,它的输出层节点数4个,选定损失函数(3f)训练:将处理完的数据送入卷积神经网络,网络输入批量大小(batch size)设置为64,随机初始化各层的连接权值W和偏置b,给定学习速率η;
(3e)测试:将测试集数据输入训练好边框检测模型,检测有无边,如果有,输出边框位置信息(χb,yb,wb,hb)。
5.如权利要求4所述的人脸活体检测方法,其特征在于:所述步骤4具体如下:
由步骤2与步骤3所述的两种方法进行联合活体检测:首先对摄像头采集的视频进行人脸检测,如果检测到人脸,就开始进行边框检测,如果检测到视频中带有边框,且边框内包含检测到的人脸框,则不让其通过,认为他是非活体;若未检测到边框或检测到的边框内不包含人脸,则通过对视频中人眼是否有眨眼进行判断,如果有眨眼,判断为活体,否则判断为非活体。