Ich arbeite derzeit an einem Gestenerkennungssystem (für eine Android-Anwendung). Ich glaube, ich habe die Bildverarbeitungsphase abgeschlossen, in der ich die Kontur der Hand extrahieren kann (ich trage einen Handschuh, um vorerst eine Hintergrundsubtraktion zu vermeiden).
Ich bekomme auch die begrenzende Ellipse / das Rechteck, den Schwerpunkt als "wichtige" Formmerkmale der Hand.
Mein Problem ist, dass nicht viel Literatur angibt, was die nächste Stufe vor der Klassifizierung des Bildes durch das Hidden-Markov-Modell ist. Ich finde diese Phase der Feature-Extraktion sehr zweideutig.
Derzeit erhalte ich eine Liste der Winkel der Kontur (die angenähert wird, um eine begrenzte Anzahl von Winkeln zu erhalten).
Das Problem ist, dass ich keine Ahnung habe, was ich als nächstes tun soll. Wenn ich nach Literatur als "Formklassifizierung mit HMMs" suche, fällt es mir immer noch schwer, was ich als nächstes tun soll.
Als Werkzeug für HMM plane ich JaHMM zu verwenden. Aber ich weiß noch nicht, wie ich mit dem Tool experimentieren soll, da ich nicht weiß, was der Input für diese Klassifizierungsphase sein wird!
Ich bin auf eine Liste von Funktionen gestoßen, die ich in einigen Literaturstellen gefunden habe, wie z. B. Fast Fourier Descriptors, Curvature Descriptors, B Spline; Ich habe jedoch keine Ahnung, wie ich diese Funktionen auf meine aktuellen Daten anwenden soll (dh Liste der Winkel, z. B.: -63, 154, 3, 23, 54, ....).
UPDATE 1:
Danke für Ihre Information. @ Peter K.
In Bezug auf die Posen: Ich wollte eine Reihe von Wörtern in amerikanischer Gebärdensprache verwenden, die mit den Fingern geschrieben sind, z. B. 'Hund' -> 'd' 'o' 'g' (3 Staaten); Aber in dem Moment habe ich mich noch nicht entschieden.
Ich lese gerade einige weitere Artikel, um zu sehen, welche Art von Informationen ich extrahieren sollte, wie zum Beispiel:
- Schwerpunkt der Hand
- Bewegungswinkel
- Abstand von einem bestimmten Punkt zu verschiedenen Punkten der Handkontur (etc ..)
Jetzt bin ich auf ein Papier gestoßen, das zu zeigen scheint, was ich tun möchte. Ich bin mir nicht sicher:
http://espace.library.uq.edu.au/eserv.php?pid=UQ:10700&dsID=n0273.pdf
Ich lese gerade Abschnitt 5 - Vektorquantisierung (Ich habe bereits von diesem Begriff gehört, weiß aber nicht genau, worum es geht, und in Abbildung 5 scheint es einen komplexen Algorithmus zu geben, der, wenn ich richtig verstanden habe, die von mir erreichten Werte konvertiert von der Hand (gerade erwähnt) in eine Ziffer, die ich als Beobachtungssequenz verwenden kann, um ein HMM für ein bestimmtes Zeichen zu trainieren. Glaubst du, ich bewege mich auf dem richtigen Weg? (Ich arbeite an Android, (NDK) Ich fand JaHMM als HMM-Tool und verwendete OpenCV für die Bildverarbeitung.
@ Peter K. Vielen Dank für Ihre Antwort. In Bezug auf die Datengenerierung hatte ich vor, die Schritte dieses Dokuments zu befolgen, nachdem ich meinen persönlichen Datensatz erstellt hatte: (Abschnitt 4 und 5) http://www.i.ci.ritsumei.ac.jp/~shimada/papers/vi02 -tanibata.pdf
UPDATE 2: Beachten Sie, dass eine Geste aus {Haltung a, Haltung b, Haltung c} besteht.
Ich denke jetzt, dass ich irgendeine Form von Klassifizierungsalgorithmus verwenden muss. Das heißt, ich habe derzeit eine Reihe von Merkmalsvektoren:
Haltung A: [Ellipsenwinkel um sie herum, Verhältnis Höhe: Breite]
- 0,802985 33,909615
- 0,722824 31,209663
- 0,734535 30,206722
- 0,68397 31,838253
- 0,713706 34,29641
- 0,688798 30,603661
- 0,721395 34,880161
Haltung B: [strukturiert wie Haltung A]
- 0,474164 16,077467
- 0,483104 14,526289
- 0,478904 14,800572
- 0,483134 14,523611
- 0,480608 14,41159
- 0,481552 15,563665
- 0,497951 15,563585
usw..
und ich möchte, dass ich beim Zuführen eines Merkmalsvektors ein einfaches Symbol erhalte, z. B. 'A', 'B' usw.
Ist das möglich? Ich habe die Frage auch hier migriert: /programming/15602963/vector-quantization-algorithms-used-to-provide-observation-sequences-for-hidden