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实现在windows服务中新建进程的方法
Jun 30 Python
深入解析Python中的线程同步方法
Jun 14 Python
python爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
python爬虫框架talonspider简单介绍
Jun 09 Python
对python中return和print的一些理解
Aug 18 Python
简单实现python画圆功能
Jan 25 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
详解python执行shell脚本创建用户及相关操作
Apr 11 Python
10款最好的Python开发编辑器
Jul 03 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
python 爬取腾讯视频评论的实现步骤
Feb 18 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
如何获得PHP相关资料
2006/10/09 PHP
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
php.ini中date.timezone设置分析
2011/07/29 PHP
解析PHP 5.5 新特性
2013/07/02 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
jQuery 操作XML入门
2008/12/25 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
jQuery实现控制文字内容溢出用省略号(…)表示的方法
2016/02/26 Javascript
javascript html实现网页版日历代码
2016/03/08 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
python实现用户答题功能
2018/01/17 Python
Python类的继承用法示例
2019/01/31 Python
Python CSV文件模块的使用案例分析
2019/12/21 Python
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
教师自荐信范文
2013/12/09 职场文书
带薪年假请假条
2014/02/04 职场文书
2014年五四青年节活动方案
2014/03/29 职场文书
礼貌问候语大全
2015/11/10 职场文书