我运行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)
我的终端看起来像这样,在我的Activity Monitor中运行了大约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文件夹;
一个bg.txt文件,包含包含负样本的neg文件夹的相对路径;
一个名为“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
请询问我未能提供的任何信息。我道歉。
我已经读过培训师陷入无限循环,并修改所需的源代码。但是,我希望可以避免这种情况,因为这似乎适用于其他人(至少是作者)。
感谢所有过去的问题和答案,这些问题和答案帮助我完成了各种编码项目。
答案 0 :(得分:2)
我之前遇到过这样的问题。我解决它的方法是将precalcValBufSize和precalcIdxBufSize的值设置为0和0.似乎预先计算不能用于LBP。但是,它们设置为0后效果很好.LBP的训练过程比哈尔快得多。