本软件正在开发。

感谢github的开发人员ageitgey提供的模块face_recognition,网址:https://github.com/ageitgey/face_recognition

widget_6.svg?color=0040ff

1,简介

pyface是一个关于人脸识别的模块,支持:两张人脸是否匹配、获取图片中人脸的位置。

可能只支持python3.5以上版本。

2,安装

2-1,程序

把pyface文件夹放在脚本同一目录下。

2-2,依赖

依赖:pillow(PIL),numpy

鉴于dlib安装时间较长,在代码中已经提供了。

3,文件目录结构

pyface 根目录

╲__init__.py

╲face_recognition face_recognition模块

╲dlib-19.19.0.egg-info 这个是dlib模块。鉴于安装耗时太长,我自己提供了。

╲face_recognition_models face_recognition的依赖模块

╲models 训练好的模型

╲...

╲__init__.py

╲...

╲__init__.py

╲api.py

╲face_recognition_cli.py

╲face_detection_cli.py

╲...

4,使用

4-1,普通函数

bounding_box(pic_path)

简介:返回图片中人脸的位置。

参数:

pic_path:图片路径

返回:一个列表,列表之中还有列表,这个列表中的列表有4个元素,分别是人脸左上角x,人脸左上角y,人脸右下角x,人脸右下角y。根列表长度不定,一个元素代表一张人脸。

compare(pic1_path,pic2_path,tolerance=0.6)

简介:人脸是否匹配

参数:

tolerance:阈值,可选参数,默认0.6

返回:一个列表。list[0]:布尔值,是否匹配。list[1]:第一张脸的位置(列表),参见bounding_box函数的返回值。list[2]:第二张脸的位置。

注意:

1,选择最大的脸进行匹配。

2,如果某一图像没有人脸,抛出PyfaceError异常("No face was found in the first/second picture.")。

maxbounding(pic_boundings)

简介:最大的人脸

参数:

pic_boundings:人脸列表,最好由bounding_box函数生成。

返回:

输入的列表的某一元素

4-2,类与对象

类名:Pyface

简介:为了速度而推出的功能。

__init__(pic_path)

简介:载入一个图像。初始化函数。

参数:

pic_path:人脸图片路径

注意:

如果没有检测到人脸,抛出PyfaceError异常。

compare(pic_path,tolerance=0.6)

简介:与对象中已有的图片进行比对。

参数:

pic_path:人脸图片路径

tolerance:阈值

返回:一个列表。list[0]:布尔值,是否匹配。list[1]:这一张图片中脸的位置(被选中的)。

注意:你(méi)应(jiǎn)该(cè)懂(dào)的(jiù)规(bào)则(cuò)。

另外,如果想获取第一张人脸的位置,请获取:对象.xy属性。

5,备注

顺便说一下,因为技术原因,没有写setup.py,哪位大佬能写出来,我必将感激不尽!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