Github | 标星3W+ ! Face Recognition世界上最简洁的人脸识别库!
点上方蓝字计算机视觉联盟获取更多干货
在右上方 ··· 设为星标 ★,与你不见不散
编辑:Sophia
计算机视觉联盟 报道 | 公众号 CVLianMeng
转载于 :Github
【人工智能资源(书籍+视频)全网收集,附下载!】
推荐文章【点击下面可直接跳转】:
OpenCV测量物体的尺寸技能
AI博士笔记系列推荐:
博士笔记 | 周志华《机器学习》手推笔记“神经网络”
本项目是世界上最简洁的人脸识别库,你可以使用Python和命令行工具提取、识别、操作人脸。
本项目的人脸识别是基于业内领先的C++开源库 dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。
Labeled Faces in the Wild是美国麻省大学安姆斯特分校(University of Massachusetts Amherst)制作的人脸数据集,该数据集包含了从网络收集的13,000多张面部图像。
本项目提供了简易的face_recognition
命令行工具,你可以用它处理整个文件夹里的图片。
特性
从图片里找到人脸
定位图片中的所有人脸:
import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_locations = face_recognition.face_locations(image)
识别人脸关键点
识别人脸关键点,包括眼睛、鼻子、嘴和下巴。
import face_recognition
image = face_recognition.load_image_file("your_file.jpg")
face_landmarks_list = face_recognition.face_landmarks(image)
识别人脸关键点在很多领域都有用处,但同样你也可以把这个功能玩坏,比如本项目的 digital make-up自动化妆案例(就像美图秀秀一样)。
识别图片中的人是谁
import face_recognition
known_image = face_recognition.load_image_file("biden.jpg")
unknown_image = face_recognition.load_image_file("unknown.jpg")biden_encoding = face_recognition.face_encodings(known_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]results = face_recognition.compare_faces([biden_encoding], unknown_encoding)
你也可以配合其它的Python库(比如opencv)实现实时人脸检测:
看这个案例 实时人脸检测 。
安装
环境配置
Python 3.3+ or Python 2.7
macOS or Linux
Windows并不是我们官方支持的,但也许也能用
不同操作系统的安装方法
在 Mac 或者 Linux上安装本项目
First, make sure you have dlib already installed with Python bindings:
第一步,安装dlib和相关Python依赖:
如何在macOS或者Ubuntu上安装dlib
Then, install this module from pypi using pip3
(or pip2
for Python 2):
pip3 install face_recognition
如果你遇到了幺蛾子,可以用Ubuntu虚拟机安装本项目,看下面这个教程。 如何使用Adam Geitgey大神提供的Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在镜像中.
在 Mac 或者 Linux上安装本项目 2
修改你的pip镜像源为清华镜像,然后使用pip install face_recognition
,可以自动帮你安装各种依赖,包括dlib。只是在安装dlib的时候可能会出问题,因为dlib需要编译,出现的问题一般是gcc
或者g++
版本的问题,所以在pip install face_recognition
之前,可以通过在命令行键入
export CC=/usr/local/bin/gcc
export CXX=/usr/local/bin/g++
来指定你gcc和g++对应的位置,(这两句话会临时修改当前终端的环境变量/usr/local/bin/gcc对应你自己gcc或者g++所在目录)。
在树莓派上安装
树莓派安装指南
在Windows上安装
虽然本项目官方并不支持Windows,但一些大神们摸索出了在Windows上运行本项目的方法:
@masoudr写的教程:如何在Win10系统上安装 dlib库和 face_recognition项目
使用Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在这个镜像中
如何使用Adam Geitgey大神提供的Ubuntu虚拟机镜像文件安装配置虚拟机,本项目已经包含在镜像中(需要电脑中安装VMWare Player 或者 VirtualBox)
使用方法
命令行界面
当你安装好了本项目,你可以使用两种命令行工具:
face_recognition
- 在单张图片或一个图片文件夹中认出是谁的脸。face_detection
- 在单张图片或一个图片文件夹中定位人脸位置。
face_recognition
命令行工具
face_recognition
命令行工具可以在单张图片或一个图片文件夹中认出是谁的脸。
首先,你得有一个你已经知道名字的人脸图片文件夹,一个人一张图,图片的文件名即为对应的人的名字:
然后,你需要第二个图片文件夹,文件夹里面是你希望识别的图片:
然后,你在命令行中切换到这两个文件夹所在路径,然后使用face_recognition
命令行,传入这两个图片文件夹,然后就会输出未知图片中人的名字:
$ face_recognition ./pictures_of_people_i_know/ ./unknown_pictures//unknown_pictures/unknown.jpg,Barack Obama
/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
输出结果的每一行对应着图片中的一张脸,图片名字和对应人脸识别结果用逗号分开。
如果结果输出了unknown_person
,那么代表这张脸没有对应上已知人脸图片文件夹中的任何一个人。
face_detection
命令行工具
face_detection
命令行工具可以在单张图片或一个图片文件夹中定位人脸位置(输出像素点坐标)。
在命令行中使用face_detection
,传入一个图片文件夹或单张图片文件来进行人脸位置检测:
$ face_detection ./folder_with_pictures/examples/image1.jpg,65,215,169,112
examples/image2.jpg,62,394,211,244
examples/image2.jpg,95,941,244,792
输出结果的每一行都对应图片中的一张脸,输出坐标代表着这张脸的上、右、下、左像素点坐标。
END
声明:本文来源于网络
如有侵权,联系删除
联盟学术交流群
扫码添加联盟小编,可与相关学者研究人员共同交流学习:目前开设有人工智能、机器学习、计算机视觉、自动驾驶(含SLAM)、Python、求职面经、综合交流群扫描添加CV联盟微信拉你进群,备注:CV联盟
最新热文荐读
GitHub | 计算机视觉最全资料集锦(含实验室、算法及AI会议)
Github | 标星1W+清华大学计算机系课程攻略!
GitHub | Facebook重磅开源目标检测工具!标星超2万+
Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源
收藏 | 2020年AI、CV、NLP顶会最全时间表!
收藏 | 博士大佬总结的Pycharm 常用快捷键思维导图!
笔记 | 深度学习综述思维导图(可下载)
笔记 | 深度神经网络综述思维导图(可下载)
内推 | 4399小游戏
内推 | 无人驾驶~小马智行Pony.ai 2020
内推 | 虎牙直播2020校招
内推 | 字节跳动内推
前沿 | 阿里达摩院发布2019十大科技趋势!未来无限可期!
点个在看支持一下吧
Github | 标星3W+ ! Face Recognition世界上最简洁的人脸识别库!相关推荐
- Github标星3w+,热榜第一,如何用Python实现所有算法
点击"小詹学Python",选择"星标"公众号 重磅干货,第一时间送达 大数据文摘出品 编译:周素云.蒋宝尚 学会了Python基础知识,想进阶一下,那就来点算 ...
- 【经典干货】GitHub标星10万+,史上最强Google面试指南!
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 一位从1997年就入行的Web工程师,立志要成为Google软件工程师,3年前写下 ...
- Github 标星 3w+,热榜第一,实现所有算法!
点击"开发者技术前线",选择"星标????" 在看|星标|留言, 真爱 学会了Python基础知识,想进阶一下,那就来点算法吧!毕竟编程语言只是工具,结构算法 ...
- 使用Python实现所有算法!Github 标星 3w+,热榜第一
点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...
- GitHub标星3w+的项目,全面了解算法和数据结构知识
作者 | 程序员小吴 来源 | 五分钟学算法(ID: CXYxiaowu) 导语:今天分享一个开源项目,里面汇总了程序员技术面试时需要了解的算法和数据结构知识,并且还提供了相应的代码,目前 GitHu ...
- GitHub 标星 3.2w!史上最全技术面试手册!
点击上方"码农突围",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 本文转自量子位,作者安妮,编辑 GitHubDaily 技术人员求职面试,单刷 LeetCode 上的 ...
- 手机上的机器学习资源!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现!...
吴恩达机器学习.深度学习,李航老师<统计学习方法>.CS229数学基础等,可以说是机器学习入门的宝典.本文推荐一个网站"机器学习初学者",把以上资源的笔记.代码实现做成 ...
- GitHub 标星 44k!史上最全技术面试手册!
大家好,我是为前端娱乐圈操碎了心的小迷妹,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标. 每天上班必须做的一件事情,就是打开 ...
- 阿里巴巴P8架构师传授的这份在GitHub标星75K的微服务笔记为何有如此大的魅力?
今年的疫情让各位码友们的处境都十分困难,但是我相信大家都能迅速调整好心态,在空闲之余抽出一点点时间用来学习,学到就是赚到,坚持学习技术知识也是对自己百益而无一害."金九银十"也在一 ...
最新文章
- ATL CLR MFC Win32 常规 的区别
- python学习面向对象_python学习之面向对象学习
- 2019牛客暑期多校训练营(第三场)F - Planting Trees (枚举 + 单调队列)
- Web应用中避免Form重复提交的三种方案
- [Altera在线教学].Altera SERDES应用教学,2小时10分钟,172张胶片
- Win10自定义开始菜单磁贴背景颜色及图标
- 2022.3.27 学习韩顺平老师java基础
- 逼疯UE设计师,不可不知的提升产品用户体验的10个测试方法
- CodeBlocks汉化包
- ANSYS入门例程笔记
- 2022年第十二届APMCM亚太地区数学建模竞赛1月加赛E题翻译以及思路
- 有毒气体传感器代替金丝雀和老鼠在矿山
- 二线制和四线制传感器的区别_两线制、三线制、四线制传感器的区别和原理
- java的23种设计模式法则(权威版)
- 压缩图片大小至指定Kb以下
- 透明、反光材质护肤品拍摄技巧
- 改了计算机名oracle,修改计算机名称导致Oracle的em不能用
- 激光SLAM后端优化——雅克比矩阵推导
- 酒店微信直播引流获客方案
- 3000字干货!如何做好一个BI项目的规划和需求定义?
热门文章
- php替换文本域中的换行符,文本域中换行符的替换示例
- 上海师范大学计算机技术考研分数线,上海师范大学2019年考研复试分数线已公布...
- java代码安全检测机制_全面解析:java中的反射机制,内含代码验证解析
- 还在维护吗_你的模具生锈了吗?来了解一下这些防锈维护事项
- windows2019域控降级退域
- Redhat7 Dell服务器驱动安装(Bin格式)
- 手环升级鸿蒙设备名单,定档6月2日!鸿蒙“首批”升级名单公布,共计11款华为机型!...
- LeetCode简单题(一)
- 执行计划生成及查看的几种方法
- LINQ中的Lambda表达式