face_recognition

Windows系统环境下安装

默认环境:anaconda的python3.7版本,win10环境

第一步:安装dlib

  1. 从网络上下载:
http://dlib.net/ 或者 https://github.com/davisking/dlib
  1. 下载完成后解压

  2. 编译:打开终端,是使用anaconda的python环境定位到dlib文件夹,使用 pyhton setup.py install 安装文件。

  3. 在安装过程遇到的问题:

    1. 找不到cmake的问题

      官网下载安装包:[https://cmake.org/download/]

      下载完成之后,解压缩,然后将cmake的bin文件夹添加在系统环境路径中。

  4. 从新使用 pyhton setup.py install 安装文件。

第二步:安装face_recognition

使用 pip install face_recognition 安装即可。

用法

  1. 导入face_recognition
import face_recognition
  1. 加载图像

图像加载到一个 numpy 数组中

image = face_recognition.load_image_file("your_file.jpg")
  1. 对图片进行操作

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的更多相关文章

  1. 人脸识别-关于face_recognition库的安装

    首先十分感谢博客https://blog.csdn.net/scc_722/article/details/80613933,经历过很多尝试(快要醉了),终于看了这篇博客后安装成功. face_rec ...

  2. face_recognition开源人脸识别库:离线识别率高达99.38%

    基于Python的开源人脸识别库:离线识别率高达99.38%——新开源的用了一下感受一下 原创 2017年07月28日 21:25:28 标签: 人脸识别 / 人脸自动定位 / 人脸识别开源库 / f ...

  3. Python的开源人脸识别库:离线识别率高达99.38%

    Python的开源人脸识别库:离线识别率高达99.38%   github源码:https://github.com/ageitgey/face_recognition#face-recognitio ...

  4. Python的开源人脸识别库:离线识别率高达99.38%(附源码)

    Python的开源人脸识别库:离线识别率高达99.38%(附源码) 转https://cloud.tencent.com/developer/article/1359073   11.11 智慧上云 ...

  5. Github开源人脸识别项目face_recognition

    Github开源人脸识别项目face_recognition 原文:https://www.jianshu.com/p/0b37452be63e 译者注: 本项目face_recognition是一个 ...

  6. [深度学习工具]·极简安装Dlib人脸识别库

    [深度学习工具]·极简安装Dlib人脸识别库 Dlib介绍 Dlib是一个现代化的C ++工具箱,其中包含用于在C ++中创建复杂软件以解决实际问题的机器学习算法和工具.它广泛应用于工业界和学术界,包 ...

  7. C# 人脸识别库

    .NET 人脸识别库 ViewFaceCore 这是基于 SeetaFace6 人脸识别开发的 .NET 平台下的人脸识别库这是一个使用超简单的人脸识别库这是一个基于 .NET Standard 2. ...

  8. C# 人脸识别库 0.2

    ViewFaceCore 0.2 超简单的 C# 人脸识别库 前言: 首先谢谢大家对这个库的关注,前一篇博文得到了大家的 支持 和 Star,十分开心.本想尽快实现大家的期待的活体检测功能,但是前段时 ...

  9. 基于Python的开源人脸识别库:离线识别率高达99.38%

    项目地址:https://github.com/ageitgey/face_recognition#face-recognition 本文的模型使用了C++工具箱dlib基于深度学习的最新人脸识别方法 ...

随机推荐

  1. Leetcode1/242/383-HashMap常用方法以及遍历排序方式

    HashMap常用方法以及遍历排序方式 常用方法 map.containsKey() map.put() map1.equals(map2) 遍历方式 Iterator<Map.Entry< ...

  2. java中接口和抽象类有什么区别,举例!

    2)接口和抽象类有什么区别?答:马克-to-win:抽象类里可以有实现的方法,接口里不能有,所以相对来讲各方面实现都简单(尤其动态方法调度).另外:类可以实现多个接口.反过来说,也正是抽象类一个致命伤 ...

  3. Java实现单链表的逆序打印

    思路1:可以将链表进行反转,然后进行数据的输出即可,单链表反转地址如下https://blog.csdn.net/Kevinnsm/article/details/113763272 这个思路1肯定有 ...

  4. 『现学现忘』Git基础 — 2、Git和SVN的区别

    1.Git和SVN的区别 (1)SVN(集中式版本管理系统) 集中式的版本控制系统都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者 ...

  5. Cookie&&Session&&jsp入门

    会话技术 会话:一次会话中包含多次请求和响应. 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Coo ...

  6. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...

  7. (更新中)"华为杯" 武汉大学21级新生程序设计竞赛 非官方题解

    "华为杯" 武汉大学21级新生程序设计竞赛 https://ac.nowcoder.com/acm/contest/31620#question D.和谐之树 思路:披着线段树外皮 ...

  8. 罗马数字转整数,Java执行时间超过100%用户的写法

    执行用时:2 ms, 在所有 Java 提交中击败了100.00%的用户 题目 https://leetcode-cn.com/problems/roman-to-integer 罗马数字包含以下七种 ...

  9. 杭电2091空心三角形Java(AC)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2091 把三角形写入二维数组里,然后输出出来 注意事项: 1.三角形后面没有空格(每一层的后面) 2.三角形 ...

  10. 如何设计一个良好的API接口?

    沟通创造价值,分享带来快乐.这里是程序员阅读时间,每天和你分享读书心得,欢迎您每天和我一起精进.今天和大家一起讨论的话题是如何设计一个良好的API接口? 作者:梁桂钊 解读:张飞洪 挑战 API是软件 ...