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实现快速多线程ping的方法
Jul 15 Python
浅析Python的web.py框架中url的设定方法
Jul 11 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
基于python的字节编译详解
Sep 20 Python
python3+opencv3识别图片中的物体并截取的方法
Dec 05 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
Aug 20 Python
python 数据提取及拆分的实现代码
Aug 26 Python
python函数不定长参数使用方法解析
Dec 14 Python
基于FME使用Python过程图解
May 13 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 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中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
2015/07/09 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
Python实现list反转实例汇总
2014/11/11 Python
Python中的pprint折腾记
2015/01/21 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Django项目中包含多个应用时对url的配置方法
2018/05/30 Python
详解Python sys.argv使用方法
2019/05/10 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
python实现批处理文件
2020/07/28 Python
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
总裁岗位职责
2013/12/04 职场文书
绩效管理实施方案
2014/03/19 职场文书
房屋出售协议书
2014/04/10 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
见习报告的格式
2014/11/04 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
员工规章制度范本
2015/08/07 职场文书
淡雅古典唯美少女娇媚宁静迷人写真
2022/03/21 杂记
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android