Haar特征

本文深入探讨了Haar-like特征的概念、计算过程,包括积分图在特征计算中的应用,以及特征的拓展和优化策略。重点阐述了特征模板、特征原型、矩形特征及其在图像识别中的作用,同时介绍了Lienhart R.等人对矩形特征的进一步扩展,加入了旋转45°的矩形特征,以提升检测精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FROM: http://blog.youkuaiyun.com/zouxy09/article/details/7929570

1Haar-like特征

       Haar-like特征最早是由Papageorgiou等应用于人脸表示,ViolaJones在此基础上,使用3种类型4种形式的特征。

Haar特征分为三类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述特定走向(水平、垂直、对角)的结构。

     对于图中的A, BD这类特征,特征数值计算公式为:v=Sum-Sum黑,而对于C来说,计算公式如下:v=Sum-2*Sum黑;之所以将黑色区域像素和乘以2,是为了使两种矩形区域中像素数目一致。

     通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。上图的特征模板称为“特征原型”;特征原型在图像子窗口中扩展(平移伸缩)得到的特征称为“矩形特征”;矩形特征的值称为“特征值”。

      矩形特征可位于图像任意位置,大小也可以任意改变,所以矩形特征值是矩形模版类别、矩形位置和矩形大小这三个因素的函数。故类别、大小和位置的变化,使得很小的检测窗口含有非常多的矩形特征,如:在24*24像素大小的检测窗口内矩形特征数量可以达到16万个。这样就有两个问题需要解决了:(1)如何快速计算那么多的特征?---积分图大显神通;(2)哪些矩形特征才是对分类器分类最有效的?---如通过AdaBoost算法来训练(这一块这里不讨论,具体见http://blog.youkuaiyun.com/zouxy09/article/details/7922923

 

2Haar-like特征的计算积分图

       积分图就是只遍历一次图像就可以求出图像中所有区域像素和的快速算法,大大的提高了图像特征值计算的效率。

       积分图主要的思想是将图像从起点开始到各个点所形成的矩形区域像素之和作为一个数组的元素保存在内存中,当要计算某个区域的像素和时可以直接索引数组的元素,不用重新计算这个区域的像素和,从而加快了计算(这有个相应的称呼,叫做动态规划算法)。积分图能够在多种尺度下,使用相同的时间(常数时间)来计算不同的特征,因此大大提高了检测速度。

       我们来看看它是怎么做到的。

       积分图是一种能够描述全局信息的矩阵表示方法。积分图的构造方式是位置(i,j)处的值ii(i,j)是原图像(i,j)左上角方向所有像素的和:

  

        

积分图构建算法:

1)用s(i,j)表示行方向的累加和,初始化s(i,-1)=0;

2)用ii(i,j)表示一个积分图像,初始化ii(-1,i)=0

3)逐行扫描图像,递归计算每个像素(i,j)行方向的累加和s(i,j)和积分图像ii(i,j)的值

s(i,j)=s(i,j-1)+f(i,j)

ii(i,j)=ii(i-1,j)+s(i,j)

4)扫描图像一遍,当到达图像右下角像素时,积分图像ii就构造好了。

积分图构造好之后,图像中任何矩阵区域的像素累加和都可以通过简单运算得到如图所示。

          

D的四个顶点分别为α、β、γ、δ,则D的像素和可以表示为

Dsum = ii( α )+ii( β)-(ii( γ)+ii( δ ));

        而Haar-like特征值无非就是两个矩阵像素和的差,同样可以在常数时间内完成。所以矩形特征的特征值计算,只与此特征矩形的端点的积分图有关,所以不管此特征矩形的尺度变换如何,特征值的计算所消耗的时间都是常量。这样只要遍历图像一次,就可以求得所有子窗口的特征值。

 

3Haar-like矩形特征拓展

         Lienhart R.等对Haar-like矩形特征库作了进一步扩展,加入了旋转45角的矩形特征。扩展后的特征大致分为4种类型:边缘特征、线特征环、中心环绕特征和对角线特征:

       在特征值的计算过程中,黑色区域的权值为负值,白色区域的权值为正值。而且权值与矩形面积成反比(使两种矩形区域中像素数目一致);

