0
<!-- tree 0 -->
-<_>
**<!-- root node -->**
-<feature>
    -<rects>
        <_>2 7 16 4 -1.</_>
        <_>2 9 16 2 2.</_>
    </rects>
    <tilted>0</tilted>
</feature>
<threshold>4.3272329494357109e-003</threshold>
<left_val>0.0383819006383419</left_val>
<right_node>1</right_node>
</_>
-<_>
    **<!-- node 1 -->**
-<feature>
    -<rects>
        <_>8 4 3 14 -1.</_>
        <_>8 11 3 7 2.</_>
    </rects>
    <tilted>0</tilted>    
</feature>
<threshold>0.0130761601030827</threshold>
<left_val>0.8965256810188294</left_val>            
<right_val>0.2629314064979553</right_val>

<root node><node 1>分别是什么?

我认为每个弱分类器都与一个类似 haar 的特征相匹配

但是当我看到这个 XML 代码时,有两个节点,我很困惑。

我也不明白 right/left_node 或 right/left_val 的含义。

4

2 回答 2

0

OpenCV 代码不是 Viola-Jones 特定算法的通用代码,因此 XML 文件具有树状结构,而 Viola-Jones 具有多阶段的线性结构。总之你会发现每个根节点都是一个阶段,当然内部节点是特征,而每个特征有2或3个矩形。

于 2014-01-08T12:35:09.837 回答
0

训练样本有不同的方法。一种方法是让“nsplits”选项小于 2,其中仅生成根节点,每个根节点对应一个 haar 特征,但如果“nsplits”大于 1,则将根节点拆分为叶节点使得根节点 + 叶节点 = nsplits 值并具有与以回归决策树形式 (CART) 排列的每个“节点”相关联的 1 个 haar 特征。

为了简短地回答您的问题,即使在这里,每个分类器都是一个 haar 特征,但是以具有超过 1 个叶子的决策树形式排列。对于这个特定示例,训练是使用 nsplits = 2 完成的。

于 2013-12-06T01:06:59.713 回答