简单矩阵积分图弱分类器

上传人:平*** 文档编号:10605755 上传时间:2017-10-09 格式:DOC 页数:16 大小:656.34KB
返回 下载 相关 举报
简单矩阵积分图弱分类器_第1页
第1页 / 共16页
简单矩阵积分图弱分类器_第2页
第2页 / 共16页
简单矩阵积分图弱分类器_第3页
第3页 / 共16页
简单矩阵积分图弱分类器_第4页
第4页 / 共16页
简单矩阵积分图弱分类器_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《简单矩阵积分图弱分类器》由会员分享,可在线阅读,更多相关《简单矩阵积分图弱分类器(16页珍藏版)》请在金锄头文库上搜索。

1、1 矩形特征与积分图1.1 引言AdaBoost人脸检测训练算法速度很重要的两方面,特征的选取和特征值的计算。将矩形作为人脸检测的特征向量,称为矩形特征。该算法选取了最简单的5个矩形特征模板进行训练,这种特征选取方法的训练速度虽然不快,但是检测效率很高。Viola 提出将积分图(integral image)应用到特征值的计算之中。积分图的引用,可以只对图像进行一次遍历计算,就能够在用常量时间完成每个特征值的计算,这使得训练和检测的速度大大提升。1.2 矩形特征 Rectangle Feature1.2.1 概述在给定有限的数据情况下,基于特征的检测能够编码特定区域的状态,而且基于特征的系统比

2、基于象素的系统要快得多。矩形特征对一些简单的图形结构,比如边缘、线段比较敏感,但是其只能描述特定走向(水平、垂直、对角)的结构,因此比较粗略。如图9,脸部一些特征能够由矩形特征简单地描绘,例如,通常,眼睛要比脸颊颜色更深;鼻梁两侧要比鼻梁颜色要深;嘴巴要比周围颜色更深。对于一个 2424 检测器,其内的矩形特征数量超过160,000 个,必须通过特定算法甄选合适的矩形特征,并将其组合成强分类器才能检测人脸。图 9 矩形特征在人脸上的特征匹配。上行是24 24 子窗口内选出的矩形特征,下行是子窗口检测到的与矩形特征的匹配。1.2.2 特征模版使用简单矩形组合作为特征模板。这类特征模板都是由两个或

3、多个全等的矩形相邻组合而成,特征模板内有白色和黑色两种矩形,并将此特征模板的特征值定义为白色形像素和减去黑色矩形像素和。最简单的 5 个特征模板:1.2.3 检测器内特征总数特征模板可以在子窗口内以“任意”尺寸“任意”放置,每一种形态称为一个特征。找出子窗口所有特征,是进行弱分类训练的基础。1.2.3.1 子窗口内的条件矩形图 10 计算m*m检测器内所有可能的矩形的数量以 mm 像素分辨率的检测器为例,其内部存在的满足特定条件的所有矩形的总数可以这样计算:对于 mm 子窗口,我们只需要确定了矩形左上顶点 和右下顶点1y,xA,即可以确定一个矩形;如果这个矩形还必须满足下面两个条件(称为2y,

4、xB(s, t)条件,满足(s, t)条件的矩形称为条件矩形):1) x 方向边长必须能被自然数s 整除(能均等分成s 段) ;2) y 方向边长必须能被自然数t 整除(能均等分成t 段) ;则 , 这个矩形的最小尺寸为st 或ts, 最大尺寸为m/ssm/tt或m/ttm/ss;其中 为取整运算符。1.2.3.2 条件矩形的数量我们通过下面两步就可以定位一个满足条件的矩形:1)确定 : ;1y,xA1tm,.21y,sm,.21 2)确定 A 点后,B 点只能在图10中阴影内(包括边缘)取值,因此有:由上分析可知,在mm 子窗口中,满足( s, t)条件的所有矩形的数量为:1.2.3.3 子

