我需要使用 OpenCV 创建自己的 LBP 级联分类器,因此为了习惯这个过程,我一直使用一个非常小的文件集来掌握它的窍门。
但是,我正在努力寻找有关 opencv_traincascade 的合适信息。我设置了在 .vec 文件中的 87 张正像图像上运行的进程。我意识到这是一个很小的集合,不会有太大用处,但我希望如果我将它精确地粘贴到负片上,它可能足以拾取我的一张正片图像,只是为了测试理论。 然而,当我开始训练过程时,结果是它到达第5阶段,然后在开始第6阶段时挂起。
我用一个更小的正集重新启动了这个过程,它做了同样的事情 - 由于某种原因,它进入阶段 x 并在训练阶段开始时卡住在负计数上,并且永远不会恢复。
有人有什么想法或建议吗?问题是我的训练集太小了吗?
===== TRAINING 0-stage =====
BEGIN
POS count : consumed 6 : 6
NEG count : acceptanceRatio 2600 : 1
Precalculation time: 10.965
+----+---------+---------+
| N | HR | FA |
+----+---------+---------+
| 1| 1| 0|
+----+---------+---------+
END
===== TRAINING 1-stage =====
BEGIN
POS count : consumed 6 : 6
NEG count : acceptanceRatio 2600 : 0.0244943
Precalculation time: 10.985
+----+---------+---------+
| N | HR | FA |
+----+---------+---------+
| 1| 1| 0|
+----+---------+---------+
END
===== TRAINING 2-stage =====
BEGIN
POS count : consumed 6 : 6
NEG count : acceptanceRatio 2600 : 0.000697076
Precalculation time: 11.237
+----+---------+---------+
| N | HR | FA |
+----+---------+---------+
| 1| 1|0.000384615|
+----+---------+---------+
END
===== TRAINING 3-stage =====
BEGIN
POS count : consumed 6 : 6
最佳答案
我正在做类似的事情。训练阶段通常会被锁定在无限循环中,需要修改代码以防止这种情况。 createsamples 和 traincascade 使用哪些参数?最初尝试减少 traincascade 中负图像的数量。这对我有用..
关于c++ - 训练 OpenCV LBP 分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612826/