3行Python代码完成人脸识别

Face Recognition软件包

这是世界上最简单的人脸识别库了。你可以通过Python引用或者命令行的形式使用它,来管理和识别人脸。

该软件包使用dlib中最先进的人脸识别深度学习算法,使得识别准确率在《Labled Faces in the world》测试基准下达到了99.38%。

它同时提供了一个叫face_recognition的命令行工具,以便你可以用命令行对一个文件夹中的图片进行识别操作。

特性

在图片中识别人脸

找到图片中所有的人脸

找到并操作图片中的脸部特征

获得图片中人类眼睛、鼻子、嘴、下巴的位置和轮廓

找到脸部特征有很多超级有用的应用场景,当然你也可以把它用在最显而易见的功能上:美颜功能(就像美图秀秀那样)。

鉴定图片中的脸

识别图片中的人是谁。

你甚至可以用这个软件包做人脸的实时识别。

这里有一个实时识别的例子:https://github.com/ageitgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py

安装

环境要求

  • Python3.3+或者Python2.7
  • MacOS或者Linux(Windows不做支持,但是你可以试试,也许也能运行)

安装步骤

在MacOS或者Linux上安装

首先,确保你安装了dlib,以及该软件的Python绑定接口。如果没有的话,看这篇安装说明:https://gist.github.com/ageitgey/629d75c1baac34dfa5ca2a1928a7aeaf

然后,用pip安装这个软件包:

如果你安装遇到问题,可以试试这个安装好了的虚拟机:https://medium.com/@ageitgey/try-deep-learning-in-python-now-with-a-fully-pre-configured-vm-1d97d4c3e9b

在树莓派2+上安装

看这篇说明:https://gist.github.com/ageitgey/1ac8dbe8572f3f533df6269dab35df65

在Windows上安装

虽然Windows不是官方支持的,但是有热心网友写出了一个Windows上的使用指南,请看这里:https://github.com/ageitgey/face_recognition/issues/175#issue-257710508

使用已经配置好的虚拟机(支持VMWare和VirtualBox)

看这篇说明:https://medium.com/@ageitgey/try-deep-learning-in-python-now-with-a-fully-pre-configured-vm-1d97d4c3e9b

使用方法

命令行接口

如果你已经安装了face_recognition,那么你的系统中已经有了一个名为face_recognition的命令,你可以使用它对图片进行识别,或者对一个文件夹中的所有图片进行识别。

首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片。其中每个人一张图片,图片以人的名字命名。

然后你需要准备另一个文件夹,里面是你要识别的图片。

然后你就可以运行face_recognition命令了,把刚刚准备的两个文件夹作为参数传入,命令就会返回需要识别的图片中都出现了谁。

输出中,识别到的每张脸都单独占一行,输出格式为<图片名称>,<人名>

通过Python模块使用

你可以通过导入face_recognition模块来使用它,使用方式超级简单,文档在这里:https://face-recognition.readthedocs.io

自动找到图片中所有的脸

看看这个例子自己实践一下:https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py

你还可以自定义替换人类识别的深度学习模型。

注意:想获得比较好的性能的话,你可能需要GPU加速(使用英伟达的CUDA库)。所以编译的时候你也需要开启dlib的GPU加速选项。

你也可以通过这个例子实践一下:https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture_cnn.py

如果你有很多图片和GPU,你也可以并行快速识别,看这篇文章:https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_batches.py

自动识别人脸特征

试试这个例子:https://github.com/ageitgey/face_recognition/blob/master/examples/find_facial_features_in_picture.py

识别人脸鉴定是哪个人

这里是一个例子:https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.py

还有更多的说明和例子

请查看:https://github.com/ageitgey/face_recognition

本文作者:佚名

来源:51CTO

时间: 2017-11-01

3行Python代码完成人脸识别的相关文章

25 行 Python 代码实现人脸检测——OpenCV 技术教程

OpenCV OpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python. 它使用机器学习算法在图像中搜索人的面部.对于人脸这么复杂的东西,并没有一个简单的检测能对是否存在人脸下结论,而需要成千上万的特征匹配.算法把人脸识别任务分解成数千个小任务,每个都不难处理.这些任务也被称为分类器. 对于类似于人脸的对象,你或许需要不少于 6000 个分类器,每一个都需要成功匹配(当然,有容错率),才能检测出人脸.但这有一个问题:对于人脸识别,算法从左上角开始计算一个个数据

50行Python代码制作一个计算器

