题
请用几句话向我解释中提琴的探测方法如何有效。
解决方案
中提琴探测器很强, 二进制分类器 建造几个 检测器弱
Each weak detector is an extremely simple binary classifier
在学习阶段,训练了一系列弱检测器,以便使用Adaboost来获取所需的命中率 /错率(或精度 /召回)来检测对象,原始图像在几个矩形贴片中分配,每个图像都提交了这些图像到级联
如果矩形图像贴片穿过所有级联阶段,则将其归类为“正”,以不同的尺度重复该过程
实际上,在低级别上,对象检测器的基本组件只是说明原始图像的某个子区域是否包含感兴趣的对象所需的东西。这就是二进制分类器所做的。
基本的弱分类器基于一个非常简单的视觉功能(这些功能通常称为“类似于Haar的功能”)
HAAR般的功能包括 通过从特征的其余区域的总和中减去特征的子区域的总和来计算的本地特征类.
这些特征的特征是它们易于计算,并且使用积分图像,非常有效地计算。
Lienhart引入了一组扩展的扭曲HAAR样特征(请参阅图像)
这些是标准的类似于HAAR的功能,已扭曲了45度。 Lienhart最初不使用扭曲的棋盘板HAAR样功能(X2Y2),因为它们代表的对角线元素可以简单地使用扭曲的功能表示,但是很明显,也可以实现和使用此功能的扭曲版本。
这些扭曲的HAAR样特征也可以使用已扭曲45度的积分图像快速有效地计算出来。唯一的实现问题是,必须将扭曲的功能舍入到整数值,以使它们与像素边界保持一致。此过程类似于为较大或较小的窗户缩放类似于HAAR的功能时所使用的舍入,但是一个区别是,对于45度扭曲的功能,用于该功能高度和宽度的整数像素数量表示该功能的高度和宽度。像素的对角线坐标将始终在同一对角线上
这意味着与标准的垂直和水平对齐功能相比,可用的不同尺寸的45度扭曲功能的数量显着减少。
所以我们有类似的东西:
关于该公式,使用积分图像的类似HAAR的特征的快速计算看起来像:
最后, 这是C ++实现 使用 Violajones.h 伊万·库萨利奇(Ivan Kusalic)
查看完整的C ++ 项目去这里
其他提示
中提琴探测器是 强的二进制分类器 建造几个弱检测器。每个弱检测器都是一个非常简单的二进制分类器
检测由以下部分组成:
Haar Filter
: :从图像到calssify提取功能(特征ACT来编码临时域知识)
Integral Image
: :允许进行非常快速的功能评估
Cascade Classifier
: :级联分类器由多个过滤器组成,用于对图像进行分类(图像的滑动窗口)。
下面是如何检测图像中的面孔的概述。
检测窗口围绕整个图像提取功能移动(通过
haar filter
由Integral Image
然后将提取的功能发送到Cascade Classifier
分类是否是脸)。滑动窗口逐个像素移动。每次窗口移动时,窗口中的图像区域都会通过级联分类器。
Haar Filter
: :您可以了解过滤器可以提取功能 eyes
, bridge of the nose
等等。
Integral Image
: :允许进行非常快速的功能评估
Cascade Classifier
:
级联分类器由多个过滤器组成,如下图所示。每次滑动窗口移动时,滑动窗口中的新区域都会通过阶段的级联分类器进行。如果输入区域未能通过阶段的阈值,则级联分类器将立即拒绝该区域。如果一个区域成功通过了所有阶段,则将其归类为面部的候选人,可以通过进一步的处理来完善。
更多细节:
首先,我建议您阅读源文件 快速对象检测使用一系列简单功能的级联 对该方法有概述的理解。
如果您无法清楚地理解,您可以看到 中提琴 - 琼斯面临检测 或者 实施中提琴 - 面对检测算法 或者 研究中提琴实时面部探测器的研究 更多细节。
这是Python代码 Paul Viola和Michael J. Jones的Python实施面部检测算法.
MATLAB代码 这里 .