ソースを検索します。 “Cascading classifiers” – news – newspapers – books – scholar – JSTOR (June 2019) (Learn how and when to remove this template message)
Scaling and rotationsEdit
この記述からわかることは、分類器は逆さまの顔(眉の位置が正しくない)や横顔(鼻が中央になく、横顔の影が欠けているかも)を受け付けないということである。 画像平面内でない回転(顔の側面)に対しては別のカスケード分類器を学習する必要があり、画像平面内の回転(顔が逆さま、または横に傾いている)に対しては、回転した特徴で再学習または実行する必要があるのです。 特徴量はスケーリングが可能であるため、問題はありません(centerpixel, leftpixels, rightpixelsは、検査した矩形に対してのみ次元があります)。
Stage propertiesEdit
To have good overall performance, the following criteria must be met:
- Each stage must validate all faces, and can produce many false positives.最近のカスカードでは、長方形のある部分から別のものと比較してピクセル値が Haar wavelets で置換されている。 たとえば、ステージ 1 が顔を含む長方形の 20% を「顔を含まない」とマークした場合 (偽陰性率 = 20%)、顔の 20% がすでに拒否されているので、次のステージが何であれ、チェーンの合計パフォーマンスは 80% True positive より高くなることはありません。 最初のステージでは、100% 正陽性で 40% 偽陽性でもまだ多くの偽陰性があり、画像内の 1000 個の矩形のうち 1 個だけが顔を含む場合、最初のステージの後でも 400 ~ 1 個の偽の顔の可能性があります。
1ステージの学習手順は、したがって多くの弱い学習器(単純な画素差演算器)を持ち、それらをグループとして訓練し(正しい結果を出したらその重みを上げる)、アクティブな弱い学習器は数個だけにして計算時間を低く保つように心がける。
Viola & Jonesの最初の検出器は38ステージで、第1ステージは1特徴、次の5ステージは10、25、25、50、合計6000特徴を持っていた。
カスケード学習編集
カスケードは通常、コストを考慮したADAboostによって行われる。 感度閾値(この例では0.8)は100%に近い真陽性と若干の偽陽性があるように調整することができる。 その後、希望する精度/計算時間に達するまで、ステージ 2 の手順を再度開始することができます。
初期のアルゴリズムの後、最小限の複雑さで希望する真の検出率を達成するために、カスケードを全体として最適化してトレーニングできることが理解されました。 そのようなアルゴリズムの例として、RCBoost、ECBoost、またはRCECBoostがある。 最も基本的なバージョンでは、各ステップにおいて、ステージを追加するか、前のステージに弱い学習器を追加するか、どちらかコストが低い方を、目的の精度に達するまで選択すると理解できる。 分類器の各ステージは、希望する精度以下の検出率(感度)であってはならないので、これは制約付きの最適化問題です。 正確には、合計感度はステージ感度の積になります。
Cascade classifiers は OpenCV で利用可能で、正面顔と上半身のための事前学習されたカスケードが用意されています。 また,OpenCV では haar_training や train_cascades メソッドで新しいカスケードを学習することも可能です. これは,Haarのような特徴を持つ人間以外の物体を含む,より具体的なターゲットの物体検出を迅速に行うために利用することができます. この処理には,ネガティブサンプルとポジティブサンプルの2組が必要であり,ネガティブサンプルは任意の非オブジェクト画像に対応します. カスケード分類器の学習における時間的制約は、クラウドコンピューティングの手法を用いることで回避することができる
。