Project

General

Profile

人脸检测算法及其芯片实现关键技术研究

Haar-like特征

Haar-like特征是Paul Viola提出的一种简单矩形特征,因类似Haar小波而得名。它使用AdaBoost训练算法根据大量人脸正负样本,从庞大的特征库中选取人脸特征。描述的是相邻的两类矩形区间的灰度差,反映了图像局部的灰度变化。这种特征表示的形式简单,有利于快速计算,同时形式多样。
(a.边缘特征)

(b.线特征)

(c.特定方向特征)

Haar-like特征值定义为白色矩形区域的像素和见黑色矩形区域像素和。
Haar-like所有矩阵权重和面积的关系:

积分图

积分图相对于原始的像素表示的图,只是把代表原图的数字矩阵每个位置的指改变为其左上角区域所有像素值的总和。这样的好处在于对于计算原图任何一个矩形内的像素值之和,只需要其积分图相应矩形四个顶点数值相加减即可。平方积分图类似于积分图,其每一点表示该点左上角像素灰度值的平方和,可用于快速计算方差。

级联分类器

Haar-like特征的集合构成分类其,综合分类其中每个Haar-like特征的特征之就可以判断衣服图像是否是人脸图像。不同的Haar-like特征在分类其中的影响不同。AdaBoost算法为每个Haar-like特征设定一个阈值a1和两个正负影响因子。当计算出的Haar-like特征值大于阈值时,取正影响因子,反之取负影响因子。检测算法累计分类器中所有Haar-like特征的影响因子,与阈值a2作比较,如果和大于a2,则判定图像是人脸窗口,反之则图像不是人脸窗口。
人脸检测通过大量Haar-like特征的组合来提高精确度,通常需要数百到数千个特征。这导致人脸检测的计算量非常大。因此可以用级联分类器的方法实现快速人脸检测。基本思想是将分类器按照先简单后复杂的顺序排列。排在前面的简单分类其包含较少的Haar-like特征,检测准确度也较低,但漏检率很低。后面分类器较复杂,准确度较高,漏检率较低。

AdaBoost算法

Adaptive Boosting算法的核心即是通过不断调整权重来运作的。随机猜测一个问题的是与否,将会有50%的正确率。如果一个假设能够稍微地提高正确率,那么这个假设就是弱学习算法,得到这个算法的过程称为弱学习。
1.弱分类器的训练

弱分类器的训练技术细节:
a.特征值的计算应该是每个haarfeature中不同位置的像素乘以此位置在haarfeature中的权重再相加。
b.每个haarfeature阈值的计算应该是先将此haarfeature的特征值排序,然后选取一个阈值序列,其每个阈值是两个相邻特征值的平均值。对于每个阈值,比较弱分类器在此阈值下的错误率,选取最小错误率的阈值。
c.弱分类器的训练非常慢,按照此方法训练大概每训练一个弱分类器要一个小时。主要慢的地方在于特征值的排序(nlogn)和最小阈值的选取(n^2),如果要大幅度提升速度可以采用双阈值的方式和判定图像,这会使最小阈值的时间长变为n。[[Face Detection:基于简单局部特征学习的物体检测方法]]

Hla.jpg View (2.97 KB) 金 怡泽, 07/02/2013 11:14 PM

Hlb.jpg View (3.29 KB) 金 怡泽, 07/02/2013 11:18 PM

Hlc.jpg View (1.96 KB) 金 怡泽, 07/02/2013 11:20 PM

Hl.PNG View (994 Bytes) 金 怡泽, 07/02/2013 11:36 PM

级联分类器.jpg View (22.6 KB) 金 怡泽, 07/23/2013 10:16 AM

弱分类器训练.jpg View (99.1 KB) 金 怡泽, 07/31/2013 09:04 AM

doublethreshold.jpg View (15.5 KB) 金 怡泽, 07/31/2013 09:25 AM

双阈值.jpg View (79.1 KB) 金 怡泽, 07/31/2013 09:28 AM

231011_081021041周薇娜.pdf (3 MB) 金 怡泽, 07/31/2013 03:10 PM