人脸识别库 face_recognition
face_recognition
Windows系统环境下安装
默认环境:anaconda的python3.7版本,win10环境
第一步:安装dlib
- 从网络上下载:
http://dlib.net/ 或者 https://github.com/davisking/dlib
下载完成后解压
编译:打开终端,是使用anaconda的python环境定位到dlib文件夹,使用
pyhton setup.py install安装文件。在安装过程遇到的问题:
找不到cmake的问题
官网下载安装包:[https://cmake.org/download/]
下载完成之后,解压缩,然后将cmake的bin文件夹添加在系统环境路径中。
从新使用
pyhton setup.py install安装文件。
第二步:安装face_recognition
使用 pip install face_recognition 安装即可。
用法
- 导入face_recognition
import face_recognition
- 加载图像
图像加载到一个 numpy 数组中
image = face_recognition.load_image_file("your_file.jpg")
- 对图片进行操作
batch_face_locations
使用 cnn 人脸检测器返回图像中人脸边界框的二维数组 ,使用GPU批量处理图像
face_recognition.api.batch_face_locations(images, number_of_times_to_upsample=1, batch_size=128)
参数:
- images:图像列表
- number_of_times_to_upsample: 在图像上寻找人脸的次数 , 数字越大,查找精细
- batch_size: 每个 GPU 处理批次中包含多少图像
返回:
以 css(上、右、下、左)顺序找到的人脸位置的元组列表
compare_faces
面部编码列表与候选编码进行比较,看看它们是否匹配。
face_recognition.api.compare_faces(known_face_encodings, face_encoding_to_check, tolerance=0.6)
参数:
- known_face_encodings: 已知人脸编码列表
- face_encoding_to_check: 要与列表进行比较的单个人脸编码
- tolerance: 人脸之间的距离多少才算是匹配。越低越严格。0.6 是典型的最佳性能
返回:
True/False 值列表
face_distance
给定一个人脸编码列表,将它们与已知的人脸编码进行比较,并获得每个比较人脸的欧几里德距离。距离告诉您面孔的相似程度。
face_recognition.api.face_distance( face_encodings , face_to_compare )
参数:
face_encodings: 要比较的人脸编码列表
face_to_compare: 要比较的人脸编码
返回:
一个 numpy ndarray,每个面的距离与 'faces' 数组的顺序相同
face_encodings
给定一个图像,返回图像中每个人脸的 128 维人脸编码。
face_recognition.api.face_encodings( face_image , known_face_locations=None , num_jitters=1 , model='small' )
参数:
face_image: 包含一张或多张人脸的图像
known_face_locations: 可选 - 已经知道每个人脸的边界框。
num_jitters: 计算编码时对人脸重新采样的次数。更高更准确,但更慢(即 100 慢 100 倍)
model: 可选 - 要使用的模型。“ large ”或“ small ”(默认)仅返回 5 个点,但速度更快。
返回:
128 维人脸编码列表(图像中的每个人脸编码一个)
face_landmarks
给定一个图像,返回图像中每个人脸特征位置(眼睛、鼻子等)的字典
face_recognition.api.face_landmarks( face_image , face_locations=None , model='large' )
参数:
face_image: 要搜索的图像
face_locations: 可选择提供要检查的人脸位置列表。
model: 可选 - 要使用的模型。“large ”(默认)或“small”仅返回 5 个点但速度更快。
返回:
面部特征位置(眼睛、鼻子等)的字典列表
face_locations
返回图像中人脸的边界框数组
face_recognition.api.face_locations( img , number_of_times_to_upsample=1 , model='hog' )
参数:
img: 图像(作为 numpy 数组)
number_of_times_to_upsample:在图像上寻找人脸的次数。较高的数字会发现较小的面孔。
model: 要使用的人脸检测模型。“hog”在 CPU 上不太准确但速度更快。“cnn”是一种更准确的深度学习模型,它经过 GPU/CUDA 加速(如果可用)。 默认为“hog”
返回:
以 css(上、右、下、左)顺序找到的人脸位置的元组列表
load_image_file
将图像文件(.jpg、.png 等)加载到 numpy 数组中
face_recognition.api.load_image_file(file,model='RGB')
参数:
file: 要加载的图像文件名或文件对象
model: 将图像转换为的格式。仅支持“RGB”(8 位 RGB,3 通道)和“L”(黑白)。
返回:
图像内容作为 numpy 数组
人脸识别库 face_recognition的更多相关文章
- 人脸识别-关于face_recognition库的安装
首先十分感谢博客https://blog.csdn.net/scc_722/article/details/80613933,经历过很多尝试(快要醉了),终于看了这篇博客后安装成功. face_rec ...
- face_recognition开源人脸识别库:离线识别率高达99.38%
基于Python的开源人脸识别库:离线识别率高达99.38%——新开源的用了一下感受一下 原创 2017年07月28日 21:25:28 标签: 人脸识别 / 人脸自动定位 / 人脸识别开源库 / f ...
- Python的开源人脸识别库:离线识别率高达99.38%
Python的开源人脸识别库:离线识别率高达99.38% github源码:https://github.com/ageitgey/face_recognition#face-recognitio ...
- Python的开源人脸识别库:离线识别率高达99.38%(附源码)
Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073 11.11 智慧上云 ...
- Github开源人脸识别项目face_recognition
Github开源人脸识别项目face_recognition 原文:https://www.jianshu.com/p/0b37452be63e 译者注: 本项目face_recognition是一个 ...
- [深度学习工具]·极简安装Dlib人脸识别库
[深度学习工具]·极简安装Dlib人脸识别库 Dlib介绍 Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具.它广泛应用于工业界和学术界,包 ...
- C# 人脸识别库
.NET 人脸识别库 ViewFaceCore 这是基于 SeetaFace6 人脸识别开发的 .NET 平台下的人脸识别库这是一个使用超简单的人脸识别库这是一个基于 .NET Standard 2. ...
- C# 人脸识别库 0.2
ViewFaceCore 0.2 超简单的 C# 人脸识别库 前言: 首先谢谢大家对这个库的关注,前一篇博文得到了大家的 支持 和 Star,十分开心.本想尽快实现大家的期待的活体检测功能,但是前段时 ...
- 基于Python的开源人脸识别库:离线识别率高达99.38%
项目地址:https://github.com/ageitgey/face_recognition#face-recognition 本文的模型使用了C++工具箱dlib基于深度学习的最新人脸识别方法 ...
随机推荐
- JavaScript 工作原理之三-内存管理及如何处理 4 类常见的内存泄漏问题(译)
原文请查阅这里,本文有进行删减,文后增了些经验总结. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第三章. 我们将会讨论日常使用中另一个被开发者越来越忽略的 ...
- C++:Abstract class : invalid abstract return type for member function ‘virtual...’
#include <iostream> #include <cmath> #include <sstream> using namespace std; class ...
- Struts bean:define标签用法
bean:define:有三个用途 一是定义新字符串常量: <bean:define id="foo" value="This is a new String&qu ...
- JS函数传递参数是是按值传递
JavaScript在传参的时候只有一种传递方法那就是按值传递(来自红宝书第四版本) 函数在传递参数的时候会把实参的值拷贝过来一份,而基础类型数据值是存在内存中,在拷贝的时候会复制出来一份,而引用类型 ...
- 项目中常用到的布局 flex
1. 没header,footer固定 html<div class="page"> <div class="top"> <div ...
- PostgreSQL执行计划:Bitmap scan VS index only scan
之前了解过postgresql的Bitmap scan,只是粗略地了解到是通过标记数据页面来实现数据检索的,执行计划中的的Bitmap scan一些细节并不十分清楚.这里借助一个执行计划来分析bitm ...
- CTF大赛模拟-CFS三层内网漫游
CTF大赛模拟-CFS三层内网漫游 环境: 三台虚拟机,三个网络. target 1:192.168.161.178 ,192.168.52.132 (linux) target 2:192.168. ...
- 某空间下的令牌访问产生过程--Kubernetes Dashboard(k8s-Dashboard)
在面试中发现,有些运维人员基本的令牌访问方式都不知道,下面介绍下令牌的产生过程 某个空间下的令牌访问产生过程(空间名称为cc) ###创建命名空间[root@vms61 ccadmin]# kubec ...
- Python 一网打尽<排序算法>之从希尔排序算法的分治哲学开始
1. 前言 本文将介绍希尔排序.归并排序.基数排序(桶排序).堆排序. 在所有的排序算法中,冒泡.插入.选择属于相类似的排序算法,这类算法的共同点:通过不停地比较,再使用交换逻辑重新确定数据的位置. ...
- git-config配置多用户环境以及 includeIf用法
git-config配置多用户环境以及 includeIf用法 git-config配置多用户环境以及 includeIf用法 背景 介绍 配置 栗子 背景 开发人员经常遇到这样的问题,公司仓库和个人 ...