Ich benutze OSX 10.11. Ich bin neu bei opencv und versuche einen einfachen (und sicherlich schwachen) Kaskaden-Klassifikator zu trainieren, um ein Objekt zu erkennen. Ich habe bereits einige Antworten, Beiträge, Anleitungen, Dokumente und Tutorials über Kaskadenklassifizierer gelesen, aber ich habe einige Probleme. Ich bezog mich auf diesem Handbuch:OpenCV 2.4.9 - Traincascade Probleme
dass opencv doc folgen. Jetzt habe ich 8 JPG mit meinem Interesse Objekt und 249 Hintergrundbilder (Ich weiß, dass es ein armes Dataset ist, aber es ist nur ein Versuch).
Wenn ich opencv_createsamples anrufe, bemerkte ich, dass der Autor des Führers 1500 Samples erzeugt und ich tue es auch. Es bedeutet, dass 1500 Proben von meinen 8 positiven Bildern erzeugen?
Beachten Sie, dass in Beispielordner habe ich nur 7 img * .jpg.vec Datei. Sie wären nicht 1500? Nach dem, wenn ich rufe:
g++ `pkg-config --libs --cflags opencv` -I. -o mergevec mergevec.cpp cvboost.cpp cvcommon.cpp cvsamples.cpp cvhaarclassifier.cpp cvhaartraining.cpp -lopencv_core -lopencv_calib3d -lopencv_imgproc -lopencv_highgui -lopencv_objdetect
habe ich einige Fehler, weil "OpenCL" "AppKit" "Quartz" "QTKit" "Cocoa" fehlt. Wo kann ich diese abrufen? Ich werde jedoch versucht, fortzufahren, und ich erzeuge samples.vec Datei.
find ./samples -name '*.vec' > samples.txt ./mergevec samples.txt samples.vec
Schließlich trainiere ich meine Klassifikator mit diesem Code:
opencv_traincascade -data classifier -vec samples.vec -bg negatives.txt -numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 1000 -numNeg 249 -featureType LBP -w 80 -h 40 -precalcValBufSize 2048 -precalcIdxBufSize 4096
Nach einige Beiträge lese ich -numPos kleiner als 1500 Proben zuvor erzeugten gewählt haben (aber wo sind sie?). Als ich das Training beginnen, stecken die man in dieser Situation: