OpenCV Traincascade.exe 崩溃且无输出
Posted
技术标签:
【中文标题】OpenCV Traincascade.exe 崩溃且无输出【英文标题】:OpenCV Traincascade.exe crashes without output 【发布时间】: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。
【问题讨论】:
【参考方案1】:当我去年尝试训练级联时,我遇到了同样的问题。我发现它非常占用内存,所以如果您使用 5000 张以您编写的大小(-w 100 -h 60)采样的图像,您的 PC 可能会出现内存不足(或其他诸如堆大小限制之类的东西) .在我看来,trainscascade 将所有样本数据放在 RAM 中进行训练。
您可能必须尝试更小的尺寸,例如您提到的文档示例,-w 24 -h 24,并少量增加,直到获得合适的尺寸但没有崩溃。
【讨论】:
这似乎真的解决了它,非常感谢。有趣的是,在它崩溃之前,我有一个内存不足异常(它写在控制台输出中)并且已经减少了它。所以我没想到这个问题仍然是一个问题,因为控制台输出不存在。 24 x 24 听起来很小 :-)以上是关于OpenCV Traincascade.exe 崩溃且无输出的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV Traincascade.exe 崩溃且无输出
opencv_annotation.exeopencv_createsamples.exeopencv_traincascade.exe
错误“无法填充临时阶段的训练数据集。”在使用 OpenCV 的 traincascade 工具时
使用opencv训练分类器时,traincascade训练报错:Train dataset for temp stage can not be filled.解决方法