【问题标题】:OpenCV - LBP Traincascade can’t pass Precalculation in Stage 0, but HAAR works fine?OpenCV - LBP Traincascade 无法通过第 0 阶段的预计算,但 HAAR 工作正常吗?
【发布时间】:2014-10-18 03:03:17
【问题描述】:

我运行 opencv_traincascade,但我从未达到阶段 0 的预计算时间。

编辑:我的问题似乎与 LBP 训练有关。我将 featureType 更改为 HAAR,下面的分类器在几分钟内完成了训练

编辑:预计算时间以秒为单位,因此在第 0 阶段,您应该会看到它在 10 秒内达到预计算,但我看到它高达 40 秒。预计算时间可能会从一个阶段到另一个阶段稳步增加,然后在后期突然急剧增加到半小时(如果您处理数千个样本,可能会更长,但我还没有到那一步)

(我将继续更新这篇文章,填补我所理解的阻碍我理解预先计算的内容,也许会找出为什么 HAAR 训练会起作用而 LBP 不起作用。它可能只需要查看启动阶段循环的源代码)

问题

我运行 opencv_traincascade,但我从未达到阶段 0 的预计算时间。

我使用的是 2014 年购买的 MacBook Air。

处理器 1.3 GHz Intel Core i5
内存 4 GB 1600 MHz DDR3
显卡 Intel HD Graphics 5000
软件 OS X 10.9.4 (13E28)

我的终端看起来像这样,在我的活动监视器中运行了大约 390%(真的吗?)的 CPU 和 4 个线程。

===== TRAINING 0-stage ===== <BEGIN POS count : consumed x : x NEG count : acceptanceRatio y : 1

虽然我尝试过创建许多分类器,但为了分享一些我们都可以联系到的东西,我将参考汽车检测教程,因为无论是我自己的训练,我都会得到相同的结果或不。该培训师已经发布,我看到其他人引用它,所以我认为它有效。

https://www.youtube.com/watch?v=WEzm7L5zoZE

在我的桌面上我有:

在 cars.info 文件夹中包含相对文件路径和信息 (1 0 0 100 40) 的 pos 文件夹;
包含负样本的 neg 文件夹的相对路径的 bg.txt 文件;
一个名为“data”的空数据文件夹;
正样本的cars.vec 文件。我可以查看矢量文件并且图像在那里。

原来100x40有550个正样本,用createsamples创建vec文件后是48x24

100x40 有 500 个负样本

这里是 createsamples 命令,供参考:

opencv_createsamples -info cars.info -num 550 -w 48 -h 24 -vec cars.vec

然后我运行以下命令:

opencv_traincascade -data data -vec cars.vec -bg bg.txt -numPos 500 -numNeg 500 -numStages 2 -w 48 -h 24 -featureType LBP

PARAMETERS: cascadeDirName: data vecFileName: cars.vec bgFileName: bg.txt numPos: 500 numNeg: 500 numStages: 2 precalcValBufSize[Mb] : 256 precalcIdxBufSize[Mb] : 256 stageType: BOOST featureType: LBP sampleWidth: 48 sampleHeight: 24 boostType: GAB minHitRate: 0.995 maxFalseAlarmRate: 0.5 weightTrimRate: 0.95 maxDepth: 1 maxWeakCount: 100

无论我要训练什么,这是我从未见过的 LBP 预先计算的输出;我是如何尝试更改样本大小、图像分辨率、minHitRate 或降低 numPos 的。

===== TRAINING 0-stage ===== <BEGIN POS count : consumed 500 : 500 NEG count : acceptanceRatio 500 : 1

请询问我未能提供的任何信息。我很抱歉。

我了解到培训师陷入无限循环,需要修改源代码。但是,我希望可以避免这种情况,因为这似乎适用于其他人(至少是作者)。

感谢大家过去所有帮助我完成各种编码项目的问题和答案。

【问题讨论】:

  • 我正在解决一个类似的问题,你解决了吗?
  • 很遗憾,我没有。虽然 LBP 训练得更快,但我听说 HAAR 给出了更好的结果。我已经满足于这种牺牲。

标签: opencv


【解决方案1】:

我以前遇到过这样的问题。我解决的方法是将precalcValBufSize和precalcIdxBufSize的值分别设置为0和0。看来预计算对LBP不起作用。但是,将它们设置为 0 后效果很好。LBP 的训练过程比 Haar 快得多。

【讨论】:

    猜你喜欢
    • 2014-04-21
    • 1970-01-01
    • 2013-06-15
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2023-03-31
    相关资源
    最近更新 更多