Мне интересно создать собственный XML файл каскада haar для использования с python, чтобы обнаружить определенный логотип (скажем, это логотип Apple).
Я пробовал следовать инструкциям на http://docs.opencv.org/trunk/doc/user_guide/ug_traincascade.html а также http://note.sonots.com/SciSoftware/haartraining.html
Проблема в том, что, хотя я получаю действующий каскадный файл, он ничего не обнаруживает. в частности, когда я пытаюсь обнаружить объект внутри исходного изображения, используемого для его создания, он еще не обнаружен.
Я уже пробовал изменять размер изображения или просто помещал его в больший контекст, вставляя его в изображение.
что я делаю неправильно?
в оболочке, я запускаю:
opencv_createsamples -img original.jpg -bg negatives.dat -vec samples_set.vec -w 48 -h 48
opencv_traincascade -bg negatives.dat -data mycascade -vec samples_set.vec -w 48 -h 48
который работает нормально, создавая каскадный файл. Затем в python:
import cv2
cascade2 = cv2.CascadeClassifier('mycascade.xml')
cv2Image = cv2.imread('original.jpg')
cascade2.detectMultiScale(cv2Image)
и обнаружение появляется пустым. Я попытался протестировать "стандартный" xml, который поставляется с python, и он работает, поэтому с моей ошибкой что-то не так.