Oder Text markieren und Enter drücken…

Schritt 4: Touch-Erkennung (Tracking)

Blob-Tracking

Die Erkennung der Berührungspunkte (Blob-Tracking) und die Weiterleitung ihrer Positionen zu den Multitouch-Programmen übernimmt eine spezielle Software. Vereinfacht gesagt sucht diese Tracking-Software Frame für Frame im Kamerabild nach hellen Punkten, den Blobs. Diese werden als Berührungspunkte interpretiert und ihre Position weitergeleitet.

Indem die Software außerdem den Weg der Blobs über die Frames hinweg verfolgt, lässt sich feststellen ob ein Finger z.B. nur kurz auf den Tisch tippt, wie ein Mausklick, oder aber ob er eine längere Strecke zurücklegt was als Drag-Interaktion verwendet werden kann. Mit etwas Aufwand lassen sich sogar Gesten definieren und erkennen. 

Es gibt mittlerweile mehrere frei im Internet verfügbare Tracking-Softwares. Z.B. bietet auch VVVV einen Videofilter der ein Blob-Tracking durchführt. Eine sehr fortgeschrittene und benutzerfreundliche Lösung ist allerdings die Software TBeta. Diese wird von der NUI Group, einer großen Community von Multi-Touch Interessierten, entwickelt und veröffentlicht. In dieser Anleitung wird die Verwendung von TBeta als Tracking-Software im Multitouch-Tisch beschrieben.

Blob-Track

 

TBeta Installation

TBeta ist als Open Source Software veröffentlicht worden und darf auch für kommerzielle Zwecke verwendet werden. Man kann es kostenlos unter http://tbeta.nuigroup.com/#downloads für Mac OS X, Windows und Linux herunterladen. Nach dem Entpacken der .zip-Datei legt man sich am Besten am Desktop Links zu den Dateien "TBeta.exe" und "1.) Launch FLOSC Gateway.bat" an.

tbetaSoftware

 

Tracking einrichten

  1. Um das Berührungs-Tracking mit TBeta einzurichten startet man TBeta.exe. Die Kamera muss natürlich an den Computer angeschlossen und der Aufbau der Technik im Groben fertig sein.
  2. Nun öffnet sich das Interface der Tracking-Software. Links oben sieht man das Bild das die IR-Kamera aus dem Tisch heraus aufnimmt. Nur auf dem Teil der Tischplatte den die Kamera sieht, kann die Software auch Berührungen erkennen!
  3. Rechts vom ungefilterten Bild ist das finale Tracking-Bild. Über die 4 Filter im unteren Teil des Interfaces wird das Kamerabild so vorbereitet, dass im Idealfall im Tracking-Bild bei Berührung nur noch weiße Flecken auf schwarzem Grund erkennbar sind.
  4. Als ersten Filter wendet man "Remove Background" an. Dazu entfernt man alles von der Tischfläche und drückt die Taste "B". Nun kennt TBeta den "Normalzustand" und kann Berührungspunkte besser von der leeren Oberfläche unterscheiden.
  5. Der Filter "Smooth" kann deaktiviert werden, er wird bei der hier beschriebenen Diffused-Illumination-Technik nicht benötigt.
  6. Nächster Filter ist "Highpass". Über den Wert "Blur" werden helle Stellen vergrößert, über "Noise" wird Bildrauschen der Kamera abgeschwächt. "Amplify" verstärkt den Kontrast heller Stellen im Bild.
  7. Zu guter Letzt kann direkt im Fenster mit dem finalen Tracking-Bild noch ein "Treshold" eingestellt werden. Dieser beeinflusst ab welcher Größe ein Blob als Berührung gilt. Siehe auch: http://wiki.nuigroup.com/Getting_Started_with_tbeta#Configuration

    Die Qualität des Trackings wird zu gleichen Teilen von den Einstellungen in der Software als auch von dem Aufbau und der Hardware beeinflusst. Ohne gute und gleichmäßige Ausleuchtung des Tisches kann man auch über die Software kein perfektes Ergebnis mehr erzielen.

 

Das Tracking is gut eingerichtet wenn:

  • Berührungen aller Finger erkannt werden (helle Ausleuchtung)
  • Berührung überall am Tisch gleich gut erkannt wird (gleichmäßige Ausleuchtung)
  • auch bei schneller Bewegung z.B. des Fingers auf die Tischfläche die ID des Blobs gleich bleibt (helle Ausleuchtung, hohe Framerate der Kamera, kurze Verschlusszeiten der Kamera)
  • möglichst selten eine Berührung unabsichtlich erkannt wird wie zB. Ärmel oder Finger die den Tisch noch nicht berühren

WICHTIG
Das Tracking-Setup sollte man immer wenn man den Tisch in Betrieb nimmt kontrollieren und eventuell nachbessern. Die Lichtverhältnisse in der Umgebung des Tisches sind meist jedes Mal leicht verschieden (Tag, Nacht, Sonne, bewölkt, Licht im Raum) und beeinflussen z.B. den Kontrast im Kamerabild.

 

Kalibrierung

Damit die Tracking-Software später möglichst genaue Positionen der Berührungen liefert, muss noch das projizierte Bild mit dem Kamerabild abgeglichen werden.

Dazu drückt man die Taste "C" oder klickt in der Seitenleiste rechts auf "start calibration". TBeta zeigt auf dem Tisch nun ein Raster aus grünen Kreuzen und einen weißen Rahmen.
Das weiße Rechteck legt die Fläche fest in der Berührungen möglich sein sollen. Wenn das weiße Rechteck auf die Projektion abgestimmt ist, drückt man nochmal die Taste "C". Nun wird, beginnend links oben, ein roter Kreis um jeweils eine Kreuz angezeigt. An der Stelle des so markierten Kreuzes berührt man nun die Tischfläche. Wenn die Berührung erkannt wurde springt die Markierung zum nächsten Kreuz. Auf diese Weise müssen alle Kreuze einmal berührt werden.

Ist man damit fertig bewegt man seine Finger über die Tischfläche um zu kontrollieren dass die angezeigten Kreise möglichst genau unter den Fingerspitzen liegen. Falls nötig drückt man nochmals "C" und wiederholt die Kalibrierung. Im Wiki der NUI Group findet man diese Anleitung auch als Video: http://wiki.nuigroup.com/Getting_Started_with_tbeta#Calibration

WICHTIG
Dieser Schritt muss in der Regel nur ein einziges Mal durchgeführt werden. Solange die Kamera oder der Projektor danach nicht mehr bewegt werden, bleibt die Kalibrierung gültig.

 

Datenverteilung per OSC

TBeta schickt die Information der Berührungspunkte die von der Tracking-Software erkannt wurden als Open-Sound-Control Nachrichten über das so genannte UDP-Protokoll. Die Information über die Berührungspunkte (X-Y-Position, ID-Nummer, Bewegungsgeschwindigkeit ...) sind dabei als TUIO-Nachricht formatiert.
http://de.wikipedia.org/wiki/Open_Sound_Control
http://nuigroup.com/?ACT=28&fid=33&aid=703_FKSuKMcUkTAJrwBGk2Qv


UDP kann z.B. in VVVV, PureData oder auch Quartz Composer direkt empfangen werden. Damit man die OSC-Nachrichten auch in Flash verwenden kann, müssen sie von UDP zu TCP konvertiert werden. Dafür startet man "1.) Launch FLOSC Gateway.bat". Ein kleines Fenster öffnet sich, man klickt auf "START" und kann danach auch dieses Fenster minimieren.
http://nuigroup.com/forums/viewthread/1495/

TUIO