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
- python人脸识别实时教程(python dlib人脸识别代码实例)
- python字符串的拼接与分割(Python字符串通过'+'和join函数拼接新字符串的性能测试比较)
- python3html怎么转换成pdf(Python实现html转换为pdf报告生成pdf报告功能示例)
- pythonshell入门教程(python获取交互式ssh shell的方法)
- python中numpy常用函数(使用Python的SymPy库解决数学运算问题的方法)
- python中字符串截取规则(Python中的字符串切片截取字符串的详解)
- python创建字典的代码(Python创建字典的八种方式)
- python如何读取文件(Python从文件中读取数据的方法讲解)
- 使用python爬取网易云音乐(15行Python代码实现网易云热门歌单实例教程)
- python6个基础数据类型(计算机二级python学习教程3 python语言基本数据类型)
- python出现modify怎么办(解决Python找不到ssl模块问题 No module named _ssl的方法)
- python用指针合并两个有序数组(Python3实现计算两个数组的交集算法示例)
- opencv人脸识别算法(python利用Opencv实现人脸识别功能)
- python学生信息管理系统教程(学生信息管理系统Python面向对象版)
- python接口管理系统(基于Python实现用户管理系统)
- python设置微信(利用python实现在微信群刷屏的方法)
- 英语难学吗(初中英语难学吗)
- 如何追女孩子(如何追女孩子的技巧和方法)
- 是不是快乐全被你拿走了(而是你得到的)
- 世界上只有妈妈好(世界上只有妈妈好的歌词)
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
- 直播带货能赚到很多钱吗(直播带货能赚到很多钱吗现在)
热门推荐
- 用python查看运行进程(在Python运行时动态查看进程内部信息的方法)
- virtualbox 创建步骤(virtualbox上安装OpenSuse的方法)
- sql行转列的应用(SQL查询语句行转列横向显示实例解析)
- sqlserver查询自定义时间数据(SQLServer查询某个时间段购买过商品的所有用户)
- idea关联mysql数据库(IDEA无法连接mysql数据库的6种解决方法大全)
- treeview绑定xml
- apache中配置虚拟主机的作用(apache基于端口创建虚拟主机的示例)
- SQLServer数据库中开启CDC导致事务日志空间被占满的原因(SQLServer数据库中开启CDC导致事务日志空间被占满的原因)
- Uncaught RangeError: Maximum call stack size exceeded的常见原因
- 搭建web服务器与设置(怎样在Win7系统中搭建Web服务器)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9