gpt4 book ai didi

c++ - OpenCV LBP级联分类器模型XML文件中各个参数的含义是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:05 25 4
gpt4 key购买 nike

我正在尝试在 FPGA 上实现 LBP 人脸检测器。为此,我想在 OpenCV 中训练检测器并在 RTL 代码中使用该模型。我试图深入研究已经存在的 LBP frontal face model .我还研究了级联分类器,它是级联的弱分类器,每个弱分类器都有自己的权重。但是,我无法清楚地将我研究的理论与 XML 文件中的模型关联起来。考虑一个样本阶段形式 this型号:

<!-- stage 0 -->
<_>
<maxWeakCount>3</maxWeakCount>
<stageThreshold>-0.7520892024040222</stageThreshold>
<weakClassifiers>
<!-- tree 0 -->
<_>
<internalNodes>
0 -1 46 -67130709 -21569 -1426120013 -1275125205 -21585
-16385 587145899 -24005</internalNodes>
<leafValues>
-0.6543210148811340 0.8888888955116272</leafValues></_>
<!-- tree 1 -->
<_>
<internalNodes>
0 -1 13 -163512766 -769593758 -10027009 -262145 -514457854
-193593353 -524289 -1</internalNodes>
<leafValues>
-0.7739216089248657 0.7278633713722229</leafValues></_>
<!-- tree 2 -->
<_>
<internalNodes>
0 -1 2 -363936790 -893203669 -1337948010 -136907894
1088782736 -134217726 -741544961 -1590337</internalNodes>
<leafValues>
-0.7068563103675842 0.6761534214019775</leafValues></_></weakClassifiers></_>
<!-- stage 1 -->

我的具体问题是:

  1. 中的数字是多少?我认为数字 0 和 -1 对应树桩的左右节点(如果我错了请纠正我),46 指的是特征编号。其他7个整数我不清楚。
  2. 计算完所有 3 个 LBP 特征(此处为 46、13 和 2)后,如何确定该阶段是通过还是失败?
  3. 我研究过 LBP 特征是 8 位无符号数(0 到 255)。但我不明白为什么模型中会出现那些大的 +ve 和 -ve 整数。例如:-67130709 -21569 -1426120013 -1275125205 -21585 -16385 587145899 -24005

我很感激任何建议。谢谢。

最佳答案

  1. 你是对的。前两个数字指的是树中节点的索引。如果 index <= 0 表示它是叶节点。因此,在您的示例中,它肯定是基于树桩的树。 46是 LBP 特征的索引。另外 8 个值是子集掩码。要了解其工作原理,请参阅 this代码行(c 是 LBP 特征的值):

    tmp += (subset[c>>5] & (1 << (c & 31))) ? stump.left : stump.right;
  2. 当您计算每棵树的 LBP 特征时,您应该计算叶索引(请参阅上面代码行的链接)。然后你需要对这个阶段所有树的叶子值求和。如果此总和小于 <stageThreshold>阶段失败。

  3. 参见第一点。

关于c++ - OpenCV LBP级联分类器模型XML文件中各个参数的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36007830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com