品书网

杂志

保存到桌面 | 繁体 | 手机版
传记回忆文学理论侦探推理惊悚悬疑诗歌戏曲杂文随笔小故事书评杂志
品书网 > 杂志 > Python实现基于深度学习的人脸识别

Python实现基于深度学习的人脸识别

时间:2024-11-06 02:32:55

摘要:近年来,人脸识别技术已经由弱人工智能向强人工智能转化,随着人脸识别算法的不断改进,人脸识别技术已经在公安、金融等部门得到了广泛应用。本文提出了一种Python语言利用Dlib第三方库实现基于深度学习的人脸识别方法。

关键词:Python;Dlib;人脸识别

★基金项目:2016年国家级大学生创新创业训练计划项目(201610398005)。

1、人脸识别技术概述

人脸识别技术是一种基于图像识别,是根据人脸的特征信息进行身份判定的技术,它经过了几十年的发展已经由弱人工智能向强人工智能转化,随着人脸识别算法的不断改进,人脸识别技术已经成为人工智能领域的重要应用。目前人脸识别技术已经比较成熟,得到了公安金融等部门的广泛应用。(1)公安部门:通过相片匹配户籍数据,寻找目标对象。(2)安防领域:通过人脸识别对重点管控区域人员的身份识别,在公共场所对人群进行监视,以达到身份识别的目的,例如在机场、车站等人流量大的场所,通过智能监控系统识别犯罪分子。(3)金融领域:利用人脸识别实现交易支付,例如支付宝实名认证用户可通过刷脸支付。

2、人脸识别的过程

人脸识别是一个比较复杂的过程,归纳起来可以由五个步骤组成:人脸检测、人脸关键点检测、人脸规整、人脸特征提取、人脸识别,人脸识别的过程如图1所示。不同技术会采用不同的方法来实现人脸面部特征的抽象,比如Harmon和Lesk采用多维特征矢量来表示,而Kaya和Kobayashi则采用欧氏距离来表示,本文第三部分提到的Dlib库则是基于深度学习,利用已经训练好的人脸关键点检测器和人脸识别模型,得到人脸面部特征值。

图1人脸识别的过程3、Dlib库介绍

近些年,Python语言发展迅猛,在很多开发语言排行榜名列前三名。Python语言能够得到这么快的发展,得益于其源代码开源性和代码开发的高效性。Python社区提供了大量的第三方库,它们能够实现科学计算、数据可视化、数据分析等多个领域,Dlib库就是一个知名的第三方库,能够实现人脸检测和识别,其算法采用HOG特征与级联分类器,算法的实现大概过程有:(1)将图像灰度化。(2)采用Gamma校正法对图像进行颜色空间的标准化。(3)对每个图像像素进行梯度计算。(4)对图像进行小单元格划分。(5)生成每个单元格的梯度直方图。(6)把单元格组合成大的块,块内归一化梯度直方图。(7)生成HOG特征描述向量。

4、Python利用Dlib库实现人脸识别

4.1前期准备

(1)安装好Dlib第三方库。(2)下载人脸识别模型和人脸关键点检测器,分别保存为文件1.dat和2.dat(可从网址http://dlib/files/下载)。

(3)准备好已知人脸相片和待识别人脸相片,本例准备已知人脸相片20张存放在Faces文件夹中,待识别人脸2张,其中test01.jpg和Faces文件夹中的第19张相片是同一个人,test02.jpg和Faces文件夹中的第7张相片是同一个人,主程序为testface.py,整个文件夹如图2所示。

图2文件夹组成示意图4.2实现过程

实现过程主要有三个步骤:根据人脸识别模型和人脸关键点检测器,得到已知人脸相片的特征值库;根据人脸识别模型和人脸关键点检测器,得到待识别人脸相片的特征值;计算待识别人脸相片的特征值和特征值库的欧式距离,距离最小者就是参考识别结果。程序的实现主要包括以下三个子函数,fun1函数功能是得到一张相片的特征值,fun2函数功能是得到多张相片的特征值库,fun3函数功能是计算待识别人脸相片的特征值和特征值库的欧式距离,输出距离最小者为参考识别结果。

(1)fun1函数代码如下,例如执行fun1(test01.jpg)就可以得到以下128个特征值,结果如表1所示。

表1test01.jpg相片128个特征值(2)fun2函数代码如下。

(3)fun3函数代码如下。

(4)主程序代码如下。

主程序分别用test01.jpg和test02.jpg相片进行测试,测试结果均正确,都能识别出与test01.jpg和test02.jpg匹配的相片,测试结果图3所示。

图3测试结果

5、结束语

本方法实现了人脸识别的功能,但由于每张相片有128个特征值,如果已知人脸相片较多,特征值库较大,计算欧式距离所用时间较长,还要改进算法,需要引进并行计算等技术,提高人脸识别效率。

作者简介:

张枝令,宁德师范学院信息与机电工程学院,副教授,研究方向:计算机网络、数据挖掘和大数据。
   

热门书籍

热门文章