【发布时间】:2017-12-02 01:30:57
【问题描述】:
我一直在摆弄 OpenCV 的级联训练器,试图训练我自己的分类器。问题是它现在已经训练了 25 小时以上,甚至还没有通过第 1 阶段。
最初,我使用以下命令运行它
nohup opencv_traincascade -data data -vec board.vec -bg bg.txt -numPos 580 -numNeg 1160 -numStages 2 -w 115 -h 153 -featureType LBP &
大约 24 小时后,它甚至无法通过第 1 阶段。查看nohup.out 文件,我意识到默认的precalcValBufSize 设置为1024Mb。我想也许将其增加到 4096Mb 将有助于处理,所以我继续使用以下命令重新开始训练
nohup opencv_traincascade -data data -vec board.vec -bg bg.txt -numPos 580 -numNeg 1160 -numStages 2 -w 115 -h 153 -featureType LBP -precalcIdxBufSize 4096 -precalcValBufSize 4096 &
培训已经进行了将近 25 个小时,甚至还没有生成阶段 0 的 XML 文件。
进程本身的look 表明它使用了 8284M 的虚拟内存,但使用了 930M 的物理内存,this 显示了进程当前正在使用的所有文件。它在燃烧我的核心方面做得很好,但没有产生任何结果,甚至没有让我知道它走了多远。
我的问题是,有没有办法让它使用更多我的实际物理内存来加速它?如果没有,我需要对我的训练数据集进行任何调整吗?
旁注: 我知道数据集大小的一般标准是 24x24,但我已经尝试过了,即使经过 10 个阶段,它也确实很糟糕。 在那个尺寸下,my object's 轮廓不再正确地获得其特征。在 24x24 甚至 48x48 的分辨率下,它看起来像一个巨大的水平扭曲的黑色像素块,甚至看不到它的一些独特特征。
【问题讨论】:
-
是卡在收集/寻找负样本还是计算特征需要这么多时间?
-
好的,chooseb 的尺寸确实大得惊人。
-
从 nohup 结果来看,它似乎能够收集到所有的负样本。在查看other peoples results 之后,至少它会打印出 TRAINING 1-STAGE blah blah blah.. 但它甚至没有出现在我的教练身上
-
顺便说一句,HAAR 使用的不是“形状”而是“纹理”,所以不确定 HAAR 级联(和 LBP)是否适合您。
-
我不能发布实际的对象,所以轮廓是我能做的最接近的。但可以想象中间部分有一个屏幕和对象周围的一些徽标
标签: opencv haar-classifier cascade-classifier lbph-algorithm