我正在尝试实施教程中提到的面部检测
我在Ubuntu 14.04上使用OpenCV 3.0。
我从这里下载了级联xml文件
https://github.com/opencv/opencv/tree/master/data/haarcascades
当我编译代码时,它会给我这个错误消息:
OpenCV Error: Parsing error (/...../haarcascade_frontalcatface.xml(5): Valid XML should start with '<?xml ...?>') in icvXMLParse, file /home/taleb/opencv3/opencv/modules/core/src/persistence.cpp, line 2220
terminate called after throwing an instance of 'cv::Exception'
what(): /home/taleb/opencv3/opencv/modules/core/src/persistence.cpp:2220: error: (-212) /home/taleb/pythonproject/test1/haarcascade_frontalcatface.xml(5): Valid XML should start with '<?xml ...?>' in function icvXMLParse
有什么建议吗?
答案 0 :(得分:2)
我在堆栈溢出和其他网站上发现了一些修复。它们如下:
使用Notepad ++将字符编码从UTF-8更改为ANSI。
上一个回答:
convert_cascade用于通过haartraining应用程序训练的级联,它不支持由traincascade应用程序训练的级联格式。
要使用traincascade执行此操作,请再次使用opencv_traincascade运行 相同的“-data”,但将“-numStages”设置为您想要的点 生成最多。应用程序将加载训练阶段,实现 有所需的阶段数,写入结果级联 xml并完成一项工作。在一个阶段中断过程可以 导致数据损坏,所以如果你最好删除阶段 完成。
参考:https://stackoverflow.com/a/25831423/5671364。
如果XML文档中没有编码声明(并且没有 外部编码声明机制,如HTTP头是 可用),XML文档的假定编码取决于 存在字节顺序标记(BOM)。
有三种方法可以解决这个问题: