您现在的位置:首页 » 知识库 » 软件开发 软件开发
基于Python的开源人脸识别库:离线识别率高达99.38%
发布日期:2017-08-30

仅用 Python 和命令行就可以实现人脸识别的库开源了。该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild benchmark)上的准确率高达 99.38%。

   该项目是要构建一款免费、开源、实时、离线的网络 app,支持组织者使用人脸识别技术或二维码识别所有受邀人员。

   有了世界上最简单的人脸识别库,使用 Python 或命令行,即可识别和控制人脸。

   该库使用 dlib 顶尖的深度学习人脸识别技术构建,在户外脸部检测数据库基准(Labeled Faces in the Wild benchmark)上的准确率高达 99.38%。

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

   项目地址:https://github.com/ageitgey/face_recognition#face-recognition

   特征

   出图片中的人脸

   找出下面图片中所有的人脸:

import face_recognition

   找到并且控制图像中的脸部特征

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

import face_recognition

   找出脸部特征对很多重要的事情都非常有用。但是你也可以用它来做一些「蠢事」,比如数字化妆(美图):

   识别图片中的人脸

   识别每张图片中的人物。

import face_recognition

   你甚至可以使用该库和其他的 Python 库执行实时人脸识别:



   此处可查看代码示例:https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py

   安装要求:

  • Python 3+ 或 Python 2.7

  • macOS 或 Linux (Windows 未测试)

  • 还可在树莓派 2+上运行(按照具体指令来安装运行:https://gist.github.com/ageitgey/1ac8dbe8572f3f533df6269dab35df65)

  • 预配置的 VM 图像同样可用。

   使用pin3从pypi安装这一模块:

pip3 install face_recognition

   重要提示:pip 尝试编译 dlib 依赖时很可能会遇到一些问题。如果遇到问题,前往该地址(https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf)从来源(而不是 pip)中安装 dlib,从而修复该错误。

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

   如果安装方面还有问题,你还可以试试预配置的 VM(https://medium.com/@ageitgey/try-deep-learning-in-python-now-with-a-fully-pre-configured-vm-1d97d4c3e9b)

用途

命令行界面

   安装 face_recognition 时,你会得到一个名为 face_recognition 的简单命令行程序,该程序可用于识别照片或装满照片的文件夹中的人脸。

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

   然后,你需要再建一个文件夹,包含你想要识别的图像文件:

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

$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures//unknown_pictures/unknown.jpg,Barack Obama

   每张人脸的输出结果只有一行,由文件名和找到的人物名组成,中间用逗号分隔。

   unknown_person 是未与已知人物文件夹中任何照片相匹配的人脸。

   如果你只想知道每张照片中的人物姓名,不在意文件名,那么你可以采用以下做法:

   如果你的电脑配有多核 CPU,你就可以同时执行多个人脸识别任务。例如,如果你的系统有 4 个 CPU 核,你可以同时使用这 4 个 CPU 核,那么同样时间内处理的图像数量是原来的四倍。

   s你使用 Python 3.4 或更新的版本,传入--cpus <number_of_cpu_cores_to_use>参数:

$ face_recognition -cpus 4 ./pictures_of_people_i_know/ ./unknown_pictures/

   你还可以传入--cpus -1,来使用系统中所有的 CPU 核。

   Python 模块

   使用 face_recognition 模块,几行代码轻松控制人脸,so easy!

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

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

import face_recognition

   图像人脸识别

import face_recognition

注意事项

   该人脸识别模型基于成年人照片训练,因此对儿童照片的识别效果不好。该模型默认比较阈值是 0.6,容易混淆儿童的面部。

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

   face_recognition 赖以存在的 dlib 是用 C++语言写的,因此将该内置该模型的 app 配置到 Heroku 或 AWS 等云主机提供商就很复杂。在该 repo 中有一个 Dockerfile 示例,展示如何在 Docker 容器中运行内置 face_recognition 模型的 app(详见该网址:https://www.docker.com/)。参考该示例,您能够将该模型配置到任何支持 Docker 图像的服务。

常见问题

问题:使用 face_recognition 或运行样本时,出现 Illegal instruction (core dumped)。

解决方案:dlib 需要在 SSE4 或 AVX 支持下编译,但是你的 CPU 太旧,无法支持编译。你需要根据此处(https://github.com/ageitgey/face_recognition/issues/11#issuecomment-287398611)所示修改代码,然后对 dilb 进行重新编译。

问题:运行摄像头样本时,出现 RuntimeError: Unsupported image type, must be 8bit gray or RGB image.

解决方案:你的摄像头可能并未在 OpenCV 上正确设置。点击此处(https://github.com/ageitgey/face_recognition/issues/21#issuecomment-287779524)了解更多。

问题:运行 pip2 install face_recognition 时出现 MemoryError。

解决方案:face_recognition_models 文件太大,不适合你可用的 pip 缓存内存。试一下 pip2 --no-cache-dir install face_recognition,解决该问题。

问题:AttributeError: 'module' object has no attribute 'face_recognition_model_v1'

解决方案:你安装的 dlib 版本过旧,需要 19.4 或者更新的版本。请升级 dlib 版本。

问题:TypeError: imread() got an unexpected keyword argument 'mode'

解决方案:你安装的 scipy 版本过旧,需要 0.17 或者更新的版本。请升级 scipy 版本。

  • 1.公司登记注册于2003年1月27日,清远市桑达电子网络媒体有限公司
    2.公司2006年起成为清远市政府定点协议供货商,电子采购供货商
    3.公司2007年被清远市相关政府部门评为安防行业状元
    4.公司2007年起成为长城电脑清远如意服务站(SP368)
    5.公司2007年承建清远市横河路口电子警察工程,开创清远电子警察先河。
  • 6.公司2007年起成为IBM合作伙伴、公司2010年底成为金蝶软件清远金牌代理(伙伴编号:30030013)
    7.公司组团队参加南方都市报组织的创富评选,获广东80强。公司申请多项软件著作权、专利权
    8.2016年起公司成为粤东西北地区为数不多的双软企业,确立“让软件驱动世界,让智能改变生活!"企业理想
    9.2016-01-29更名为广东互动电子网络媒体有限公司
    10.2021-01-13更名为广东互动电子有限公司
  • 投资合作咨询热线电话:0763-3391888 3323588
  • 做一个负责任的百年企业! 天行健,君子以自强不息;地势坤,君子以厚德载物;
    为用户创造价值! 让软件驱动世界; 让智能改变生活; 超越顾客期望,帮助顾客成功;
    对客户负责,对员工负责,对企业命运负责!帮助支持公司的客户成功;帮助忠诚于公司的员工成功!
  • 联系电话:0763-3391888 3323588 3318977
    服务热线:18023314222 QQ:529623964
  • 工作QQ:2501204690 商务QQ: 602045550
    投资及业务投诉QQ: 529623964
    微信:小米哥 微信号:qysed3391888
    腾讯微博:桑达网络-基石与起点
  • E-MAIL:222#QYSED.CN ok3391888#163.com (请用@替换#)
在线客服
  • 系统集成咨询
    点击这里给我发消息
  • 网站\微信\软件咨询
    点击这里给我发消息
  • 售后服务
    点击这里给我发消息
  • 投资合作
    点击这里给我发消息