Python基于OpenCV库Adaboost实现人脸识别功能详解
Python / 管理员 发布于 7年前 392
本文实例讲述了Python基于OpenCV库Adaboost实现人脸识别功能。分享给大家供大家参考,具体如下:
以前用Matlab写神经网络的面部眼镜识别算法,研究算法逻辑,采集大量训练数据,迭代,计算各感知器的系数。。。相当之麻烦~而现在运用调用pythonOpenCV库Adaboost算法,无需知道算法逻辑,无需进行模型训练,人脸识别变得相当之简单了。
需要用到的库是opencv(open source computer vision),下载安装方式如下:
使用
pip install numpy
语句安装numpy(如果出现错误:Microsoft Visual C++ 9.0 is required <unable to find vcvarsall.bat>,使用管理员身份安装 Microsoft Visual C++ 9.0,重新启动计算机,再使用使用
pip install numpy
语句安装numpyopencv2.4.10下载
下载之后解压(随便解压到哪里),将解压目录opencv文件夹中,build->python->2.7->x86下的文件cv2.pyd 复制到python2.7\Lib\site-packages 中
测试是否安装成功,执行解压目录下的sources\samples\python\drawing.py或者进入python环境,使用
import cv2
首先讲讲需要用到的新函数:
CascadeClassifier()
函数,导入分类器
cv2.CascadeClassifier('xxxxx.xml')#haarcascade_frontalface_alt.xml脸部识别文件#haarcascade_eye.xml眼部识别文件
函数的参数是xml完整路径(具体看你的opencv安装在哪里的,在opencv\sources\data\haarcascades下面),xml文件中是封装好的算法
detectMultiScale()
函数,进行识别
detectMultiScale(image,scaleFactor,minNeighbors,flags,minSize,maxSize)
rectangle()
函数,在图片上画矩阵
cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2)
程序逻辑:
导入Haar级联分类器算法,读入要处理图片,将图片变成时候的大小,用detectMultiScale()函数先识别出人脸,在原图上框出,然后提取出识别出的人脸矩形框,在人脸矩形框内识别出眼睛,在原图上框出,展示出识别完的图像。
完整程序及注解:
import cv2face_cascade = cv2.CascadeClassifier('D:\opencv\sources\data\haarcascades/haarcascade_frontalface_alt.xml')eye_cascade = cv2.CascadeClassifier('D:\opencv\sources\data\haarcascades/haarcascade_eye.xml')img1 = cv2.imread('face1.png')img = cv2.resize(img1,(240,320),interpolation=cv2.INTER_LINEAR)faces = face_cascade.detectMultiScale(img,1.2,2)for (x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,x+h),(255,0,0),2)#用颜色为BGR(255,0,0)粗度为2的线条在img画出识别出的矩型 face_re = img[y:y+h,x:x+w]#抽取出框出的脸部部分,注意顺序y在前 eyes = eye_cascade.detectMultiScale(face_re)#在框出的脸部部分识别眼睛 for (ex,ey,ew,eh) in eyes: cv2.rectangle(face_re,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)cv2.imshow('img',img)key = cv2.waitKey(0)if key==27: cv2.destoryWindow('img')
最后po个作者的照骗,展示一下最终的识别效果:
1--识别前
1――识别后
2――识别前
2――识别后
问题:
1.斜的脸识别率不高
2.大小不同的图片识别率不同,所有最好把图片处理成差不多大小的图片
3.眼部有遮挡物时,眼睛识别率底,比如:有眼睛,有头发
欢迎有能解决上面问题的朋友能够交流一下~
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号