人工智能-OpenCV+Python实现人脸识别(人脸检测)

人工智能-OpenCV+Python实现人脸识别(人脸检测)


在OpenCV中使用Haar特征检测人脸,那么需要使用OpenCV提供的xml文件(级联表)在haarcascades目录下。这张级联表有一个训练好的AdaBoost训练集。首先要采用样本的Haar特征训练分类器,从而得到一个级联的AdaBoost分类器。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。


当安装好后OpenCV3,有个/haarcascades文件夹,包含了所有OpenCV的人脸检测XML文件。


haarcascade_eye.xml


haarcascade_eye_tree_eyeglasses.xml


haarcascade_frontalcatface.xml


haarcascade_frontalcatface_extended.xml


haarcascade_frontalface_alt.xml


haarcascade_frontalface_alt_tree.xml


haarcascade_frontalface_alt2.xml


haarcascade_frontalface_default.xml


haarcascade_fullbody.xml


haarcascade_lefteye_2splits.xml


haarcascade_licence_plate_rus_16stages.xml


haarcascade_lowerbody.xml


haarcascade_profileface.xml


haarcascade_righteye_2splits.xml


haarcascade_russian_plate_number.xml


haarcascade_smile.xml


haarcascade_upperbody.xml


上述xml分别是人脸不同的部位模型,我们使用如下模型来识别人脸


haarcascade_frontalface_alt.xml


本期分享一下如何使用此模型来识别图片中的人脸


import cv2 # 导入


img = cv2.imread(r’D: oxtableexampleimageli.jpg’) # 导入图片


face = cv2.CascadeClassifier(r’D:Program Files (x86)Anaconda3pkgslibopencv-3.4.1-h875b8b8_3Libraryetchaarcascadeshaarcascade_frontalface_alt.xml’) # 导入人脸模型


gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) # 灰度


faces = face.detectMultiScale(gray)


for (x, y, w, h) in faces: # 5个参数,一个参数图片 ,2 坐标原点,3 识别大小,4,颜色5,线宽


cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)


cv2.namedWindow(‘powers’) # 创建窗口


cv2.imshow(‘powers_li’, img) # 显示图片


cv2.waitKey(0) # 暂停窗口


cv2.destroyWindow() # 关闭窗口


# 关闭窗口


cv2.destroyAllWindows()


人工智能-OpenCV+Python实现人脸识别(人脸检测)


使用OpenCV的自带的模型库检测人脸很容易实现,下期我们分享一下如何从视频中检测到人脸


人工智能-OpenCV+Python实现人脸识别(人脸检测)

郑重声明:网站刊登/转载此文出于传递更多信息之目的 ,并不意味着赞同其观点或论证其描述,不负责其真实性 。