OpenCV Traincascade.exe 在没有输出的情况下崩溃

OpenCV Traincascade.exe crashes without output

这是我第一次尝试使用opencv的级联训练机制。我正在尝试基于一个由一个正面图像和 3 个负面图像组成的小图像集。我关注了instructions of the official opencv documentation.

描述文件引用了底片图像bg.txt:

Negative/t1.jpg
Negative/t2.jpg
Negative/t3.jpg

负片图像有不同的尺寸(都在“1920 x something”像素范围内)。

正像用于生成矢量文件

opencv_createsamples.exe -img Positive/p1.jpg -num 5000 -w 100 -h 60 -show -vec vecFile.vec

目前一切正常,没有错误。我猜矢量文件 vecFile.vec 不可读是正常的,因为它存储了 5000 张图像。

当我现在想使用

应用级联训练时
opencv_traincascade.exe -data TrainData/ -vec vecFile.vec -bg bg.txt -w 100 -h 60 -npos 10 -nneg 10

程序崩溃,没有任何输出("the program has stopped working")。知道为什么会这样吗?我是不是忘记了一些重要的参数?

我正在使用 Windows 10 和 opencv 3。

去年尝试训练级联时,我遇到了同样的问题。我发现它非常耗费内存,所以如果您使用 5000 张按您编写的大小采样的图像(-w 100 -h 60),您的 PC 可能内存不足(或其他因素,例如堆大小限制) .在我看来,trainscascade 将所有样本数据放入 RAM 中进行训练。

您可能必须尝试更小的尺寸,例如您提到的文档示例 -w 24 -h 24,然后少量增加,直到尺寸合适但没有崩溃。