python dlib人脸识别代码实例


Posted in Python onApril 04, 2019

本文实例为大家分享了python dlib人脸识别的具体代码,供大家参考,具体内容如下

import matplotlib.pyplot as plt
import dlib
import numpy as np
import glob
import re
 
#正脸检测器
detector=dlib.get_frontal_face_detector()
#脸部关键形态检测器
sp=dlib.shape_predictor(r"D:\LB\JAVASCRIPT\shape_predictor_68_face_landmarks.dat")
#人脸识别模型
facerec = dlib.face_recognition_model_v1(r"D:\LB\JAVASCRIPT\dlib_face_recognition_resnet_model_v1.dat")
 
#候选人脸部描述向量集
descriptors=[]
 
photo_locations=[]
 
for photo in glob.glob(r'D:\LB\JAVASCRIPT\faces\*.jpg'):
  photo_locations.append(photo)
  img=plt.imread(photo)
  img=np.array(img)
  
  #开始检测人脸
  dets=detector(img,1)
  
  for k,d in enumerate(dets):
    #检测每张照片中人脸的特征
    shape=sp(img,d)
    face_descriptor=facerec.compute_face_descriptor(img,shape)
    v=np.array(face_descriptor)
    descriptors.append(v)
		
#输入的待识别的人脸处理方法相同
img=plt.imread(r'D:\test_photo10.jpg')
img=np.array(img)
dets=detector(img,1)
#计算输入人脸和已有人脸之间的差异程度(比如用欧式距离来衡量)
differences=[]
for k,d in enumerate(dets):
  shape=sp(img,d)
  face_descriptor=facerec.compute_face_descriptor(img,shape)
  d_test=np.array(face_descriptor)
  
  #计算输入人脸和所有已有人脸描述向量的欧氏距离
  for i in descriptors:
    distance=np.linalg.norm(i-d_test)
    differences.append(distance)
 
#按欧式距离排序 欧式距离最小的就是匹配的人脸
candidate_count=len(photo_locations)
candidates_dict=dict(zip(photo_locations,differences))
candidates_dict_sorted=sorted(candidates_dict.items(),key=lambda x:x[1])
 
#matplotlib要正确显示中文需要设置
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
 
plt.rcParams['figure.figsize'] = (20.0, 70.0) 
 
ax=plt.subplot(candidate_count+1,4,1)
ax.set_title("输入的人脸")
ax.imshow(img)
 
for i,(photo,distance) in enumerate(candidates_dict_sorted):
  img=plt.imread(photo)
  
  face_name=""
  photo_name=re.search(r'([^\\]*)\.jpg$',photo)
  if photo_name:
    face_name=photo_name[1]
    
  ax=plt.subplot(candidate_count+1,4,i+2)
  ax.set_xticks([])
  ax.set_yticks([])
  ax.spines['top'].set_visible(False)
  ax.spines['right'].set_visible(False)
  ax.spines['bottom'].set_visible(False)
  ax.spines['left'].set_visible(False)
  
  if i==0:
    ax.set_title("最匹配的人脸\n\n"+face_name+"\n\n差异度:"+str(distance))
  else:
    ax.set_title(face_name+"\n\n差异度:"+str(distance))
  ax.imshow(img)
 
plt.show()

python dlib人脸识别代码实例

以上所述是小编给大家介绍的python dlib人脸识别详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python进阶之递归函数的用法及其示例
Jan 31 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
浅谈python之新式类
Aug 12 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
Python迭代器iterator生成器generator使用解析
Oct 24 Python
解决TensorFlow模型恢复报错的问题
Feb 06 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
python如何运行js语句
Sep 09 Python
Python监听键盘和鼠标事件的示例代码
Nov 18 Python
Python使用pyenv实现多环境管理
Feb 05 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
python图像处理入门(一)
Apr 04 #Python
python爬虫简单的添加代理进行访问的实现代码
Apr 04 #Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 #Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 #Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 #Python
详解python项目实战:模拟登陆CSDN
Apr 04 #Python
Python实现字符串匹配的KMP算法
Apr 04 #Python
You might like
PHP 文件上传功能实现代码
2009/06/24 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
javascript自定义startWith()和endWith()的两种方法
2013/11/11 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
微信小程序使用wxParse解析html的方法教程
2018/07/06 Javascript
详解jenkins自动化部署vue
2019/05/14 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
简述Python中的面向对象编程的概念
2015/04/27 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
2015/12/24 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
计算机网络专业推荐信
2013/11/24 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
拓展训练激励口号
2014/06/17 职场文书
学生病假条范文
2015/08/17 职场文书
《藏戏》教学反思
2016/02/23 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android