APP下载

基于OpenCV的人脸识别关键技术分析

2020-11-28林志健周设营陈延清

中国新技术新产品 2020年7期
关键词:人脸识别人脸特征提取

林志健 周设营 陈延清

(广东海洋大学寸金学院,广东 湛江 524094)

0 前言

人脸识别是一种身份识别的生物识别技术,主要是通过摄像头采集人脸图像,提取人的脸部特征信息并与原始数据库中的人脸图像进行对比,完成身份识别。目前,人脸识别技术已经应用于考勤、手机解锁、交通安全、金融、电子商务、电子支付等领域,为人们的工作生活提供了便利。人脸识别系统主要的实现过程包括获取人脸图像,建立人脸图像原始数据库作为系统的图像基础,通过摄像头获取目标图像,检测并预处理人脸图像结构,提取人脸图像特征,并根据人脸图像特征结构与编码好的图像原始库中既有的人脸图像进行比对识别,从数据库中筛选出识别身份和输出比对结果。

1 人脸识别方法

机器学习是模拟神经学习的处理过程,使用已有的大量数据,采用统计学的方法发掘其中的规律,利用计算机强大的计算能力训练出数据模型,使其学习执行任务,当输入新数据时,通过该模型可以预测出该数据结果[1]。随着机器学习研究探索的深入,深度学习神经网络方法已经在人工智能的多个领域有所应用,在以人脸识别为代表的计算机视觉应用上也形成了许多有效的识别方法。有基于几何特征的人脸识别方法、基于模板的人脸识别方法,这些主要都是提取面部特征,构造特征向量模型,对人脸图像进行编码,将编好码的图像存储成库,对预测图像的相同编码进行比较,设定阈值显示结果,典型的有主动外观模型、LBP 模板匹配方法。基于神经网络的人脸识别方法,是在人脸特征提取方法的基础上,通过输入大量人脸样本图片,自动形成特征提取器和分类器,利用计算机重复训练形成适合于检测和识别任务的模型,常用于模型训练的神经网络算法有卷积神经网络(Convolutional Neural Network,CNN)、递归神经网络(Recursive Neural Network,RNN)以及深度神经网络(Deep Neural Network,DNN)[2]。

2 人脸识别过程

根据人脸识别方法搭建人脸识别系统实施流程规则,人脸识别系统实现身份识别的主要包括人脸图像的采集与检测、人脸图像预处理、人脸特征提取与匹配识别3 个部分[3]。

2.1 人脸图像的采集与检测

在人脸识别系统中,采集图像系统可以进行人脸图像的批量导入和人脸图像的实时采集。批量导入图像的过程就是把采集好的人脸图像批量导入系统,人脸识别系统再实现人脸图像的逐个采集工作。人脸图像实时采集是通过摄像头自动实时抓取人脸图像,将人脸图像上传到系统中完成采集工作。一些较为先进的人脸识别系统在抓拍图像或上传图像的过程中具有过滤功能,会初步对图像进行基本属性筛查,过滤掉质量差、模糊的人脸图像,从而保证图像的质量和识别精准性。

人脸检测系统在采集图像时需要对图像进行检测与跟踪,根据人脸的结构特点获取图像中的模式特征,例如结构特征、颜色特征、矩形特征等信息,找到人脸图像的特征信息,在图像中标定出特征的位置和大小,利用这些特征进行人脸检测,从而完整准确地采集人脸识别系统的图像。Adaboost 是一种将弱学习算法通过一定规则训练成一个强学习算法的强分类器,从而形成高准确率的人脸检测的算法[4]。通过Adaboost 算法人脸检测,输入典型代表的人脸特征信息,按照神经网络的加权统计方法和针对图像特征信息的机器训练,形成一个强检测分类模型,能快速有效地检测出输入的新图像数据的人脸特征结构,去除图像中多余的数据信息,精确定位出图像中人脸的位置、姿态和结构特点,从而保证能够快速有效地进行人脸检测和人脸图像的精准采集。

2.2 人脸图像预处理

人脸的图像预处理是在人脸检测的基础上,对图像进行处理,使系统能方便地提取人脸特征。由于受光照、亮度、表情等条件的限制和随机干扰,系统获取的原始人脸图像一般是不能直接使用的,所以人脸识别系统在实现图像识别前需要进行图像预处理,主要的人脸图像预处理包括图像的灰度校正、噪声过滤、光线补偿、旋转、缩放等复杂的图形图像处理过程,从而避免了现实环境下采集图像因光照不均匀、人脸角度倾斜、人脸的遮盖等外在因素造成的图像信息不足或干扰,经过预处理使该人脸图像在清晰度、特征度、结构尺寸等方面均能够满足人脸图像的特征提取的标准要求。

