Segment Tracking
Im letzten Beitrag ging es darum, wie man das Ising- bzw. Potts-Modell verwenden kann, um zusammengehörige Segmente in einem Bild zu erkennen. Häufig ist es jedoch wichtig, die Bewegung und Veränderung von solchen Segmenten in einer ganzen Sequenz von Bildern, also in Videos, zu verfolgen. Ein unabhängiges Ausführen des Cluster-Algorithmus für jedes Einzelbild reicht hierfür nicht, denn damit ist keinesfalls sichergestellt, dass die Labels von Frame zu Frame konsistent gesetzt werden.
Hierfür gibt es verschiedene Ansätze, beispielsweise das vorläufig unabhängige Clustern der einzelnen Frames mit anschließender Suche nach der besten Übereinstimmung zwischen den Eigenschaften (z.B. Position, Größe, Winkel) der neuen und der im vorigen Frame berechneten Cluster.
Der im vorigen Beitrag beschriebene Energy Cluster Update-Algorithmus lässt sich jedoch so erweitern, dass dies nicht mehr nötig ist. Dabei erlaubt man zusätzlich zu der Wechselwirkung eines durch einen Spin repräsentierten Bildpixels mit seinen Nachbarn im selben Bild auch noch eine Wechselwirkung zu den entsprechenden Pixeln im nächsten Frame. Dies setzt voraus, dass bekannt ist, an welcher Stelle sich ein Bildpunkt des einen Frames von einem sich unter Umständen bewegenden Objekts im nächsten Frame befindet.
Dies lässt sich zum einen aus dem optischen Fluss ableiten. In einer so genannten Optical Flow Map ist gespeichert, in welche Richtung sich ein Pixel mit was für einer Geschwindigkeit bewegt. (Dies wird beispiesweilse auch bei der Videokompression verwendet.) Eine ähnliche Alternative zur Betrachtung des Optischen Flusses ist die (binokulare) Disparität - der Verschiebungseffekt von Objekten, wenn sie mit dem linken bzw. dem rechten Auge betrachtet werden. (Ist dieser groß, ist die Entfernung zum Objekt sehr klein, und umgekehrt. Dies ist die Grundlage für dreidimensionales Sehen.)
Sowohl über eine zuvor berechnete Optical Flow Map als auch über eine Disparity Map lässt sich auf korrespondierende Pixel in zwei aufeinander folgenden Frames schließen. Auf diese Weise ist es prinzipiell möglich, die Energiefunktion so zu erweitern, dass auch eine von der Farbdifferenz abhängige Wechselwirkung von Pixeln in verschiedenen Frames des gesamten Videos die Bildung der Cluster beeinflusst, während dies vorher nur auf die Pixel im selben Frame begrenzt war.
In der Praxis ist es zwechmäßig, dies auf benachbarte Frames zu begrenzen. Dabei betrachtet man immer Bildpaare, wobei der zweite Frame des einen Paares der erste Frame des nächsten Paares ist. Auf Grund der Inter-Frame-Interaktion der Spins entstehen paarweise Cluster, die von Frame zu Frame dieselben Bereiche/Objekte segmentieren und dabei in den Labels übereinstimmen.
Liegt in zwei Bildern keine Veränderung der Szene vor, so ist auch die Disparität der Bilder Null und es entstehen in beiden Frames identische Cluster. Ist das Bild hingegen verschoben, so kann der Algortihmus mit Hilfe einer Optical Flow Map oder einer Disparity Map trotzdem korrenspondierende Pixel finden und die Cluster entstehen entsprechend verschoben. Haben sich die Objekte auch noch in ihrer Größe verändert, so verändern sich bei der Minimierung der Energiefunktion auch die Formen der Cluster.
Die Bilder zeigen ein Video, in der eine Hand ein Buch aufklappt. Das Segment der Hand wird dabei, obwohl sie sich bewegt, von Frame zu Frame korrekt berechnet und zugeordet. Das Segment des Buchcovers ändert sich in der Größe, genauso das später entstehende Segment der Buchinnenseite. Die gesamte Bildsequenz besteht aus knapp 200 Einzelbildern, von denen hier 12 sowohl im Original als auch geclustert dargestellt sind.
Referenzen / Weiterführende Links
- Babette Dellen, Eren Erdal Aksoy, and Florentin Wörgötter, "Segment tracking via a spatiotemporal linking process including feedback stabilization in an n-d lattice model"
- Kommentar schreiben
