2012-04-03 8 views
3

beabsichtigen, das Navigieren einer iPad App mit Kopfbewegungen (ursprünglich Handbewegungen, aber die Hände scheinen im Moment schwer zu erkennen) zu programmieren: links, rechts, oben und unten. Also plane ich, openCV zu verwenden und entweder den optischen Fluss des Kopfbereichs zu erkennen oder Ohren und Kopf des Benutzers mit Haarkaskaden zu erkennen (openCV wird mit ziemlich präzisen Kopf- und Ohr-Xmls geliefert). Kann jemand einen Ratschlag geben, welche Lösung zu verwenden ist? Wird einer der erwähnten mehr Kraft brauchen? Ohr- und Kopferkennung könnte leichter zu programmieren sein? Ich möchte zu viel Aufwand in die falsche Richtung vermeiden und habe nicht viel Sachkenntnis in meiner aktuellen Umgebung ...Optischer Fluss vs Haar Cascade

danke für jede Hilfe, Ratschläge, Ideen!

Antwort

0

Ich würde vorschlagen, Haar-Kaskaden zu verwenden, weil der optische Fluss in der Rechenzeit teurer ist!

+0

Vielen Dank, dann Kaskadierung ist es! –

0

Verwenden die native Gesichtserkennung in iOS 5 keine Option für was Sie wollen? Ich bin hier über den Tellerrand hinaus zu denken, aber ich habe mit OpenCV gewesen und es tut immer noch weh ..

http://maniacdev.com/2011/11/tutorial-easy-face-detection-with-core-image-in-ios-5/

* Die Idee natürlich, dass Sie diese Eingabe leben irgendwie

sein gelten
+1

Hallo, danke für den Zeiger! Ich werde definitiv die Klassen ausprobieren - ich konnte nicht viele Informationen über die neuen Klassen finden, also werde ich nachsehen müssen, ob ich das Profil gefunden habe. Man kann keine Ohren entdecken, sondern Augen. Wenn also das linke Auge fehlt, hat der Benutzer entweder geblinzelt (hoffe nicht so genau) oder seinen Kopf nach links gedreht (das ist was ich brauche). Aber definitiv ein guter Tipp, da diese Erkennung schnell umgesetzt wird ... wird Sie auf dem Laufenden halten! –

+0

Hallo, habe es ausprobiert. Die native Gesichtserkennung ist zu gut? CIDetection erkennt Gesicht, Augen und Mund. Also die Theorie war, wenn das linke Auge nicht erkannt werden kann, sondern das Gesicht, muss der Benutzer sein Gesicht nach links gedreht haben. Traurigerweise kehrt hasEyePosition immer zu True zurück und hält eine Position, auch wenn ich mich so umdrehe, dass meine Nase und meine Stirn das Auge verdecken. Wenn ich das Auge erfolgreich verberge, wird das ganze Gesicht nicht mehr erkannt. Dies ist definitiv der zukünftige Weg, um Dinge zu regeln, aber im Moment gibt es nicht genug Features und Informationen, um darauf zuzugreifen. Danke für deine Gedanken! –

+0

es lohnt sich der Versuch und wir alle haben etwas gelernt :-D Viel Glück bei der Suche nach der richtigen Antwort! – Jake

0

Eine Möglichkeit könnte die Verwendung von Hidden-Markov-Modellen sein. Es gibt eine Menge Forschungsmaterial (funktionierende Prototypen) zur Verwendung von HMMs zur Erkennung von Kopfgesten.

Ich glaube, Ohr Haar Klassifikatoren sind nicht so effektiv mit überladenen Hintergrund. Bitte lassen Sie uns wissen, wenn Sie es zur Arbeit haben!

+0

Hallo, ich kann dir jetzt sagen: Nein, es ist ziemlich schrecklich. OpenCV kommt tatsächlich mit Haar-Klassifikatoren für das linke und rechte Ohr - basierend auf ca. 5000 Bildern. Aber meine Ohren (durchschnittliche Ohren, hoffe ich) werden selten als solche erkannt, scheinen zufällig und nicht mit verschiedenen Lichteinstellungen etc. zu verbessern. Das Ohr muss für eine gewisse Zeit in der Kamera gehalten werden, bis es erkannt wird. Ich habe nachgefragt, wie ich die Genauigkeit und Reaktionszeit verbessern kann und warte derzeit. Schaut sofort in Hidden Markov Models. Es ist dies und "nicht wirklich Jakes" Antwort, die ich als nächstes überprüfen und die Ergebnisse veröffentlichen werde! Danke dafür! –

+0

Ich dachte schon. Ausgenommen für Gesicht und Auge (bis zu einem gewissen Grad) Klassifikator, funktionieren alle anderen nicht effizient. HMMs haben experimentelle Implementierung in OpenCV (cvaux.h). Aber ich glaube nicht, dass es zu einer vollwertigen API entwickelt wird. Ich kann sagen, dass ich eine effektive Implementation in OpenCV habe, Gesicht/Nase-Erkennung (Zentroidpunkt verwenden) und Kalman-Tracking mache. Auf diese Weise können Sie sogar die Richtung in x <---> y-Ebene erkennen. – garak