c++ - 训练 OpenCV LBP 分类器

标签 c++ opencv classification

我需要使用 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

最佳答案

我正在做类似的事情。训练阶段通常会被锁定在无限循环中,需要修改代码以防止这种情况。 createsamplestraincascade 使用哪些参数?最初尝试减少 traincascade 中负图像的数量。这对我有用..

关于c++ - 训练 OpenCV LBP 分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14612826/

相关文章:

c++ - 将 UTF-16(Windows 上的 wchar_t)转换为 UTF32

c++ - 通过套接字发送二进制文件

c++ - C++ 中的 NaN 为什么?

computer-vision - 如何在 TensorFlow 中为场景标签实现逐像素分类?

c++ - 在使用 stop_token 等待条件变量_any 时是否需要拥有锁来请求停止?

c++ - 带有参数的方法 (const T *&) or (T * &) or(const T * const &) or(T * const &)

opengl - 投影矩阵的相似变换

c++ - 模式匹配 - 在第二张图像中查找引用对象 [OpenCV?]

python - 根据特定标准从图像中选择坐标

machine-learning - 什么是弱监督学习(引导)?