人脸识别python face_recognize_python人脸识别库-face_recognition详解
人脸识别近来可以说是非常的热门,无论是iphonex的faceid人脸解锁、faceID支付等等,还是各种安防监控、人脸表情变换都用到了人脸识别的相关知识。这里介绍一个简单好用的人脸识别的python库--face_recognition,很多开源人脸相关好玩的项目都是以它为基础开发的。
代码网址为https://github.com/ageitgey/face_recognition,github已经有8300+的star和1600+的fork,发文时在所有仓库中排名854位。
image
face_recognition是基于dlib的深度学习人脸识别库,在LFW上的准确率达到了99.38%。
安装
只需要编译好dlib(主要支持linux和macOS)后,通过pip install face_recognition来安装相关包,函数运行需要占用一定的GPU空间
使用
face_recognition包括人脸检测、人脸关键点检测、人脸识别等接口,具体如下:
人脸检测:
image
github示例
看上图中函数名称就可以了解到读入图像,通过face_locations函数得到人脸的位置,测试如下,可以看出返回的结构是一个list,每个人脸是一个tuple存储,分别代表框住人脸的矩形中左上角和右下角的坐标(x1,y1,x2,y2)。这里例子只有一个人脸所以只有一个tuple。另外face_recognition读入函数load_image_file输出图像是rgb顺序的,和opencv中bgr不一样。
image
关键点检测以及跟踪:
image
上图中通过face_landmarks函数得到人脸特征点list,测试例子如下图,每个人脸是一个字典,包括nose_bridge、right_eyebrow、right_eye、chine、left_eyebrow、bottom_lip、nose_tip、top_lip、left_eye几个部分,每个部分包含若干个特征点(x,y),总共有68个特征点。
image
人脸识别:
image
人脸识别实际上是对人脸进行编码后再去计算两两人脸的相似度,known_image相当于已知人脸库的图像,unknown_image相当于待检测的图像,分别利用face_encodings函数来映射成一个向量,下图可以看出每个人脸是一个128维的向量。最后利用两个向量的内积来衡量相似度,compare_faces函数就是根据阈值确认是否是同一人脸。上述函数都是支持多个人脸计算的。 另外compare_faces有个tolerance参数是控制阈值的,tolerance值越低越严格,默认为0.6。
image
最后github上相应有一个real-time face recognition的demo,链接如下
https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py,比较简单。
人脸识别python face_recognize_python人脸识别库-face_recognition详解相关推荐
- Python爬虫之selenium库使用详解
Python爬虫之selenium库使用详解 本章内容如下: 什么是Selenium selenium基本使用 声明浏览器对象 访问页面 查找元素 多个元素查找 元素交互操作 交互动作 执行JavaS ...
- pillow是python的图像处理标准库_详解Python图像处理库Pillow常用使用方法
pil(python image library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了. 其官方主页为:pil. pil ...
- python爬虫requests的库使用详解
Requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多,Requests库是用pythony语言开发,基urllib,采用Apache2 Licens ...
- python annotate函数_Matplotlib库基础分析——详解标注点函数annotate()
绘图是数据可视化最直接的方法,也是直观分析数据所必不可少的步骤.Matplotlib是Python中专门用于数据可视化的第三方库,也是最为流行的绘图库.Matplotlib库中的annotate()函 ...
- python中定时任务schedule库用法详解
schedule是一个第三方轻量级的任务调度模块,可以按照秒,分,小时,日期或者自定义事件执行时间. 如果想执行多个任务,也可以添加多个task. 首先安装schedule库: pip ...
- python中调试pdb库用法详解
pdb是ptyhon内置的一个调试库,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点.单步调试.进入函数调试.查看当前代码.查看栈片段.动态改变变量的值等. 实际工作过程中 ...
- python dict下标_Python库collections详解
collections模块包含了除了内置类型list.dict.tuple之外的容器类型.本文详细介绍了Counter.defaultdict.namedtuple.OrderedDict.Chain ...
- 万字博文教你python爬虫Beautiful Soup库【详解篇】
- 基于MobileNet的人脸表情识别系统(MATLAB GUI版+原理详解)
摘要:本篇博客介绍了基于MobileNet的人脸表情识别系统,支持图片识别.视频识别.摄像头识别等多种形式,通过GUI界面实现表情识别可视化展示.首先介绍了表情识别任务的背景与意义,总结近年来利用深度 ...
- python网络爬虫教程(四):强大便捷的请求库requests详解与编程实战
上一章中,我们了解了urllib的基本用法,详情可浏览如下链接python网络爬虫教程(三):详解urllib库,但其中确实有不方便的地方,为此,我们可以使用更方便更简洁的HTTP请求库request ...
最新文章
- html5页面中鼠标悬停效果,CSS实例:非常不错的鼠标悬停TIP效果!_div+css布局教程...
- linux系统运行时间
- socket编程的select模型
- 电脑ping不通 plsql能连上_台式电脑不能上网手机却能连上wifi无线网络的解决方法...
- 关于iOS 5 Could not instantiate class named NSLayoutConstraint错误
- java jre 中导入导出证书
- 语义分割双料冠军!微软 OCRNet化解语义分割上下文信息缺失难题|ECCV 2020
- 谈一谈为什么我要创建个人博客
- 直播预告丨 PostgreSQL数据库安全体系介绍
- java informix 实例
- 公司搞不好,除了坑股东,还坑的是客户
- MyBatis数据输出
- SSM框架整合环境搭建
- 小米手机切换应用--完美实现步骤
- 淘宝logo设计遇到的坑
- matlab plot bo,Matlab的plot~各种颜色和线形
- Python 面向对象 (六) 实例学员管理系统
- 计算机网络上有个红叉没无线,电脑连接不可用红叉,有无线网络但无法连接上wifi...
- 华为手机怎么关闭下拉智慧搜索
- mysql架构与存储引擎