多视图人脸检测的决策树训练
Posted
技术标签:
【中文标题】多视图人脸检测的决策树训练【英文标题】:Decision tree training for Multi-View face detection 【发布时间】:2014-11-11 10:01:12 【问题描述】:我正在从事多视图人脸检测并遵循琼斯的多视图人脸检测算法。
在论文"Fast Multi-view Face Detection" 中,Jones 用不同面部姿势的图像训练了 C4.5 决策树。在Decision Tree Training 3.3节中提到“训练算法与boosting算法几乎相同。两个主要区别是特征选择的标准和训练集在每个节点的分割”
我学习并理解了 C4.5 算法here。
我不知道如何为 C4.5 决策树训练不同面部姿势的图像。
编辑 1: 级联分类器ADABOOST算法训练阶段0和阶段1的特点如下图所示。
<!-- 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 -->
<_>
<maxWeakCount>4</maxWeakCount>
<stageThreshold>-0.4872078299522400</stageThreshold>
<weakClassifiers>
<!-- tree 0 -->
<_>
<internalNodes>
0 -1 84 2147483647 1946124287 -536870913 2147450879
738132490 1061101567 243204619 2147446655</internalNodes>
<leafValues>
-0.8083735704421997 0.7685696482658386</leafValues></_>
<!-- tree 1 -->
<_>
<internalNodes>
0 -1 21 2147483647 263176079 1879048191 254749487 1879048191
-134252545 -268435457 801111999</internalNodes>
<leafValues>
-0.7698410153388977 0.6592915654182434</leafValues></_>
<!-- tree 2 -->
<_>
<internalNodes>
0 -1 106 -98110272 1610939566 -285484400 -850010381
-189334372 -1671954433 -571026695 -262145</internalNodes>
<leafValues>
-0.7506558895111084 0.5444605946540833</leafValues></_>
<!-- tree 3 -->
<_>
<internalNodes>
0 -1 48 -798690576 -131075 1095771153 -237144073 -65569 -1
-216727745 -69206049</internalNodes>
<leafValues>
-0.7775990366935730 0.5465461611747742</leafValues></_></weakClassifiers></_>
编辑2:
下图描述了我对如何训练决策的考虑 我仍在弄清楚要使用哪些功能,但我认为培训应该如附图所示。 谢谢
【问题讨论】:
你不明白的到底是什么? @remi 我们需要属性来训练决策树。我必须使用哪些属性?我知道如何用 Haar 特征或 LBP 特征训练增强级联分类器。在每次迭代时提升权重,一旦 FA 可以接受就停止迭代。对于 C4.5 决策树,我需要训练属性和值。那么训练决策树的属性是什么。 @remi 然后琼斯说“训练算法几乎与提升算法相同”。怎么可能是一样的训练? 从 ADABOOST 培训中,我收到了 20 个阶段的 XML 文件中的选定功能。阶段 0 和阶段 1 显示在 edit1 中。这些特征是否用于训练决策树? 【参考方案1】:没有阅读论文,但根据我从早期人脸识别实验中了解到的情况,您正在寻找的属性可能只是人脸图像的灰度输入。通常,图像会被重新缩放,比如 32x32 像素,所以你有一个 1024 维向量来训练你的决策树。仔细看看文章,如果他们使用其他功能,他们会写,或者至少给出一个参考?
【讨论】:
我可以接受您的解释,因为您的意思是我们需要使用特征(在您的情况下为 32x32 灰色像素)来训练决策树。我联系了琼斯,他说他使用了与级联分类器相同的功能。因此,我描述了 EDIT1 中用于级联分类器的特征示例。它们在 internalNodes、leafValues 和 threshold 中。我还在调试 detection_based_tracker.cpp 所以我还是不明白,这些是如何使用的,真正的功能是什么。所以我理解的方式,我在 EDIT2 中描述。 (待续) 假设每张图片都有 100 个特征(属性)。对于不同的面部姿势,我会有不同的值范围。然后,如果我有 1000 张正面图像,我将有 1000 行用于该面部姿势。然后我为 C4.5 决策树训练该表。这对你有意义吗? C4.5 可以分类多个类,对吧?琼斯说他很忙,所以我不能详细问他。 是的,看起来没问题。训练的输入将是一个 1000x100 矩阵(假设描述符按行存储)+ 标签。决策树确实可以处理多个类以上是关于多视图人脸检测的决策树训练的主要内容,如果未能解决你的问题,请参考以下文章