简单矩阵积分图分类器.docx

上传人:b****5 文档编号:6769633 上传时间:2023-01-10 格式:DOCX 页数:17 大小:543.64KB
下载 相关 举报
简单矩阵积分图分类器.docx_第1页
第1页 / 共17页
简单矩阵积分图分类器.docx_第2页
第2页 / 共17页
简单矩阵积分图分类器.docx_第3页
第3页 / 共17页
简单矩阵积分图分类器.docx_第4页
第4页 / 共17页
简单矩阵积分图分类器.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

简单矩阵积分图分类器.docx

《简单矩阵积分图分类器.docx》由会员分享,可在线阅读,更多相关《简单矩阵积分图分类器.docx(17页珍藏版)》请在冰豆网上搜索。

简单矩阵积分图分类器.docx

简单矩阵积分图分类器

简单矩阵积分图分类器

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

1矩形特征与积分图

1.1引言

AdaBoost人脸检测训练算法速度很重要的两方面,特征的选取和特征值的计算。

将矩形作为人脸检测的特征向量,称为矩形特征。

该算法选取了最简单的5个矩形特征模板进行训练,这种特征选取方法的训练速度虽然不快,但是检测效率很高。

Viola提出将积分图(integralimage)应用到特征值的计算之中。

积分图的引用,可以只对图像进行一次遍历计算,就能够在用常量时间完成每个特征值的计算,这使得训练和检测的速度大大提升。

1.2矩形特征RectangleFeature

1.2.1概述

在给定有限的数据情况下,基于特征的检测能够编码特定区域的状态,而且基于特征的系统比基于象素的系统要快得多。

矩形特征对一些简单的图形结构,比如边缘、线段比较敏感,但是其只能描述特定走向(水平、垂直、对角)的结构,因此比较粗略。

如图9,脸部一些特征能够由矩形特征简单地描绘,例如,通常,眼睛要比脸颊颜色更深;鼻梁两侧要比鼻梁颜色要深;嘴巴要比周围颜色更深。

对于一个24×24检测器,其内的矩形特征数量超过160,000个,必须通过特定算法甄选合适的矩形特征,并将其组合成强分类器才能检测人脸。

图9矩形特征在人脸上的特征匹配。

上行是24×24子窗口内

选出的矩形特征,下行是子窗口检测到的与矩形特征的匹配。

 

1.2.2特征模版

使用简单矩形组合作为特征模板。

这类特征模板都是由两个或多个全等的矩形相邻组合而成,特征模板内有白色和黑色两种矩形,并将此特征模板的特征值定义为白色形像素和减去黑色矩形像素和。

最简单的5个特征模板:

 

1.2.3检测器内特征总数

特征模板可以在子窗口内以“任意”尺寸“任意”放置,每一种形态称为一个特征。

找出子窗口所有特征,是进行弱分类训练的基础。

 

1.2.3.1子窗口内的条件矩形

图10计算m*m检测器内所有可能的矩形的数量

以m×m像素分辨率的检测器为例,其内部存在的满足特定条件的所有矩形的总数可以这样计算:

对于m×m子窗口,我们只需要确定了矩形左上顶点

和右下顶点

,即可以确定一个矩形;如果这个矩形还必须满足下面两个条件(称为(s,t)条件,满足(s,t)条件的矩形称为条件矩形):

1)x方向边长必须能被自然数s整除(能均等分成s段);

2)y方向边长必须能被自然数t整除(能均等分成t段);

则,这个矩形的最小尺寸为s×t或t×s,最大尺寸为[m/s]·s×[m/t]·t或[m/t]·t×[m/s]·s;其中[]为取整运算符。

1.2.3.2条件矩形的数量

我们通过下面两步就可以定位一个满足条件的矩形:

1)确定

2)确定A点后,B点只能在图10中阴影内(包括边缘)取值,因此有:

由上分析可知,在m×m子窗口中,满足(s,t)条件的所有矩形的数量为:

1.2.3.3子窗口的特征矩形数量

