Я пытаюсь реализовать функцию распознавания лиц, упомянутую в руководстве
Я использую OpenCV 3.0 на Ubuntu 14.04.
Я скачал здесь каскадные 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
Любое предложение?
Я нашел несколько исправлений в переполнении стека и на других сайтах. Они заключаются в следующем:
Измените кодировку символов с UTF-8 на ANSI с помощью Notepad ++.
Предыдущий ответ:
convert_cascade предназначен для каскадов, обучаемых приложением haartraining, и не поддерживает формат каскадов, обучаемых приложением traincascade.
Чтобы сделать это с traincascade, просто снова запустите opencv_traincascade с
те же «-data», но установите «-numStages» в точку, которую вы хотите
генерировать до. Приложение загрузит обученные этапы, реализует
что требуется необходимое количество этапов, напишите каскад результатов в
XML и закончить работу. Прерывание процесса на этапе может
приведет к повреждению данных, поэтому, если вам лучше удалить этап в
завершение.
refrence: https://stackoverflow.com/a/25831423/5671364.
если в документе XML отсутствует объявление кодировки (и нет
внешний механизм объявления кодировки, такой как заголовок HTTP
) предполагаемая кодировка документа XML зависит от
наличие Байт-Порядка-Маркировки (BOM).
Есть 3 способа это исправить:
refrence: http://code.opencv.org/issues/976
Других решений пока нет …