使用Haar特征进行人脸识别

这篇博客对2001年那篇划时代的paper:Rapid Objection Using a Boosted Cascade of Simple Features进行一个简要的解析。这篇文章之后人脸识别的效果有了很大的提升。后来还被应用到了OpenCV之中。

在这里插入图片描述
人脸检测一般来说就是在人脸检测时用一个子窗口在待检测的图片窗口中 不断的移位滑动, 子窗口每到一个位置,就会计算出该区域的特征, 然后用训练好的级联分类器对该特征进行筛选,一旦该特征通过了所有强分类器的筛选, 则判定该区域为人脸。这里用到了Haar特征,那么首先来介绍一下Haar特征。

Haar特征

在这里插入图片描述
Haar特征的基本原理就是认为不同区域的像素值是不同的,这和卷积神经网络的filter十分的类似,是一种边界检测。比如说,对于人的眼睛和非眼睛区域,就十分的不同,以此这个特征来作为一种检测标准。Haar特征的检测方式就是白色区域的像素和减去黑色区域的像素和。

实际上,Haar特征可以有不同的类型,可以有很多的变换。
在这里插入图片描述
以此来进行多尺度的特征检测。

有了Haar特征检测,接下来还会面临一个问题,就是到底什么样的特征可以算是人脸特征呢,多少个特征就可以勾画成人脸特征检测器,检测人脸达到较好的效果呢?这里,使用Adaboost算法对模型进行训练。

积分图加速

使用计算图可以加速Haar特征的计算。
在这里插入图片描述
积分图的计算是该点左上角所有值得和。区域D的值 = L4 + L1 – L2 – L3。第一步,计算某个像素区域的积分图 第二步,使用积分图的值可以计算某个像素区域 像素点的和。将像素区域转换成积分图之后,计算Haar特征只需要加加减减 即可,大大的提高了计算效率。

Adaboost算法

在这里插入图片描述
Adaboost算法的目的是来确定需要什么样的Haar特征分类器,以及什么样的Haar特征分类器的组合。这里,对Adaboost算法进行一个简要介绍。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Boost算法的思想就是哪个分类没分到,就把权重加大,下一次分类器就有更多精力关注到错误的分类器上面。最后就可以看到,类别就被正确的区分了。

这样,一个弱分类器也就变成了强分类器。

最后呢,人脸检测是多个分类器的组合形式。
在这里插入图片描述

详细课程内容介绍

发布了189 篇原创文章 · 获赞 233 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/Einstellung/article/details/89352853