どうもViola & Johnsで使っているAdaBoostとOpenCVのCvBoostクラスは若干使われ方が違うっぽい。
VJでは1特徴が1弱識別器だけど、CvBoostでは全ての特徴を元に弱識別器が構成されているみたい。(CvBoostTreeという決定木)
あとVJでは、1サイクル毎に全ての弱識別器の中から、最もエラーの低い識別器をピックアップしていくのに対して、CvBoostでは1サイクルごとに1つの弱識別器をトレーニングしている。
でも、OpenCVのObjectDetectionではViola & Johnsのアルゴリズムで顔検出とかしてるはずだから、CvBoostでも同様のことができるはず。どうすれば1つの特徴に絞れるか、もうちょい調べてみます。(Cascade Haar Trainingのコードとか読まないといかんかも)
あと、CvBoostの学習結果の弱識別器への重みを取得したいんだけど、これもどうすればよいのかわからないなあ。