2016-10-22 55 views
0

數量相同的特徵哈爾參照下面的鏈接在24x24的窗口

Viola & Jones Face Detection

上述鏈接中包含關於對應於不同的模板特徵哈爾的數目的計算(下面是從鏈接摘錄)。 enter image description here

我沒有得到如何將這些(43200,27600,43200,27600,20736)的精確計算made.Can有人解釋說,給我一個簡單的方法?

回答

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,...)。該算法還將使用寬度和高度的所有組合(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個黑色列組成。它只適合一個位置(整個圖像)。

如果對所有可能維度的所有職位進行總計,則可以獲得這些數字。

爲了得到第一個數字(圖案),下面的程序(我沒有優化,但它應該是很容易理解!)打印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 

的解釋是其它模式類似。