【问题标题】:OpenCV Traincascade.exe crashes without outputOpenCV Traincascade.exe 崩溃且无输出
【发布时间】:2016-03-03 13:38:54
【问题描述】:

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

负片图片由描述文件bg.txt引用:

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

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

正像用于生成矢量文件

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。

【问题讨论】:

    标签: c++ opencv opencv3.0 cascade-classifier


    【解决方案1】:

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

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

    【讨论】:

    • 这似乎真的解决了它,非常感谢。有趣的是,在它崩溃之前,我有一个内存不足异常(它写在控制台输出中)并且已经减少了它。所以我没想到这个问题仍然是一个问题,因为控制台输出不存在。 24 x 24 听起来很小 :-)
    猜你喜欢
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多