2019-6-27 opencv人脸识别(Face Detection with Haar Feature-based Cascade Classifiers)

本文涉及内容如下:

  • Haar分类原理
  • Opencv中实现-图像和视频
  • OpenCV自带haar特征训练的级联分类器分析

官网参考https://docs.opencv.org/3.4.0/d7/d8b/tutorial_py_face_detection.html
上来就说了opencv使用的是基于Haar特征的级联分类(Haar Feature-based Cascade Classifiers)来进行人脸识别。
同时还支持眼睛识别。。。

基于Haar特征的级联分类是Paul Viola和Michael Jones在2001年提出的。它是一种基于机器学习的方法,其中级联函数是从许多正负图像中提取特征,训练出来的。然后用于检测其他图像中的对象。

Haar级联分类器,通过对比分析相邻图像区域来判断给定图像或子图像与已知对象是否匹配。

Haar分类原理

理解Haar分类原理,需要有机器学习知识基础。官网解释的前半部分不是很清楚,我网上找了另外一篇,很不错。https://www.cnblogs.com/henuliulei/p/10719208.html

首先Viola提出的haar特征如下:

在这里插入图片描述
图a和b是edge features
图c和d是line features
图e是four-rectangles features

然后Rainer改进了这些特征,提出了更多的haar特征。如下图所示:
在这里插入图片描述

最后,把这些一堆堆带条纹的矩形特征中的任意一个矩形放到人脸区域上,就像下图那样,然后将白色区域的像素和减去黑色区域的像素和,得到的值我们暂且称之为人脸特征值。
如果把这个矩形放到一个非人脸区域,那么计算出的特征值应该和人脸特征值是不一样的,而且越不一样越好,所以这些方块的目的就是把人脸特征量化,以区分人脸和非人脸。
在这里插入图片描述

Haar特征值 反映了图像的灰度变化情况。
例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。
但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构。
通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。

现在有2个问题产生了。
问题1:
刚才已经解释过,特征值是通过白色区域的像素和减去黑色区域的像素和得到。但是就算是一个24*24的窗口也会产生超过16万个特征,这个计算量实在太大了。
为了解决这个问题ÿ

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值