竖直矩阵特征值计算:

     对于竖直矩阵,与上面2处说的一样。

45°旋角的矩形特征计算:

      对于45°旋角的矩形,我们定义RSAT(x,y)为点(x,y)左上角45°区域和左下角45°区域的像素和。

       

用公式可以表示为:

为了节约时间,减少重复计算,可按如下递推公式计算:

而计算矩阵特征的特征值,是位于十字行矩形RSAT(x,y)之差。可参考下图:

 

### Haar特征的定义与原理 Haar特征是一种在计算机视觉领域广泛使用特征描述方法,尤其适合于目标检测任务,例如人脸检测[^1]。其核心思想是通过简单的矩形滤波器来捕捉图像中的边缘、线条以及纹理信息。 #### 定义 Haar特征基于一组预定义的模板模式,这些模板可以表示为两个或三个相邻区域之间的像素强度差异。常见的Haar特征包括水平边缘、垂直边缘、对角线方向的条纹以及中心突出的方框结构等。每种特征都由白色黑色矩形组成,其中白区代表正权重,黑区代表负权重[^2]。 #### 原理 计算Haar特征的过程涉及将上述模板应用于输入图像的不同位置,并统计该区域内所有像素值加权后的总。具体来说,在某个特定窗口上应用某一类型Haar特征时,会先乘以相应的位置系数再求得到最终的结果。这种方法能够有效地反映局部对比度变化情况从而区分不同类别对象之间存在的显著区别之处。 为了提高效率并减少冗余运算量,“积分图”技术被引入进来作为辅助工具之一。“积分图”的概念是指对于任意给定坐标(x,y),它存储的是从原点到此坐标的子矩阵内所有元素累加之。利用这一特性可以使原本复杂耗时的操作简化成常数时间完成即O(1)。 ### 应用场景 Haar特征最初是由Paul Viola Michael Jones 提出用于快速面部探测系统当中的一部分构成要素;后来也被扩展至其他多种场合下的实例分割或者跟踪等问题解决过程中发挥重要作用: - **人脸识别**:这是最经典的案例之一,通过训练大量正面脸部样本建立起专用模型之后即可实现实时高效的人脸定位功能。 - **行人检测**:类似于前者但更加注重全身轮廓形状方面的考量因素加入进去形成新的评判标准以便更好地适应实际需求环境变化带来的挑战[^3]。 - **通用物体识别**:除了专门针对某些固定种类之外还可以泛化运用到更多未知类型上面去尝试探索潜在可能性空间范围内的最佳匹配方案选项集合列表里面寻找最优解路径轨迹路线规划地图绘制等等一系列相关联操作流程环节步骤顺序安排合理布局设计构思创意创新思维能力培养锻炼提升等方面均有所体现表现出来效果明显优于传统方法论体系框架结构层次分明清晰易懂便于理解掌握学习记忆背诵复习巩固加强加深印象持久保持长久不忘遗忘丢失遗漏错误偏差失误风险降低最小程度范围内达到预期目的目标达成一致共识意见统一行动协调配合默契团队合作精神风貌展现风采魅力无限延伸拓展发展空间广阔前景光明未来可期期待憧憬向往追求理想境界高度升华超越自我突破极限创造奇迹辉煌成就伟大事业功成名就名垂青史流芳百世万古长存永恒不朽! ```python import cv2 import numpy as np def compute_haar_feature(image, feature_type='edge'): """ 计算指定类型Haar特征 参数: image (numpy.ndarray): 输入灰度图像 feature_type (str): 特征类型 ('edge', 'line', ...) 返回: float: 当前窗口下对应Haar特征值 """ if feature_type == 'edge': # 水平边缘特征示例 sum_white = np.sum(image[:int(len(image)/2), :]) sum_black = np.sum(image[int(len(image)/2):, :]) return abs(sum_white - sum_black) # 示例调用 gray_image = cv2.imread('face.jpg', 0) feature_value = compute_haar_feature(gray_image) print(f'Computed Haar Feature Value: {feature_value}') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值