实际上,(s,t)条件描述了矩形特征的特征,下面列出了不同矩形特征对应的

(s,t)条件:

所以m×m子窗口中所有5种特征模板的特征总数量

,就是分别满足5个(s,t)条件的矩形特征的数量的总和,即:

1.2.3.4结果

下面以24×24子窗口为例,具体计算其特征总数量:

下面列出了,在不同子窗口大小内,特征的总数量:

1.3积分图IntegralImage

1.3.1概念

图11“积分图”与积分的类比

只需要对每个像素进行少量的计算工作,就能得到一幅图像的“积分图”。

“积分图”能够在多种尺度下,使用相同的时间来计算不同的特征,因此大大提高了检测速度。

对于图像内一点A(x,y),定义其积分图ii(x,y)为(如图12):

其中i(x',y')为点(x',y')处的“原始图”,是此点的颜色值;对于灰度图象,其值为0~255。

对于彩色图像,可以先按照人脸色彩空间将其转化为灰度取值。

其中s(x,y)为点(x,y)及其y方向向上所有原始图像之和(如图12),称为“列积分和”,可以定义为:

并定义s(x,0)=0,ii(0,y)=0

图12坐标A(x,y)的积分图定义为其左上角矩形所有像素

之和(图中阴影部分)。

s(x,y)为A(x,y)及其y方向向上所

有像素之和(图中粗黑竖线)

 

首先将每个像素点的值遍历一次,设图像大小为m⨯n,则得到的积分图矩阵(图像上所有像素的积分图)为:

可见,只需要遍历图像一次,迭代m*n*2次,即可以得到整个积分图矩阵。

1.3.2利用积分图计算矩形特征值

1.3.2.1图像区域的积分图计算

如图13,区域D的像素值,可以利用1、2、3、4点的积分图来计算。

图13区域D的像素和可以用积分图计算为:

因为:

=区域A的像素值

=区域A的像素值+区域B的像素值

=区域A的像素值+区域C的像素值

=区域A的像素值+区域B的像素值+区域C的像素值+区域D的像素值

所以解上述方程就可以得到:

 

1.3.2.2矩形特征的特征值计算

以特征模板1为例,如图14。

此特征模板的特征值为:

区域A的像素值-区域B的像素值

由刚才的证明可知:

所以此特征模板的特征值为:

图14矩形特征的特征值计算

由此可见,矩形特征的特征值计算,只与此特征端点的积分图有关,而与图像坐标值无关。

因此,不管此矩形特征的尺度如何,特征值的计算所耗费的时间都是常(timeconstant),而且都只是简单的加减运算。

正因如此,积分图的引入,大大地提高了检测的速度。

其他的矩形特征的特征值计算依此类推。

 

2AdaBoost训练算法

2.1训练基本算法

2.1.1基本算法描述

AdaBoost训练强分类器的算法描述如下

 

2.2弱分类器WeakClassifer

一个弱分类器h(x,f,p,q)由一个特征f,阈值q和指示不等号方向的p组成:

2.2.1特征值f(x)

对于算法中的矩形特征来说,弱分类器的特征值f(x)就是矩形特征的特征值。

由于在训练的时候,选择的训练样本集的尺寸等于检测子窗口的尺寸,检测子窗口的尺寸决定了矩形特征的数量,所以训练样本集中的每个样本的特征相同且数量相同,而且一个特征对一个样本有一个固定的特征值。

对于理想的像素值随机分布的图像来说,同一个矩形特征对不同图像的特征值的平均值应该趋于一个定值:

k。

这个应该很好理解,对于随机分布的像素值,由于矩形特征中的矩形块的大小相同,则每个块内的总像素值应该在统计上是相同的。

特别地,对于有相同数目白块和黑块的矩形特征,这个定值k应为0。

对每一个特征,计算其对所有的一类样本(人脸或者非人脸)的特征值的平均值,最后得到所有特征对所有一类样本的平均值分布。

