展会信息港展会大全

8行代码实现人脸检测、人脸识别以及情绪检测,准确度还不错
来源:互联网   发布日期:2019-04-06 19:26:02   浏览:25761次  

导读:新智元报道 来源:Medium 编辑:元子 【新智元导读】实现人脸检测、人脸识别以及情绪检测最少需要多少代码?8行!目前在人脸识别方面已经做的非常成熟了,但对于开发者来说,对效率的追求是永远不会停止的。通过不断精简代码,目前能够同时实现上述3个功能所...

8行代码实现人脸检测、人脸识别以及情绪检测,准确度还不错

新智元报道

来源:Medium

编辑:元子

【新智元导读】实现人脸检测、人脸识别以及情绪检测最少需要多少代码?8行!目前在人脸识别方面已经做的非常成熟了,但对于开发者来说,对效率的追求是永远不会停止的。通过不断精简代码,目前能够同时实现上述3个功能所需的最少代码是8行,代码已在Github开源。

人类具有识别和区分面部的天生能力,但人类也存在脸盲的现象。现在计算机也能够识别并区分人脸,并且这项技术已经非常成熟。人脸检测和识别可以用来改善访问和安全性,就像最新的Apple iPhone一样(参见下面的gif),用户可以在没有实体支付卡(例如银行卡、信用卡等)的情况下,实现刷脸移动支付、启用犯罪识别并允许个性化的医疗保健和其他服务。

人脸检测和识别是一个被广泛研究的课题,在网上可以找到大量的资源。今天向大家展示的一个最简单的实现方式。为了找出最简化、同时又具备一定准确度的实现,本问作者尝试了多个开源项目,而且还创建了一个pipeline,只需8行代码就可以对任何输入图像进行人脸检测,人脸识别和情感理解! 代码yiji在Github上开源的。

通过这8行代码,我们要实现以下3个功能:

面部检测:能够检测任何输入图像或帧中的面部位置。 输出是检测到的面的边界框坐标

面部识别:将多个面部进行比较以识别哪些面部属于同一个人。 这是通过比较面嵌入向量来完成的

情绪检测:将脸上的情绪分类为快乐,愤怒,悲伤,中立,惊讶,厌恶或恐惧

面部检测

面部检测是pipeline的第一部分。使用python库的Face Recognition,这库非常易于安装并且在检测面部时非常准确。此库扫描输入图像并返回所有检测到的面的边界框坐标,如下所示:

8行代码实现人脸检测、人脸识别以及情绪检测,准确度还不错

系统需求:

Python 3.3+ or Python 2.7

macOS or Linux

安装指南:

首先确保你已经安装了dlib。如果没有可以谷歌如何安装。

然后通过下面命令进行安装(缺人你的Python版本,如果是2就把pip3改成pip2)

下面的代码段显示了如何使用face_recognition库来检测面部

有关安装人脸识别和使用它的完整说明也在Github上

面部识别

面部识别用于验证两张脸是否相同。面部识别的使用在安全性、生物指标、娱乐、人身安全等方面有着巨大的需求和价值。用于面部检测的python库face_recognition也可以用于面部识别。

测试显示,该库具有良好的性能。给定两张脸进行匹配,最终得出对比结果为True或False。面部识别涉及的步骤是

在图像中查找面部

分析面部特征

比较2个输入面的特征

如果匹配则返回True,否则返回False

执行此操作的代码段如下所示。我们为两张脸创建脸部的编码矢量,然后使用内置函数来比较矢量之间的距离。

现在用下面两张图来测试模型:

8行代码实现人脸检测、人脸识别以及情绪检测,准确度还不错

8行代码实现人脸检测、人脸识别以及情绪检测,准确度还不错

如图所示,我们有两张不同姿势的莱昂纳多迪卡普里奥的脸。甚至第一个照片里的脸还不是正面镜头。使用上面代码进行识别,我们的人脸识别程序能够确定这两张脸属于同一个人!

情绪检测

8行代码实现人脸检测、人脸识别以及情绪检测,准确度还不错

人类习惯于察言观色。现在,计算机在读懂人类面部情绪方面,做的越来越好了。所以计算机是如何做到检测图像中的情绪呢?这里我们使用一个开源数据集,来自Kaggle的Face Emotion Recognition(FER ),并构建了一个CNN来检测情绪。我们定义情绪可分为7类:快乐,悲伤,恐惧,厌恶,愤怒,无所谓和惊讶。

首先让我们在Keras中构建一个6层卷积神经网络(CNN),并使用图像增强来提高模型性能。尝试了许多不同的模型之后,我们找出了最佳实现,并将此开源,读者可以访问以下链接查看代码:

https://github.com/priya-dwivedi/face_and_emotion_detection/blob/master/src/EmotionDetector_v2.ipynb

现在你可以使用以下两行代码加载预训练模型并在图像上运行它:

结论

如你所见,面部识别在今天看来,已经是一个非常简单的任务,你甚至仅仅使用8行代码就可以实现。当然精确度可能有待商榷,但起码在一半情况下是完全具备可用性的。

参考链接:

https://towardsdatascience.com/face-detection-recognition-and-emotion-detection-in-8-lines-of-code-b2ce32d4d5de


赞助本站

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港