当前位置:首页 期刊杂志

基于Python与OpenCV的人像检测和识别的研究

时间:2024-08-31

黄子豪,孙沐阳,时田野

(山东科技大学,山东济南,250031)

0 引言

人脸识别技术是通过对人面部特征信息的提取从而对数据库中人脸模板进行对比后进行身份识别的一种新型识别技术,该技术需要使用摄像头等成像工具采集含有人脸的图像或视频并自动在图像中检测和识别人脸,由此对检测到的人像进行面部身份认证(根据相似度进行人脸匹配),也被称为人像识别、面部识别。本文描述的程序只是简单的利用OpenCV库对人脸的识别与检测,随着对于深度学习的探究,我们可以通过对机器的训练筛选出最合适的参数权重,由此构造出准确率较高的函数,给定一张人像照片即可以获取到较为精确的特征值,进而再归类进行训练,实现基于神经网络而构建的人脸识别系统。

1 人脸识别与检测基本原理

人脸识别技术根据功能可以大致分为三个模块:人脸检测、人脸特征提取以及人脸图像识别与匹配。

人脸检测:人脸检测是指从输入的图像或视频源中检测并提取出合适的人脸图像,输入的图像可以为实时采集的人脸或视频以及图像集,通常采用Haar特征和Adaboost算法来训练级联分类器。级联结构分类器是由多个弱分类器组成的,每一级都比前一级复杂,每个分类器均可使大部分正例样本通过,过滤掉大部分负例。由此得到的每一级的待测正例样本的数量就递减,这样分级检测的层次可排除大量的非应检样本,提高检测效率和检测速度。通过对正样本与负样本的训练即可得到级联分类器,OpenCV库中有编译好的训练模型,按要求训练即可生成相应的级联分类器,我们可以直接使用库中自带的已经训练好的级联分类器进行检测。假设输入图像中的某一矩形框区域最终通过了级联分类器的检测,那么该图像就会被判定为对应的人脸图像。

图1 级联分类器模型

人脸特征提取:人脸的特征提取就是针对人脸上的某些视觉特征进行的,如人脸上的各个器官(眼镜、鼻子、嘴巴等)。人脸识别中常用的特征通常分为视觉特征、像素统计特征、人脸图像代数特征等、人脸图像变换系数特征等。人脸特征提取的方法可以归纳为两大类:一种是基于知识的表征方法;另一种是基于代数特征的表征方法。

人脸匹配与识别:将提取到的人脸图像的特征信息与数据集中训练好的特征模板进行对比。可根据相似度对人脸的信息进行判断,通过设定一个阈值判定识别结果,如果相似度高于该阈值,则识别成功将结果输出,遍历数据集后可得到结果。

图2 人脸识别检测流程图

2 人脸识别检测的具体流程

(1)人脸数据的采集:首先添加当前检测的用户信息,后将该用户的信息与采集到的人脸图像数据绑定,在采集时需保证图像大小规格一致;采集人脸数据时需使用OpenCV库开启人脸检测(支持内置或外接摄像头),注意只需采集人脸信息,切勿采集过多外界无用信息;由于采集RGB彩色图像占用内存过大同时损耗大量训练时间,且对人像识别的精确度提升并不大,于是我们选择将采集到的图像做二值化处理,将其变为灰度图像,以便后续对于模型的训练。

(2)数据的存储:在手动结束或设定时间结束人脸信息采集后,将采集到的数据集存储到某个训练文件夹中或同步至数据库中,以便用于后续建立模型时的数据训练。

(3)建立人脸识别模型:可以通过已有的数据集训练生成人脸识别模型并保存生成的人脸模板,也可使用OpenCV库中已训练好的人脸检测器模型(级联分类器)haarcascade_frontalface_default.xml新建一个级联分类器对象,以供后面检测使用。

(4)对人脸样本进行训练:首先加载欲训练的数据集,即之前采集的人脸图像,然后创建新的人脸训练对象Face_model,后调用train()函数对数据进行训练。

