python⼈脸识别第三⽅库_Python基于OpenCV库Adaboost实
现⼈脸识别功能详解
本⽂实例讲述了Python基于OpenCV库Adaboost实现⼈脸识别功能。分享给⼤家供⼤家参考,具体如下:
以前⽤Matlab写神经⽹络的⾯部眼镜识别算法,研究算法逻辑,采集⼤量训练数据,迭代,计算各感知器的系数。。。相当之⿇烦~⽽现在运⽤调⽤pythonOpenCV库Adaboost算法,⽆需知道算法逻辑,⽆需进⾏模型训练,⼈脸识别变得相当之简单了。
需要⽤到的库是opencv(open source computer vision),下载安装⽅式如下:
使⽤pip install numpy语句安装numpy
(如果出现错误:Microsoft Visual C++ 9.0 is required ,使⽤管理员⾝份安装 Microsoft Visual C++ 9.0,重新启动计算机,再使⽤使⽤pip install numpy语句安装numpy
opencv2.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('l')
#haarcascade_l脸部识别⽂件
#l眼部识别⽂件
函数的参数是xml完整路径(具体看你的opencv安装在哪⾥的,在opencv\sources\data\haarcascades下⾯),xml⽂件中是封装好的算法
detectMultiScale()函数,进⾏识别
detectMultiScale(image,scaleFactor,minNeighbors,flags,minSize,maxSize)
最终返回值为识别出的矩阵框[x, y, w, h],(x,y)左上⾓起始坐标,w宽,h⾼
image:⽤于检测的图像
scaleFactor:前后两次相继的扫描中,搜索窗⼝的⽐例系数.例如1.1指将搜索窗⼝依次扩⼤10%。图⽚⼩的时候,⽐例系数尽量⼩能提⾼准确率
minNeighbors:构成检测⽬标的相邻矩形的最⼩个数。⼀般使⽤2or3,为0时返回所有的被检候选矩形框。
rectangle函数opencv
rectangle()函数,在图⽚上画矩阵
image是原始图⽚
(x,y)是矩形左上⾓
(x+w,y+h)是矩形右下⾓
(0,255,0)是矩形的BGR颜⾊, 为红⾊
2, 是绘制矩形的线宽
程序逻辑:
导⼊Haar级联分类器算法,读⼊要处理图⽚,将图⽚变成时候的⼤⼩,⽤detectMultiScale()函数先识别出⼈脸,在原图上框出,然后提取出识别出的⼈脸矩形框,在⼈脸矩形框内识别出眼睛,在原图上框出,展⽰出识别完的图像。
完整程序及注解:
import cv2
face_cascade = cv2.CascadeClassifier('D:\opencv\sources\data\haarcascades/haarcascade_l')
eye_cascade = cv2.CascadeClassifier('D:\opencv\sources\data\haarcascades/l')
img1 = cv2.imread('face1.png')
img = size(img1,(240,320),interpolation=cv2.INTER_LINEAR)
faces = face_cascade.detectMultiScale(img,1.2,2)
for (x,y,w,h) in faces:
face_re = img[y:y+h,x:x+w]#抽取出框出的脸部部分,注意顺序y在前
eyes = eye_cascade.detectMultiScale(face_re)#在框出的脸部部分识别眼睛
for (ex,ey,ew,eh) in eyes:
cv2.imshow('img',img)
key = cv2.waitKey(0)
if key==27:
cv2.destoryWindow('img')
最后po个作者的照骗,展⽰⼀下最终的识别效果:
1--识别前
1——识别后
2——识别前
2——识别后
问题:
1.斜的脸识别率不⾼
2.⼤⼩不同的图⽚识别率不同,所有最好把图⽚处理成差不多⼤⼩的图⽚
3.眼部有遮挡物时,眼睛识别率底,⽐如:有眼睛,有头发
欢迎有能解决上⾯问题的朋友能够交流⼀下~
希望本⽂所述对⼤家Python程序设计有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。