Opencv 我已经开始了一系列的训练,但是速度很慢。。。内存交换是问题吗?

Opencv 我已经开始了一系列的训练,但是速度很慢。。。内存交换是问题吗?,opencv,training-data,haar-classifier,Opencv,Training Data,Haar Classifier,我已经开始训练一个包含约600张负面图像和约120张正面图像的级联(扭曲和转化为约1500张正面图像)。我使用的是opencv_traincascade,我已经设置了如下参数: numPos: 1000 numNeg: 609 numStages: 20 preCalcValBufSize: 4096 (mb) preCalcIdxBufSize: 4096 (mb) stageType: BOOST featureType: Haar sampleWidth: 80 sampleHeight:

我已经开始训练一个包含约600张负面图像和约120张正面图像的级联(扭曲和转化为约1500张正面图像)。我使用的是opencv_traincascade,我已经设置了如下参数:

numPos: 1000
numNeg: 609
numStages: 20
preCalcValBufSize: 4096 (mb)
preCalcIdxBufSize: 4096 (mb)
stageType: BOOST
featureType: Haar
sampleWidth: 80
sampleHeight: 80
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: All
我的电脑是一台16 GB内存的mac mini,它运行的是四核i7。它也有一个硬盘驱动器而不是SSD。它已经运行了大约1天8小时,现在处于训练阶段3


我想知道是否有什么原因使培训花费了这么长时间。按照这个速度,完成培训需要6-7天。我注意到的一件事是,我通常使用1-2GB的交换内存,它偶尔会说我的内存有“压力”。我对交换记忆知之甚少,但我认为这可能会减慢我的训练速度。这是怎么回事?另外,为了时间起见,我是否应该重新开始培训,将两个Buf大小的内存使用率降低到2048 mb?

我知道我迟到了,但可能还有人需要回答这个问题。
很可能你的问题是使用了相当大的图像-我记得进行了一些训练(我做了一两次),将sampleWidth和sampleHeight设置为20。在上述文章中,宽度为80,高度为40,但样本数量要小得多,物体形状也很简单。

您提到的参数(preCalcValBufSize和preCalcIdxBufSize)设置了最大ram使用量——因此,这就像说“您可以使用我的ram的x MB用于preCalcValBufSize,y MB用于preCalcIdxBufSize,甚至不看我的剩余内存——我需要它来做其他事情。”只要
preCalcValBufSize+preCalcIdxBufSize
就没有必要使用swap(因此操作系统不会使用它)。

与以下内容相比:“这将花费很多时间。我不是指旧的“喝杯咖啡然后回来”-花了很多时间,不。在2011年年中的MacBook Air上运行它需要几天时间。它也会占用大量内存和CPU。在运行时做些其他事情,然后在您注意到它完成后再回来。更好的是:使用EC2盒来运行它。”他们引用了一个~2天的运行时间,而这是预测的7天,图像数量大致相同