Ich bin daran interessiert, meine eigene Haarkaskade-XML-Datei zu erstellen, um mit Python ein bestimmtes Logo zu erkennen (sagen wir, es ist das Apple-Logo).Wie erstelle ich meine eigene Haarkaskade und wende sie an?
Ich habe versucht, nach den Anweisungen auf http://docs.opencv.org/trunk/doc/user_guide/ug_traincascade.html und http://note.sonots.com/SciSoftware/haartraining.html
Problem ist, obwohl ich eine gültige funktionierende Kaskade-Datei zu erhalten, ist es nicht etwas zu erkennen. insbesondere, wenn ich versuche, das Objekt innerhalb des Originalbildes zu erkennen, mit dem es erstellt wurde, wird es selbst dann nicht erkannt.
Ich habe bereits versucht, das Bild zu verkleinern oder es einfach in einen größeren Kontext zu setzen, indem ich es in ein Bild einfüge.
was mache ich falsch?
bei Shell, ich laufe:
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
, die gut zu funktionieren scheint, eine Kaskade-Datei erstellen. Dann in Python:
import cv2
cascade2 = cv2.CascadeClassifier('mycascade.xml')
cv2Image = cv2.imread('original.jpg')
cascade2.detectMultiScale(cv2Image)
und die Erkennung kommt leer. Ich habe versucht, mit einem "Standard" -Xml zu testen, das mit Python kommt und es funktioniert, also stimmt etwas nicht mit meinem.
Wenn Sie wirklich Logo-Erkennung tun, empfehle ich für Merkmale Extraktion und Anpassung mit SIFT/SURF/ORB/MSER .. da Logo Formen sind in der Regel konstant die extrahierten Merkmale sollten gut übereinstimmen. In meiner Meinung wird Logo-Erkennung mit Haar Features sehr seltsam zu tun sein.Weil in der Regel Logos hat nicht genug Funktionen durch opencv wie andere Objekte (Gesicht, Augen, Nase usw.) trainiert werden. Logos sind normalerweise voller Kanten und Ecken. Aber ich möchte auch von Ihren Ergebnissen hören. – isrish
-w 48 -h 48 scheint ziemlich viel. (Standard ist 24). Hast du kleinere Werte probiert? Es ist die "interne Größe", nicht die Größe Ihres Logos in der Musterphase – berak