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

2019 年 4 月 6 日 新智元





  新智元报道   

来源:Medium

编辑:元子

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

 

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


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


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


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

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

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


面部检测


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



系统需求:


  • Python 3.3+ or Python 2.7

  • macOS or Linux


安装指南:


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


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


pip3 install face_recognition


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


face_locations = face_recognition.face_locations(image) top, right, bottom, left = face_locations[0] face_image = image[top:bottom, left:right] 


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


面部识别


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


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


  • 在图像中查找面部

  • 分析面部特征

  • 比较2个输入面的特征

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


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


encoding_1 = face_recognition.face_encodings(image1)[0encoding_2 = face_recognition.face_encodings(image1)[0results = face_recognition.compare_faces([encoding_1],encoding_2,tolerance = 0.50


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





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


情绪检测



人类习惯于察言观色。现在,计算机在读懂人类面部情绪方面,做的越来越好了。所以计算机是如何做到检测图像中的情绪呢?这里我们使用一个开源数据集,来自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


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


model = load_model("./emotion_detector_models/model.hdf5"predicted_class = np.argmax(model.predict(face_image) 


结论


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


参考链接:

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


更多阅读:



【2019新智元 AI 技术峰会精彩回顾


2019年3月27日,新智元再汇AI之力,在北京泰富酒店举办AI开年盛典——2019新智元AI技术峰会。峰会以“智能云•芯世界“为主题,聚焦智能云和AI芯片的发展,重塑未来AI世界格局。


同时,新智元在峰会现场权威发布若干AI白皮书,聚焦产业链的创新活跃,评述AI独角兽影响力,助力中国在世界级的AI竞争中实现超越。


嘉宾精彩演讲:


登录查看更多
2

相关内容

人脸检测(Face Detection)是一种在任意数字图像中找到人脸的位置和大小的计算机技术。它可以检测出面部特征,并忽略诸如建筑物、树木和身体等其他任何东西。有时候,人脸检测也负责找到面部的细微特征,如眼睛、鼻子、嘴巴等的精细位置。
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
35+阅读 · 2019年12月15日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
计算机视觉最佳实践、代码示例和相关文档
专知会员服务
18+阅读 · 2019年10月9日
人脸专集3 | 人脸关键点检测(下)—文末源码
计算机视觉战队
19+阅读 · 2019年4月8日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
推荐|基于Python的人脸识别库,离线识别率高达99.38%!
全球人工智能
3+阅读 · 2017年12月25日
人脸检测与识别总结
计算机视觉战队
21+阅读 · 2017年11月29日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
基于Python的开源人脸识别库:离线识别率高达99.38%
炼数成金订阅号
5+阅读 · 2017年7月28日
可怕,40 行代码的人脸识别实践
51CTO博客
3+阅读 · 2017年7月22日
Arxiv
20+阅读 · 2020年6月8日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
DPOD: Dense 6D Pose Object Detector in RGB images
Arxiv
5+阅读 · 2019年2月28日
Arxiv
4+阅读 · 2018年12月20日
Arxiv
4+阅读 · 2018年3月19日
VIP会员
相关资讯
人脸专集3 | 人脸关键点检测(下)—文末源码
计算机视觉战队
19+阅读 · 2019年4月8日
1500+ FPS!目前最快的CNN人脸检测算法开源
极市平台
25+阅读 · 2019年3月15日
Python | 50行代码实现人脸检测
计算机与网络安全
3+阅读 · 2018年1月23日
推荐|基于Python的人脸识别库,离线识别率高达99.38%!
全球人工智能
3+阅读 · 2017年12月25日
人脸检测与识别总结
计算机视觉战队
21+阅读 · 2017年11月29日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
基于Python的开源人脸识别库:离线识别率高达99.38%
炼数成金订阅号
5+阅读 · 2017年7月28日
可怕,40 行代码的人脸识别实践
51CTO博客
3+阅读 · 2017年7月22日
相关论文
Arxiv
20+阅读 · 2020年6月8日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
DPOD: Dense 6D Pose Object Detector in RGB images
Arxiv
5+阅读 · 2019年2月28日
Arxiv
4+阅读 · 2018年12月20日
Arxiv
4+阅读 · 2018年3月19日
Top
微信扫码咨询专知VIP会员