如图16,显示了20×20子窗口里面的全部78,460个矩形特征对全部2,706个人脸样本和4,381个非人脸样本6的特征值平均数的分布图。

由分布看出,特征的绝大部分的特征值平均值都是分布在0前后的范围内。

出乎意料的是,人脸样本与非人脸样本的分布曲线差别并不大,不过注意到特征值大于或者小于某个值后,分布曲线出现了一致性差别,这说明了绝大部分特征对于识别人脸和非人脸的能力是很微小的,但是存在一些特征及相应的阈值,可以有效地区分人脸样本与非人脸样本。

图16所有矩形特征对所有图片的特征值平均数分布

(横坐标是按特征值平均值排序后的特征编号)

为了更好地说明问题,从78,460个矩形特征中随机抽取了两个特征A和B,这两个特征遍历了2,706个人脸样本和4,381个非人脸样本,计算了每张图像对应的特征值,最后将特征值进行了从小到大的排序.

特征A和特征B的表现大相径庭。

如图17,特征A对人脸和非人脸样本的特征值为0的点几乎处于相同位置(46.5%,51.5%),且都在所有特征的中间范围8(-5%)。

这说明矩形特征A对于人脸和非人脸几乎没有分辨能力。

如图18,特征B对非人脸样本的分布,符合我们的预想,特征值为0的点处于所有特征的中间范围(59.4%),这说明特征B也“看不到”非人脸的特点。

但是对于人脸样本,特征B表现了很一致的倾向性,93.4%的特征在0点的一侧,与非人脸样本的相差34%。

这说明特征B能够相当可靠地分辨人脸和非人脸。

上述的分析说明,确实存在优势的矩形特征,能够在一定的置信范围内区分人脸和非人脸。

由于是使用统计的方法计算人脸图像和非人脸图像的差别,因此最后得到的区分阈值,也只能是在某个概率范围内准确地进行区分。

 

2.2.2阈值q、方向指示符p

由上述的分析,阈值q的含义就清晰可见了。

而方向指示符p用以改变不等

号的方向。

一个弱学习器(一个特征)的要求仅仅是:

它能够以稍低于50%的错误率来区分人脸和非人脸图像,因此上面提到只能在某个概率范围内准确地进行区分就

已经完全足够。

按照这个要求,可以把所有错误率低于50%的矩形特征都找到。

每轮训练,将选取当轮中的最佳弱分类器(在算法中,迭代T次即是选择T个最佳弱分

类器),最后将每轮得到的最佳弱分类器按照一定方法提升(Boosting)为强分类器

下面将说明如何训练并选取最佳弱分类器。

2.2.3弱分类器的训练及选取

训练一个弱分类器(特征f)就是在当前权重分布的情况下,确定f的最优阈值,使得这个弱分类器(特征f)对所有训练样本的分类误差最低。

选取一个最佳弱分类器就是选择那个对所有训练样本的分类误差在所有弱分类器中最低的那个弱分类器(特征)。

对于每个特征f,计算所有训练样本的特征值,并将其排序。

通过扫描一遍排好序的特征值,可以为这个特征确定一个最优的阈值,从而训练成一个弱分类

器(参考图19)。

具体来说,对排好序的表中的每个元素,计算下面四个值:

 

1)全部人脸样本的权重的和T+;

2)全部非人脸样本的权重的和T-;

3)在此元素之前的人脸样本的权重的和S+;

4)在此元素之前的非人脸样本的权重的和S-;

这样,当选取当前元素的特征值

和它前面的一个特征值

之间的数作为阈值时,所得到的弱分类器就在当前元素处把样本分开——也就是说这个阈值

对应的弱分类器将当前元素前的所有元素分类为人脸(或非人脸),而把当前元

素后(含)的所有元素分类为非人脸(或人脸)。

可以认为这个阈值所带来的分类误差为:

e=min(S++(T--S-),S-+(T+-S+))

于是,通过把这个排序的表扫描从头到尾扫描一遍就可以为弱分类器选择使分类误差最小的阈值(最优阈值),也就是选取了一个最佳弱分类器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1