1

这是我第一次尝试使用opencv的级联训练机制。我正在尝试基于一个正图像和 3 个负图像的小图像集。我按照官方 opencv 文档的说明进行操作

负面图像由描述文件引用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

程序崩溃而没有任何输出(“程序已停止工作”)。知道为什么会这样吗?我忘记了一些重要的参数吗?

我正在使用 Windows 10 和 opencv 3。

4

1 回答 1

0

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

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

于 2016-03-03T13:54:59.390 回答