20行python代码实现人脸识别


Posted in Python onMay 05, 2019

20行python代码实现人脸识别

OpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python。

它使用机器学习算法在图像中搜索人的面部。对于人脸这么复杂的东西,并没有一个简单的检测能对是否存在人脸下结论,而需要成千上万的特征匹配。算法把人脸识别任务分解成数千个小任务,每个都不难处理。这些任务也被称为分类器。

对于类似于人脸的对象,你或许需要不少于 6000 个分类器,每一个都需要成功匹配(当然,有容错率),才能检测出人脸。但这有一个问题:对于人脸识别,算法从左上角开始计算一个个数据块,不停问“这是张脸吗”。每个数据块有超过 6000 个检测,加起来的计算量会达到数百万级别,计算机很可能会让你等得花儿都谢了。

OpenCV 使用 cascades 来避免这种情况。Cascade 是什么?最佳答案已经在字典里了:一条瀑布或者连续瀑布。

好比连续瀑布,OpenCV cascade 把人脸检测问题分解为好几步。对于每个数据块,它都进行一个粗略、快速的检测。若通过,会再进行一个更仔细的检测,以此不断类推。该算法有 30 到 50 个这样的阶段,或者说 cascade。

只有通过全部阶段,算法才会判断检测到人脸。这样做的好处是:大多数图形都会在头几步就产生否定反馈,算法因而不需要在它上面测试所有 6000 个特征,大大节省了时间。相对于“正常流程”耗费数个小时,这可以实时实现人脸检测。

软件环境:

python3+openCV

代码:

#encoding:utf-8
import cv2
filename = "/users/Downloads/20181102142518.png"
def detect(filename):
 # haarcascade_frontalface_default.xml存储在package安装的位置
face_cascade = cv2.CascadeClassifier("/usr/local/lib/python3.6/site-packages/cv2/data/haarcascade_frontalface_default.xml")
 img = cv2.imread(filename)
 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
 #传递参数是scaleFactor和minNeighbors,分别表示人脸检测过程中每次迭代时图像的压缩率以及每个人脸矩形保留近邻数目的最小值
 #检测结果返回人脸矩形数组
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
 for (x, y, w, h) in faces:
 img = cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)
 cv2.namedWindow("Human Face Result!")
 cv2.imshow("Human Face Result!", img)
 cv2.imwrite("images/Face.jpg", img)
 cv2.waitKey(0)
 cv2.destroyAllWindows()
detect(filename)

20行python代码实现人脸识别

识别后:

20行python代码实现人脸识别

以上所述是小编给大家介绍的python人脸识别详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python抽象类的新写法
Jun 18 Python
python获取代理IP的实例分享
May 07 Python
无法使用pip命令安装python第三方库的原因及解决方法
Jun 12 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 Python
python内存管理机制原理详解
Aug 12 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
Nov 07 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
Jan 25 Python
python Django 反向访问器的外键冲突解决
May 20 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 Python
Python eval函数介绍及用法
Nov 09 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
Dec 01 Python
使用python实现mqtt的发布和订阅
May 05 #Python
Python向excel中写入数据的方法
May 05 #Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 #Python
python使用MQTT给硬件传输图片的实现方法
May 05 #Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
May 04 #Python
Python实现数据结构线性链表(单链表)算法示例
May 04 #Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 #Python
You might like
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
资料注册后发信小技巧
2006/10/09 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
PHP PDOStatement::bindParam讲解
2019/01/30 PHP
laravel5.6实现数值转换
2019/10/23 PHP
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
jquery的each方法使用示例分享
2014/03/25 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
基于nodejs+express(4.x+)实现文件上传功能
2015/11/23 NodeJs
javascript定义类和类的实现实例详解
2015/12/01 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
Python的面向对象思想分析
2015/01/14 Python
介绍Python的Django框架中的QuerySets
2015/04/20 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
2018/09/19 Python
解决python "No module named pip" 的问题
2018/10/13 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
String这个类型的class为何定义成final?
2012/11/13 面试题
介绍一下write命令
2012/09/24 面试题
入党申请自荐书范文
2014/02/11 职场文书
学校春季防火方案
2014/06/08 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
python 单机五子棋对战游戏
2022/04/28 Python