掌桥专利:专业的专利平台
掌桥专利
首页

基于MobileNet的人脸活体检测方法

文献发布时间:2023-06-19 18:53:06


基于MobileNet的人脸活体检测方法

技术领域

本申请实施例涉及人脸识别领域,特别涉及一种基于MobileNet的人脸活体检测方法。

背景技术

如今人脸识别技术已经应用到了生活中的很多场景中,例如人脸考勤、刷脸支付等。那么在利用人脸识别技术时,最大的挑战是各种各样的攻击手段对人脸识别技术进行破解,如使用照片打印人脸来通过人脸考勤、人脸闸机等。因此本发明针对人脸活体检测方法来防止照片打印这样的攻击手段。

在相关技术中,通常使用传统算法对人脸图片进行特征提取,受限于计算复杂、性能低效等缺点,很难满足实际的使用要求。随着神经网络技术的出现,各种神经网络模型以其性能高效、准确度精确等优点,成功的解决了传统算法难以满足实际需求的缺点。但尽管现有的神经网络模型能够很好的应用于各种场景中,但是在保证较高精确度的前提下需要高资源的支持,因此现有的一些主流模型都比较大。由于嵌入式端在空间和功耗等计算资源条件上受到限制,导致现有的一些高精确度的主流模型无法部署到嵌入式端上。

发明内容

本申请实施例提供一种基于MobileNet的人脸活体检测方法。解决网络模型过大和嵌入式设备部署的问题。所述方法包括如下步骤:

通过摄像模组采集包含真人脸和假人脸照片,检测并标注出人脸图像,获得裁剪后的人脸图像;

采用双线性差值方法对裁剪后的所述人脸图像进行缩放,获得标准化图像;

将所述标准化图像输入轻量化MobileNet模型中,提取和识别人脸特征数据,并基于真假人脸组成的训练集进行模型训练;其中所述轻量化MobileNet模型包括一个普通卷积层、至少四个深度可分离卷积DPBlock模块和一个第一深度卷积层,所述DPBlock模块用于提取所述人脸特征数据,以及将特征图长度和宽度缩小一半;

导出所述轻量化MobileNet模型的模型参数并部署到嵌入式设备中,通过C语言执行网络结构和网络各层间的卷积运算,执行前向推理过程,获得人脸活体检测模型。

具体的,所述轻量化MobileNet网络的所述卷积层级联在输入层后方,所述普通卷积层级联在输入层后方,卷积步长s=2,卷积核的张量大小为3*3*4,经过所述普通卷积层后输出的特征图张量大小为4*48*48;

所述输入层输入的所述标准化图像尺寸为96*96。

具体的,所述普通卷积层后方连续级联有四个相同的所述DPBlock模块,依次为第一DPBlock模块至第四DPBlock模块;

每组所述DPBlock模块包括两组第二深度卷积层及归一化及激活层、两组点卷积层及对应所述归一化及激活层,以及一组第三深度卷积层;

其结构层次为第二深度卷积层、归一化及激活层、点卷积层、归一化及激活层、第二深度卷积层、归一化及激活层、点卷积层、归一化及激活层、第三深度卷积层。

具体的,所述第二深度卷积层的卷积核大小为3*3,卷积步长s=1;所述第三深度卷积层的卷积核大小为3*3,卷积步长s=2;所述归一化及激活层包括BN层和ReLU6激活层。

具体的,所述第四DPBlock模块输出特征图大小为3*3;所述第一深度卷积层级联在所述第四DPBlock模块后方,卷积核大小为3*3,卷积步长s=1,经过所述第一深度卷积层后输出的特征图大小为1*1,特征图通道数为2。

具体的,模型训练过程包括:

以pytorch框架训练人脸活体检测模型,将真人脸和假人脸照片组成的数据集划分为训练集、验证集和测试集,且比例为6:2:2;

将真人脸数据的所述标准化图像标签设置为1,将假人脸的所述标准化图像标签设置为0,将标签和所述标准化图像送入所述轻量化MobileNet模型中,采用交叉熵损失函数进行模型训练,并根据对测试集上的人脸图片判断正确的准确率大小调节模型批大小、学习率和梯度参数;

当所述轻量化MobileNet模型在测试集上的准确率趋向稳定,或训练次数达到设定阈值时停止训练。

具体的,所述导出所述轻量化MobileNet模型的模型参数并部署到嵌入式设备中,通过C语言执行网络结构和网络各层间的卷积运算,执行前向推理过程,获得人脸活体检测模型;包括:

将模型的权重参数以TXT文件的形式进行保存;

使用C语言读取保存的权重参数文件,导入到嵌入式端,并采用C语言构建所述人脸活体检测模型的网络模结构和网络层之间的卷积运算,执行前向推理过程,获得所述人脸活体检测模型。

具体的,所述人脸活体检测模型的张量为1*1*2,包含两个输出通道,分别为输出真人脸概率和假人脸概率;

真人脸概率-假人脸概率>0.2时,判断为真人脸,否则为假人脸。

