[雪峰磁针石博客]人脸识别工具:face_recognition
简介
face_recognition使用世界上最简单的人脸识别工具,在Python或命令行中识别和操作人脸。
使用dlib最先进的人脸识别技术构建而成,并具有深度学习功能。 该模型在Labeled Faces in the Wild基准中的准确率为99.38%。
另外还提供了face_recognition命令行工具!
快速入门
本节我们基于ubuntu16.04,python3,使用如下图片:
- 快速入门
face_recognition
import face_recognition image = face_recognition.load_image_file("test0.jpg") face_locations = face_recognition.face_locations(image,model="cnn") print(face_locations)
执行结果:
$ python3 quick.py [(203, 391, 447, 147)]
model选择模型,默认为hog,该模式很多图片是无法识别的,为此一般用采用更精确但是速度更慢的cnn模型。
- 显示图片:
quick2.py
import face_recognition from PIL import Image image = face_recognition.load_image_file("test0.jpg") face_locations = face_recognition.face_locations(image,model="cnn") top, right, bottom, left = face_locations[0] print("A face is located at pixel location Top: {}, Left: {}, Bottom: {}, Right: {}".format(top, left, bottom, right)) face_image = image[top:bottom, left:right] pil_image = Image.fromarray(face_image) pil_image.show() pil_image.save("quick2.jpg")
执行后会在当前目录生成quick2.jpg,并在屏幕显示美女头像。
- 上口红
quick3.py
import face_recognition from PIL import Image, ImageDraw image = face_recognition.load_image_file("test1.jpg") face_landmarks_list = face_recognition.face_landmarks(image) print(face_landmarks_list) for face_landmarks in face_landmarks_list: pil_image = Image.fromarray(image) d = ImageDraw.Draw(pil_image, 'RGBA') # Gloss the lips d.polygon(face_landmarks['top_lip'], fill=(150, 0, 0, 128)) d.polygon(face_landmarks['bottom_lip'], fill=(150, 0, 0, 128)) d.line(face_landmarks['top_lip'], fill=(150, 0, 0, 64), width=3) d.line(face_landmarks['bottom_lip'], fill=(150, 0, 0, 64), width=3) pil_image.show() pil_image.save("quick3.jpg")
上口红之前:
上口红之后:
个人总是觉得没上口红的更好看,偏偏有那么多喜欢化成妖怪的女人。
- 框选
下面代码把脸部框选出来,注意:face_locations返回的图片和PIL使用的坐标不同,为此需要一定的转换。
quick4.py
import face_recognition from PIL import Image, ImageDraw image = face_recognition.load_image_file("test1.jpg") locations = face_recognition.face_locations(image) print(locations) pos = locations[0] pil_image = Image.fromarray(image) d = ImageDraw.Draw(pil_image, 'RGBA') d.rectangle((pos[3], pos[0], pos[1], pos[2])) pil_image.show() pil_image.save("quick4.jpg")
本文代码地址: https://github.com/china-testing/python-api-tesing/tree/master/python3_libraries/face_recognition
其他
- 旋转
face_recognition只能识别头在上嘴在下的图片比较好,如果你的照片是横向的,有可能要旋转才能识别。
sleep.py
import face_recognition from PIL import Image, ImageDraw image = face_recognition.load_image_file("sleep.jpg") locations = face_recognition.face_locations(image) print(locations) img = Image.open("sleep.jpg") img = img.rotate(90,expand=1) img.save("/tmp/tmp.jpg") image = face_recognition.load_image_file("/tmp/tmp.jpg") locations = face_recognition.face_locations(image) print(locations) pil_image = Image.fromarray(image) pil_image.show()
执行结果:
[] [(166, 424, 255, 335)]
当然此图使用cnn模式不用旋转也是可以识别的,但是我们实验中发现一些图片,比如戴墨镜的横向图片,还是要旋转才能识别。
注意旋转方向是逆时针的。
参考资料
-
本文涉及的python测试开发库 请在github上点赞,谢谢!
- 讨论 钉钉免费群21745728 qq群144081101 567351477
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
人工智能包括约束求解器吗?
以下是翻译Optaplanner创始人Geoffrey De Smet的一篇文章《Does A.I. include constraint solvers?》。 因为英语及中文表达习惯的差异,以该博文发表示Optaplanner官网,其描述的问题及概念具有一定的上下文关联性;因此,为了认还不太熟悉Optaplanner的同学更容易理解,令文章更符合中文母语读者的阅读习惯,我并没有完全按字面生硬直译。其中添加了一些扩展性的意译,基本上能在脱离Optaplanner官网上下文情况下,一定程序上表达到Geoffrey的意思吧,有不正之处请大家多多指点。为谢! 人工智能的寒冬已经过去,这几年以来,人工智能技术的关注点又出现了增长。不仅仅是我们这些人工智能方面的极客,商界也因看到了其潜力,而进行了投资。为了获得资本青睐,一些研究项目也被重新塑造,贴上人工智能技术的名头。那么,约束求解器能否也使用人工智能的标签呢? 历史小知识:第5代(计算机)计划 近20年以来,人工智能是个不太受人待见的语汇,要了解其原因,我们需要回到1982年,当时日本决定大力投资第5代计算机- 一个人工智能平台,将要超越现有...
- 下一篇
免费人脸识别工具可以跟踪社交媒体网站上的人
2018年8月9日,斯瓦蒂·汗德瓦尔(Swati Khandelwal image.png image.png 社交媒体监控软件Trustwave的安全研究人员发布了新的开源工具,该工具使用面部识别技术在大量社交媒体网络中定位目标。 面部识别工具:Social Mapper,可自动搜索八个社交媒体平台的目标,包括Facebook,Instagram,Twitter,LinkedIn,Google +,俄罗斯社交网站VKontakte,以及中国的微博和豆瓣 - 基于他们的名字和图片。 该工具的创建者声称他们开发了Social Mapper情报收集工具,主要用于帮助渗透测试者和红客进行社会工程攻击。 尽管可以手动执行名称和图片的搜索,但Social Mapper可以更快地自动执行此类扫描,并且可以同时大规模的处理数百或数千人。 “在线进行情报收集是非常耗时的过程,通常首先尝试在各种社交媒体网站上找到的在线状态,”Trustwave在一篇详细介绍该工具的博客文章中解释道。 Social Mapper通过三个阶段运行: 阶段1 - 根据您提供的输入创建目标列表(由名称和图片组成)。该列表可以通...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境