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动态参数用法实例分析
May 25 Python
python图片验证码生成代码
Jul 02 Python
Python中查看文件名和文件路径
Mar 31 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
python_opencv用线段画封闭矩形的实例
Dec 05 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
python搜索包的路径的实现方法
Jul 19 Python
python实现日志按天分割
Jul 22 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
python简单实现插入排序实例代码
Dec 16 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 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 Web木马扫描器代码分享
2015/09/06 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
如何用javascript去掉字符串里的所有空格
2007/02/08 Javascript
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
vuejs router history 配置到iis的方法
2018/09/20 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
Python竟能画这么漂亮的花,帅呆了(代码分享)
2017/11/15 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
python 定时器,实现每天凌晨3点执行的方法
2019/02/20 Python
通过python改变图片特定区域的颜色详解
2019/07/15 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
TensorBoard 计算图的查看方式
2020/02/15 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
印度购买眼镜和太阳镜网站:Coolwinks
2018/09/26 全球购物
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
五一服装活动方案
2014/01/11 职场文书
互联网创业计划书的书写步骤
2014/01/28 职场文书
幼儿教师工作感言
2014/02/14 职场文书
结婚周年感言
2014/02/24 职场文书
公司晚会主持词
2014/03/22 职场文书
个人廉政承诺书
2015/04/28 职场文书
python 网络编程要点总结
2021/06/18 Python
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript