Schrifterkennung

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Aufgabenstellung

Die Idee war, eine Schrifterkennungs-Software zu realisieren, welche sich interaktiv über einen Infrarot-Stift steuern lässt. Aufgabe war es also, eine Flash-Anwendung zu entwickeln, welche "gezeichnete" Buchstaben erkennt und in Schriftformen umsetzt. Zum Anderen mussten wir uns um die Kommunikation zwischen Infrarot-Stift und Flash-Anwendung kümmern.

Systemübersicht

Folgende Komponenten spielen bei der Umsetzung dieser Interaktion eine wichtige Rolle:
Systemuebersicht.png


Benötigte Hilfsmittel

- Wii-Mote
- Laptop, welcher Bluetooth empfangen kann
- Adobe Flash
- OSCulator (für den Mac)
- FLOSC ( Open Source Anwendung, welche die Kommunikation zwischen OSC-Anwendungen und Flash ermöglicht)
- Infrarotstift:

   IR-Dioden	(Conrad.de Art.-Nr.: 154380) 
   Batterie (AA oder AAA) 
   Kupferkabel 
   Taster	(Conrad.de Art.-Nr.: 705089)


Vorgehensweise

1) Flash-Anwendung
2) Infrarot-Stift
3) OSCulator
4) FLOSC


Flash-Anwendung

Die Schrifterkennungs-Software wurde in ActionScript2 in Flash geschrieben. Das Prinzip dahinter ist folgendes: Während ein Buchstabe vom Benutzer gezeichnet wird, werden die resultierenden Punkte erstmal mitprotokolliert. Anschließend wird die Größe der gezeichneten Figur normalisiert und die Anzahl der Punkte reduziert. Die reduzierten Punkte werden dann gleichmäßig auf die Linie verteilt. Die eigentliche Erkennung des gemalten Buchstabens geschieht zum Schluss, dazu werden Abstände von den normalisierten Punkten zu vorher gespeicherten idealen Punkten von jedem Zeichen berechnet. Die kleinste Abweichung über alle Buchstaben liefert den gezeichneten Buchstaben. Zur Verbesserung der Geschwindigkeit der Erkennung wird der Vergleich mit einem potentiellen Kandidaten abgebrochen, sobald ein Schwellwert für die Summe der Abstände zu den idealen Punkten überschritten wird.
Vorgespeicherte buchstaben.png

Die einzige Voraussetzung für eine Erkennung besteht darin, dass der Buchstabe in einem Zug ohne Absetzen durchgezeichnet werden muss. In unserem Projekt haben wir uns also darauf beschränkt, dass einzelne Buchstaben erkannt und wiedergegeben werden und nicht dass ganze Sätze an einem Stück umgewandelt werden können.

Infrarot-Stift

Ein Infrarot-Stift zu bauen ist nicht sehr schwer, vokalem auch weil jede Menge Bauanleitungen im Internet zu finden sind. Das Prinzip des IR-Stiftes: Durch Drücken eines Tasters wird die IR-Diode an oder ausgeschaltet. Der Taster unterbricht einfach den Stromkreis zwischen Batterie und Diode. Als Verbindung zwischen Batterie, Diode und Taster wird ein Kupferkabel verwendet, welches an den jeweiligen Stellen verlötet werden muss. Als visuelles Highlight kann alles in einen alten Edding gelegt werden, sodass wirklich der Anschein aufkommt, man schreibe die Buchstaben mit einem richtigen Stift.

Schaltkreis.png


Alternative: Wem der Aufwand, einen eigenen Stift bauen, zu groß ist, kann auch auf eine Alternative zurückgreifen: Die Wii - Bar. Durch Anschalten der Wii-Bar werden die Infrarot-Dioden darin aktiviert und kann ebenso wie der IR-Stift verwendet werden. Problem: Allerdings funktioniert die Wii-Bar wesentlich schlechter als ein Stift Der Stift sendet über eine einzige Diode viel genauere IR-Werte als die Wii-Bar.


OSCulator

Den OSCulator (für den Mac) benötigen wir, da er unsere IR-Daten via Bluetooth empfangen kann und daraufhin diese Daten an einen davor eingetragenen Port schicken kann. In unserem Fall sollen die IR-Daten an uns selbst geschickt werden, also an den localhost mit dem Port: 7000. (siehe auch Einstellungen FLOSC) OSCulator empfängt jeweils 3 IR-Daten von unserer Wii-Mote x, y und die Größe. Wir interessieren uns jedoch lediglich für die x- & y-Koordinate und können somit die Größe einfach ignorieren.
Osculator.png


FLOSC

Um mit FLOSC arbeiten zu können, muss es erst mal per Konsole gestartet werden: (Eine ausführliche Anleitung zur Installation und Einbindung des FLOSC-Servers in eine Anwendung, ist im Artikel "Steuerung von Flash MX durch ein Midi Interface unter Einsatz eines FLOSC-Servers" zu finden. )
Flosc terminal.png


Nun muss FLOSC in die Flash-Anwendung miteingebenden werden. Wichtig ist hierbei, dass Eingangs- & AusgangsPort global in den Code geschrieben werden, sodass bei Start dieser interaktiven Schrifterkennung nicht jedes mal nach den Ports gefragt wird.
Ports flosc.png


Die Flash-Schrifterkennung läuft bisher so, dass sie jeweils die x- & y- Koordinate der Maus auswertet und mit diesen weiterarbeitet. Unser Vorhaben, ein interaktives System zu entwickeln, fordert also, dass die x- & y- Koordinaten der Maus ersetzt werden, durch die Koordinaten des IR-Stiftes.
X mouse.png


Realisiertes Projekt

Letztendlich funktioniert dieses Projekt folgendermaßen:

   - Der Benutzer zeichnet mit dem Infrarot-Stift einen Buchstaben in die Luft (zeigend zur Wii-Mote) 
   - Auf dem Bildschirm wird auf der linken Seite die Form des gezeichneten Buchstaben mitprotokolliert 
   - Auf der rechten Seite erscheint der korrekte Buchstabe in Schriftform

Realisiertes Projekt.png


Weblinks

Interner Bereich: