Viola Jones アルゴリズムの trainingsphase を理解するのに問題があります。
私が理解している限り、アルゴリズムを疑似コードで示します。
# learning phase of Viola Jones
foreach feature # these are the pattern, see figure 1, page 139
# these features are moved over the entire 24x24 sample pictures
foreach (x,y) so that the feature still matches the 24x24 sample picture
# the features are scaled over the window from [(x,y) - (24,24)]
foreach scaling of the feature
# calc the best threshold for a single, scaled feature
# for this, the feature is put over each sample image (all 24x24 in the paper)
foreach positive_image
thresh_pos[this positive image] := HaarFeatureCalc(position of the window, scaling, feature)
foreach negative_image
thresh_neg[this negative image] := HaarFeatureCalc(position of the window, scaling, feature)
#### what's next?
#### how do I use the thresholds (pos / neg)?
これは、この SO の質問のようなフレームです: Viola-Jones の顔検出は 180k の特徴を主張します
このアルゴリズムは、私が理解したと思う HaarFeatureCalc 関数を呼び出します。
function: HaarFeatureCalc
threshold := (sum of the pixel in the sample picture that are white in the feature pattern) -
(sum of the pixel in the sample picture that are grey in the feature pattern)
# this is calculated with the integral image, described in 2.1 of the paper
return the threshold
今までの間違い?
Viola Jones の学習フェーズでは、基本的にどの機能/検出器が最も決定的であるかを検出します。論文に記載されている AdaBoost の仕組みがわかりません。
質問: この論文の AdaBoost は疑似コードでどのように見えるでしょうか?