点上方蓝字计算机视觉联盟获取更多干货

在右上方 ··· 设为星标 ★,与你不见不散

编辑: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世界上最简洁的人脸识别库!相关推荐

  1. Github标星3w+,热榜第一,如何用Python实现所有算法

    点击"小詹学Python",选择"星标"公众号 重磅干货,第一时间送达 大数据文摘出品 编译:周素云.蒋宝尚 学会了Python基础知识,想进阶一下,那就来点算 ...

  2. 【经典干货】GitHub标星10万+,史上最强Google面试指南!

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 一位从1997年就入行的Web工程师,立志要成为Google软件工程师,3年前写下 ...

  3. Github 标星 3w+,热榜第一,实现所有算法!

    点击"开发者技术前线",选择"星标????" 在看|星标|留言,  真爱 学会了Python基础知识,想进阶一下,那就来点算法吧!毕竟编程语言只是工具,结构算法 ...

  4. 使用Python实现所有算法!Github 标星 3w+,热榜第一

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

  5. GitHub标星3w+的项目,全面了解算法和数据结构知识

    作者 | 程序员小吴 来源 | 五分钟学算法(ID: CXYxiaowu) 导语:今天分享一个开源项目,里面汇总了程序员技术面试时需要了解的算法和数据结构知识,并且还提供了相应的代码,目前 GitHu ...

  6. GitHub 标星 3.2w!史上最全技术面试手册!

    点击上方"码农突围",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 本文转自量子位,作者安妮,编辑 GitHubDaily 技术人员求职面试,单刷 LeetCode 上的 ...

  7. 手机上的机器学习资源!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现!...

    吴恩达机器学习.深度学习,李航老师<统计学习方法>.CS229数学基础等,可以说是机器学习入门的宝典.本文推荐一个网站"机器学习初学者",把以上资源的笔记.代码实现做成 ...

  8. GitHub 标星 44k!史上最全技术面试手册!

    大家好,我是为前端娱乐圈操碎了心的小迷妹,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标. 每天上班必须做的一件事情,就是打开 ...

  9. 阿里巴巴P8架构师传授的这份在GitHub标星75K的微服务笔记为何有如此大的魅力?

    今年的疫情让各位码友们的处境都十分困难,但是我相信大家都能迅速调整好心态,在空闲之余抽出一点点时间用来学习,学到就是赚到,坚持学习技术知识也是对自己百益而无一害."金九银十"也在一 ...

最新文章

  1. ATL CLR MFC Win32 常规 的区别
  2. python学习面向对象_python学习之面向对象学习
  3. 2019牛客暑期多校训练营(第三场)F - Planting Trees (枚举 + 单调队列)
  4. Web应用中避免Form重复提交的三种方案
  5. [Altera在线教学].Altera SERDES应用教学,2小时10分钟,172张胶片
  6. Win10自定义开始菜单磁贴背景颜色及图标
  7. 2022.3.27 学习韩顺平老师java基础
  8. 逼疯UE设计师,不可不知的提升产品用户体验的10个测试方法
  9. CodeBlocks汉化包
  10. ANSYS入门例程笔记
  11. 2022年第十二届APMCM亚太地区数学建模竞赛1月加赛E题翻译以及思路
  12. 有毒气体传感器代替金丝雀和老鼠在矿山
  13. 二线制和四线制传感器的区别_两线制、三线制、四线制传感器的区别和原理
  14. java的23种设计模式法则(权威版)
  15. 压缩图片大小至指定Kb以下
  16. 透明、反光材质护肤品拍摄技巧
  17. 改了计算机名oracle,修改计算机名称导致Oracle的em不能用
  18. 激光SLAM后端优化——雅克比矩阵推导
  19. 酒店微信直播引流获客方案
  20. 3000字干货!如何做好一个BI项目的规划和需求定义?

热门文章

  1. php替换文本域中的换行符,文本域中换行符的替换示例
  2. 上海师范大学计算机技术考研分数线,上海师范大学2019年考研复试分数线已公布...
  3. java代码安全检测机制_全面解析:java中的反射机制,内含代码验证解析
  4. 还在维护吗_你的模具生锈了吗?来了解一下这些防锈维护事项
  5. windows2019域控降级退域
  6. Redhat7 Dell服务器驱动安装(Bin格式)
  7. 手环升级鸿蒙设备名单,定档6月2日!鸿蒙“首批”升级名单公布,共计11款华为机型!...
  8. LeetCode简单题(一)
  9. 执行计划生成及查看的几种方法
  10. LINQ中的Lambda表达式