face-detection - adaboost 更新权重 beta 值

标签 face-detection adaboost viola-jones

Viola-Jones 人脸检测使用 adaboost 方法训练强分类器。我对 beta 参数更新政策感到困惑:

enter image description here

为什么选择这样的 beta 值?设置变量beta的目的是增加权重的权重。如何选择:

enter image description here

最佳答案

Viola 和 Jones 的论文没有详细解释 beta 值,但我将尝试解释为什么 beta 值设置为这样。

设置变量 beta 的目的是 不是 总是增加权重,而是仅在特定的弱分类器是好的分类器时才减少/惩罚权重(我稍后会解释什么被认为是好的),如果分类器是坏的分类器,则增加/增加权重. (记住这里的权重是错误率的权重,而不是每个分类器的权重,所以分类器越好,权重应该越小)

显然你可以有不同的方式来定义什么是“好”分类器,但是在 Viola 和 Jones 的论文中使用了一个非常简单的标准,即如果弱分类器的错误率小于 50%,那么它就是“好” ”,否则为“坏”。分类器越好(错误率越小),我们希望增加更多的权重,反之亦然。到现在你应该已经明白为什么这样选择 beta 值了——每当错误率 (epsilon_e) 大于 1/2 时,beta 值就会大于 1,因此权重会增加,反之亦然反之。

关于face-detection - adaboost 更新权重 beta 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26523395/

相关文章:

adaboost - 如果 Viola-jones 人脸检测方法中每轮 boosting 都选择相同的 Haar 特征会怎样?

machine-learning - 为什么在训练中使用负图像?

java - opencv库支持哪些android API?

python - face_recognition.load_image_file ("{}"),这是什么意思?

Android FaceDetector.findFaces 没有找到任何人脸

c++ - openCV 3.0:如何保存/加载 cv::ml::boost 模型

python - 将 GridSearchCV 与 AdaBoost 和 DecisionTreeClassifier 一起使用

python - 使用 Python 在 OpenCV 中获得 detectMultiscale 的置信度?

c++ - Viola-Jones 人脸检测方法是如何工作的?

python - 在 Python 中使用 OpenCV 从图像中裁剪人脸