APP下载

基于深度学习的在线培训平台身份验证系统的设计与实现

2020-09-19

吉林广播电视大学学报 2020年6期
关键词:人脸人脸识别卷积

(吉林广播电视大学,吉林省远程教育技术科技创新中心,吉林 长春 130000)

关键字:深度学习;卷积神经网络;人脸识别;身份认证;Tensorflow

一、概述

随着移动互联网发展的日益成熟和移动智能终端设备的普及,在线培训平台越来越受到大家的关注,尤其在新冠疫情期间,很多培训都放到线上开展,中小学和大学生都开始在线上网课,在线培训平台的优势和存在的现实问题随之凸显出来。那么,如何判断在终端设备上进行学习的是否是学生本人,如何判断参加在线考试、测验的是否是学生本人,是在线培训平台亟待解决的关键问题。确保学生身份对于保证教学质量,确保考核真实性尤其重要。传统的人工比对方式效率低,而且容易出现遗漏,工作量大。而利用机器进行身份认证,由于在线学习用户数据量大,传统的人脸识别方法无法得到很好的性能,从而导致出现在线用户身份认证费时,影响学习体验和学习效果。深度学习的引入,使得人脸识别模型的性能进一步提升,认证效率得到提高,能够实现在不影响学生学习体验的前提下,更加快速、准确的达到身份验证的目的。

二、深度学习框架

深度学习是指在多层神经网络上使用各种机器学习算法处理图像、文本等各种问题的算法的集合。传统的机器学习方法需要对每个领域都获取大量的训练数据作为支撑,从而耗费大量的人力物力。深度学习可以更好地通过增加数据集的规模来改善学习结果,对低层特征进行组合,得到抽象的高层表示属性类别或特征,从而得到数据的分布式特征表示。当前比较流行的深度学习框架有基于C++的Caffe,Keras,MXNet、Scikit 和基于Python 的TensorFlow。

在深度学习的多种神经网络中,卷积神经网络无论是在速率,还是在准确率方面都变现的尤为突出。卷积神经网络在图像识别、车辆检测等方面应用比较广泛,主要包括数据预测、图片分类、检测、识别等。在识别图像方面效果好,在识别二维码方面应用成熟。卷积神经网络通过将输入层、卷积层、激活函数、池化层、全连接层等网络层结构进行组合来尽可能准确的提取图像特征,卷积神经网络在特征提取方面性能非常好,能够有效地解决传统人脸识别算法中特征提取和数据重建中的大量计算问题。

三、基于Tensorflow 的卷积神经网络设计

TensorFlow 是谷歌基于深度神经网络开发的开源软件库,它支持常用的神经网络架构,如卷积神经网络CNN,可以在多种平台运行,包括移动平台和分布式平台,它整合了Keras 框架。

卷积神经网络可以在没有对数据预处理的情况下,直接将原始图像作为输入,通过把图像切分成多个小图,使用小的输入数据的平方值,把局部图像的像素作为输入来学习内部特征,保持像素的空间性,之后将局部信息汇总就能得到全局信息。卷积类似特征提取,能够通过卷积找到特定的局部图像特征(如边缘),池化类似于降维,池化是指降采样,对卷积(滤波)后,经过激活函数处理后的图像,保留像素块中灰度值最高的像素点。

卷积神经网络包括训练和测试两个阶段。训练就是把训练数据和神经网络模型用CPU 或GPU 提炼出模型参数的过程。测试就是把测试数据用训练好的模型(卷积神经网络模型+模型参数)运行后查看结果。我们利用Tensorflow 平台把训练过程所涉及的环节数据统一抽象,形成可使用框架。通过搭建特定的卷积神经网络模型,结合卷积和池化等非线性操作,实现人脸识别。

四、基于卷积神经网络模型的在线学习监管模型

利用卷积神经网络实现人脸认证判断两个人脸特征是否属于同一个人是一个相似性度量问题。而人脸特征含义复杂、向量维数高,传统的度量方法如支持向量机、K 均值聚类等无法对其进行准确度量。卷积神经网络具有优秀的非线性映射能力以及模型表达能力,因此我们利用卷积神经网络,从大量训练样本中,学习得到一个能有效反映数据相似性的隐式度量函数。

本文提出建立在线学习监管模型,包括人脸检测、人脸识别。通过建立卷积神经网络,优化人脸识别模型,通过定位-训练-测试-识别对人脸进行准确定位,对在线学习者人脸进行识别从而认证用户身份。

1.在线学习监管模型

在线学习监管模型图

人脸数据库:包含在线平台学员的不同角度、不同表情的人脸图像。深度学习模型需要大量的训练数据,才能展现出其优势。所以,我们必须采集大量多角度的学员照片才能保证识别的准确度。在学员报名培训时,系统会采集学员不同角度、不同表情的一系列照片,标注标签后,存入人脸数据库。

采集图像:在线学习过程中,系统自动调取学员端摄像头,抓取学员摄像头的画面。

