opencv_traincascade构建中间结果

时间:2014-09-14 07:39:45

标签: opencv

我正在使用opencv_trainscascade训练一个haar级联。它运行正常,但我想将每个阶段生成的各种xml文件组合成一个可用的输出。使用./convert_cascade --size =“XxX”output.xml给我一个错误。我知道使用opencv_haartraining可以很好地生成中间结果,但有没有办法对新版本做同样的事情?

OpenCV Error: Parsing error (classifier(0): Valid XML should start with '<?xml ...?>') in icvXMLParse, file /tmp/opencv-qGZ4sE/opencv-2.4.9/modules/core/src/persistence.cpp, line 2252
libc++abi.dylib: terminating with uncaught exception of type cv::Exception: /tmp/opencv-qGZ4sE/opencv-2.4.9/modules/core/src/persistence.cpp:2252: error: (-212) classifier(0): Valid XML should start with '<?xml ...?>' in function icvXMLParse

Abort trap: 6

目录中的所有xml文件似乎都很好。

2 个答案:

答案 0 :(得分:1)

我能够解决这个问题的唯一方法是使用Notepad ++将字符编码从UTF-8更改为ANSI。之后它运作良好。

答案 1 :(得分:0)

一些挖掘产生了这个:

convert_cascade用于通过haartraining应用程序训练的级联,它不支持由traincascade应用程序训练的级联格式。

要使用traincascade执行此操作,只需使用相同的&#34; -data&#34;再次运行opencv_traincascade。但设置&#34; -numStages&#34;到你想要生成的点。应用程序将加载训练阶段,实现所需的阶段数,在xml中编写结果级联并完成工作。在某个阶段中断过程可能会导致数据损坏,因此如果您最好在完成时删除该阶段。