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中何种情况下需要使用断言
Apr 01 Python
python开发之tkinter实现图形随鼠标移动的方法
Nov 11 Python
python pycurl验证basic和digest认证的方法
May 02 Python
Python玩转加密的技巧【推荐】
May 13 Python
Python日志无延迟实时写入的示例
Jul 11 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
Nov 20 Python
使用python-pptx包批量修改ppt格式的实现
Feb 14 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
Python如何爬取qq音乐歌词到本地
Jun 01 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
Python制作数据预测集成工具(值得收藏)
Aug 21 Python
matplotlib bar()实现百分比堆积柱状图
Feb 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不用正则采集速度探究总结
2008/03/24 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
2019/10/17 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
Node.js实现简单聊天服务器
2014/06/20 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
自制微信公众号一键排版工具
2016/09/22 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
Python中常用的8种字符串操作方法
2019/05/06 Python
tensorflow使用range_input_producer多线程读取数据实例
2020/01/20 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
全球知名巧克力品牌:Godiva
2016/07/22 全球购物
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
正隆泰信息技术有限公司上机题
2012/06/14 面试题
汉语专业应届生求职信
2013/10/01 职场文书
毕业生精彩的自我评价分享
2013/10/06 职场文书
党员干部承诺书
2014/03/25 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
仓管员岗位职责范本
2015/04/01 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
Python WSGI 规范简介
2021/04/11 Python
Python办公自动化PPT批量转换操作
2021/09/15 Python