haar特征_案例:基于HAAR特征的人脸检测

本文介绍了OpenCV中基于HAAR特征的人脸检测技术,涉及关键概念如HAAR-like特征、AdaBoost算法、级联和积分图计算。通过实例演示如何使用Python实现人脸检测,包括所需素材、检测算法模型及步骤。
摘要由CSDN通过智能技术生成

        OpenCV是一个关于计算机视觉和机器学习的软件库,其中就包括人脸检测与识别。在早期人们主要研究人脸识别来识别特定人物的身份,随着环境需求的发展以及技术的进步,人脸检测逐渐发展起来。

        当前人脸检测的方法主要分为两大类:基于知识和基于统计。前者是检测器官特征和器官之间的几何关系,后者是像素相似性度量。我们今天介绍的基于HAAR特征分类器的人脸检测方法属于基于统计的方法。在学习原理之前,我们需要先了解关于HAAR分类器的几个概念:HAAR-like特征、AdaBoost算法、级联、积分图快速计算

        HAAR-like特征:在一张图片中,我们需要首先划分一个个的特征区域,然后来二分计算区域的像素值的差(白色像素和减去黑色像素和),以此来得到一个特征值(反映了图像的灰度变化情况)。HAAR特征分为四类:边缘特征、线性特征、中心特征和对角线特征。如眼睛和脸颊的对比、鼻梁和鼻梁两侧、嘴唇与脸颊周围的对比等。

a35d41b8e38c70065811b3a026dd1cfb.png

        AdaBoost算法:该算法的上一代算法提出弱学习和强学习的观点,弱学习的识别率要比随机识别好一点,还存在过渡训练导致识别不准确以及算法准确率下限的问题,因此提出强学习算法,adaboost算法。

        级联:通过组合多个强分类器来进一步处理图像信息,提高识别的准确率和算法的识别准确度。

        积分图快速计算:为了解决在计算图像样本所产生的的巨大的计算量,提出一种积分图的快速计算方法,可以遍历一次图像就可以求出图像中所有区域像素和的快速算法,极大程度的提升效率。

实践操作

        1.我们可以使用哪些素材进行人脸检测?

            带有人脸的图像、有人脸出现的视频、实时获取摄像头视频等

        2.我们需要使用检测人脸的算法模型是?

            基于HAAR分类特征的检测算法

        3.人脸检测的基本步骤是?

          (1)加载人脸信息(图片);

          (2)加载HAAR分类器检测模型;

          (3)调用检测函数,调参数,优化检测结果;

          (4)矩形框框起来标注;

编程工具

577eb8723b808a5a28a464b5b210e80f.png

python代码

import cv2 as cv        /*导入OpenCV模块*/

pathj = 'D:\\opencv\\images\\1.jpg'        

   /*准备加载图片的绝对路径*/

pathf = 'D:\\opencv\\build\\etc\\haarcascades\\haarcascade_frontalface_alt.xml'

     /*准备加载自带的关于人脸的haar分类器的路径*/

img = cv.imread(pathj)         /*加载图片*/

cv.imshow('input',img)         /*显示原图片*/

face_cascade = cv.CascadeClassifier(pathf)      

     /*加载haar分类器*/

faces = face_cascade.detectMultiScale(img,1.656,10,0,(30,30),(150,150))    

   /*调用detectMultiScale()函数检测人脸*/

for(x,y,width,heigh) in faces:        

    cv.rectangle(img,(x,y),(x+width,y+heigh),(0,0,255),2,cv.LINE_8,0)

           /*将识别人脸用红色矩形框框起来*/

cv.imshow('img',img)               /*显示识别后图像*/

cv.waitKey(0)

cv.destroyAllWindows()         /*按任意键关闭显示图像的窗口*/

(注意:调节红色参数,来调节绘制矩形的准确度;其中1.656这个参数不能小于1)

实践效果

1e0d9e7edc2d40a28f4c49482b1bf68f.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值