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简单实现刷新智联简历
Mar 30 Python
CentOS7.3编译安装Python3.6.2的方法
Jan 22 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 Python
python 实现识别图片上的数字
Jul 30 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
python读取ini配置的类封装代码实例
Jan 08 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
python 下载文件的多种方法汇总
Nov 17 Python
python通用数据库操作工具 pydbclib的使用简介
Dec 21 Python
python openpyxl模块的使用详解
Feb 25 Python
两行代码解决Jupyter Notebook中文不能显示的问题
Apr 24 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
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
jquery遍历input取得input的name
2009/04/27 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中Collection的使用小技巧
2014/08/18 Python
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python算法之图的遍历
2017/11/16 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
python去除文件中重复的行实例
2018/06/29 Python
python文件排序的方法总结
2020/09/13 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
汉语言文学职业规划
2014/02/14 职场文书
三八节主持词
2014/03/17 职场文书
迟到检讨书范文
2015/01/27 职场文书
全国助残日活动总结
2015/05/11 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL