【问题标题】:Number of haar like features in 24x24 window24x24 窗口中类似 haar 的特征数
【发布时间】:2016-10-22 23:57:43
【问题描述】:

参考以下链接

Viola & Jones Face Detection

上面的链接包含了关于不同模板对应的haar特征数量的计算(下面是链接的摘录)。

我不明白这些 (43200,27600,43200,27600,20736) 的精确计算是如何进行的。有人可以简单地向我解释一下吗?

【问题讨论】:

标签: image-processing viola-jones


【解决方案1】:

要理解,请看一下算法#1。对于第一个模式(a),下面两行(文中的5和6)给出了解释

for all(i,j) such 1<=i<=24 and 1<=j<=24:
  for all(h,w) such that i+h-1<=24 and j+2w-1<=24:

这意味着您将采用左上角的所有组合(i 是顶部,j 是左侧),然后是宽度 (w) 和高度 (h) 的所有组合将适合 24x24。

该算法还将使用所有宽度和高度组合(1x4、1x6、1x8、...、1x24、2x2、2x4、2x6、2x8、...、2x24、3x2、3x4、3x6、... , 高达 24x24)。只要宽度是 2 的倍数(由第 6 行中的2w 指定)。

最小的图案(2 像素宽和 1 像素高)将适合 24 * 23 = 552 个位置(23 个水平位置和 24 个垂直位置)。

例如,在某些时候,您将拥有一个 7x10 的图案(高 7 像素,宽 10 像素)。它将适合 18 x 15 = 270 个位置(18 个垂直位置和 15 个水平位置)。

最大的矩形(24x24 像素)由 12 个白色列和 12 个黑色列组成。它只适合一个位置(整个图像)。

如果对所有可能维度的所有位置求和,则得到数字。

为了得到第一个数字(用于模式 a),下面的程序(我没有优化它!但它应该很容易理解)打印 43200

# Pattern A
total = 0
for i in range(1,25):     # 1 <= i <= 24
  for j in range(1,25):     # 1 <= j <= 24
    for w in range(1,13):     # 2*w=2,4,6,...24
      for h in range(1,25):     # h=1,2,...,24
        if (i+h-1<=24) and (j+2*w-1<=24):
          total += 1
print total

其他模式的解释类似。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2011-01-04
    相关资源
    最近更新 更多