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实现微信模板消息
Dec 21 Python
python爬取51job中hr的邮箱
May 14 Python
python里 super类的工作原理详解
Jun 19 Python
django如何实现视图重定向
Jul 24 Python
python爬虫项目设置一个中断重连的程序的实现
Jul 26 Python
python制作英语翻译小工具代码实例
Sep 09 Python
python 三元运算符使用解析
Sep 16 Python
Python多线程获取返回值代码实例
Feb 17 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
python 写一个文件分发小程序
Dec 05 Python
matplotlib绘制正余弦曲线图的实现
Feb 22 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
laravel中短信发送验证码的实现方法
2018/04/25 PHP
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
2016/05/12 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
JS验证字符串功能
2017/02/22 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
2019/05/18 Javascript
javascript 原型与原型链的理解及实例分析
2019/11/23 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
python中安装Scrapy模块依赖包汇总
2017/07/02 Python
Python中getpass模块无回显输入源码解析
2018/01/11 Python
Python实现的购物车功能示例
2018/02/11 Python
Django实现发送邮件功能
2019/07/18 Python
基于Python函数和变量名解析
2019/07/19 Python
django 信号调度机制详解
2019/07/19 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
python 下载文件的多种方法汇总
2020/11/17 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
《王二小》教学反思
2014/02/27 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle
PHP RabbitMQ消息列队
2022/05/11 PHP