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

选自Github

机器之心的编译

参与:薛璐

只有Python和命令行才能实现人脸识别库的开源。数据库由dlib顶尖的深度学习人脸识别技术构建,在户外人脸检测数据库基准上的准确率高达99.38%。

这个项目是建立一个免费、开源、实时、离线的在线app,支持组织者使用人脸识别技术或二维码识别所有被邀请的人。

通过世界上最简单的人脸识别库,你可以使用Python或命令行来识别和控制人脸。

数据库由dlib顶尖的深度学习人脸识别技术构建,在户外人脸检测数据库基准上的准确率高达99.38%。

这也提供了一个简单的face_recognition命令行工具。可以在命令行打开任何图像文件夹进行人脸识别!

地址:https://github.com/ageitgey/face _识别#人脸识别

功能

找出图片中的脸

找出下图中的所有面孔:



导入人脸识别 S2/]在图像中查找和控制面部特征

找到并勾勒出每个人的眼睛、鼻子、嘴巴和下巴。



面部识别查找面部特征对许多重要的事情都非常有用。但你也可以用它来做一些“蠢事”,比如数码化妆(米托):



识别图片中的人脸

识别每幅图片中的人物。



导入face_recognition您甚至可以使用这个库和其他Python库来执行实时人脸识别:



代码示例见此:https://github.com/ageitgey/face _识别/blob/master/examples/facerec _ from _ web cam _ faster . py

安装

要求:

  • Python 3+或Python 2.7

  • Mac或Linux (Windows未经测试)

    也可以在Raspberry Pi 2+上运行(按照具体说明安装运行:https://gist . github . com/ageitgey/1 AC 8 DBE 8572 F3 f 533 df 6269 dab 35 df 65)

    还提供预配置的虚拟机映像。

    使用pin3从pypi安装该模块:

    3 pip3安装face_recognition重要提示:pip在尝试编译dlib依赖项时很可能会遇到一些问题。如果您遇到问题,请访问这个地址(https://gist.github.com/ageitgey/629D75C1BaAC 34 DFA 5a 2 a 1928 a 7 EAF)并从源代码安装dlib(而不是pip)来修复错误。

    手动安装dlib后,再次运行pip3 install face_recognition完成安装。

    如果您在安装时仍然有问题,您可以尝试预配置的虚拟机(https://medium.com/@ ageitgey/try-deep-learning-in-python-now-with-a-fully-pre-configured-VM-1d 97d 4 c 3 e 9 b)

    使用

    命令行界面

    人脸识别二次开发

    在安装face_recognition的时候,你会得到一个简单的命令行程序,叫做face_recognition,可以用来识别照片或者装满照片的文件夹中的人脸。

    首先,你需要提供一个包含图片的文件夹,每张图片里的人你都认识。每个人都有一个图像文件,文件名是图片中人的名字:



    然后,您需要创建另一个包含要识别的图像文件的文件夹:



    之后只需要在已知人物文件夹和未知人物文件夹(或者单张图片)中运行face_recognition命令,程序就会告诉你每张图片中的人物是谁:

    $ face _ recognition。/我认识的人的照片/。/unknown _ pictures//unknown _ pictures/unknown . jpg,巴拉克·奥巴马每张脸的输出结果只有一行,由文件名和找到的人的名字组成,用逗号隔开。

    Unknown_person是一张与“已知人物”文件夹中的任何照片都不匹配的面孔。

    如果你只想知道每张照片里的人的名字,而不在乎文件名,那么你可以做以下事情:

    $ face _ recognition。/我认识的人的照片/。/unknown _ pictures/| cut-d ','-f2如果你的电脑配备了多核CPU,你可以同时执行多个人脸识别任务。例如,如果您的系统有4个CPU核心,并且您可以同时使用这4个CPU核心,则在相同时间内处理的图像数量是原来的4倍。

    如果您使用Python 3.4或更高版本,请传入-CPU

    $ face _ recognition-CPU 4。/pictures _ of _ people _ I _ know/。/unknown _ pictures/还可以传入-CPU-1来使用系统中所有的CPU核。

    Python模块

    使用face_recognition模块,几行代码就能轻松控制人脸,好容易!

    API文件的地址:https://face-recognition . readtheodocs . io

    自动定位图像中人物的面部特征

    Import _ recognition 图像人脸识别

    导入人脸识别 S2/]注释

    人脸识别模型是基于成人照片的训练,所以儿童照片的识别效果并不好。这种模式默认的对比阈值是0.6,容易混淆小孩的脸。

    将模型配置到云主机(Heroku、AWS等。)

    face_recognition所依赖的dlib是用C++语言编写的,因此将内置模型的app配置给Heroku或AWS等云托管提供商是非常复杂的。本次回购中有一个Dockerfile的例子,展示了如何在Docker容器中运行内置face_recognition模型的app(详见网站:https://www.docker.com/)。参考这个例子,您可以将这个模型配置到任何支持Docker图像的服务。

    常见问题

    问题:使用face_recognition或运行样本时出现非法指令(核心转储)。

    解决方法:dlib需要在SSE4或AVX的支持下编译,但是你的CPU太老了,不支持编译。您需要修改如下所示的代码(https://github.com/ageitgey/face _识别/问题/11 #问题注释-287398611),然后重新编译dilb。

    问题:运行时错误:不支持的图像类型,必须是8位灰度或运行相机样本时出现RGB图像。

    解决方案:您的相机可能没有在OpenCV上正确设置。点击此处(https://github.com/ageitgey/face _认可/问题/21 #问题评论-287779524)了解更多信息。

    问题:运行pip2 install face_recognition时出现内存错误。

    解决方案:face_recognition_models文件对于您的可用pip缓存太大。尝试pip 2-no-cache-dir install face _ recognition解决这个问题。

    问题:属性错误:“模块”对象没有属性“face _ recognition _ model _ v1”

    解决方案:您安装的dlib版本太旧。您需要19.4或更高版本。请升级dlib版本。

    问题:类型错误:im read()获得了意外的关键字参数“mode”

    解决方案:您安装的scipy版本太旧。它需要0.17或更高版本。请升级scipy版本。

    您可以还会对下面的文章感兴趣

    使用微信扫描二维码后

    点击右上角发送给好友