本文主要是介绍【VJ算法】Haar 特征 + integral image 积分图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 1、Haar特征 与 Haar特征提取模板
- 2、Harr特征的计算方式
- 3、Haar特征 的使用
- 4、opencv 中的 haar特征的使用
- 5、积分图
- 1)什么是积分图?
- 2)使用积分图快速求区域像素和
- 3)使用积分图快速的计算Haar特征
1、Haar特征 与 Haar特征提取模板
定义
Haar 特征提取算法 是一种图像特征提取算法。
基于不同目标,使用不同特征提取模版,提取到的 Haar 特征分为:
(1)边缘特征
(2)线性特征
(3)中心特征和对角线特征,组合成的特征
Haar特征 由 原图
与 Haar特征提取模板
计算得出。
Haar特征提取模版
:可以理解为卷积模板 (如同prewitt、sobel算子,当然不完全一样)。其有如下几种(包括水平、垂直、斜45度):
计算得出的Haar特征有如下三类(由 Haar特征提取模板
决定):
(1)边缘特征
(2)线性特征
(3)中心特征和对角线特征,组合成的特征
2、Harr特征的计算方式
将Harr特征提取模版作为窗口,在原图像上滑窗
Harr特征值 = 黑色区域中的像素和 - 白色区域中的像素和
举例如下:
3、Haar特征 的使用
Haar特征值反映了图像的灰度变化情况。这种矩形特征只对一些简单的图形结构较敏感(如边缘、线段),所以只能描述特定走向(水平、垂直、对角)的结构。
Haar特征多用于人脸检测、行人检测。
4、opencv 中的 haar特征的使用
OpenCV(2.4.11版本)所使用的共计14种Haar特征,包括:
- 5种Basic特征
- 3种Core特征
- 6种Titled(即45°旋转)特征
在使用opencv自带的训练工具进行训练时,haarFeatureParams参数中的mode参数正对应了训练过程中所使用的特征集合:
- 如果mode为BASIC,则只使用
BASIC的5种Haar特征
进行训练,训练出的分类器也只包含这5种特征。 - 如果mode为CORE,则使用
BASIC的5种Haar特征
+CORE的3种Haar特征
进行训练。 - 如果mode为ALL,则使用
BASICA的5种Haar特征
+CORE的3种Haar特征
+ALL的6种TitledHaar特征
共14种特征进行训练。
默认使用BASIC模式,实际训练和检测效果已经足够好。不建议使用ALL参数,引入Titled倾斜特征需要多计算一张倾斜积分图,会极大的降低训练和检测速度。
5、积分图
在第2部分 介绍了特征图的计算方式。按照那种计算方式,计算每个窗口的特征值,都需要计算:
- 黑色区域像素和
- 白色区域像素和
- 黑白两部分的差值
这样计算量会比较大。如果使用积分图会大大减小我们的计算量。
1)什么是积分图?
积分图是一张与原图像尺寸相同的图。 积分图中每个像素点(x, y)的值是 原图像中从(0, 0)点到 相同位置的点(x, y)间的所有像素和。如下图:
2)使用积分图快速求区域像素和
原图中区域D 的像素和,可使用积分图如下公式计算得出
3)使用积分图快速的计算Haar特征
这篇关于【VJ算法】Haar 特征 + integral image 积分图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!