浅析“OpenCV+卷积神经网络”在人脸识别中的应用

2022-11-08 08:49朱学玲陈浩旗
科技视界 2022年21期
关键词:池化层人脸识别人脸

朱学玲 陈浩旗

(安徽新华学院大数据与人工智能学院,安徽 合肥 230088)

0 引言

人脸识别技术的发展始于20 世纪60 年代,科研人员经过60 多年的不断探索和研究,尤其是近年来人工智能的快速发展,人脸识别已成为计算机视觉、图像处理、模式识别等领域的研究热点之一,特别是在视频监控、人机交互界面等方面。

人脸识别的方法有很多种,有几何特征、特征提取、神经网络、弹性匹配等,本文采用了最基础的卷积神经网络(CNN——Convolutional Neural Networks)来进行特征提取,并结合OpenCV 进行前期检测和后期的识别,总体实现流程如图1 所示。下面将详细介绍检测、特征提取和识别部分。

图1 流程

1 人脸数据获取

人脸数据的获取包括人脸图像的采集和检测。首先通过电脑摄像头进行人脸检测和录入,本人采用了OpenCV 技术,用了OpenCV 的Cascade Classifier 类中的人脸检测器haarcascade_frontalface_alt2.xml,生成原始数据集和标签。

2 图像预处理

图像的预处理主要是调整图片大小,使得图片都满足Inage_size=64,考虑到识别的效果,减小计算误差,还做了灰度变换、维度转换和归一化处理,得到了处理好的数据集,如图2 所示。

图2 预处理后的数据集(无光线、角度等变化)

后期考虑到角度和光线的不同对识别结果的影响,又增加了角度变化和光线变化的数据集,如图3和图4 所示。

图3 角度变化

图4 光线变化

3 构建神经网络模型

构建卷积神经网络做特征提取,本实验采用了三层“卷积+池化”的结构,第一和第二个卷积层各有32个filter,卷积核大小为3*3,池化层2*2,代码如下:

由于以上数据集都是自己采样而来,训练数据不是很多,为了能有得到较好的测试精度防止过拟合,在构建好卷积层和池化层后与全连接层和激活层之前,再添加Dropout 层,Dropout 比率设置为0.5:

在卷积层和池化层之后添加全连接层,该层有512 个神经元,再通过激活函数,增加神经网络的非线性,如图5 所示,完成了卷积神经网络的构建。

图5 构建卷积层和池化层代码

4 训练、测试和识别

在训练代码中使用了fit()函数计算训练集的均值、方差等属性,生成了训练模型number.h5。并利用evaluate()等函数对测试和识别结果进行评估。

测试时中对视频下所出现的人脸进行识别再次用到了OpenCV 的CascadeClassifier 类中的人脸检测器haarcascade_frontalface_alt2.xml,使用条件判断语句对检测到的人脸进行识别。

5 评估和优化

训练的好坏直接影响识别的准确度,因此,在训练模型中使用了Adam 优化算法,通过调试学习率提高测试准确率,Adam 算法中参数配置如下:

(1)learning_rate 字面理解为学习速率。在速率校正之前会加快初始学习速度,前期取值为0.3。较小的值(例如1.0e-5)在培训期间降低学习速度,后期调试时取值为0.1~0.001,通过不断的训练,learning_rate 的取值逐渐减小,经过若干次调试后,最后一次取值为0.001。

(2)beta1 为一阶矩指数衰减率,取0.9。

(3)beta2 为二阶矩指数衰次减率,取0.999。

(4)epsilon 的值非常小,防止在实现中被0 除,此处取值是常规的10e-8。

第一次训练时(角度、光线正常)learning_rate 值较高,取值0.3,识别准确率平均为79.61%。经过若干次调试后,调试learning_rate 值并考虑到环境、人脸角度变化等因素,如表1 所示,得出learning_rate 取值为0.01~0.001 之间较为合适。

表1 调试learning_rate 和环境因素运行结果的变化

6 识别效果

分别在角度、光线、距离上进行调试运行效果如图6 所示,在识别框的内侧的上方显示是否是本人,如果是本人显示“me”,如果不是本人则显示“other”,通过识别框的显示范围可以看出识别效果较好,能够准确的捕捉人脸的位置。

图6 调试后运行效果

7 结语

通过实验过程可以体会到OpenCV 和卷积神经网络相结合的方式实现人脸识别是众多方法中比较快速、基础的方法,该方法实现简单但也存在一些不足,比如在检测环节,图片的色彩比较丰富、人脸部分颜色较暗、图片不够清晰等都会影响检测的准确度。另外,训练的次数为了达到预期效果,需要不断的调整参数,因此在后期的优化中,可以考虑一些基于PyTorch 的方法。

猜你喜欢
池化层人脸识别人脸
人脸识别 等
有特点的人脸
卷积神经网络模型研究分析*
揭开人脸识别的神秘面纱
基于深度学习卷积神经网络的人体行为识别研究
三国漫——人脸解锁
基于全卷积神经网络的SAR图像目标分类*
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人
基于K-L变换和平均近邻法的人脸识别