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

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

整体思路:

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

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

模块:os,dlib,glob,numpy

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

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

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

人脸识别算是深度学习的一个应用,事先需要经过大量的人脸图像来训练

它们的本质是参数值(即神经网络的权重)。。所以一开始我们需要去设计一个神经网络结构,来“记住”人类的脸。

对于神经网络来说

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

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

dlib模块的时候

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

2.对训练集进行识别

计算他们的人脸特征,并放到一个列表里面

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

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

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

那么由于A和B更接近,所以会认为A和B更像

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

3.处理待对比的图片

目的就是算出一个特征值出来,所以和第二步差不多。然后再顺便计算出新图片和第二步中每一张图片的距离

其实是同样的道理,如法炮制,,再合成一个字典类型,排个序,选出最小值,搞定收工!

4.运行看一下

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

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

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

Python就是这么有趣好玩,可以玩爬虫,探秘数据分析,量化金融来赚钱,也可以来撩妹子做自动化工作,机器学习领域就更好了,人脸识别,自然语言处理,数据预测和挖掘!【关键词:青岛Python培训机构,Python培训费用,Python培训哪家好,中享思途】

python人脸识别训练模型_AI的强大!用Python实现一个简单的人脸识别--中享思途...相关推荐

  1. matlab——一个简单的动物识别专家系统

    本实验中用matlab实现一个简单的动物识别专家系统,该系统是用来识7种动物的,但在规则库中形成了15条规则.首先将动物分成哺乳动物.鸟.蹄类动物.肉食动物4大类,然后通过继续询问得到要的结果.本程序 ...

  2. 人脸识别手机端APK分享 | 极速体验人脸识别功能 创建一个简单的人脸识别手机APP程序

    1.前言 虹软公司提供免费离线人脸识别,对于开发者提供了比较友好.完整的可配置demo.但是如需直接体验功能,还是要花一点时间去完成项目编译.配置等一系列工作,对于初学者.不怎么熟悉整个项目的人来说可 ...

  3. python数据分析工具包_熊猫入门强大的Python数据分析工具包-经管之家官网!

    熊猫入门强大的Python数据分析工具包 1.简介 大熊猫 首先,Pandas是用于数据分析的开源Python库.它包含数据处理和数据结构工具,这些工具旨在生成类似于电子表格的数据,以便在Python ...

  4. 教你训练一个简单的音频识别网络(附代码)

    来源:大数据文摘 本文长度为7600字,建议阅读10分钟 本文将一步步向你展示,如何建立一个能识别10个不同词语的基本语音识别网络. 你需要知道,真正的语音与音频识别系统要复杂的多,但就像图像识别领域 ...

  5. 使用TensorFlow 来实现一个简单的验证码识别过程

    本文我们来用 TensorFlow 来实现一个深度学习模型,用来实现验证码识别的过程,这里识别的验证码是图形验证码,首先我们会用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别. 1.验 ...

  6. 改变,从一个简单的“物体识别”开始

    一.百度AI开放平台 前几天在百度的AI平台上看到了很多好玩的API类,像类似于语音识别.人脸识别.文字识别.自然语言处理等等.这些在当前比较热门的技术都有提供给使用者的API.而且~~~,大部分都是 ...

  7. 利用EasyDL制作一个简单的图片识别小项目

    主要是利用EasyDL制作一个简单的傻瓜式猫狗图片识别,利用EasyDL,只需要几步简单的点击即可 *主要的步骤: 1.准备数据 2.训练模型 3.部署 4.H5 * 1.首先创建两个文件夹cat和d ...

  8. python自己制作节奏大师游戏_使用pygame制作一个简单的游戏

    翻译自Will McGugan的<Beginning Game Development with Python and Pygame –From Novice to Professional&g ...

  9. Python【小游戏合集】之自己做一个简单又好玩的推箱子小游戏

    导语:哈喽铁汁们~今日游戏之旅开始! 想领取完整源码跟python学习资料可私信我或点击这行字体 这期就是带大家使用当前主流且易用的Python语言做一个简单的推箱子小游戏 现在小编的快乐源泉就是玩自 ...

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

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

最新文章

  1. 算法和编程面试题精选 TOP50!(附代码+解题思路+答案)
  2. 使用微软分布式缓存服务Velocity Part 3
  3. ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  4. linux ftp用户指定多个目录,linux ftp服务器下用户限制目录的方法
  5. repeated_Ruby中带有示例的Array.repeated_combination()方法
  6. iis php5.3配置,windows+IIS 环境下以Fastcgi方式配置php 5.3.3的方法
  7. Canny边缘检测及C++实现
  8. Ubuntu 20.04更新源报错W: 校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。
  9. caffe 使用笔记
  10. 前端知识点回顾——Javascript篇(三)
  11. linux上apache和php结合
  12. tomcatX.exe与startup.bat启动的区别
  13. 第三届算法设计与编程挑战赛(冬季赛)G题
  14. Word里输入上下标五种方法
  15. 三菱iQ-R系列PLC控制系统项目全套资料
  16. 港科夜闻|香港科技大学(广州)与广东联通签署多方位战略合作协议
  17. 《大学两年的摸爬滚打:新征程》
  18. java time_java常用类Time
  19. 【例26图片的加密解密操作】
  20. 计算机专业英语问卷调查,问卷调查英语版.doc

热门文章

  1. scikit-learn功能大全
  2. 在android移动终端运行android应用程序
  3. Maya模型制作心得
  4. 2021全国大学生电子设计竞赛F题(智能送药小车)国一赛后总结
  5. BZOJ 3097: Hash Killer I【构造题,思维题】
  6. Android 第三方登录之支付宝登录
  7. html标签各属性之间用空格隔开对吗,03-HTML标签(二)
  8. python 转盘 圆形_python实现大转盘抽奖效果
  9. zeros什么意思_zeros:zeros还是zeroes?4)是什么意思?
  10. 目标转化出价多少_浅谈什么是 oCPC 目标转化出价?