人脸识别-Haar级联
Posted 进步小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人脸识别-Haar级联相关的知识,希望对你有一定的参考价值。
目录
概念
摄影作品可能包含很多令人愉悦的细节。但是,由于灯光、视角、视距、摄像头抖动以及数字噪声的变化,图像细节变得不稳定。人们在分类时不会受这些物理细节方面差异的影响。 因此,提取出图像的细节对产生稳定分类结果和跟踪结果很有用。这些提取的结果被称为特征,专业的表述为:从图像数据中提取特征。虽然任意像素都可以能影响多个特征,但特征应该比像素少得多。两个图像的相似程度可以通过它们对应特征的欧氏距离来度量。 Haar 特征是一种用于实现实时人脸跟踪的特征。每一个 Haar 特征都描述了相邻图像区域的对比模式。例如,边,顶点和细线都能生成具有判别性的特征。
haar级联数据获取
Releases - OpenCVhttps://opencv.org/releases/page/3/
选择合适的版本。
在 sources 的一个文件夹 data/haarcascades。该文件夹包含了所有 OpenCV 的人脸检测的 XML 文件,这些可用于检测静止图像、视频和摄像头所得到图像中的人脸。
人脸检测器(默认):haarcascade_frontalface_default.xml 人脸检测器(快速 Harr):haarcascade_frontalface_alt2.xml 人脸检测器(侧视):haarcascade_profileface.xml 眼部检测器(左眼):haarcascade_lefteye_2splits.xml 眼部检测器(右眼):haarcascade_righteye_2splits.xml 嘴部检测器:haarcascade_mcs_mouth.xml 鼻子检测器:haarcascade_mcs_nose.xml 身体检测器:haarcascade_fullbody.xml 人脸检测器(快速 LBP):lbpcascade_frontalface.xml
实例操作
原图片:
import cv2 as cv
def face_detect_demo():
#将图片转换为灰度图片
gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
#加载特征数据
face_detector=cv.CascadeClassifier('C:/Users/Desktop/opencv/sources/data/haarcascades/haarcascade_frontalface_default.xml')
faces=face_detector.detectMultiScale(gray)
for x,y,w,h in faces:
cv.rectangle(img,(x,y),(x+w,y+h),color=(0,255,0),thickness=2)
cv.imshow('result',img)
#加载图片
img=cv.imread('face.jpg')
face_detect_demo()
cv.waitKey(0)
cv.destroyAllWindows()
得到结果:
以上是关于人脸识别-Haar级联的主要内容,如果未能解决你的问题,请参考以下文章
使用 OpenCV与 HAAR 级联算法进行人脸检测和人脸识别