
SIFT,haar特征的对比及haar在人脸检测中的应用.doc
8页讽铳偨d?CA恶?VK蓱入)?入b粅鲩?嚡IUS? /?L\? m淂猹R吨N?,U'入淯z *圱入紵 a徙??蚯挤璺簲uB+入玹SIFT/SURF、haar特征、广义hough变换的特性对比分析SIFT/SURF基于灰度图,一、 首先建立图像金字塔,形成三维的图像空间,通过Hessian矩阵获取每一层的局部极大值,然 后进行在极值点周围26个点进行NMS,从而得到粗略的特征点,再使用二次插值法得到精确特征点所在 的层(尺度),即完成了尺度不变二、 在特征点选取一个与尺度相应的邻域,求出主方向,其中SIFT采用在一个正方形邻域内统计所 有点的梯度方向,找到占80%以上的方向作为主方向;而SURF则选择圆形邻域,并且使用活动扇形的 方法求出特征点主方向,以主方向对齐即完成旋转不变三、 以主方向为轴可以在每个特征点建立坐标,SIFT在特征点选择一块大小与尺度相应的方形区域, 分成16块,统计每一块沿着八个方向占的比例,于是特征点形成了 128维特征向量,对图像进行归一化 则完成强度不变;而SURF分成64块,统计每一块的dx, dy, |dx|, |dy|的累积和,同样形成128维 向量,再进行归一化则完成了对比度不变与强度不变。
haa r特征也是基于灰度图,首先通过大量的具有比较明显的haar特征(矩形)的物体图像用模式识别的方法训练出分类器,分 类器是个级联的,每级都以大概相同的识别率保留进入下一级的具有物体特征的候选物体,而每一级的子 分类器则由许多haar特征构成(由积分图像计算得到,并保存下位置),有水平的、竖直的、倾斜的, 并且每个特征带一个阈值和两个分支值,每级子分类器带一个总的阈值识别物体的时候,同样计算积分 图像为后面计算haar特征做准备,然后采用与训练的时候有物体的窗口同样大小的窗口遍历整幅图像, 以后逐渐放大窗口,同样做遍历搜索物体;每当窗口移动到一个位置,即计算该窗口内的haar特征,加 权后与分类器中haar特征的阈值比较从而选择左或者右分支值,累加一个级的分支值与相应级的阈值比 较,大于该阈值才可以通过进入下一轮筛选当通过分类器所有级的时候说明这个物体以大概率被识别广义hough变换同样基于灰度图,使用轮廓作为特征,融合了梯度信息,以投票的方式识别物体,在本blog的另一篇文章中有详细讨 论,这里不再赘述特点异同对比及其适用场合:三种算法都只是基于强度(灰度)信息,都是特征方法,但SIFT/SURF的特征是一种具有强烈方向 性及亮度性的特征,这使得它适用于刚性形变,稍有透视形变的场合;haar特征识别方法带有一点人工智 能的意味,对于像人脸这种有明显的、稳定结构的haar特征的物体最适用,只要结构相对固定即使发生 扭曲等非线性形变依然可识别;广义hough变换完全是精确的匹配,可得到物体的位置方向等参数信息。
前两种方法基本都是通过先获取局部特征然后再逐个匹配,只是局部特征的计算方法不同,SIFT/SURF 比较复杂也相对稳定,haar方法比较简单,偏向一种统计的方法形成特征,这也使其具有一定的模糊弹性; 广义hough变换则是一种全局的特征一一轮廓梯度,但也可以看做整个轮廓的每一个点的位置和梯度都是 特征,每个点都对识别有贡献,用直观的投票,看票数多少去确定是否识别出物体关于人脸检测中的Haar特征提取AdaBoost人脸检测训练算法速度很重要的两方面是特征选取和特征计算选取的特征为矩特征 为 Haar 特征,计算的方法为积分图1) Haar 特征:Haar 特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板特征 模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和 在确定了特征形式后 Harr- like 特征的数量就取决于训练样本图像矩阵的大小,特征模板在子窗 口内任意放置,一种形态称为一种特征,找出所有子窗口的特征是进行弱分类训练的基础2) 积分图:积分图(Integral Image)主要的思想是将图像从起点开始到各个点所形成的矩形区域像素之和 作为一个数组的元素保存在内存中,当要计算某个区域的像素和时可以直接索引数 组的元素, 不用重新计算这个区域的像素和,从而加快了计算。
积分图"能够在多种尺度下,使用相同的时 间来计算不同的特征,因此大大提高了检测速度且标检测方法最初由Paul Viola [ViolaOl]提出,并由Rainer Lienhart [Lienhart02]对这一方法 进行了改善. 首先,利用样本(大约几百幅样本图片)的 harr 特征进行分类器训练,得到一个 级联的boosifid分类器训练样本分为正例样本和反例样本,其中正例样本是指待检目标样本(例 如人脸或汽车等),反例样本指其它任意图片,所有的样本图片都被归一化为同样的尺寸大小(例 如, 20x20)分类器训练完以后,就可以应用于输入图像中的感兴趣区域(与训练样本相同的尺寸)的检测检 测到目标区域(汽车或人脸)分类器输出为1,否则输出为0为了检测整副图像,可以在图像中 移动搜索窗口,检测每一个位置来确定可能的目标为了搜索不同大小的目标物体,分类器被设 计为可以进行尺寸改变,这样比改变待检图像的尺寸大小更为有效所以,为了在图像中检测未 知大小的目标物体,扫描程序通常需要用不同比例大小的搜索窗口对图片进行几次扫描分 类器中的“级联”是指最终的分类器是由几个简单分类器级联组成在图像检测中,被检窗 口依次通过每一级分类器,这样在前面几层的检测中大部分的候选区域就 被排除了,全部通过 每一级分类器检测的区域即为目标区域。
目前支持这种分类器的boosting技术有四种:Discrete Adaboost, Real Adaboost, Gentle Adaboost and Logitboost "boosted" 即指级联分类器的每一 层都可以从中选取一个boosting算法(权重投票),并利用基础分类器的自我训练得到基础分类 器是至少有两个叶结点的决策树分类器Haar特征是基础分类器的输入,主要描述如下目 前的算法主要利用下面的Harr特征1. JaIljc I cal li res[1 日 oe 川)(C) W)2. [.inc I cal u res i~i⑷ 〔㈡〔小J. <,ciilcr-siirk,'Liiid ICLilurcs每 个特定分类器所使用的特征用形状、感兴趣区域中的位置以及比例系数(这里的比例系数 跟检测时候采用的比例系数是不一样的,尽管最后会取两个系数的乘积值) 来定义例如在第 三行特征(2c)的情况下,响应计算为复盖全部特征整个矩形框(包括两个白色矩形框和一个黑色 矩形框)象素的和减去黑色矩形框内象素和的 三倍每个矩形框内的象素和都可以通过积分图象 很快的计算出来察看下面和对cvIntegral的描述).通过HaarFaceDetect的演示版可以察看 目标检测的工作情况。
AdaBoost 人脸检测原理 对人脸检测的研究最初可以追溯到20世纪70年代,早期的研究主要致力于模板匹配、 子空间方法,变形模板匹配等近期人脸检测的研究主要集中在基于数据驱动的学习方法, 如统计模型方法,神经网络学习方法,统计知识理论和支持向量机方法,基于马尔可夫随机 域的方法,以及基于肤色的人脸检测目前在实际中应用的人脸检测方法多为基于 Adaboost学习算法的方法Viola人脸检测方法是一种基于积分图、级联检测器和AdaBoost算法的方法,方法框 架可以分为以下三大部分:第一部分,使用Harr-like特征表示人脸,使用“积分图”实现特征数值的快速计算;第二部分,使用Adaboost算法挑选出一些最能代表人脸的矩形特征(弱分类器),按照 加权投票的方式将弱分类器构造为一个强分类器;第三部分,将训练得到的若干强分类器串联组成一个级联结构的层叠分类器,级联结构 能有效地提高分类器的检测速度Adaboost算法是一种用来分类的方法,它的基本原理就是“三个臭皮匠,顶个诸葛亮” 它把一些比较弱的分类方法合在一起,组合出新的很强的分类方法例如下图中需要用一些线段把红色的球与深蓝色的球分开,然而如果仅仅画一条线的话,是分不开的。
使用Adaboost算法来进行划分的话,先画出一条错误率最小的线段如图1,但是左下脚的深蓝色球被错误划分到红色区域,因此加重被错误球的权重,再下一次划分时,将更加考虑那些权重大的球,如 c 所示,最终得到了一个准确的划分,如下图所示人脸检测的目的就是从图片中找出所有包含人脸的子窗口,将人脸的子窗口与非人脸的子 窗口分开大致步骤如下:⑴在一个20*20的图片提取一些简单的特征(称为Harr特征),如下图所示■2洗回它的计算方法就是将白色区域内的像素和减去黑色区域,因此在人脸与非人脸图片的相同位置上,值的大小是不一样的,这些特征可以用来区分人脸和非人脸2)目前 的方法是使用数千张切割好的人脸图片,和上万张背景图片作为训练样本训练 图片一般归一化到 20*20 的大小在这样大小的图片中,可供使用的 haar 特征数在 1 万 个左右,然后通过机器学习算法 —adaboost 算法挑选数千个有效的 haar 特征来组成人 脸检测器3)学习算法训练出一个人脸检测器后,便可以在各个场合使用了使用时,将图像按比扁牡理JMAYSATS-花 r^M, MW -PM叫萤*例依次缩放,然后在缩放后的图片的 20*20 的子窗口依次判别是人脸还是非人脸。
按咀止的比射 SK11448 片.由卑框亍址世悄片 的陳右経]< 的II胃1■的予宙【I -












