Skip to content
यह पृष्ठ अभी आपकी भाषा में उपलब्ध नहीं है। अंग्रेज़ी संस्करण दिखाया जा रहा है।

Video-Annotation

Zeitliche Segmente annotieren, Frames klassifizieren, Schlüsselbilder markieren und Objekte in Videos verfolgen.

Video-Annotation

Potato bietet umfassende Video-Annotationsmöglichkeiten, einschließlich zeitlicher Segmentierung, Frame-Klassifizierung, Schlüsselbildmarkierung und Objektverfolgung.

Annotationsmodi

ModusBeschreibungAnwendungsfall
segmentZeitliche Bereiche markierenSzenenerkentung, Sprecherwechsel
frameEinzelne Frames klassifizierenFrame-Beschriftung
keyframeWichtige Momente markierenHighlight-Erkennung
trackingObjekte über Frames verfolgenObjektverfolgung
combinedAlle Modi in einer OberflächeKomplexe Annotationsaufgaben

Grundkonfiguration

yaml
annotation_schemes:
  - name: "video_segments"
    description: "Mark segments where the speaker changes"
    annotation_type: "video_annotation"
    labels:
      - name: "Speaker A"
        color: "#FF6B6B"
      - name: "Speaker B"
        color: "#4ECDC4"

Konfigurationsoptionen

FeldTypStandardBeschreibung
namestringErforderlichEindeutiger Bezeichner für die Annotation
descriptionstringErforderlichAnweisungen für Annotatoren
annotation_typestringErforderlichMuss "video_annotation" sein
labelslistErforderlichVerfügbare Annotationsbeschriftungen
modestring"segment"Annotationsmodus
min_segmentsinteger0Mindestanzahl erforderlicher Annotationen
max_segmentsintegernullMaximale Anzahl erlaubter Annotationen
timeline_heightinteger70Zeitstrahl-Höhe in Pixeln
overview_heightinteger40Übersichtsbalken-Höhe in Pixeln
zoom_enabledbooleantrueZeitstrahl-Zoom aktivieren
playback_rate_controlbooleantrueWiedergabegeschwindigkeitsauswahl anzeigen
frame_steppingbooleantrueFrame-für-Frame-Navigation aktivieren
show_timecodebooleantrueFramenummer und Zeit anzeigen
video_fpsinteger30Video-Framerate für Berechnungen

Beschriftungskonfiguration

Beschriftungen können einfache Zeichenketten oder detaillierte Objekte mit Farben und Tastaturkürzeln sein:

yaml
labels:
  - name: "intro"
    color: "#4ECDC4"
    key_value: "1"
  - name: "content"
    color: "#3B82F6"
    key_value: "2"
  - name: "outro"
    color: "#8B5CF6"
    key_value: "3"

Beispiele nach Modus

Segmentmodus (Standard)

Zeitliche Bereiche mit Start- und Endzeiten markieren:

yaml
annotation_schemes:
  - name: "scene_detection"
    description: "Mark each scene in the video"
    annotation_type: "video_annotation"
    mode: "segment"
    labels:
      - name: "indoor"
        color: "#3B82F6"
        key_value: "1"
      - name: "outdoor"
        color: "#22C55E"
        key_value: "2"
      - name: "transition"
        color: "#F59E0B"
        key_value: "3"
    zoom_enabled: true
    playback_rate_control: true

Frame-Modus

Einzelne Frames klassifizieren:

yaml
annotation_schemes:
  - name: "frame_quality"
    description: "Classify each frame's quality"
    annotation_type: "video_annotation"
    mode: "frame"
    labels:
      - name: "good"
        color: "#22C55E"
      - name: "blurry"
        color: "#F59E0B"
      - name: "occluded"
        color: "#EF4444"
    frame_stepping: true
    show_timecode: true

Schlüsselbild-Modus

Wichtige Momente markieren:

yaml
annotation_schemes:
  - name: "highlights"
    description: "Mark key moments in the video"
    annotation_type: "video_annotation"
    mode: "keyframe"
    labels:
      - name: "goal"
        color: "#22C55E"
      - name: "foul"
        color: "#EF4444"
      - name: "highlight"
        color: "#F59E0B"
    frame_stepping: true

Verfolgungsmodus

Objekte über Frames mit Begrenzungsrahmen verfolgen:

yaml
annotation_schemes:
  - name: "object_tracking"
    description: "Track the ball throughout the video"
    annotation_type: "video_annotation"
    mode: "tracking"
    labels:
      - name: "ball"
        color: "#3B82F6"
      - name: "player"
        color: "#22C55E"
    frame_stepping: true
    video_fps: 30

Kombinierter Modus

Mehrere Annotationstypen in einer Oberfläche verwenden:

yaml
annotation_schemes:
  - name: "comprehensive"
    description: "Full video annotation"
    annotation_type: "video_annotation"
    mode: "combined"
    labels:
      - name: "action"
        color: "#3B82F6"
      - name: "dialogue"
        color: "#22C55E"
      - name: "transition"
        color: "#F59E0B"
    zoom_enabled: true
    playback_rate_control: true
    frame_stepping: true
    show_timecode: true

