Skip to content
Tutorials3 min read

Annotation für Multi-Object Tracking

Ein Überblick über die Grundbegriffe der Multi-Object-Tracking-Annotation und darüber, wie weit die Video-Funktionen von Potato einen einfachen Tracking-Ablauf tragen.

Potato Team

Annotation für Multi-Object Tracking (MOT) liefert Trainingsdaten für Anwendungen wie Videoüberwachung, autonomes Fahren und Sportanalyse. Dieser Beitrag geht die Grundideen der MOT-Annotation durch und zeigt, wie weit die heutigen Video-Funktionen von Potato bei einem einfachen Tracking-Ablauf reichen.

Eine Einschränkung vorweg: Potato hat noch keine eigenen MOT-Werkzeuge. Wenn du heute automatische ID-Verwaltung und Interpolation brauchst, bist du mit einem spezialisierten Werkzeug besser bedient. Für kleinere Vorhaben funktioniert der manuelle Weg unten aber gut.

Was MOT-Annotation schwierig macht

  • Objekt-IDs von einem Frame zum nächsten konsistent halten
  • Mit Objekten umgehen, die verdeckt werden und wieder auftauchen
  • Objekte durch dicht gefüllte Szenen verfolgen
  • ID-Wechsel und Zusammenführungen auflösen

Was die Video-Annotation in Potato heute kann

Potato bietet einfache Video-Annotation über den Typ video_annotation. Die MOT-typischen Annehmlichkeiten (automatische ID-Verwaltung, Interpolation, Umgang mit Verdeckung) fehlen noch, einen einfachen Ablauf zum Labeln von Video kannst du aber trotzdem aufsetzen.

Grundaufbau für Video-Annotation

yaml
annotation_task_name: "Video Object Labeling"
 
data_files:
  - data/videos.json
 
annotation_schemes:
  - annotation_type: video_annotation
    name: objects
    description: "Label objects in video frames"
    labels:
      - name: person
      - name: vehicle
      - name: cyclist

Format der Beispieldaten

Deine Datei data/videos.json enthält Einträge mit Pfaden zu den Videos:

json
[
  {
    "id": "video_001",
    "video": "/path/to/video.mp4"
  },
  {
    "id": "video_002",
    "video": "/path/to/another_video.mp4"
  }
]

Von Hand verfolgen

Auch ohne eigene MOT-Funktionen kannst du Objekte manuell verfolgen. Es ist mühsamer, funktioniert aber.

Tracks Frame für Frame aufbauen

  1. Zum Frame springen, in dem ein Objekt zuerst auftaucht
  2. Es in der Video-Oberfläche labeln
  3. Ihm in der Annotation eine gleichbleibende Kennung geben, etwa person_1
  4. Die folgenden Frames durchgehen und es weiter mit derselben Kennung labeln

Umgang mit Verdeckungen

Wenn ein Objekt hinter etwas verschwindet:

  1. Notier den letzten Frame, in dem es zu sehen war
  2. Taucht es wieder auf, nimm dieselbe Kennung, damit der Track durchgängig bleibt
  3. Halt den Zeitraum der Verdeckung in deinen Anmerkungen fest

Funktionen, über die wir nachdenken

Diese Punkte würden Potato bei MOT deutlich weiterbringen und stehen für die Zukunft auf der Liste:

  • Automatische ID-Vergabe, die IDs für neue Objekte hochzählt
  • Interpolation von Tracks zwischen Keyframes, linear oder kubisch
  • Umgang mit Verdeckung über Sichtbarkeitsstufen (visible, partial, heavy, not_visible)
  • Darstellung von Trajektorien, um Objektwege über Frames hinweg zu zeigen
  • Ein Panel zur Track-Verwaltung, um Track-IDs zusammenzuführen, aufzuteilen und zu ordnen
  • Attribute je Frame für Eigenschaften, die sich von Frame zu Frame ändern

Wenn dir etwas davon wichtig ist, melde dich beim Potato-Team oder steuere die Funktion selbst bei.

Hinweise zur manuellen MOT-Annotation

  1. Arbeite in kurzen Abschnitten von 100 bis 200 Frames.
  2. Nimm ein klares ID-Schema wie person_001 oder vehicle_023 und bleib dabei.
  3. Halt Verdeckungen und deine Entscheidungen zu den Tracks schriftlich fest.
  4. Mach einen Prüfdurchgang: Sieh dir den Abschnitt vorwärts an, dann rückwärts, um Fehler zu finden.
  5. Nutz externe Werkzeuge. Vorverarbeitung mit Detektionsmodellen spart viele Klicks.

Andere Wege

Wenn du volle MOT-Funktionalität sofort brauchst, gibt es ein paar Möglichkeiten:

  1. Fahr einen gemischten Ablauf: erste Labels in Potato, dann Übergabe an ein spezialisiertes MOT-Werkzeug für die Track-Verwaltung.
  2. Lass Objektdetektoren vorannotieren, um erste Bounding Boxes zu erzeugen, und korrigier sie in Potato nach.
  3. Exportier deine Potato-Annotationen und lass die Tracking-Algorithmen im Nachgang darauf laufen.

Wie es weitergeht

Wie Video-Annotation in Potato im Ganzen funktioniert, steht in der Quelldokumentation.


Die aktuelle Dokumentation zur Video-Annotation steht unter Bildannotation.