简介 在这篇文章中,我将向大家演示怎样向一个通用计算器一样解析并计算一个四则运算表达式.当我们结束的时候,我们将得到一个可以处理诸如 1+2*-(-3+2)/5.6+3样式的表达式的计算器了.当然,你也可以将它拓展的更为强大. 我本意是想提供一个简单有趣的课程来讲解 语法分析 和 正规语法(编译原理内容).同时,介绍一下 PlyPlus,这是一个我断断续续改进了好几年的语法解析 接口.作为这个课程的附加产物,我们最后会得到完全可替代eval()的一个安全的四则运算器. 如果你想在自家的电脑上试试

与Java虚拟机对干?无需操作系统直接运行Python代码

  Josh Triplett以一个"笑点"开始了他在PyCon 2015上的演讲:移植Python使其无需操作系统运行:他和他的英特尔同事让解释器能够在GRUB引导程序.BIOS或EFI系统上运行.连演讲的休息时间也没放过,他有很多有趣的要说的事情,还有许多让人大开眼界的演示. Python在Boot Loader上运行的最初想法是能够测试硬件,像BIOS,可扩展固件接口(EFI)以及高级配置和电源接口(ACPI),而无需去写一些"一次性测试项目"程序集.传统来说

求一个java的人脸识别系统源码

问题描述 求一个java的人脸识别系统源码 用java语言开发,可以进行人脸识别的程序,算法不要太复杂,能进行简单的人脸识别就行了 解决方案 求人脸识别系统源代码!!! 解决方案二: 一个完整的项目demo http://download.csdn.net/detail/apbbbbb/9525308

手把手教你用1行命令实现人脸识别

环境要求 Ubuntu 17.10 Python 2.7.14 环境搭建 1. 安装 Ubuntu17.10 > 安装步骤在这里. 2. 安装 Python2.7.14 (Ubuntu17.10 默认Python版本为2.7.14) 3. 安装 git .cmake . python-pip # 安装 git  $ sudo apt-get install -y git  # 安装 cmake  $ sudo apt-get install -y cmake  # 安装 python-pip 

基于HTML5 的人脸识别技术核心代码

绍一个网站,演示了通过 HTML5 + JavaScript 技术实现的人脸识别,目前仅适用于 Chrome浏览器,首先需要在地址栏输入 about:flags ,然后找到"启用 MediaStream" 这一项,点击"启用" 后重启 Chrome 浏览器 然后打开下面地址: http://neave.com/webcam/html5/face/ 当你摇头晃脑的时候,那副眼镜会跟着移动并帮你戴上眼镜. 你可以查看网页源码来了解具体的实现细节. -----------

C#实现基于ffmpeg加虹软的人脸识别

原文:C#实现基于ffmpeg加虹软的人脸识别 关于人脸识别 目前的人脸识别已经相对成熟,有各种收费免费的商业方案和开源方案,其中OpenCV很早就支持了人脸识别,在我选择人脸识别开发库时,也横向对比了三种库,包括在线识别的百度.开源的OpenCV和商业库虹软(中小型规模免费). 百度的人脸识别,才上线不久,文档不太完善,之前联系百度,官方也给了我基于Android的Example,但是不太符合我的需求,一是照片需要上传至百度服务器(这个是最大的问题),其次,人脸的定位需要自行去实现(捕获到人脸

基于 OpenCV 的人脸识别

##一点背景知识 OpenCV 是一个开源的计算机视觉和机器学习库.它包含成千上万优化过的算法,为各种计算机视觉应用提供了一个通用工具包.根据这个项目的关于页面,OpenCV 已被广泛运用在各种项目上,从谷歌街景的图片拼接,到交互艺术展览的技术实现中,都有 OpenCV 的身影. OpenCV 起始于 1999 年 Intel 的一个内部研究项目.从那时起,它的开发就一直很活跃.进化到现在,它已支持如 OpenCL 和 OpenGL 等现代技术,也支持如 iOS 和 Android 等平台. 1

计算机视觉库/人脸识别开源软件

中文车牌识别系统 EasyPR EasyPR 是一个开源的中文车牌识别系统. EasyPR是一个中文的开源车牌识别系统,其目标是成为一个简单.灵活.准确的车牌识别引擎. 相比于其他的车牌识别系统,EasyPR有如下特点: 它基于openCV这个开源库,这意味着所有它的代码都可以轻易的获取. 它能够...更多EasyPR信息 最近更新: EasyPR 1.3 Beta 发布,中文车牌识别系统 发布于 7个月前   开源生物特征识别库 OpenBR OpenBR 是一个用来从照片中识别人脸的工具.还