人脸检测定位:系统对采集图像进行分析,利用OpenCV人脸检测定位算法判断图像中的是否有人脸,定位到人脸位置、角度、数量或者姿势,裁剪出统一格式大小的人脸脸部区域。人脸检测定位算法对人脸的关键点进行检测,人脸关键点主要有脸部轮廓、眼睛、鼻子、眉毛和嘴的形状。同时,通过将图像进行映射变换,获得不同姿态下的正面人脸图像。

图像预处理:对人脸图像进行归一化、人脸矫正及滤除噪声,把图像中的不相关信息剔除。考虑到人脸图像中的背景会增加人脸识别的复杂度,所以我们在对齐人脸图像后采用灰度化操作处理图片。

训练:训练程序建立了一个包含4 个卷积层的神经网络(CNN),从人脸数据库中随机取80%的图像作为训练集训练模型,训练集主要用于训练模型的主要参数,测试集用来评估模型的泛化能力,程序利用这个网络训练人脸识别模型,将最终训练结果保存到硬盘上。

验证:从人脸数据库中抽取训练集之外的10%的图像作为验证集,调整超参数(网络层数、网络节点数、迭代次数、学习率),监控模型是否发生过拟合。

聪用测试集测试模型在真实场景的表现。

测试:将人脸数据库的剩余10%的图像作为测试集评估最终模型泛化能力,利用之前训练结束后保存的模型进行测试,利用Keras 中的evaluate()方法对测试数据集进行测评,可以得出模型的损失loss 和准确率acc。

2.系统实现

以科创中心在线学习培训平台为例,在进入课程前调用人脸识别模块验证学员身份,在线考勤签到时调用人脸识别模块进行身份验证,在集体研讨中的识别人脸,能够识别圆桌中的多张脸。使用Tensorflow 等开源的深度学习技术,Opencv 计算机视觉库为开发工具。学员报名培训前,会通过平台采集学员图像,截取处理图像,进行对比。

开 发 工 具 软 件:Tensorflow 1.8,Python 3.6.10,Numpy 1.14.2,Scikit-learin 0.21.1,Keras 2.1.6,Conda 4.8.2,Flash 1.1.1。

实验环境安装tensorflow 平台,使用了keras 的Tensorflow,只需要提供出数据和数据标签,不需要设计特征,按步骤训练网络就可以。我们选择CASIA-WebFace 数据集作为训练和实验测试的人脸图片数据库。CASIA-WebFace 数据集包含了10575 个人的494414 张图像。CASIA-webface 数据库,压缩包有4 个多g,里面包含了10000 个人,一共50 万张人脸图片,无论是做SVM,DNN 还是别的训练,都是非常好的数据库。

卷积神经网络模型图

卷积层conv:卷基层conv 中卷积核大小为3*3,卷积核数量为32,步长为1*1,卷积后通过非线性函数Relu 激活。

池化层max pool:池化层位于卷积层之后,它主要作用是降低特征图维度,压缩数据和参数的数量。池化层包括最大值池化和平均值池化,本文中的模型选择最大值池化。

激活函数relu:常用的激活函数有relu 和sigmoid,relu 作为激活函数能使一部分神经元的输出为0,减少参数的相互依存关系,缓解过拟合问题的发生,它是非线性函数,收敛速度快,准确率高,更容易学习优化。

Dropout 层:Dropout 是一种避免特征映射协同适应的方法,加入dropout 层,随机忽略一部分神经元,可以避免因为层数较深而引起过拟合,实现更快的学习。

Flatten 层:我们要添加Dense 层以对图像进行分类。Dense 层需要2D 数组作为输入,而卷积层的输出是4D 的数组。所以,引入Flatten 层,将卷积后的图片结果输入到一个Flatten 层,用来将输入“压平”,使用keras 的Flatten 层将CNN 的4D 输出更改为2D,即将高维图片转化为一维,然后将结果输入Dense 层。

全连接层Dense:全连接层把上层的神经元和本层的每个神经元相连接,实现对提取到的特征进行综合。

SoftMax:SoftMax 可以用于多分类问题的求解,SoftMax 将多个神经元的输出映射到0 到1 的数值,反映人脸图像属于某个人的概率。我们将该全连接神经网络的结果输入到Softmax 函数进行分类。

五、结语

本文基于TensorFlow 深度学习框架,设计了一个适合在线学习平台的人脸识别的卷积神经网络模型,并在CASIA-WebFace 数据集完成了模型训练,得到最优模型,提供人脸识别接口供在线学习平台web 端调用,实现在线学员的身份认证。在今后的研究中,我们将对人脸识别算法进行改进和优化,提升系统计算效率,进一步研究复杂环境下人脸识别,通过深度学习,分析在线学习者的情绪状态,根据分析数据提供个性化的推送支持服务。

猜你喜欢

人脸人脸识别卷积
人脸识别 等
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一起学画人脸
揭开人脸识别的神秘面纱
卷积神经网络的分析与设计
人脸识别技术的基本原理与应用
从滤波器理解卷积
三国漫——人脸解锁
基于傅里叶域卷积表示的目标跟踪算法