5、窗口的特征矩形数量实际上,(s, t)条件描述了矩形特征的特征,下面列出了不同矩形特征对应的(s, t)条件:所以 mm 子窗口中所有 5 种特征模板的特征总数量 ,就是分别满足 5 m个(s,t)条件的矩形特征的数量的总和,即:1.2.3.4 结果下面以 2424 子窗口为例,具体计算其特征总数量:下面列出了,在不同子窗口大小内,特征的总数量:1.3 积分图 Integral Image1.3.1 概念图 11 “积分图”与积分的类比只需要对每个像素进行少量的计算工作,就能得到一幅图像的“积分图” 。 “积分图”能够在多种尺度下,使用相同的时间来计算不同的特征,因此大大提高了检测速度。对于图

6、像内一点 A( x, y),定义其积分图ii(x,y)为(如图 12):其中i(x, y)为点( x, y )处的“原始图” ,是此点的颜色值;对于灰度图象,其值为0255。对于彩色图像,可以先按照人脸色彩空间将其转化为灰度取值。其中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方向向上所有像素之和(图中粗黑竖线) 首先将每个像素点的值遍历一次,设图像大小

7、为m n,则得到的积分图矩阵(图像上所有像素的积分图)为:可见,只需要遍历图像一次,迭代 m*n*2次,即可以得到整个积分图矩阵。1.3.2 利用积分图计算矩形特征值1.3.2.1 图像区域的积分图计算如图13,区域D 的像素值,可以利用1、2、3、4 点的积分图来计算。图 13 区域 D 的像素和可以用积分图计算为:因为:=区域A 的像素值1i=区域A 的像素值+区域B 的像素值2=区域A 的像素值+区域C 的像素值3=区域A 的像素值+区域B 的像素值+区域C 的像素值+区域D 的像素值4i所以解上述方程就可以得到:1.3.2.2 矩形特征的特征值计算以特征模板1为例,如图14。此特征模板

8、的特征值为:区域 A 的像素值区域B 的像素值由刚才的证明可知:所以此特征模板的特征值为:图 14 矩形特征的特征值计算由此可见,矩形特征的特征值计算,只与此特征端点的积分图有关,而与图像坐标值无关。因此,不管此矩形特征的尺度如何,特征值的计算所耗费的时间都是常(time constant) ,而且都只是简单的加减运算。正因如此,积分图的引入,大大地提高了检测的速度。其他的矩形特征的特征值计算依此类推。2 AdaBoost 训练算法2.1 训练基本算法2.1.1 基本算法描述AdaBoost 训练强分类器的算法描述如下开始输入训练样本初始化样本权重训练是否达到要求确定分类器的阈值 、 分类误差

9、选择分类误差最小的特征为最优弱分类器更新样本权重结束获得强分类器否是特征值排序2.2 弱分类器 Weak Classifer一个弱分类器h(x , f , p,q)由一个特征 f,阈值 q和指示不等号方向的 p 组成:1,()(,)0fxhx其 它2.2.1 特征值 f( x)对于算法中的矩形特征来说,弱分类器的特征值 f(x)就是矩形特征的特征值。由于在训练的时候,选择的训练样本集的尺寸等于检测子窗口的尺寸,检测子窗口的尺寸决定了矩形特征的数量,所以训练样本集中的每个样本的特征相同且数量相同,而且一个特征对一个样本有一个固定的特征值。对于理想的像素值随机分布的图像来说,同一个矩形特征对不同图

10、像的特征值的平均值应该趋于一个定值: k。这个应该很好理解,对于随机分布的像素值,由于矩形特征中的矩形块的大小相同,则每个块内的总像素值应该在统计上是相同的。特别地,对于有相同数目白块和黑块的矩形特征,这个定值k 应为0。对每一个特征,计算其对所有的一类样本(人脸或者非人脸)的特征值的平均值,最后得到所有特征对所有一类样本的平均值分布。如图16,显示了2020 子窗口里面的全部78,460 个矩形特征对全部2,706个人脸样本和4,381 个非人脸样本6的特征值平均数的分布图。由分布看出,特征的绝大部分的特征值平均值都是分布在0 前后的范围内。出乎意料的是,人脸样本与非人脸样本的分布曲线差别并

