カスケード識別器の効率とか×

OpenCVのカスケード識別機の資料ですが、Intelのサイトにしっかりした解説がありました×
Learning-Based Computer Vision with Intel’s Open Source Computer Vision Library
積和画像の話なんかも載ってますし、最初からここを見ておけば楽でした X > _ < X
さて、識別機を複数のStageに分けて効率を上げるという話がありましたが、そのへんの記述もありますね×

In experiments, about 70-80% of candidates are rejected in the first two stages that use the simplest features

ということですが、実際どうなんでしょう。標準で付いてくる顔の識別機を使って調べてみました×
入力画像はこれ×
input
出力はこちら×
output
さすがの精度ですね。このとき、OpenCVが識別器を適用している様子をアニメーションにするとこんな感じです×
classifier run
当然のことながら、画像に含まれる顔の大きさや位置はバラバラなので、OpenCVは識別器の大きさと位置をずらしながら検査します。このときの識別器の大きさと位置を Window といいます。上の画像では、各 Window の左上の角に長い柱が立っています。柱の足元にある四角い枠は、 Window の範囲です。また、すべての Window を同時に出すとさすがに画像が潰れてしまうので、Window の大きさごとにコマを割ってアニメーションしています×
柱の色は、各 Window がどの Stage まで進んだかを表しています。Stage 1,2 で棄却された Window は緑、そこから先で棄却されたものは黄、棄却されなかった(顔かもしれないと判定された)ものは赤で表示されています×
これで見ると…… なんか、結構な数が Stage 2 以降に進んでしまったように見えますが、実際の数字をみるとこうなります×
rejects
公称通り、70%程度が最初の2ステージで棄却されています。なんか上のアニメーションは失敗だったかもしれません X > _ < X