本申请实施例提供的技术方案带来的有益效果至少包括:本方案在原有MobileNet的基础上对其进行改进,采用多个DPBlock模块和深度卷积网络进行级联,在提取图像特征和识别时,对每一层特征图的通道数进行参数缩减,而且还减少MobileNet的网络层数,去除MobileNet的全连接层,起到减少参数量的效果。激活层使用ReLU6以解决MobileNet模型中使用的ReLU时出现权值过大而导致的权值相差过大的问题。而在往嵌入式设备部署时,采用TXT文本导出和C语言格式前向推进,不需要额外硬件加速的辅助下,就能够在低时延的要求下完成人脸活体检测,同时能够保持较高的精度。

附图说明

图1是本申请实施例提供的基于MobileNet的人脸活体检测方法的流程图;

图2是本申请实施例提供的轻量化MobileNet模型的网络架构图;

图3是本申请实施例提供的DPBlock模块的网络架构图;

图4是MobileNet V1网络模型的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

人脸活体检测技术伴随着人脸识别技术的发展,应用在在各种场景中,如人脸考勤、人脸闸机、刷脸支付等。随着人脸活体检测技术的应用广泛,不仅仅局限于高性能的服务器端,更多的应用到了嵌入式端,而受限于资源有限的嵌入式端设备,现有的主流大模型无法移植到嵌入式端。因此一种高效、精确度高并且能够应用于嵌入式端设备的人脸活体检测方法的提出,对于实际工程应用有着很大的意义。

得益于神经网络的迅速发展,各种各样的卷积神经网络不断推出,如VGGNet、RestNet、MobileNet等。深度学习以其高性能的优点已经广泛应用在了各种领域之内,如人脸检测、自动驾驶、物体检测等。现有的针对人脸活体检测的深度模型都很大,需要很大的内存,难以用于资源受限的嵌入式端。那么设计一个轻量化模型,使得人脸活体检测技术能够应用在嵌入式端设备,在保证精确度的情况下,进一步的提升速度,是本发明所需解决的技术问题。

MobileNet V1结构如图4所示,其中不同深度阴影代表了使用深度可分离卷积(Depth Wise+Point Wise)块,s1和s2分别表示卷积的步长,默认点卷积(Point Wise)的步长s一直为1,而深度卷积(Depth Wise)的步长可以选择1或者是2。如下图所示,深灰色的s1表示深度卷积的步长为1,浅灰色的s2表示深度卷积的步长为2。尽管标准的MobileNet V1结构相较于其他的大型网络,大大减小了模型大小,但是考虑到需要在嵌入式设备端运行,需要进一步压缩网络结构,以使得模型能够在资源有限的嵌入式设备上运行。

图1是本申请实施例提供的基于MobileNet的人脸活体检测方法的流程图;包括如下步骤:

步骤101,通过摄像模组采集包含真人脸和假人脸照片,检测并标注出人脸图像,获得裁剪后的人脸图像。

通过摄像模组采集照片的大小为480*640的图像,作为模型训练的测试集、训练集和验证集,且真人脸和假人脸照片分类存放。获取到照片后,对其进行标注,也就是框出照片中的人脸图像(真人脸和假人脸),并将图片裁剪保留下来。

步骤102,采用双线性差值方法对裁剪后的人脸图像进行缩放,获得标准化图像。

由于轻量化MobileNet模型的输入为统一为96*96大小的图片数据,所以裁剪保留后的图像需要统一标准化图像的尺寸,目的为便于后续网络模型内部特征提取和识别检测。

步骤103,输入轻量化MobileNet模型中,提取和识别标准化图像的人脸特征数据,并基于真假人脸组成的训练集进行模型训练。

为了能够在资源有限的嵌入式设备端运行,需要构建一个小模型,深度可分离卷积的计算量接近于普通卷积计算量的1/9,因此选择在MobileNet V1的基础上对网络结构进行构建。本方案中的轻量化MobileNet模型包括一个卷积层、至少四个深度可分离卷积DPBlock模块和一个第一深度卷积层。具体如图2所示,该模型依次包括输入层、卷积层、第一DPBlock模块、第二DPBlock模块、第三DPBlock模块、第四DPBlock模块、第一深度卷积网络和输出层。其中的四个DPBlock模块相同,(普通)卷积层级联在输入层后方,卷积步长s=2,特征图的张量大小为3*3*4。输入层输入的所述标准化图像尺寸为96*96,经过该卷积层输出后的特征图的张量大小为4*48*48。四个DPBlock(Depth Point Block)模块不仅用于逐次提取提取人脸特征数据,还用于将人脸特征数据的特征图长度和宽度缩小逐级,每经过一次DPBlock模块后的图像尺寸缩小一半。