2.3 人脸图像特征提取与匹配识别

人脸识别特征提取是图像匹配识别的关键,是在预处理好的人脸图像的基础上,根据人脸图像的颜色清晰度、大小形状等结构特征,提取出有效匹配识别所需的数据信息,包括曲率、距离、体积和角度等多维的特征向量,作为人脸结构的几何特征,构建出人脸特征信息的模型[5]。基于几何特性代数表征方法是根据人脸主要面部器官构成如眼额头、眼睛、鼻子、嘴巴等特点,由于每一个人的人脸结构存在局部的差异性,所构成的人脸特征不同,通过对人脸结构特点标定而形成的几何特征就可代表人脸图像的几何特征,具体采用代数方法,描述各特征点间的距离、角度、曲率等特性,从而构建出该幅人脸图像的几何代数特征模型。

人脸图像匹配与识别是根据人脸图像特征提取出的特征模型与相同编码保存的原始图像,再对数据库中的图像进行特征模板搜索匹配,在人脸识别系统中设定人脸相似程度的阈值,当所输入的人脸图像与系统中保存的图像进行对比时,得到的相似度超过这一阈值,则在人脸图像库中筛选出识别对象。因此,人脸识别系统的匹配识别过程就是根据对比识别结果的相似程度,从高到低进行身份信息的精确筛选,从而给出最确定的身份信息判断结果。

3 基于Python的人脸识别技术

近年来Python 语言发展迅速,在人脸识别技术中也有应用,其有丰富的第三方机器视觉库,其中OpenCV 库提供了3 种人脸识别器。即基于PCA 的特征人脸识别器、基于LDA 的人脸识别器和基于人脸局部特征提取的算法的LBPH 人脸识别器,因此可以通过基于机器学习的神经网络算法,利用Python 编程语言和OpenCV 第三方机器视觉库实现人脸识别[6]。

3.1 人脸图片数据集

机器学习需要对数据集进行训练,高质量的训练数据集对模型的性能有很大影响,而深度学习需要大数据的训练来提高模型的泛化能力,减少过拟合的发生。目前开源的人脸图像数据集有olivettifaces 人脸数据集、LFW 人脸数据集等。olivettifaces 是纽约大学提供的一个非常小的人脸数据集,它由40 个人组成,共有400 张人脸图。LFW 人脸数据集由马萨诸塞大学提供,是从互联网上采集的、无约束的、处于自然场景中的人脸图片数据集。数据集是由来自世界各地的13 000 多张名人的脸组成的自然场景。

3.2 基于OpenCV的人脸检测

使用OpenCV 进行人脸检测前,需要先下载2 个训练好的Haar 级联分类器XML 文件, 将下载的文件放在与运行脚本相同的目录中,通过使用Adaboost 算法进行分类训练,得到算法制定规则的强分类器模型。在获得OpenCV 预训练好的模型之后,我们就可以根据这个模型来对输入图像中特定区域的特征进行人脸检测。人脸检测过程方法简要描述及关键程序如下。

首先,导入OpenCV 分类器库,创建人脸检测级联分类器对象实例、创建人眼检测级联分类器实例,采用lBP特征进行检测。

face_cascade= cv2. CascadeClassifier('haarcascade_frontalface_default.xml')

face_cascade= cv2. CascadeClassifier('lbpcascade_frontalface. xml')

eye_cascade= cv2. CascadeClassifier('haarcascade_eye. xml')

其次,载入图片,对图片进行灰度化、结构形状预处理。

img=cv2. imread('lena. jpg')

gray=cv2. cvtColor(img,cv2. COLOR_BGR2GRAY)

最后,调用级联分类器进行多尺度检测,检测人脸区域、眼晴和遍历检测到的结果。

faces=face_cascade,detectMultiscale(gray,1. 3,5)

eyes = eye_cascade. detectMultiscale(roi gray)

for(x,y,w,h)in faces:

cv2. imwrite('detected_face. jpg',img)

4 结语

人脸识别是人工智能领域的研究热点,人脸识别系统在安全、身份验证、智能门禁、银行系统以及智能交通等方面有很大的应用前景。随着人工智能技术的发展、机器学习的深度研究,相信通过该领域研究人员的不懈努力,人脸识别技术将会更加精准、安全和便捷,人脸识别系统的应用将会越来越广泛。

猜你喜欢

人脸识别人脸特征提取
人脸识别 等
有特点的人脸
揭开人脸识别的神秘面纱
基于Daubechies(dbN)的飞行器音频特征提取
三国漫——人脸解锁
Bagging RCSP脑电特征提取算法
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人
基于MED和循环域解调的多故障特征提取
长得象人脸的十种动物