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实现基于两张图片生成圆角图标效果的方法
Mar 26 Python
python利用拉链法实现字典方法示例
Mar 25 Python
Python3计算三角形的面积代码
Dec 18 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
Python面向对象程序设计类的多态用法详解
Apr 12 Python
pandas 时间格式转换的实现
Jul 06 Python
Python动态声明变量赋值代码实例
Dec 30 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
python切片作为占位符使用实例讲解
Feb 17 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
Python一些基本的图像操作和处理总结
Jun 23 Python
Python 语言实现六大查找算法
Jun 30 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缩小png图片不损失透明色的解决方法
2013/12/25 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
Mac OS下配置PHP+MySql环境
2015/02/25 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
JavaScript声明变量名的语法规则
2015/07/10 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
AngularJS基于factory创建自定义服务的方法详解
2017/05/25 Javascript
纯js代码生成可搜索选择下拉列表的实例
2018/01/11 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
python实现nao机器人手臂动作控制
2019/04/29 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
sklearn+python:线性回归案例
2020/02/24 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
Python绘制组合图的示例
2020/09/18 Python
HTML5 canvas实现的静态循环滚动播放弹幕
2021/01/05 HTML / CSS
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
书法培训心得体会
2014/01/05 职场文书
幼儿园家长寄语
2014/04/02 职场文书
作风建设演讲稿
2014/05/23 职场文书
大班亲子运动会方案
2014/06/10 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL