カスケードとは、複数の分類器の連結に基づくアンサンブル学習の特殊なケースであり、特定の分類器からの出力から収集されたすべての情報を、カスケード内の次の分類器の追加情報として使用します。マルチエキスパート システムである投票アンサンブルやスタッキング アンサンブルとは異なり、カスケーディングは多段階のシステムです。
カスケード分類器は、特定のオブジェクトの数百の「ポジティブ」サンプル ビューと、同じサイズの任意の「ネガティブ」画像を使用してトレーニングされます。分類器がトレーニングされた後、画像の領域に適用して、問題のオブジェクトを検出できます。フレーム全体でオブジェクトを検索するには、検索ウィンドウを画像上で移動し、分類器ですべての場所を確認します。このプロセスは、主に顔の検出と認識などのオブジェクトの検出と追跡のための画像処理で最もよく使用されます。
最初のカスケード分類器は、Viola と Jones (2001)の顔検出器でした。この分類器には、カメラや携帯電話などの 低電力CPUに実装できるように高速であることが求められました。
アルゴリズムの特性
拡大縮小と回転
この説明から、分類器は上下逆さまの顔(眉毛が正しい位置にない)や顔の横(鼻が中央になく、鼻の横の影が失われている可能性がある)を受け入れないことがわかります。画像平面(顔の横)にない回転ごとに、別のカスケード分類器をトレーニングする必要があり、画像平面(顔が逆さままたは横に傾いている)にある回転ごとに、回転した特徴に対して再トレーニングまたは実行する必要があります。特徴は拡大縮小できるため、スケーリングは問題になりません(中心ピクセル、左ピクセル、右ピクセルは、検査された四角形に対してのみ相対的な寸法を持ちます)。最近のカスケードでは、四角形のある部分のピクセル値を別の部分と比較する代わりに、Haar ウェーブレットが使用されています。
ステージプロパティ
全体的なパフォーマンスを良好にするには、次の基準を満たす必要があります。
- 各ステージではすべての顔を検証する必要があり、多くの誤検知が発生する可能性があります。たとえば、ステージ 1 で顔を含む四角形の 20% を「顔を含まない」とマークした場合 (偽陰性率 = 20%)、顔の 20% がすでに拒否されているため、次のステージが何であっても、チェーン全体のパフォーマンスは真陽性の 80% を超えることはできません。
- これは、適切なステージでは、真陽性が 100% で、たとえば偽陽性が 40% である必要があることを示しています。つまり、顔を含むすべての四角形を受け入れ、多くの四角形を顔を含む可能性があると誤ってマークし、後のステージで排除します。最初のステージでは、真陽性が 100%、偽陽性が 40% であっても、偽陰性が多くなります。画像内の四角形 1000 個のうち 1 個だけに顔が含まれている場合、最初のステージの後でも 400 対 1 の偽の顔の可能性があります。
- 最初の段階が非常に高速(操作が少ない)であれば、面を含まない四角形の 60% を非常に速く除去できます。
したがって、1 つのステージのトレーニング手順は、多数の弱学習器 (単純なピクセル差分演算子) を用意し、それらをグループとしてトレーニングする (正しい結果が得られた場合は重みを上げる) ことですが、計算時間を短く保つためにアクティブな弱学習器を少数に抑えるように注意してください。
Viola と Jones の最初の検出器には 38 段階があり、最初の段階では 1 つの特徴、次の 5 つの段階では 10、25、25、50 の特徴があり、合計 6000 の特徴があります。最初の段階では、次の段階の計算コストを支払わないように不要な四角形をすばやく削除し、計算時間は、オブジェクトを含む可能性が高い画像の部分を詳細に分析することに費やされます。
カスケードトレーニング
カスケードは通常、コストを考慮した ADAboost を通じて行われます。感度しきい値 (この例では 0.8) は、真陽性が 100% に近くなり、偽陽性がいくらか発生するように調整できます。その後、必要な精度/計算時間に達するまで、ステージ 2 の手順を再度開始できます。
最初のアルゴリズムの後、カスケード全体のトレーニングを最適化して、複雑さを最小限に抑えながら目的の真の検出率を達成できることが分かりました。このようなアルゴリズムの例としては、RCBoost、ECBoost、RCECBoost などがあります。最も基本的なバージョンでは、各ステップで、ステージを追加するか、前のステージに弱い学習者を追加するか、どちらかコストの低い方を選択し、目的の精度に達するまで続けるものと理解できます。分類器の各ステージの検出率 (感度) を目的のレートより低くすることはできないため、これは制約付き最適化問題です。正確には、全体の感度はステージの感度の積になります。
OpenCVでは、正面顔と上半身の事前トレーニング済みのカスケードを備えたカスケード分類器が利用できます。OpenCV で新しいカスケードをトレーニングするには、haar_training または train_cascades メソッドを使用することもできます。これは、 Haar のような特徴を持つ人間以外のオブジェクトなど、より具体的なターゲットの高速オブジェクト検出に使用できます。このプロセスでは、負と正の 2 セットのサンプルが必要です。負のサンプルは任意の非オブジェクト画像に対応します。カスケード分類器のトレーニングにおける時間的制約は、クラウド コンピューティングメソッドを使用して回避できます。
統計におけるカスケーディング分類器
この用語は、統計学において段階的なモデルを説明するためにも使用されます。たとえば、分類器 (たとえばk平均法) は、特徴のベクトル (決定変数) を受け取り、可能性のある分類結果ごとに、ベクトルがクラスに属する確率を出力します。これは通常、決定 (最も高い確率でクラスに分類) を行うために使用されますが、カスケード分類器では、この出力を別のモデル (別のステージ) への入力として使用します。これは、すべての相互作用項を調べずには適合できない、高度な組み合わせルールまたはカウント ルール (たとえば、2 つの特徴が負の場合は class1、それ以外の場合は class2) を持つモデルに特に役立ちます。カスケード分類器を使用すると、後続のステージで分類の組み合わせ特性を徐々に近似したり、1 つのステージでは表現できない分類アルゴリズムに相互作用項を追加したりできます。
簡単な例として、ルール (3 つの特徴のうち 2 つが否定的である場合はクラス 1、それ以外の場合はクラス 2) に一致させようとすると、決定木は次のようになります。
- 特徴 1 否定的
- 特徴2 否定的
- 特徴 3 否定的 -> クラス 2
- 特徴 3 ポジティブ -> クラス 1
- 特徴2 ポジティブ
- 特徴 3 否定 -> クラス 1
- 特徴 3 ポジティブ -> クラス 2
- 特徴2 否定的
- 特徴 1 ポジティブ
- 特徴2 否定的
- 特徴 3 否定 -> クラス 1
- 特徴 3 ポジティブ -> クラス 2
- 特徴2 ポジティブ
- 特徴 3 否定的 -> クラス 2
- 特徴 3 ポジティブ -> クラス 2
- 特徴2 否定的
ツリーには、完全なルールセットを表現するために可能なリーフのすべての組み合わせがありますが、(feature1 正、feature2 負) と (feature1 負、feature2 正) は実際には同じルールに結合する必要があります。これにより、リーフのサンプルが少なすぎるツリーになります。2 段階アルゴリズムは、feature1 または (排他的) feature2 が負の場合にクラス 1 に中高の確率を与えることで、これら 2 つのケースを効果的にマージできます。2 番目の分類器は、この高い確率を取得して、feature3 の符号を決定できます。
バイアス-分散分解では、カスケード モデルは通常、バイアスを下げながら分散を上げるものと見なされます。
参照
参考文献
出典
- Gama, J.; Brazdil, P. (2000). 「カスケード一般化」.機械学習. 41 (3): 315–343. CiteSeerX 10.1.1.46.635 . doi :10.1023/a:1007652114878. S2CID 36907021.
- ミンギヨン、J. (2002)。カスケード小規模決定木について (博士論文)。バルセロナ自治大学。
- Zhao, H.; Ram, S. (2004). 「制約付きカスケードによる決定木の一般化」. IEEE Transactions on Knowledge and Data Engineering . 16 (6): 727–739. CiteSeerX 10.1.1.199.2077 . doi :10.1109/tkde.2004.3. S2CID 8937272.
