5

誰かが cascade.xml の数値/値を完全に説明できれば最高です。例:

<!-- stage 0 -->
<_>
  <maxWeakCount>3</maxWeakCount>
  <stageThreshold>-8.8384145498275757e-001</stageThreshold>
  <weakClassifiers>
    <_>
      <internalNodes>
        0 -1 66 5.1593100652098656e-003</internalNodes>
      <leafValues>
        -8.0555558204650879e-001 8.0694979429244995e-001</leafValues></_>
    <_>
      <internalNodes>
        0 -1 108 1.5044789761304855e-002</internalNodes>
      <leafValues>
        -6.2940740585327148e-001 7.5122624635696411e-001</leafValues></_>
    <_>
      <internalNodes>
        0 -1 99 -4.7172707127174363e-005</internalNodes>
      <leafValues>
        5.5112153291702271e-001 -8.6111217737197876e-001</leafValues></_></weakClassifiers></_>

これらの値の意味は何ですか

      <internalNodes>
        0 -1 99 -4.7172707127174363e-005</internalNodes>

もう 1 つの質問は、特定のステージで使用する機能をプログラムがどのように認識するかということです。私の知る限り、機能は次のような形になっています

<_>
  <rects>
    <_>
      21 6 3 5 -1.</_>
    <_>
      22 6 1 5 3.</_></rects>
  <tilted>0</tilted></_>

これにより、以下のようなものを形成する 2 つの長方形の座標になります。

=-=    = Black colored rectangle
=-=    - White colored rectangle
=-=
=-=
=-=

-1 の値は何ですか。と 3. とはどういう意味ですか? 私はそれが重みであることを知っていますが、機能を計算するためにどのように使用されますか?

概要

  1. 内部の値の意味は何<internalNodes>ですか?
  2. 機能はどのように計算されますか? ウェイトはどのように<rects>使用されていますか?
  3. 最も重要なことは、どのフィールドが特定のステージ/ノードでどの機能が使用されているかを示すことです。

ありがとう!

4

1 に答える 1

7

OpenCV のソース コードを掘り下げた後、私はついに自分自身の疑問に対する答えを得ることができました。

  • internalNodes タグで囲まれた値

node.left node.right node.featureIdx node.threshold

node.left と node.right が何のためにあるのかわかりません。どこでも呼び出されているのがわからないからです。

  • 重みは、以下のように機能を計算するために使用されます。

float ret = rect[0].weight * CALC_SUM(p[0], _offset) + rect[1].weight * CALC_SUM(p[1], _offset);

  • 最初の箇条書きで述べたように、node.featureIdx は、その特定のノードで評価されている機能のインデックスです。
于 2013-03-09T08:43:12.200 に答える