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发送伪造的arp请求
Jan 09 Python
Python中easy_install 和 pip 的安装及使用
Jun 05 Python
Python中import机制详解
Nov 14 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
Python自定义线程类简单示例
Mar 23 Python
使用python制作一个为hex文件增加版本号的脚本实例
Jun 12 Python
python celery分布式任务队列的使用详解
Jul 08 Python
解析PyCharm Python运行权限问题
Jan 08 Python
python实现简单坦克大战
Mar 27 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
python中复数的共轭复数知识点总结
Dec 06 Python
常用的Python代码调试工具总结
Jun 23 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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
一个php作的文本留言本的例子(五)
2006/10/09 PHP
PHP设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
IE与firefox之jquery用法区别
2008/10/03 Javascript
jQuery 1.2.x 升? 1.3.x 注意事项
2009/05/06 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
Vue.Draggable实现拖拽效果
2020/07/29 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
Python字符串格式化输出方法分析
2016/04/13 Python
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
解析Python3中的Import
2019/10/13 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
使用 CSS3 中@media 实现网页自适应的示例代码
2020/03/24 HTML / CSS
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
sealed修饰符是干什么的
2012/10/23 面试题
国税会议欢迎词
2014/01/16 职场文书
2014年行风建设工作总结
2014/12/01 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
小学入学感言
2015/08/01 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
2021年最新用于图像处理的Python库总结
2021/06/15 Python
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技