gpt4 book ai didi

OpenCV Haar Classifier 结果表解释

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:09 26 4
gpt4 key购买 nike

我正在尝试创建一个 Haar 分类器来识别对象,但我似乎无法弄清楚每个阶段生成的结果表代表什么。

例如1

===== TRAINING 1-stage =====
<BEGIN
POS count : consumed 700 : 700
NEG count : acceptanceRatio 2500 : 0.452161
Precalculation time: 9
+----+---------+---------+
| N | HR | FA |
+----+---------+---------+
| 1| 1| 1|
+----+---------+---------+
| 2| 1| 1|
+----+---------+---------+
| 3| 1| 1|
+----+---------+---------+
| 4| 1| 1|
+----+---------+---------+
| 5| 1| 0.7432|
+----+---------+---------+
| 6| 1| 0.6312|
+----+---------+---------+
| 7| 1| 0.5112|
+----+---------+---------+
| 8| 1| 0.6104|
+----+---------+---------+
| 9| 1| 0.4488|
+----+---------+---------+
END>

例如2

===== TRAINING 2-stage =====
<BEGIN
POS count : consumed 500 : 500
NEG count : acceptanceRatio 964 : 0.182992
Precalculation time: 49
+----+---------+---------+
| N | HR | FA |
+----+---------+---------+
| 1| 1| 1|
+----+---------+---------+
| 2| 1| 1|
+----+---------+---------+

我不确定在这些情况下,NHRFA 指的是什么。有人可以解释一下他们代表什么以及他们的意思吗?

最佳答案

OpenCV source 中搜索“HR”带领我们到this文件。 CvCascadeBoost::isErrDesired 中的第 1703-1707 行打印表格:

cout << "|"; cout.width(4); cout << right << weak->total;
cout << "|"; cout.width(9); cout << right << hitRate;
cout << "|"; cout.width(9); cout << right << falseAlarm;
cout << "|" << endl;
cout << "+----+---------+---------+" << endl;

所以 HR 和 FA 分别代表命中率和误报率。从概念上讲:hitRate = 被正确分类的正样本的百分比。 falseAlarm = 负样本被错误分类为正样本的百分比。

阅读 CvCascadeBoost::train 的代码,我们可以看到以下 while 循环

cout << "+----+---------+---------+" << endl;
cout << "| N | HR | FA |" << endl;
cout << "+----+---------+---------+" << endl;

do
{
[...]
}
while( !isErrDesired() && (weak->total < params.weak_count) );

只要看看这个,并且不太了解增强的具体细节,我们可以做出有根据的猜测,即训练有效,直到误差足够低,如 falseAlarm 所衡量的那样。

关于OpenCV Haar Classifier 结果表解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26971769/

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