目录
一、背景介绍
我们会经常听到人脸检测和人脸识别这两个名词,但是你真的分清了他两者的含义了吗?简单地讲,人脸检测的目标就是将图像中的人脸位置进行标记,通常使人脸位置以矩形框(bounding box)的形式给出,也就是说人脸识别就是找出图像中的人脸。在人脸识别中,其目标是判断图像中的人脸到底是哪一个人的,通常人脸识别包含了人脸检测步骤,也就是我先找出来图像中的人脸,再判断这个人脸是谁。
下面简单说明一下人脸检测的大体流程和思路,该流程思路其实为传统目标检测的具体化应用,也可以移植应用在其他的目标检测场景中,唯一不同的就是检测的具体目标不一样而已。例如,我可以将检测的目标换成小猫、小狗等。
1.1 人脸检测分类器训练流程
- 构建人脸数据库,其中包含人脸的正负样本:
<1> 正样本:包含我们想要检测的人脸样本
<2> 负样本:不含有人脸的样本,如衣服、墙壁等的图片 - 使用正负样本进行训练,得到二分类器
- 分类器接受固定大小的输入图像,并判断输入的图像是否为人脸
1.2 人脸检测测试样例检测流程
经过上面的训练,我们已经得到了一个人脸的分类预训练模型,能够检测图片是否含有人脸,这里强调一点,预训练模型中使用的训练图像一般和需要检测的图像存在较大的差异:训练集一般就是一张图像含有一张人脸,如下面的灰度图中人脸数据集;待检测图像就可能里面含有很多个人脸,如下面的THE9图片。

那么对于一张预训练模型未曾见过的待检测图像,又是如何进行检测的呢?如上面的THE9图片中,由于人脸可能出现在图像的任何位置,在检测时我们可以使用滑动窗口算法,用大小固定的窗口对图像从上都下、从左到右进行扫描,判断每一个扫描框中的子图是否为人脸。同时,为了实现检测不同大小的人脸,可以缩放扫描窗口或缩放图像、构造图像特征金字塔等,对缩放后的图像使用滑动窗口进行扫描。
1.3 人脸检测使用的特征
通过上面的讲解,已经大致了解的人脸检测的流程,但在使用上面的流程进行人脸检测时,我们往往会对图像进行特征提取,而并不是直接使用原始的训练图像或测试时每一个扫描框中的子图进行人脸检测。因此我们也能够得到下面的人脸检测流程:

在人脸检测中,我们能够提取多种不同的特征用于检测,像LBP特征、Hog特征等,但是在本文我们主要讲解Haar-Like特征。
二、Haar-Like特征
在2001年,Viola和Jones提出使用积分图计算Haar-Like特征,使用级联的AdaBoost分类器构造检测器,并进行人脸检测的方法,该方法和之前的方法在检测速度和精度上都得到了提高,其流程如下:
- 计算积分图
- 根据积分图,计算Haar-Like特征值
- 使用AdaBoost训练强分类器
- 讲多个强分类器级联,得到级联分类器,进行人脸检测
2.1 Haar特征介绍
Haar-Like具有以下的简要特征:
- 特征模板内有白色和黑色两种矩形
- 模板的特征值 = = = 白色区域内像素值的和 − - − 黑色区域内像素值的和 (一般公式)
- Haar-Like特征值反映了图像的灰度变化情况
Haar(哈尔)特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。下图展示了基本的Haar特征。

对于图中的A, B和D这类特征,特征数值计算公式为: v = Σ 白 − Σ 黑 v=Σ_白-Σ_黑 v=Σ白−Σ黑,而对于C来说,计算公式如下: v = Σ 白 − 2 × Σ 黑 v=Σ_白-2×Σ_黑 v=Σ白−2×Σ黑;之所以将黑色区域像素和乘以2,是为了使两种矩形区域中像素数目一致。如下图, Σ 白 Σ_白 Σ白为所有青色区域内像素值的和, Σ 黑 Σ_黑 Σ黑为所有紫色区域内像素值的和。

Haar-Like思想是脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深。同样对于其他目标,如眼睛等,也可以用一些矩形特征来表示。我们希望当把矩形放到人脸区域计算出来的特征值和放到非人脸区域计算出来的特征值差别越大越好,这样就可以用来区分人脸和非人脸。并且使用特征比单纯地使用像素点具有很大的优越性,并且速度更快。

R.Lienhart和J.Maydt对Haar特征进行扩展,如下图,从而实现了更多特征提取的可能。但是,这种矩形特征只能对一些简单的图形结构,像边缘、线段比较敏感。

在实际的应用中,通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。上图的特征模板称为“特征原型”;特征原型在图像子窗口中扩展(平移伸缩)得到的特征称为“矩形特征”;矩形特征的值称为“特征值”。矩形特征可位于图像任意位置,大小也可以任意改变,所以矩形特征值是矩形模版类别、矩形位置和矩形大小这三个因素的函数。故类别、大小和位置的变化,使得很小的检测窗口含有非常多的矩形特征,如:在24*24像素大小的检测窗口内矩形特征数量可以达到16万个。所以直接使用模板计算,会产生很大的计算量。
2.2 haar特征计算之积分图
为了能够快速的计算Haar特征,积分图就展示了其强大。积分图就是只遍历一次图像就可以求出图像中任一矩形区域像素和的快速算法,大大的提高了图像特征值计算的效率。如下图所示,积分图上的点 ( x , y ) (x,y) (x,y)的值等于图像左上角到点 ( x , y ) (x,y) (x,y)构成的矩形区域内所有点的像素值之和。

我们使用 i i ( i , j ) ii(i,j) ii(i,j)表示积分图上 ( i , j ) (i,j) (i,j)处的值,用 f ( k , l ) f(k,l) f(k,l)表示原图像在点 ( k , l ) (k,l) (k,l)的像素值,则可以得到积分图的公式:

本文深入解析Haar特征在人脸检测中的应用,包括特征计算、归一化处理及级联分类器的使用,旨在提升目标检测的速度和精度。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



