2014-01-30 75 views
1

我尝试使用opencv_traincascade.exe,但它启动后几秒钟崩溃。这是我如何进行:opencv_traincascade崩溃没有解释

opencv_createsamples -info info.txt -vec vecFile.vec -bg neg.txt -num 100 -w 100 -h 100 
  • info.txt具有116线;这些都是这样的::

    的ImagePath 1 0 0 100 100

    我使用首先创建所述阳性样品

    只是文件的名称在不同的行中发生了变化,但所有图像的大小都是100 * 100(我正在干细胞上处理高分辨率图片,因此在25 * 25图片中,我想我会n OT有足够的信息来检测一下我期待的)

  • neg.txt包含715线,只是文件路径

成功地创建了100个样品

,然后我启动与培训:

opencv_traincascade -data Cascade -vec vecFile.vec -bg neg.txt -numPos 10 -numNeg 20 -numStages 2 -featureType HAAR -w 100 -h 100 

然后我得到了以下错误消息:

opencv_traincascade.exe has stopped working 

而没有别的。

任何想法是怎么回事?

谢谢

+0

您是否创建了文件vecFile.vec和文件夹Cascade? – Dabo

+0

vecFile.vec已经使用opencv_createsamples创建,所以是的。是的,我还创建了Cascade – taktak004

回答

3

这是因为您选择的窗口大小。 traincascade.exe用于训练分类器的内存随着窗口大小成指数增长,并且有几台家用计算机可以处理traincascade中的100x100窗口大小。

执行此练习:打开任务管理器并监视内存使用情况当你开始训练时,你会注意到当程序不能分配更多内存时程序崩溃。 要解决这个问题,你必须选择一个更小的窗口大小。

+0

文件夹,我只是按照您的建议进行了监视,但它并未使用我个人电脑的所有RAM,或者它可能会如此之快以至于我看不到它... 我会尝试更小的窗口看 – taktak004

+1

那么,毕竟你显然是正确的。 – taktak004

+0

您可以使用参数-precalcValBufSize 1024和-precalcIdxBufSize 1024.如果喜欢,可以增加数字,但需要将值放在RAM容量以下。 – cyberdecker