2017-01-27 14 views
1

私はopencv haarカスケードを使用して顔検出を行っています。顔検出のためのHaarカスケードXMLファイルコードの説明OpenCV

自分のプログラムに含まれているhaarカスケードのxmlコードの説明を知りたいと思っていました。誰かは、例えば、XMLファイルで提示値を理解するために私を助けることができる:weakcountmaxcountthresholdinternal nodesleaf valuesなど私はhaarcascade_frontalface_alt2.xmlファイルを使用してきた

。私はすでに顔の検出を行っています。現在、私は検出された顔の数を数えることに取り組んでいます。

+0

関連性:http://stackoverflow.com/questions/2000816/how-to-create-haar-cascade-xml-for-using-with-opencv – SingerOfTheFall

答えて

3

私が理解しているように、一般的には、haarascascadeの構造とOpenCVの実装についてすでに知っています。いいえの場合は、最初にOpenCV manualを調べて、昇華した樹木のカスケードについて、たとえばLienhart's paperなどを読んでください。

xml構造そのものについて。

<maxWeakCount>3</maxWeakCount> 

このパラメータは、ステージでの単純な分類子(ツリー)の量を表します。

<stageThreshold>3.5069230198860168e-01</stageThreshold> 

これはステージのしきい値です。 e。ステージでカスケードを終了するための閾値スコア。すべての段階で、我々は樹木からの最終スコアを計算し、最終スコアが閾値よりも低い場合、我々はカスケード全体から出て、結果を非対象として考える。

<weakClassifiers> 

ステージのツリーパラメータの開始。

<_> 
    <internalNodes> 
    0 1 0 4.3272329494357109e-03 -1 -2 1 1.3076160103082657e-02 
    </internalNodes> 
    <leafValues> 
    3.8381900638341904e-02 8.9652568101882935e-01 2.6293140649795532e-01 
    </leafValues> 
</_> 

これはツリーの説明です。 internalNodesパラメータには以下が含まれています。

  • 0 11 0私達は行くべき現在のノードで葉のインデックスを定義します。最初のケースでは、値がしきい値以下であれば左に進み、上の場合は右に移動し、値がしきい値以上であれば2番目のケースでは右端に移動します。葉を選択するため
  • 特徴指数
  • 閾値
  • もう一つ -1 -2 1 ...パラメータリストがある
  • - 私はOpenCVのソースから見るように、それはリーフインデックスのちょうど別のノードであるが、負の値は、(評価コードに応じて無視されますOpenCVソースから)。

    leafValuesは左の値が含まれている(すなわち左葉のスコア。。)、右の値(右葉のスコア)と木のしきい値:

はカスケード評価コードを考えてみましょう。

<_> 
<rects> 
    <_> 
    6 3 1 9 -1.</_> 
    <_> 
    6 6 1 3 3.</_></rects></_> 
<_> 

HAARパラダイムによる特徴記述そのものです。前のセクションのフィーチャインデックスは、矩形ペアのインデックスについて説明します。

+0

ありがとうございます@avtomaton ...それは本当に役に立ちました.. ..:-) –

+0

あなたが気にしていないなら、私はどのように私は検出された顔の位置を得ることができますか教えてください?描画された矩形の位置ではなく、検出された顔の位置...ありがとう... @avtomaton –

+0

@hemasharma位置としてはどういう意味ですか? Haarカスケードは、顔の周りの境界矩形を検出できます。潜在的な顔の長方形は、検出器によって返されます。あなたがface poseを意味するなら - opencvにバンドルされたカスケードは顔の姿勢を見積もることができません。 – avtomaton

関連する問題