我正在使用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文件似乎都很好。
答案 0 :(得分:1)
我能够解决这个问题的唯一方法是使用Notepad ++将字符编码从UTF-8更改为ANSI。之后它运作良好。
答案 1 :(得分:0)
一些挖掘产生了这个:
convert_cascade用于通过haartraining应用程序训练的级联,它不支持由traincascade应用程序训练的级联格式。
要使用traincascade执行此操作,只需使用相同的&#34; -data&#34;再次运行opencv_traincascade。但设置&#34; -numStages&#34;到你想要生成的点。应用程序将加载训练阶段,实现所需的阶段数,在xml中编写结果级联并完成工作。在某个阶段中断过程可能会导致数据损坏,因此如果您最好在完成时删除该阶段。