Skip to content
Tutorials4 min read

Annotazione per il tracciamento multi-oggetto

Una panoramica dei concetti dell'annotazione per il tracciamento multi-oggetto e di come le funzionalità video di Potato possono reggere un flusso di tracciamento di base.

Potato Team

L'annotazione per il tracciamento multi-oggetto (MOT) produce dati di addestramento per cose come la videosorveglianza, la guida autonoma e l'analisi sportiva. Questo articolo ripercorre le idee di fondo dell'annotazione MOT e fin dove ti portano le attuali funzionalità video di Potato in un flusso di tracciamento di base.

Una premessa prima di andare avanti: Potato non ha ancora strumenti dedicati al MOT. Se oggi ti serve la gestione automatica degli ID e l'interpolazione, probabilmente ti conviene uno strumento specializzato. Ma per lavori più piccoli l'approccio manuale che segue funziona bene.

Perché l'annotazione MOT è difficile

  • Mantenere gli ID degli oggetti coerenti da un fotogramma all'altro
  • Gestire gli oggetti che vengono occlusi e poi ricompaiono
  • Seguire gli oggetti in scene affollate
  • Districare gli scambi e le fusioni di ID

Cosa fa oggi l'annotazione video di Potato

Potato gestisce l'annotazione video di base con il tipo video_annotation. Le comodità specifiche del MOT (gestione automatica degli ID, interpolazione, gestione delle occlusioni) non ci sono ancora, ma un flusso di etichettatura video di base puoi comunque metterlo in piedi.

Impostazione di base dell'annotazione video

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

Formato dei dati di esempio

Il file data/videos.json contiene voci con i percorsi dei video:

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

Tracciare a mano

Senza funzionalità MOT dedicate, gli oggetti puoi comunque tracciarli a mano. È più noioso, ma funziona.

Costruire le tracce un fotogramma alla volta

  1. Vai al fotogramma in cui l'oggetto compare per la prima volta
  2. Etichettalo nell'interfaccia di annotazione video
  3. Dagli un identificatore costante nell'annotazione, tipo «person_1»
  4. Avanza nei fotogrammi successivi e continua a etichettarlo con lo stesso identificatore

Gestire le occlusioni

Quando un oggetto sparisce dietro qualcosa:

  1. Annota l'ultimo fotogramma in cui si vedeva
  2. Quando riappare, riusa lo stesso identificatore, così la traccia resta continua
  3. Segnati il periodo di occlusione nelle note di annotazione

Funzionalità a cui stiamo pensando

Renderebbero Potato molto più adatto al MOT, e sono nella lista dei lavori futuri:

  • Assegnazione automatica degli ID, con incremento automatico per i nuovi oggetti
  • Interpolazione delle tracce, lineare o cubica, tra un keyframe e l'altro
  • Gestione delle occlusioni con livelli di visibilità (visible, partial, heavy, not_visible)
  • Visualizzazione delle traiettorie per mostrare i percorsi degli oggetti tra i fotogrammi
  • Un pannello di gestione delle tracce per unirle, dividerle e amministrarne gli ID
  • Attributi per singolo fotogramma, per le proprietà che cambiano da un fotogramma all'altro

Se qualcuna di queste ti interessa, scrivi al team di Potato o contribuisci tu stesso alla funzionalità.

Consigli per l'annotazione MOT manuale

  1. Lavora su segmenti brevi, da 100 a 200 fotogrammi per volta.
  2. Usa uno schema di ID chiaro, tipo «person_001» o «vehicle_023», e attieniti a quello.
  3. Tieni delle note sulle occlusioni e sulle decisioni che hai preso sulle tracce.
  4. Fai un passaggio di revisione: guarda il segmento in avanti, poi all'indietro, per scovare gli errori.
  5. Appoggiati a strumenti esterni. Una pre-elaborazione con modelli di rilevamento ti risparmia parecchi clic.

Altri modi per affrontarla

Se ti servono subito funzionalità MOT complete, ci sono un paio di strade:

  1. Fai un flusso ibrido: l'etichettatura iniziale in Potato, poi passi a uno strumento MOT specializzato per la gestione delle tracce.
  2. Pre-annota con dei rilevatori di oggetti per generare i bounding box di partenza, poi rifiniscili in Potato.
  3. Esporta le annotazioni fatte in Potato e applicaci gli algoritmi di tracciamento a posteriori.

Dove andare da qui

Per il quadro completo su come funziona l'annotazione video in Potato, vedi la documentazione sorgente.


Per la documentazione attuale sull'annotazione video, vedi Annotazione di Immagini.