Recent Changes - Search:

Project

References

Communication



Tracking

<<

Verantwortlich: Bernd Dudzik

fogTracking

Aufgaben
- Abgreifen des VideoOutput einer beliebigen Quelle (im MediaSynthesisLab: Axis A206, Netzwerkgestützt) - Identifikation einzelner Personen innerhalb eines Bildes sowie zuweisung einer ID
- Bestimmung der X/Y-Koordinaten innerhalb der Bildmatrix für jede ID
- java-basierte Optimierung der Koordinatenberechnung
- Anpassbar an verschiedene Farb- und Lichtbedingungen
- Verknüpfung des fogTracking mit dem restl. Regelkreislauf durch die Echtzeitzuweisung der vom ExistenzMitteiler generierten begriffe zu einer ID
- Einspeisen des digitalen "Gewichtes" (on-pixel) innerhalb des zum Tracking verwendeten Bereiches zurück in den Regelkreislauf

Funktionsweise
Das fogTracking ist realisiert in m/m/j sowie der dafür frei-verfügbaren external Libary cv.jit (computer vision) und einigen selbstgeschriebenen Java-Externals, die m/m/j über das mxj-Interface zur Verfügung gestellt werden. Es ermöglicht der Installation direkt auf auf das Verhalten von Besuchern zu reagieren. Optimiert wurde es für eine Deckenkamera um Positionen innerhalb des Raumes zu bestimmen. Theoretisch ist aber auch eine beliebige andere Anwendung vorstellbar, solange gewisse Rahmenbedingungen erfüllt sind ( klar unterscheidbarer Hinter und Vordergrund, min. Lichtverhältnisse, etc. ).

Zusammengefasst arbeitet es in etwa nach folgendem Prinzip:
- zunächst wird ein Referenzbild geschossen, das dem Tracking als Hintergrund dient, vor dem es Personen bzw. Veränderungen erkennen soll.
- das ankommende Farb-Videomaterial wird in seine 3 Bestandteile R,G und B zerlegt ( jeweils als Graustufenmatrix )
- anschließend wird über eine automatische Erkennung der durschnittlichen Helligkeitswert (oder über eine Einstellung ein beliebiger Wert) der Threshold für das Bilden eines Binärbildes festgelegt. - das daraus resultierende Bild enthält nurnoch Pixel die heller ( oder dunkler, je nach wahl des Benutzers ) sind als der Threshold.
- anschließend wird das Binärbild des Hintergrundes davon abgezogen, so dass nur noch Veränderungen sichtbar sind.
- sog. BLOBs (Binary Large OBjects) werden aus den den restlichen aktiven Pixeln gebildet, denen jeweils eine eigene ID zugewiesen wird.

- das Zentrum dieser BLOBs wird als aktuelle Position benutzt *
- via Netzwerk werden aktuell erzeugte Wörter des ExistenzMitteiler empfangen den Zielen zugeordnet (sofern diese nicht bereits über ein Wort verfügen).
- für jede ID werden im sog. fogVisualisator sowohl ihr numerischer Wert als auch das ihr zugeordnete Wort wieder auf eine jitter-matrix überlagert.
- anschließend wird für jede ID die position zu den ihr am nächsten liegenden 3 Endpunkten der im Tensegrity verbauten Stäbe berechnet und Linien zu ihr gezogen.**

Links
cv.jit-ExternalLibary (WIN / MAC OS)


*Da dieser Vorgang für jeden der 3 Farbkanäle stattfindet habe ich ein Java-External geschrieben, dass die Outputs dieser 3 Vorgänge entsprechend miteinander vergleicht und versucht Übereinstimmungen zu finden um Fehlerkennungen möglichst zu vermeiden

**Die Endpunkte der Tensegrity-Stäbe müssen manuell vor inbetriebname des Trackings innerhalb eines Subpatches des fogTracking auf dem Standbild markiert werden, damit der Mechanismus korrekt funktioniert.

Edit - History - Print - Recent Changes - Search
Page last modified on January 31, 2008, at 09:25 PM