2

我已经阅读了有关 Viola-Jones 对象检测方法的论文,并且对一些事情感到困惑。

1 - 对于 Adaboost,每一轮是否意味着我们计算所有图像中的所有 160k 特征,然后找到误差最小的特征(据我所知,这是一个“弱分类器?如果我错了,请纠正我)。如果是,那么在可能需要几个月的大量图像上训练这是否需要很长时间?如果这是正确的,您还将运行多少轮。

2-如果上述观点是错误的,那么这是否意味着对于每个特征,我们使用一个特征评估所有非人脸和人脸图像,并将其与某个可接受的错误阈值进行比较,如果它低于这个可接受的阈值,那么我们将此特征作为弱分类器,然后在使用 160k 特征中的下一个特征之前更新权重。

我尝试理解此链接http://www.ece301.com/ml-doc/54-face-detect-matlab-1.html中的 MATLAB 代码,但不确定他实现 adaboost 的方式是否正确。

如果有一个链接可以简单明了地解释 Viola-Jones 使用的 adaboost,那也将是一个很大的帮助。

4

2 回答 2

1

AdaBoost 在几轮中尝试多个弱分类器,在每一轮中选择最好的弱分类器,并结合最好的分类器来创建一个强分类器。

adaboost 的示例:

 Data point    Classifier 1  Classifier 2     Classifier 3
 x1             Fail           pass             fail     
 x2             Pass           fail             pass 
 x3             fail           pass             pass 
 x4             pass           fail             pass

AdaBoost 可以通过反转他们的决定来使用始终错误的分类器。

于 2013-11-17T10:13:17.527 回答
0

1) 是的。如果您的参数是 5000 个正窗口和 5000 个负窗口(从您最初提供的一组负背景图像中提取),那么在每个阶段依次评估所有 10000 个窗口的每个特征,并将最好的一个添加到功能集。是的,在 Viola-Jones 的原始论文中,每个特征都是一个弱分类器。
检查所有功能的过程将需要很长时间,但不是几周。事实上,瓶颈是在最后阶段聚集的负面寡妇,可能需要几天或几周的时间。回合数取决于给定条件的达到。每个阶段都需要多轮(通常在最后阶段更多)。例如:第 1 阶段需要 3 个特征(3 轮),第 2 阶段需要 5 个特征(5 轮),第 3 阶段需要 6 个特征(6 轮),等等。

2) 上述观点属实,因此不适用。

于 2016-05-07T12:01:24.983 回答