图3是DPBlock模块的网络架构图,每个DPBlock模块的结构都由两个深度可分离卷积块堆叠,两个深度可分离模块中每次深度卷积或者是点卷积后面都跟随着一个BN层和一个ReLU6激活层,也就是两组第二深度卷积层及归一化及激活层、两组点卷积层及对应归一化及激活层,以及一组第三深度卷积层。从结构上依次为第二深度卷积层、归一化及激活层、点卷积层、归一化及激活层、第二深度卷积层、归一化及激活层、点卷积层、归一化及激活层、第三深度卷积层。两个第二深度卷积层的卷积核大小为3*3,卷积步长s=1,在每经过一次深度卷积或点卷积后,都经过一个BN层和一个ReLU6激活层(归一化及激活层)。激活层使用ReLU6以解决MobileNet模型中使用的ReLU时出现权值过大而导致的权值相差过大的问题。两个深度可分离模块后,再接上一个卷积核大小为3*3,步长s=2,填充为1的第三深度卷积层,目的是为了将特征图大小的长和宽都缩小一半。以往是使用普通卷积来替换池化卷积的操作,此处使用深度卷积的目的是为了进一步减小模型参数,同样实现普通的最大池化操作。这样每次经过一个DPBlock模块,特征图的尺寸大小都要缩减一半,因此经过4个DPBlock模块后特征图的大小变成了3*3,这样可以有效减小模型大小。

在4个DPBlock模块之后,又级联一个卷积核大小为3*3,步长s=1,填充为0的第一深度卷积层,最终输出1*1大小的特征图,并且这个特征图的通道数为2,使用深度卷积仍然是为了降低计算量,这样使得最终输出层的模型输出两个值,分别是真人脸和假人脸的概率。

轻量化MobileNet模型的迭代训练包括如下步骤:

a,以pytorch框架训练人脸活体检测模型,将真人脸和假人脸照片组成的数据集划分为训练集、验证集和测试集,且比例为6:2:2。

b,将真人脸数据的标准化图像标签设置为1,将假人脸的标准化图像标签设置为0,并将标签和标准化图像送入轻量化MobileNet模型中,采用交叉熵损失函数进行模型训练,并根据对测试集上的人脸图片判断正确的准确率大小调节模型批大小、学习率和梯度参数。

c,当轻量化MobileNet模型在测试集上的准确率趋向稳定,或训练次数达到设定阈值时停止训练。

本方案选用pytorch框架训练人脸活体检测模型,并且按照6:2:2的分布将数据集划分为训练集、验证集和测试集。开始训练时,首先将样本数据统一缩放为96*96的大小,然后对所有训练集的真人脸数据设置标签为1,训练集的假人脸数据设置标签为0。将数据和标签送入网络中,使用交叉熵损失进行训练,通过调整批大小、学习率、梯度更新策略等超参数,使得模型在验证集上的准确度不断提高。当准确度逐渐趋向稳定时,停止训练,并且在训练过程中始终保持准确度最好的模型。

步骤104,导出轻量化MobileNet模型的模型参数并部署到嵌入式设备中,通过C语言执行网络结构和网络各层间的卷积运算,执行前向推理过程,获得人脸活体检测模型。

该过程具体包括:

a,将模型的权重参数以TXT文件的形式进行保存。

b,使用C语言读取保存的权重参数文件,导入到嵌入式端,并采用C语言构建人脸活体检测模型的网络模结构和网络层之间的卷积运算,执行前向推理过程,获得人脸活体检测模型。

部署嵌入式设备需要向导出模型的权重参数,以TXT文件的形式进行保存,使用C语言读取保存权重参数文件,来完成在嵌入式端对模型参数的读取。用C语言实现网络结构以及网络各层间的卷积运算,用于完整模型前向推理过程,网络最后输出一个1*1*2大小的矩阵,分别表示真人脸和假人脸的概率。本方案中真人脸概率+假人脸概率=1,当真人脸概率-假人脸概率>0.2时,判断为真人脸,否则为假人脸。这样是为了保证两者概率都在0.5附近时,区分度不明显。经测试,本方案在完成训练后,模型大小为57KB,相比传统的网络模型,模型大小显著降低,因而符合轻量化模型。其识别精度和运行素都能够满足实际应用要求。其中真人脸认对概率为98.4%,假人脸人对概率为99.1%。并且在开发板上运行时间为170ms。模型大小和精度都满足要求。

综上所述,本方案在原有MobileNet的基础上对其进行改进,采用多个DPBlock模块和深度卷积网络进行级联,在提取图像特征和识别时,对每一层特征图的通道数进行参数缩减,而且还减少MobileNet的网络层数,去除MobileNet的全连接层,起到减少参数量的效果。激活层使用ReLU6以解决MobileNet模型中使用的ReLU时出现权值过大而导致的权值相差过大的问题。而在往嵌入式设备部署时,采用TXT文本导出和C语言格式前向推进,不需要额外硬件加速的辅助下,就能够在低时延的要求下完成人脸活体检测,同时能够保持较高的精度。

以上对本发明的较佳实施例进行了描述;需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容;因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

相关技术
  • 人脸活体检测模型的训练方法、人脸活体检测方法及装置
  • 人脸活体检测方法、人脸活体检测模型的训练方法及设备
技术分类

06120115726674