【发布时间】: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