Videoanzeige

Für einfache Videowiedergabe ohne Annotation (z. B. zur Begleitung anderer Annotationstypen) den Typ video verwenden:

yaml
annotation_schemes:
  - name: "video_player"
    description: "Watch the video clip"
    annotation_type: "video"
    video_path: "{{video_url}}"
    controls: true
    autoplay: false
    loop: false
    muted: false

Tastaturkürzel

TasteAktion
SpaceAbspielen/Pausieren
, / .Vorheriger/nächster Frame
[Segmentstart markieren
]Segmentende markieren
EnterSegment erstellen
KSchlüsselbild markieren
CAktuellen Frame klassifizieren
DeleteAusgewählte Annotation entfernen
1-9Beschriftung auswählen
+ / -Hinein-/herauszoomen

Datenformat

Eingabedaten

Die Datendatei sollte Videopfade oder URLs enthalten:

json
[
  {
    "id": "video_1",
    "video_url": "https://example.com/videos/sample1.mp4",
    "description": "Meeting recording - identify speakers"
  },
  {
    "id": "video_2",
    "video_url": "/data/videos/sample2.mp4",
    "description": "Activity video - label actions"
  }
]

Ausgabeformat

Die Ausgabe variiert je nach Modus:

Segmentmodus:

json
{
  "id": "video_1",
  "annotations": {
    "scene_detection": [
      {
        "start": 0.0,
        "end": 5.2,
        "start_frame": 0,
        "end_frame": 156,
        "label": "indoor"
      }
    ]
  }
}

Frame-Modus:

json
{
  "id": "video_1",
  "annotations": {
    "frame_quality": [
      {
        "frame": 120,
        "time": 4.0,
        "label": "good"
      }
    ]
  }
}

Schlüsselbild-Modus:

json
{
  "id": "video_1",
  "annotations": {
    "highlights": [
      {
        "frame": 450,
        "time": 15.0,
        "label": "goal",
        "note": "First goal of the match"
      }
    ]
  }
}

Verfolgungsmodus:

json
{
  "id": "video_1",
  "annotations": {
    "object_tracking": [
      {
        "id": "track_1",
        "label": "ball",
        "frames": [
          {"frame": 0, "bbox": {"x": 100, "y": 200, "w": 30, "h": 30}},
          {"frame": 1, "bbox": {"x": 105, "y": 198, "w": 30, "h": 30}}
        ]
      }
    ]
  }
}

Unterstützte Videoformate

  • MP4 (empfohlen)
  • WebM
  • MOV
  • OGG

Video-Objektverfolgung mit Schlüsselbild-Interpolation

Neu in v2.2.0

Der Verfolgungsmodus unterstützt jetzt Schlüsselbild-Interpolation, die es Annotatoren ermöglicht, Objektpositionen an Schlüsselbildern zu markieren, während Zwischenframes automatisch interpoliert werden. Dies beschleunigt Objektverfolgungsaufgaben erheblich.

yaml
annotation_schemes:
  - name: "tracking"
    description: "Track objects with keyframe interpolation"
    annotation_type: "video_annotation"
    mode: "tracking"
    labels:
      - name: "person"
        color: "#3B82F6"
      - name: "vehicle"
        color: "#22C55E"
    frame_stepping: true
    video_fps: 30

Arbeitsablauf

  1. Zu einem Schlüsselbild navigieren und einen Begrenzungsrahmen um das Objekt zeichnen
  2. Mehrere Frames vorspringen und den Begrenzungsrahmen neu positionieren
  3. Das System interpoliert automatisch Positionen für Zwischenframes
  4. Interpolierte Positionen nach Bedarf überprüfen und anpassen

Die vollständige Liste gültiger Annotationsmodi ist: segment, frame, keyframe, tracking und combined.

Technische Hinweise

  • Verwendet Peaks.js für Zeitstrahl-Visualisierung
  • Standard-HTML5-Videoelemente (keine zusätzlichen Server-Abhängigkeiten)
  • Zeitstrahl unterstützt Ziehen zur Auswahl für die Segmenterstellung

Bewährte Vorgehensweisen

  1. Komprimierte Videos verwenden - Große Dateien verlangsamen das Laden
  2. Geeignete FPS festlegen - video_fps an die tatsächliche Video-Framerate anpassen
  3. Frame-Stepping aktivieren - Unverzichtbar für präzise Frame-Annotation
  4. Wiedergabegeschwindigkeit nutzen - Zeitlupe hilft bei detaillierter Arbeit
  5. Klare Segmentdefinitionen bereitstellen - Festlegen, was Segmentgrenzen ausmacht
  6. Eindeutige Farben verwenden - Beschriftungen visuell unterscheidbar machen
  7. Zeitstrahl-Höhe berücksichtigen - Für komplexe Segmentierungsaufgaben erhöhen