相关疑难解决方法(0)

Viola-Jones的脸部检测声称拥有180k功能

我一直在实施Viola-Jones的人脸检测算法.该技术依赖于在图像内放置24×24像素的子帧,并且随后在每个位置中将矩形特征放置在每个位置中,并且每种尺寸都可能.

这些特征可以包括两个,三个或四个矩形.提供以下示例.

矩形功能

他们声称详尽的集合超过180k(第2部分):

鉴于探测器的基本分辨率为24x24,详尽的矩形特征集非常大,超过180,000.请注意,与Haar基础不同,矩形特征集是过度完整的.

本文未明确说明以下陈述,因此它们是我的假设:

  1. 只有2个双矩形特征,2个三矩形特征和1个四矩形特征.这背后的逻辑是我们正在观察突出显示的矩形之间的差异,而不是明确的颜色或亮度或那种类型的任何东西.
  2. 我们不能将特征类型A定义为1x1像素块; 它必须至少至少1x2像素.此外,类型D必须至少为2x2像素,并且此规则相应地适用于其他功能.
  3. 我们不能将特征类型A定义为1×3像素块,因为中间像素不能被分割,并且从其自身减去它与1×2像素块相同; 此要素类型仅针对偶数宽度定义.此外,要素类型C的宽度必须可以被3整除,并且此规则相应地适用于其他要素.
  4. 我们无法定义宽度和/或高度为0 的要素.因此,我们将xy迭代为24减去要素的大小.

基于这些假设,我计算了详尽的集合:

const int frameSize = 24;
const int features = 5;
// All five feature types:
const int feature[features][2] = {{2,1}, {1,2}, {3,1}, {1,3}, {2,2}};

int count = 0;
// Each feature:
for (int i = 0; i < features; i++) {
    int sizeX = feature[i][0];
    int sizeY = feature[i][1];
    // Each position:
    for (int x = 0; x <= …
Run Code Online (Sandbox Code Playgroud)

algorithm image-processing computer-vision face-detection viola-jones

78
推荐指数
2
解决办法
2万
查看次数