OpenCV - LBP Traincascade kann Vorberechnung in Stufe 0 nicht bestehen, aber HAAR funktioniert gut?

10

Ich öffne opencv_traincascade, und ich erreiche nie die Vorberechnungszeit für Stufe 0.

Bearbeiten: Mein Problem scheint spezifisch für LBP-Training zu sein. Ich habe featureType in HAAR geändert und der Klassifikator wurde innerhalb weniger Minuten fertiggestellt.

Bearbeiten: Die Vorberechnungszeit ist in Sekunden, also sollten Sie in Stufe 0 innerhalb von 10 Sekunden eine Vorberechnung erreichen, aber ich habe es bis zu 40 Sekunden lang gesehen. Die Vorberechnungszeit kann von Stufe zu Stufe stetig ansteigen und dann in den späteren Phasen plötzlich dramatisch auf eine halbe Stunde ansteigen (und vielleicht sogar noch länger, wenn Sie mit Tausenden von Proben arbeiten, aber ich bin noch nicht so weit) / strong>

(Ich werde weiterhin diesen Beitrag aktualisieren, indem ich Dinge, die ich verstanden habe, auffrische, die mich daran hindern, die Vorausberechnung zu verstehen, und vielleicht herausfinden, warum HAAR-Training funktionieren würde, während LBP das nicht tun würde Quellcode zum Einleiten des Stage-Zyklus)

Problem

Ich öffne opencv_traincascade, und ich erreiche nie die Vorberechnungszeit für Stufe 0.

Ich benutze ein MacBook Air, das 2014 gekauft wurde.

  

Prozessor 1.3 GHz Intel Core i5
  Speicher 4 GB 1600 MHz DDR3
  Grafik Intel HD Graphics 5000
  Software OS X 10.9.4 (13E28)

Mein Terminal sieht ungefähr so ​​aus und lässt ungefähr 390% (wirklich?) meiner CPU und 4 Threads in meinem Aktivitätsmonitor laufen.

===== TRAINING 0-stage ===== <BEGIN POS count : consumed x : x NEG count : acceptanceRatio y : 1

Obwohl ich versucht habe, viele Klassifikatoren zu erstellen, um etwas zu teilen, mit dem wir uns alle identifizieren können, werde ich auf ein Tutorial zur Autoerkennung verweisen, da ich das gleiche Ergebnis bekomme, egal ob es ein eigenes Training ist oder nicht. Dieser Trainer wurde veröffentlicht, und ich habe gesehen, dass andere Leute darauf Bezug nehmen, also nehme ich an, dass es funktioniert.

Ссылка

Auf meinem Desktop habe ich:

Ein pos-Ordner mit den relativen Dateipfaden und Informationen (1 0 0 100 40) in einem cars.info-Ordner;
Eine bg.txt-Datei mit relativen Pfaden zu einem Neg-Ordner mit den negativen Samples;
Ein leerer Datenordner namens "data";
Eine cars.vec-Datei mit positiven Stichproben. Ich kann die Vektordatei sehen und die Bilder sind da.

Es gibt ursprünglich 550 positive Samples bei 100x40 und 48x24 nach der Verwendung von Erstellungssamples zum Erstellen der vec-Datei

Es gibt 500 negative Samples bei 100x40

Hier war der Befehl createsamples als Referenz:

%Vor%

Dann führe ich den folgenden Befehl aus:

%Vor%

PARAMETERS: cascadeDirName: data vecFileName: cars.vec bgFileName: bg.txt numPos: 500 numNeg: 500 numStages: 2 precalcValBufSize[Mb] : 256 precalcIdxBufSize[Mb] : 256 stageType: BOOST featureType: LBP sampleWidth: 48 sampleHeight: 24 boostType: GAB minHitRate: 0.995 maxFalseAlarmRate: 0.5 weightTrimRate: 0.95 maxDepth: 1 maxWeakCount: 100

Dies ist meine Ausgabe, die ich noch nie für LBP vorberechnen gesehen habe, egal was ich versuche zu trainieren; wie ich versucht habe, die Stichprobengröße, die Auflösung von Bildern, minHitRate oder das Verringern von numPos zu ändern.

===== TRAINING 0-stage ===== <BEGIN POS count : consumed 500 : 500 NEG count : acceptanceRatio 500 : 1

Bitte fragen Sie nach Informationen, die ich nicht liefern konnte. Ich entschuldige mich.

Ich habe gelesen, dass Trainer in endlosen Schleifen stecken bleiben und dass der Quellcode geändert werden muss. Ich hoffe jedoch, dass dies vermieden werden kann, da dies für andere (zumindest für den Autor) zu funktionieren scheint.

Ich danke Ihnen allen für die vielen Fragen und Antworten, die mir bei verschiedenen Programmierprojekten geholfen haben.

    
Troup 25.08.2014, 01:11
quelle

1 Antwort

2

Ich habe ein solches Problem schon einmal erlebt. Die Art, wie ich es löse, besteht darin, die Werte von precalcValBufSize und precalcIdxBufSize auf 0 und 0 zu setzen. Es scheint, dass die Vorberechnung für LBP nicht funktionieren kann. Es funktioniert jedoch gut, nachdem sie auf 0 gesetzt wurden. Der Trainingsprozess für LBP ist viel schneller als bei Haar.

    
user2914509 27.12.2017 04:46
quelle

Tags und Links