OpenCV-Python(2)人脸识别(面部眼睛笑脸)

本文介绍了使用OpenCV-Python进行人脸识别的方法,包括Haar级联和LBP算法。Haar级联检测器支持人脸、眼睛等检测,而LBP算法因快速且避免浮点计算而被青睐。在解决cv2.CascadeClassifier加载xml报错问题后,通过调用相应函数,可以实现高效的人脸和眼睛检测。
摘要由CSDN通过智能技术生成

学习参考素材:
OpenCV人脸检测-Haar级联和LBP
子豪兄opencv-python教程

问题解决:
cv2.CascadeClassifier(’------.xml’)报错
error: (-215:Assertion failed) !empty() in function ‘cv::CascadeClassifier::detectMultiScale’
确定cascade文件路径是否在相应的目录下
解决方案:
改成cv2.CascadeClassifier(cv2.data.haarcascades+’ ')

人脸检测-Haar级联
OpenCV 中的 Haar 级联检测器支持人脸检测、微笑、眼睛与嘴巴检测等,通过加载这些预先训练的 Haar 模型数据可以实现相关的对象检测。

Haar 小波基函数,因为其满足对称性,因此对人脸这种生物对称性良好的对象特别适合用来做检测。 常见的Haar特征分为三类:边缘特征;线性特征;中心特征和对角线特征。

Haar特征值反映了图像的对比度与梯度变化。不同特征可以进行多种组合,生成更加复杂的级联特征

人脸检测-LBP算法
LBP算法的基本原理是,将像素点A的值与其最邻近的8个像素点的值逐一比较,假设中心像素值大于相邻像素值则则相邻像素点赋值为1,否则赋值为0

使用的圆形LBP算子,由于使用圆形来作为窗口,部分领域可能不会取实际像素点而是虚拟像素值(使用双线性插值算法计算灰度值)

比较
优势: OpenCV中使用LBP特征数据检测人脸比使用Haaris数据要快,原因在于LBP特征不会产生小数数据,避免了浮点数计算开销。

LBP的函数调用和HAAR级联一样,只是加载的xml不同
加载LBP算法: detector=cv2.CascadeClassifier(cv2.data.lbpcascade+“lbpcascade_frontalface_improved.xml”)

import cv2
# 导入人脸/人眼级联分类器引擎,'.xml'文件里包含训练出来的人脸特征,cv2.data.haarcascades即为存放所有级联分类器模型文件的目录
face_cascade = cv2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值