11、不大,不过注意到特征值大于或者小于某个值后,分布曲线出现了一致性差别,这说明了绝大部分特征对于识别人脸和非人脸的能力是很微小的,但是存在一些特征及相应的阈值,可以有效地区分人脸样本与非人脸样本。图 16 所有矩形特征 对所有图片的特征值平均数分布(横坐标是按特征值平均值排序后的特征编号)为了更好地说明问题,从78,460 个矩形特征中随机抽取了两个特征A和B,这两个特征遍历了2,706 个人脸样本和4,381 个非人脸样本,计算了每张图像对应的特征值,最后将特征值进行了从小到大的排序.特征 A 和特征B 的表现大相径庭。如图17,特征A 对人脸和非人脸样本的特征值为0 的点几乎处于相同位置(4

12、6.5%,51.5%) ,且都在所有特征的中间范围8(-5%)。这说明矩形特征A 对于人脸和非人脸几乎没有分辨能力。如图18,特征B 对非人脸样本的分布,符合我们的预想,特征值为0 的点处于所有特征的中间范围(59.4%),这说明特征B 也“看不到”非人脸的特点。但是对于人脸样本,特征B 表现了很一致的倾向性,93.4%的特征在0 点的一侧,与非人脸样本的相差34%。这说明特征B 能够相当可靠地分辨人脸和非人脸。上述的分析说明,确实存在优势的矩形特征,能够在一定的置信范围内区分人脸和非人脸。由于是使用统计的方法计算人脸图像和非人脸图像的差别,因此最后得到的区分阈值,也只能是在某个概率范围内准确

13、地进行区分。2.2.2 阈值 q 、方向指示符 p由上述的分析,阈值 q 的含义就清晰可见了。而方向指示符 p 用以改变不等号的方向。一个弱学习器(一个特征)的要求仅仅是:它能够以稍低于50%的错误率来区分人脸和非人脸图像,因此上面提到只能在某个概率范围内准确地进行区分就已经完全足够。按照这个要求,可以把所有错误率低于50%的矩形特征都找到。每轮训练,将选取当轮中的最佳弱分类器(在算法中,迭代 T 次即是选择 T 个最佳弱分类器) ,最后将每轮得到的最佳弱分类器按照一定方法提升(Boosting)为强分类器下面将说明如何训练并选取最佳弱分类器。2.2.3 弱分类器的训练及选取训练一个弱分类器(

14、特征f)就是在当前权重分布的情况下,确定f 的最优阈值,使得这个弱分类器(特征f)对所有训练样本的分类误差最低。选取一个最佳弱分类器就是选择那个对所有训练样本的分类误差在所有弱分类器中最低的那个弱分类器(特征) 。对于每个特征 f,计算所有训练样本的特征值,并将其排序。通过扫描一遍排好序的特征值,可以为这个特征确定一个最优的阈值,从而训练成一个弱分类器(参考图19) 。具体来说,对排好序的表中的每个元素,计算下面四个值:1) 全部人脸样本的权重的和T+;2) 全部非人脸样本的权重的和T-;3) 在此元素之前的人脸样本的权重的和S+;4) 在此元素之前的非人脸样本的权重的和S-;这样,当选取当前元素的特征值 和它前面的一个特征值 之间的数作为jkF1-jkF阈值时,所得到的弱分类器就在当前元素处把样本分开也就是说这个阈值对应的弱分类器将当前元素前的所有元素分类为人脸(或非人脸) ,而把当前元素后(含)的所有元素分类为非人脸(或人脸) 。可以认为这个阈值所带来的分类误差为:e min( S (T S ), S (T S )于是,通过把这个排序的表扫描从头到尾扫描一遍就可以为弱分类器选择使分类误差最小的阈值(最优阈值) ,也就是选取了一个最佳弱分类器。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号