python人脸识别库(20行python代码实现人脸识别)
python人脸识别库
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.jpg" alt="python人脸识别库(20行python代码实现人脸识别)" border="0" /> 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" alt="python人脸识别库(20行python代码实现人脸识别)" border="0" /> cv2.waitkey( 0 ) cv2.destroyallwindows() detect(filename) |
识别后:
以上所述是小编给大家介绍的python人脸识别详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
原文链接:https://blog.csdn.net/qq_41841569/article/details/83687812
- pythonmatplotlib散点图怎么画(python使用matplotlib画柱状图、散点图)
- python简单代码实例(Python实现 版本号对比功能的实例代码)
- python爬虫经典步骤(详解python爬虫系列之初识爬虫)
- ubuntu python3.7安装(详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本)
- python贪吃蛇项目介绍(python简单贪吃蛇开发)
- python时间类的实现(Python日期时间Time模块实例详解)
- python电脑端微信自动化(python使用wxpy实现微信消息防撤回脚本)
- python 导入指定文件夹的模块(Python实现的在特定目录下导入模块功能分析)
- python四舍五入怎么用(python3 小数位的四舍五入用两种方法解决round 遇5不进)
- pythonflask编写接口(Python Flask框架模板操作实例分析)
- python里面的time如何用(详解python:time模块用法)
- pythonfor循环嵌套if语句(Python基础教程之if判断,while循环,循环嵌套)
- python下载后依然打不开文件(解决python打不开文件文件不存在的问题)
- python怎样看字符unicode编码(Python3中编码与解码之Unicode与bytes的讲解)
- python3正则表达式详解(Python正则表达式和re库知识点总结)
- python电脑自动发送邮件(python学习--使用QQ邮箱发送邮件代码实例)
- 经度,世界时间腕表的灵魂(世界时间腕表的灵魂)
- 阿里最新财报公布 三季度营收增长3 ,将增加150亿美元回购额度 在美股价小涨(阿里最新财报公布)
- 赵薇时胖时瘦 最近变美少女 原因在这里 躺着就变瘦(赵薇时胖时瘦最近变美)
- 学会这26种姿势,你就可以和兵哥哥切磋了(你就可以和兵哥哥切磋了)
- 吴彦祖陈冠希 恩怨 ,失去曾让他流泪的女友,终遇走过18年真爱(吴彦祖陈冠希恩怨)
- 痴情男神 吴彦祖 与妻子恋爱8年,结婚10年,家庭幸福美满(痴情男神吴彦祖)
热门推荐
- mysql数据类型图解(MySQL数据库主从技术GTID大揭秘)
- laravel图文消息后台处理(laravel利用中间件防止未登录用户直接访问后台的方法)
- js 图片编辑处理库(javascript input图片上传及预览,FileReader预览图片)
- dedecms注册怎么给权限(织梦DedeCms系统未审核文档禁止动态浏览修改方法view.php)
- vuefor指令使用教程(Vue必学知识点之forEach的使用)
- 织梦dedecms专题页制作详细教程(dedecms教程之dedecms生成速度提速的方法)
- jquery的each的用法
- JavaScript命名空间
- myeclipse连接mysql数据库的方法(教你用eclipse连接mysql数据库)
- x86与x64的区别?云服务器如何选择操作系统?(x86与x64的区别?云服务器如何选择操作系统?)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9