2016-06-07 14 views
0

Ich habe 1000 positive (50 * 50) Bilder und 1000 negative (50 * 50) Bilder gesammelt und Haar Cascade in OpenCV trainiert. Ich versuche, Mobiltelefone zu erkennen. Code für das Training:Wie kann die Genauigkeit von Haar Cascade in OpenCV verbessert werden?

opencv_traincascade -data data -vec crop1.vec -bg mob_neg.txt -numPos 900 -numNeg 900 -numStages 15 -w 50 -h 50 bgcolor 255 -bgthresh 100 

Kaskade ist nicht in der Lage mobil genau zu erfassen (es mobil sowie viele andere Gegenstände wie Maus erkennt, Schlüssel, Geldbörse, Hand etc.) können Sie mir helfen, dieses Problem zu beheben Ich nahm Bilder von Telefon durch Kamera im Burst-Modus. gefangene positive Bilder durch verschiedene Winkel und verschiedene Rotationen Negative Bilder sind aus dem Internet entnommen.

Was soll ich tun, um die Kaskadengenauigkeit zu erhöhen?

sollte ich die Größe von positiven oder negativen Bildern ändern? Vielen Dank im Voraus

+0

Dies scheint keine Programmierfrage zu sein. Vielleicht versuchen Sie Cross Validated? – Roope

+0

Steigende Anzahl, wenn Proben und Anzahl der Stufen die einzige Möglichkeit sind, die Genauigkeit zu erhöhen, aber es wird definitiv viel Zeit brauchen. – Tes3awy

Antwort

1

Ich bin sehr viel ein Neuling, aber fand diesen Artikel hilfreich:

https://pythonprogramming.net/haar-cascade-object-detection-python-opencv-tutorial/

Darin der Autor eine Daumenregel erwähnt doppelt so viele positive wie negative verwenden. Er diskutiert auch eine Methode zur Erzeugung der positiven Bilder durch Überlagerung der positiven Bilder über die negativen Bilder mit opencv_createsamples (die auch das positive Bild für Sie dreht).

Er skaliert auch die Negative und wandelt sie vor der Erzeugung und dem Training positiver Bildmuster in Graustufen um.

Ich hoffe, das ist hilfreich.