用Python实现一个简单的人脸识别,原来我和这个明星如此相似

作者: AI中国 Kimberly Cook 2018-11-06 21:00:09

近几年来,兴起了一股人工智能热潮,让人们见到了AI的能力和强大,比如图像识别,语音识别,机器翻译,无人驾驶等等。总体来说,AI的门槛还是比较高,不仅要学会使用框架实现,更重要的是,需要有一定的数学基础,如线性代数,矩阵,微积分等。

幸庆的是,国内外许多大神都已经给我们造好“轮子”,我们可以直接来使用某些模型。今天就和大家交流下如何实现一个简易版的人脸对比,非常有趣!

整体思路:

  • 预先导入所需要的人脸识别模型
  • 遍历循环识别文件夹里面的图片,让模型“记住”人物的样子
  • 输入一张新的图像,与前一步文件夹里面的图片比对,返回最接近的结果

使用到的第三方模块和模型:

模块:os,dlib,glob,numpy

模型:人脸关键点检测器,人脸识别模型

1.导入需要的模块和模型

用Python实现一个简单的人脸识别,原来我和这个明星如此相似

这里解释一下两个dat文件:

它们的本质是参数值(即神经网络的权重)。人脸识别算是深度学习的一个应用,事先需要经过大量的人脸图像来训练。所以一开始我们需要去设计一个神经网络结构,来“记住”人类的脸。

对于神经网络来说,即便是同样的结构,不同的参数也会导致识别的东西不一样。在这里,这两个参数文件就对应了不同的功能(它们对应的神经网络结构也不同):

shape_predictor.dat这个是为了检测人脸的关键点,比如眼睛,嘴巴等等;dlib_face_recognition.dat是在前面检测关键点的基础上,生成人脸的特征值。

所以后面使用dlib模块的时候,其实就是相当于,调用了某个神经网络结构,再把预先训练好的参数传给我们调用的神经网络。顺便提一下,在深度学习领域中,往往动不动会训练出一个上百M的参数模型出来,是很正常的事。

2.对训练集进行识别

在这一步中,我们要完成的是,对图片文件夹里面的人物图像,计算他们的人脸特征,并放到一个列表里面,为了后面可以和新的图像进行一个距离计算。关键地方会加上注释,应该不难理解,具体实现为:

用Python实现一个简单的人脸识别,原来我和这个明星如此相似

当你做完这一步之后,输出列表descriptors看一下,可以看到类似这样的数组,每一个数组代表的就是每一张图片的特征量(128维)。然后我们可以使用L2范式(欧式距离),来计算两者间的距离。

举个例子,比如经过计算后,A的特征值是[x1,x2,x3],B的特征值是[y1,y2,y3], C的特征值是[z1,z2,z3],

用Python实现一个简单的人脸识别,原来我和这个明星如此相似

那么由于A和B更接近,所以会认为A和B更像。想象一下极端情况,如果是同一个人的两张不同照片,那么它们的特征值是不是应该会几乎接近呢?知道了这一点,就可以继续往下走了。

用Python实现一个简单的人脸识别,原来我和这个明星如此相似

3.处理待对比的图片

其实是同样的道理,如法炮制,目的就是算出一个特征值出来,所以和第二步差不多。然后再顺便计算出新图片和第二步中每一张图片的距离,再合成一个字典类型,排个序,选出最小值,搞定收工!

用Python实现一个简单的人脸识别,原来我和这个明星如此相似

4.运行看一下

这里我用了一张“断水流大师兄”林国斌的照片,识别的结果是,果然,是最接近黎明了(嘻嘻,我爱黎明)。但如果你事先在训练图像集里面有放入林国斌的照片,那么出来的结果就是林国斌了。

用Python实现一个简单的人脸识别,原来我和这个明星如此相似

为什么是黎明呢?我们看一下输入图片里的人物***与每个明星的距离,输出打印一下:

用Python实现一个简单的人脸识别,原来我和这个明星如此相似

没错,他和黎明的距离是最小的,所以和他也最像了!

Python就是这么有趣好玩,可以玩爬虫,探秘数据分析,量化金融来赚钱,也可以来撩妹子做自动化工作,机器学习领域就更好了,人脸识别,自然语言处理,数据预测和挖掘!
Python 编程语言 人脸识别
上一篇:Dynatrace全栈式人工智能监控助力企业翱翔AWS云端 下一篇:“先天不足”的谷歌无人驾驶,商业化难逃“夭折”宿命?
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

为了顺应人工智能的潮流,该学Python还是C/C++?答案就在这里

人工智能在现代世界中变得越来越相似,其中一切都是由数据和自动化驱动的。我们将日常生活中的很大一部分用于与智能设备进行交互。人工智能是这一切的核心,它正在成为我们不断变化的生活方式中不可或缺的一部分。

编程小火车 ·  3天前
人脸识别有风险,美国全面禁止,可为什么中国却全面推广?

对于大多数人而言,最先接触的就是指纹识别,对指纹识别的了解程度也相对比较深一些,然而随着科技的不断发展,人脸识别也越来越普及,所谓的人脸识别就是基于人的脸部特征信息进行身份识别的一种生物识别技术,用摄像头或摄像机采集含有人脸的图像或视频,并自动在图像中检测和跟踪人脸,对其进行一系列的相关技术,最后进行辨别完成自己想要完成的项目。

测评前线说 ·  2019-10-10 13:36:49
AI 人工智能落地,数据安全绕不开这4大问题

这些年,在人工智能等新技术催化下,信息泄密正在围绕“数据”展开,这些数据涉及各类事、物、人、企业、政府部门等等,包括当事主体的相关生物特征、行为特征也能以数据化的泄密形式出现。

CDA数据分析师 ·  2019-09-27 10:18:13
AI 人工智能落地,数据安全绕不开这4大问题

这些年,在人工智能等新技术催化下,信息泄密正在围绕“数据”展开,这些数据涉及各类事、物、人、企业、政府部门等等,包括当事主体的相关生物特征、行为特征也能以数据化的泄密形式出现。

CDA数据分析师 ·  2019-09-27 10:18:13
十个基本的Python数据科学软件包

过去五年人们对数据科学的兴趣显著上升。尽管有许多编程语言适合数据科学和机器学习,但Python是最受欢迎的。

布加迪 ·  2019-09-25 09:20:33
未来可能颠覆世界的十大科技,你知道吗?

人脸识别技术是指利用分析比较的计算机技术识别人脸。人脸识别是一项热门的计算机技术研究领域,其中包括人脸追踪侦测,自动调整影像放大,夜间红外侦测,自动调整曝光强度等技术。

万仟生态圈 ·  2019-09-24 07:23:02
警惕刷脸支付,一不小心钱财被洗劫一空

人脸识别技术已经不仅仅可以用来识别对象身份,已经可以收集更多的信息了。而这种被动的采集捕捉,让我们无处可藏。想象一下,如果大街上的摄像头换成了这种摄像头,你的步态、表情都会纳入系统数据中,或许可以用来提高识别犯罪分子的概率,但这样一来普通人也没了隐私可言。

e科技观潮 ·  2019-09-19 20:47:29
危险的人脸识别:再不“要脸”,我们就要裸奔了

个人信息买卖几乎每天都在发生,而如今我们连“脸”都不能好好保护了。除了上面提到的AI换脸带来的欺诈风险之外,攻击人脸识别系统从而进行身份冒用带来的财产、名誉、人身等方面的安全隐患也不容忽视,而3D打印技术的成熟正让《碟中谍》电影里面的换脸场景成为现实。更可怕的后果在于……

燃财经 ·  2019-09-12 19:00:06
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载