2016-05-28 14 views
0

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

guide

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:

terminal

Antwort

0

Was ich gelernt habe, als ich versuchte, die gleiche (und andere) Tutorial zu folgen:

  • Ja, createsamples a dreht einfach positiv in viele. Die * .vec-Datei enthält viele von ihnen in einer Datei. Wenn Sie die Datei * .vec mit opencv_createsamples anzeigen, können Sie sie mit den Pfeiltasten durchblättern (glaube ich).

  • Sie benötigen das Programm mergevec, es kombiniert alle * .vec Dateien in eine, die für das Training benötigt wird. Ich benutze Windows, also habe ich keine Ahnung, wie man das Mac-Zeug bekommt.

  • Die Ausgabe der opencv_traincascade scheint darauf hinzudeuten, dass sie tausend Bilder in samples.vec gefunden hat. Wenn Sie Mergevec nicht haben, nehme ich an, dass Sie eine prebuild-Datei samples.vec verwenden.

  • Was meinen Sie mit "stecken in dieser Situation"? Keine Ausgabe mehr, aber kein Absturz? Manchmal dauert das Training Stunden.