Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV级联性能:有效的XML错误_Xml_Opencv_Haar Classifier - Fatal编程技术网

OpenCV级联性能:有效的XML错误

OpenCV级联性能:有效的XML错误,xml,opencv,haar-classifier,Xml,Opencv,Haar Classifier,我正在conda环境中运行opencv2.4.8。我能用英语训练一个学生 opencv\u traincascade-data-vec cars.vec-bg bg.txt-numPos 500-numNeg 500-numStages 2-w 48-h 24 但是,我无法使用 opencv\u性能-数据-info cars.txt 我收到一个解析错误: OpenCV Error: Parsing error (data(0): Valid XML should start with '<

我正在
conda
环境中运行
opencv2.4.8
。我能用英语训练一个学生

opencv\u traincascade-data-vec cars.vec-bg bg.txt-numPos 500-numNeg 500-numStages 2-w 48-h 24

但是,我无法使用

opencv\u性能-数据-info cars.txt

我收到一个解析错误:

OpenCV Error: Parsing error (data(0): 
Valid XML should start with '<?xml ...?>') in icvXMLParse, 
file /Users/jhelmus/anaconda/conda-bld/work/opencv-2.4.8/modules/core/src/persistence.cpp, line 2252
libc++abi.dylib:terminating with uncaught exception of type cv::
Exception: /Users/jhelmus/anaconda/conda-bld/work/opencv-2.4.8/modules/core/src/persistence.cpp:2252: 
error: (-212) data(0): Valid XML should start with '<?xml ...?>' in function icvXMLParse  
OpenCV错误:分析错误(数据(0): ICVXML解析中的有效XML应以“”开头, 文件/Users/jhelmus/anaconda/conda bld/work/opencv-2.4.8/modules/core/src/persistence.cpp,第2252行 libc++abi.dylib:以cv:类型的未捕获异常终止: 例外情况:/Users/jhelmus/anaconda/conda bld/work/opencv-2.4.8/modules/core/src/persistence.cpp:2252: 错误:(-212)数据(0):函数ICVXMLPASSE中的有效XML应以“”开头 我已经检查了.xml文件,并使用

作为第一行


是什么导致了这个错误?

这是一个措词不当的错误消息;问题在于保存的探测器的格式
opencv\u performance
使用由
opencv\u haartraining
输出的旧格式,并且不适用于以
opencv\u traincascade
()使用的格式保存的检测器

有两种解决方案:

1) 您可以使用
opencv_haartraining
()对探测器进行培训。这是不推荐的,因为
opencv_haartraining
仅限于一个线程。它也是一种不推荐使用的方法

2) 您可以将
-baseFormatSave
标志添加到
opencv\u traincascade
命令(),强制它以旧格式保存检测器,即:

opencv_traincascade -data data -vec cars.vec -bg bg.txt -numPos 500 -numNeg 500 -numStages 2 -w 48 -h 24 -baseFormatSave
然而,这个特性有一个bug,它遗漏了分类器类型声明。你可以通过运行来修复它

sed -i 's/<cascade>/<cascade type_id="opencv-haar-classifier">/g' data/cascade.xml
测试你的探测器

opencv_performance -data data -info cars.txt