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读取oracle函数返回值
Jul 18 Python
对python中的logger模块全面讲解
Apr 28 Python
Python 编码规范(Google Python Style Guide)
May 05 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
详解Python安装scrapy的正确姿势
Jun 26 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
Mar 20 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
Jun 17 Python
python实现QQ批量登录功能
Jun 19 Python
Django 迁移、操作数据库的方法
Aug 02 Python
Python随机数函数代码实例解析
Feb 09 Python
Python接口自动化测试框架运行原理及流程
Nov 30 Python
Python实现数据的序列化操作详解
Jul 07 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中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
Yii2中datetime类的使用
2016/12/17 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
jQuery的观察者模式详解
2014/12/22 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
快速对接payjq的个人微信支付接口过程解析
2019/08/15 Javascript
Vue Object 的变化侦测实现代码
2020/04/15 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
django开发之settings.py中变量的全局引用详解
2017/03/29 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
关于pandas的离散化,面元划分详解
2019/11/22 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
解决python 找不到module的问题
2020/02/12 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
CSS3 选择器 伪类选择器介绍
2012/01/21 HTML / CSS
护士自我鉴定总结
2014/03/24 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python
Python实现拼音转换
2021/06/07 Python
Redis可视化客户端小结
2021/06/10 Redis
logback如何自定义日志存储
2021/08/30 Java/Android