`

【OpenCV】利用积分图像法快速计算Haar特征

 
阅读更多

由于Haar特征是矩形中黑色区域所有像素值的和减去白色区域所有像素值的和。在之前(《计算Haar特征个数》)我们看到,24*24的图片中,有115984个特征,远远大于其像素个数。如果计算每个特征的像素和,计算量会非常大,而且很多次运算是重复的。

Paul Viola提出一种利用积分图像法快速计算Haar特征的方法(《Rapid object detection using a boosted cascade of simple features》)。简单说来,就是先构造一张“积分图”(Integral image),也叫Summed Area Table,之后任何一个Haar矩形特征都可以通过查表的方法(Look Up Table)和有限次简单运算得到,大大减少了运算次数。

将矩形表示为:

其中,x,y表示起点坐标,w,h表示宽,高,a表示角度。

矩形内像素值之和表示为:

0°矩形特征


构造积分图像Summed Area Table


积分图像中,每个点存储是其左上方所有像素之和:

其中I(x,y)表示图像(x,y)位置的像素值。
积分图像可以采用增量的方式计算:

初始边界:SAT(-1,y)=SAT(x,-1)=SAT(-1,-1)=0
所以,只需要对整张图像遍历一次就可以求得这张图的积分图像。

计算Haar矩形特征

如图所示:

利用积分图计算可计算矩形区域内像素和:

 

所以,无论矩形r的尺寸大小,只需查找积分图像4次就可以求得任意矩形内像素值的和。


45°Rotated矩形特征

 

构造旋转积分图像Rotated SummedArea Table

旋转积分图中,每个点存储是其左上方延伸出的45°区域范围内所有像素之和:

RSAT(x,y)也采用增量方计算得到:

初始边界:RSAT(-1,y)=RSAT(x,-1)=RSAT(x,-2)=0
RSAT(-1,-1)=RSAT(-1,-2)=0

公式具体示意如下图:

 

 

计算Haar矩形特征

 

同样的方式,可推出每个矩形内像素和的计算公式:

*图太难画了,不清楚的自己在草稿纸上试试吧~

同样的,无论旋转矩形r的尺寸大小,只需要查找积分图像4次就可以求得任意矩形内像素值得和。



(转载请注明作者和出处:http://blog.csdn.net/xiaowei_cqu未经允许请勿用于商业用途)




分享到:
评论

相关推荐

    opencv haar特征识别

    2. 将图像灰度化,因为Haar特征在灰度图像上计算更有效。 3. 调用`CascadeClassifier`的`detectMultiScale`函数,它会在图像上滑动窗口,检测并返回目标的位置和大小。 4. 在原始彩色图像上绘制检测到的目标边界框。...

    haar特征的手势检测(OpenCV)

    在这个项目中,我们将利用OpenCV的图像分析功能来识别特定的手势。 Haar特征是OpenCV中用于对象检测的一种特征表示方法。它们源于早期的机器视觉研究,特别是在人脸检测中得到了广泛应用。Haar特征是由矩形结构组成...

    opencv-haar特征分类器

    开发者可以利用这些资源进一步了解和定制OpenCV的功能,例如调整Haar特征分类器的参数,优化检测速度或者训练自己的分类器模型来检测其他对象。 在实际应用中,你可以使用OpenCV提供的`cv::CascadeClassifier`类...

    opencv 利用类haar小波特征的人脸、人眼等特征检测(带代码)

    本教程将深入探讨如何利用OpenCV中的Haar级联分类器进行人脸、人眼等特征的检测,结合实际代码来理解这一过程。 Haar特征是基于小波理论的一种简单特征表示方法,最初用于图像识别。在OpenCV中,它们被用来构建级联...

    对图像提取Haar特征

    2. **积分图像**:为了快速计算特征,通常会创建一个积分图像,它存储了原图像每个位置及其所有上左部分的像素和。这样,我们可以在常数时间内计算任何矩形区域的总和。 3. **特征计算**:选取不同形状和大小的Haar...

    haar特征提取 matlab

    前者生成Haar特征模板矩阵,后者利用积分图像快速计算每个模板在图像上的响应值。 **四、不包含Adaboost训练** 描述中提到这个文档没有包含Adaboost训练器。Adaboost是一种迭代的弱分类器组合方法,它通过多次训练...

    OpenCV利用级联的haar分类器进行人脸识别

    Haar特征可以是边缘、线段、矩形等形状,通过计算这些形状在图像局部区域的平均或差值来描述图像的局部特性。例如,眼睛通常比脸颊暗,所以可以使用水平的haar特征来检测这种亮度对比。 **训练级联分类器** OpenCV...

    opencv基于haar特征的人脸检测demo

    在这个特定的项目中,“opencv基于haar特征的人脸检测demo”是利用OpenCV库实现的一个示例,展示了如何通过Haar特征进行人脸检测。Haar特征是一种在图像处理中用于对象识别的技术,尤其适用于人脸检测。这种方法是由...

    火山视窗opencv人脸检测图像版.zip

    火山视窗opencv人脸检测图像版是一个专为火山PC平台设计的软件工具,它利用了OpenCV库的强大功能,实现高效且精准的人脸检测。OpenCV(开源计算机视觉库)是一个跨平台的计算机视觉库,包含了众多图像处理和计算机...

    使用OpenCV的Haar特征训练身份证级联分类器

    本教程将聚焦于如何利用OpenCV的Haar特征来训练一个身份证级联分类器,从而实现自动检测身份证在图像中的位置。 Haar特征是一种基于像素强度差异的特征描述符,最初被应用于人脸识别。它们通过计算图像窗口内不同...

    基于HAAR特征SVM分类器训练模型,包含正负样本和结果

    在实际应用中,这个训练模型可以集成到**OpenCV**库中,OpenCV是一个强大的计算机视觉库,提供了HAAR特征检测和SVM分类的接口。通过加载训练好的模型,可以快速地在实时视频流或图像中检测车辆。 总的来说,这个...

    opencv实现自己训练的Adaboost(Haar-like)检测识别库

    2. **Haar-like特征计算**:对每张图像计算所有可能的Haar-like特征值。 3. **弱分类器选择**:在每个迭代中,通过AdaBoost算法找出能够最好地区分人脸和非人脸的特征,形成一个弱分类器。 4. **权重更新**:根据...

    基于haar特征的人脸识别程序

    【基于haar特征的人脸识别程序】是一种利用计算机视觉技术进行人脸识别的应用,主要依赖于OpenCV库,这是一个强大的开源计算机视觉库,广泛应用于图像处理和计算机视觉领域。在本项目中,Visual Studio 2010作为集成...

    opencv分类器 人脸 人眼 上身 鼻子 耳朵等等 检测的.xml文件

    Haar特征是一种简单的图像特征,可以是边缘、线段或者矩形,它们在不同尺度和位置上进行计算,以捕获目标物体的形状信息。级联分类器由一系列的弱分类器组成,每个弱分类器是一个基于这些Haar特征的简单决策规则。在...

    python-opencv Haar LBP级联分类器下载,训练模型

    OpenCV中的级联分类器利用Adaboost算法训练这些Haar特征,创建一个可以检测特定对象(如人脸)的弱分类器集合。 Local Binary Patterns(LBP)是一种纹理描述符,它通过比较像素及其邻域的灰度值来表示图像的局部...

    haar feature检测.rar

    积分图允许快速计算任意矩形区域的像素和,从而极大地减少了计算Haar特征的时间复杂度。这一优化使得Haar特征检测能在实时系统中实现,比如在OpenCV库中就被广泛应用。 在本资源"haar feature检测"中,很可能是包含...

    Haar特征结合PCA算法实现人脸检测

    通过级联分类器,这些特征可以在不同尺度上快速计算,形成一种高效的检测策略。级联分类器由多个弱分类器(如AdaBoost)串联而成,逐步排除非目标区域,最终确定人脸位置。 **PCA算法** PCA是一种统计方法,用于...

    OpenCV Haar分类器交通红绿灯训练样本与模型

    OpenCV Haar分类器是一种基于特征检测的计算机视觉算法,广泛应用于对象识别,尤其是在人脸识别、车辆检测和交通信号灯识别等领域。在这个特定的压缩包文件中,包含了用于训练Haar分类器以识别交通红绿灯的样本数据...

    图像特征提取代码(HOG、LBP、Haar、Hu矩、Zernike矩)

    3. **Haar特征**:Haar特征常用于人脸检测,是基于积分图像的快速特征检测技术。它通过计算矩形区域内像素的加权和来形成特征,如边缘、线段或特定形状。`HaarFeature.cpp`和`HaarFeature.h`包含Haar特征提取的代码...

    OPENCV摄像头图像获取与处理

    OpenCV还支持检测图像特征,如边缘、轮廓和角点。例如,Canny边缘检测可以这样实现: ```python edges = cv2.Canny(frame, 50, 150) ``` 对于更复杂的任务,如对象识别和人脸识别,OpenCV提供预训练的模型。例如,...

Global site tag (gtag.js) - Google Analytics