(5)检验训练结果:开启摄像头,将摄像头对准自己的人脸部分进行捕获,设定间隔时间读取每一帧图像并转换为灰度图。随后创建级联分类器,并利用级联分类器鉴别捕获的图像是否为人脸,如果是人像则在人像外部画出矩形框,并修改图像大小以便于比较。在进行人脸检测时对捕获的人脸图像进行特征提取,然后再与数据库内的人脸模板遍历对比后进行识别得到相似度,最后根据相似度由大到小排序即可得出相似度最高的人像信息。本程序是通过级联分类器建立Face_model对象后调用predict()函数将捕获的人脸图像与训练好的人脸模型进行预测和对比,从而得到相似度并将匹配的人脸信息输出到屏幕上,可得到的返回值为具体数值,表示样本属于每一个人脸样本的概率。

(6)输出人脸检测结果:将上步检验人脸得到的结果输出到屏幕正在捕获的图像上,可以直观地看出该人像与训练集中人脸图像的相似度,如果在数据库中或训练集文件夹中识别出该人脸,则将此人姓名信息输出到屏幕摄像头的相框上。

3 人脸识别程序待改进部分

(1)在对人脸图像进行识别前可对人脸图像进行预处理,通过对图像进行预处理有利于精确的对人脸特征进行提取,由摄像头得到的原始人脸图像往往受到外界环境因素的干扰,会对人脸上的特征提取造成影响,因此我们可以在进行识别前对图像进行早期处理操作,如进行图像灰度处理、图像降噪处理、图像滤波处理、图像几何校正、图像归一化处理等操作,可实现对人脸图像的预处理。

(2)人脸的识别可具体细化为对于各个特征的识别,如分别对眼睛、嘴巴、鼻子等各个器官进行建模。通过对各个人脸特征建立特征模型,可实现基于人脸特征点的识别算法,由此可提高对各项特征识别的精确度,从而归一为对整副人脸的识别,这样可以大大提高人脸识别的准确率。

(3)目前程序的检测率成功率不高,一方面原因是训练样本太少,并且训练时仅仅是对整副人脸进行识别,而非对于各个特征的提取,这就导致了人脸识别的检测成功率较低,我们可以通过嵌套检测人脸各个部位的方法来提高成功率;另一方面则是由于目前采取的识别方法及模型的问题,目前程序采用的模型是OpenCV库训练好的人脸检测器模型Haarcascade,使用者也可以通过后期自己建模实现程序的改进。

4 程序运行截图

图3 人脸识别检测结果

5 人脸识别应用前景

(1)可实现人脸跟踪的摄像监控装置,目前的摄像监控装置大多仅可实现对于动态视频的记录,而对于摄像中的人脸记录并不清晰且无法进行识别,人像跟踪技术可利用动态化的人脸识别技术实现这一功能,当指定的人脸出现在摄像镜头中时可自动跟随其路径并实现跟踪功能记录路径,前提是必须位于摄像头可拍摄的范围内。

(2)人脸识别可用作公安系统对于身份验证和身份识别的功能,实现对嫌犯的准确识别和对失踪人口的追寻,可大大提高办案效率,节省警力资源。

(3)人脸识别也可应用于智能互联场景,比如用于人脸身份验证(电子身份证及电子护照)。在当下这个万物互联的浪潮中,人们出行仅需一部手机即可,甚至无需随身携带身份证,我们可以通过人脸验证身份信息进而实现出入验证、手机解锁、付款支付等场景。

6 结束语

人脸识别技术由于其便利性和安全性具有广阔的发展和应用前景,可被广泛应用于多个领域且大有所为。随着我国现代化进程的推进,人们越发关注信息的安全性和保障性,而人脸识别技术正是未来保障个人信息安全的核心技术。虽然我国人脸识别技术起步较晚,但在国家政策的大力支持下该技术发展十分迅速,实践应用也相对成熟,因此,随着基于深度学习的人脸识别技术的逐步发展,人脸识别技术的应用将是未来发展的新趋势。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!