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
| Modus | Beschreibung | Anwendungsfall |
|---|---|---|
segment | Zeitliche Bereiche markieren | Szenenerkentung, Sprecherwechsel |
frame | Einzelne Frames klassifizieren | Frame-Beschriftung |
keyframe | Wichtige Momente markieren | Highlight-Erkennung |
tracking | Objekte über Frames verfolgen | Objektverfolgung |
combined | Alle Modi in einer Oberfläche | Komplexe Annotationsaufgaben |
Grundkonfiguration
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
| Feld | Typ | Standard | Beschreibung |
|---|---|---|---|
name | string | Erforderlich | Eindeutiger Bezeichner für die Annotation |
description | string | Erforderlich | Anweisungen für Annotatoren |
annotation_type | string | Erforderlich | Muss "video_annotation" sein |
labels | list | Erforderlich | Verfügbare Annotationsbeschriftungen |
mode | string | "segment" | Annotationsmodus |
min_segments | integer | 0 | Mindestanzahl erforderlicher Annotationen |
max_segments | integer | null | Maximale Anzahl erlaubter Annotationen |
timeline_height | integer | 70 | Zeitstrahl-Höhe in Pixeln |
overview_height | integer | 40 | Übersichtsbalken-Höhe in Pixeln |
zoom_enabled | boolean | true | Zeitstrahl-Zoom aktivieren |
playback_rate_control | boolean | true | Wiedergabegeschwindigkeitsauswahl anzeigen |
frame_stepping | boolean | true | Frame-für-Frame-Navigation aktivieren |
show_timecode | boolean | true | Framenummer und Zeit anzeigen |
video_fps | integer | 30 | Video-Framerate für Berechnungen |
Beschriftungskonfiguration
Beschriftungen können einfache Zeichenketten oder detaillierte Objekte mit Farben und Tastaturkürzeln sein:
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:
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: trueFrame-Modus
Einzelne Frames klassifizieren:
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: trueSchlüsselbild-Modus
Wichtige Momente markieren:
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: trueVerfolgungsmodus
Objekte über Frames mit Begrenzungsrahmen verfolgen:
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: 30Kombinierter Modus
Mehrere Annotationstypen in einer Oberfläche verwenden:
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: trueVideoanzeige
Für einfache Videowiedergabe ohne Annotation (z. B. zur Begleitung anderer Annotationstypen) den Typ video verwenden:
annotation_schemes:
- name: "video_player"
description: "Watch the video clip"
annotation_type: "video"
video_path: "{{video_url}}"
controls: true
autoplay: false
loop: false
muted: falseTastaturkürzel
| Taste | Aktion |
|---|---|
Space | Abspielen/Pausieren |
, / . | Vorheriger/nächster Frame |
[ | Segmentstart markieren |
] | Segmentende markieren |
Enter | Segment erstellen |
K | Schlüsselbild markieren |
C | Aktuellen Frame klassifizieren |
Delete | Ausgewählte Annotation entfernen |
1-9 | Beschriftung auswählen |
+ / - | Hinein-/herauszoomen |
Datenformat
Eingabedaten
Die Datendatei sollte Videopfade oder URLs enthalten:
[
{
"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:
{
"id": "video_1",
"annotations": {
"scene_detection": [
{
"start": 0.0,
"end": 5.2,
"start_frame": 0,
"end_frame": 156,
"label": "indoor"
}
]
}
}Frame-Modus:
{
"id": "video_1",
"annotations": {
"frame_quality": [
{
"frame": 120,
"time": 4.0,
"label": "good"
}
]
}
}Schlüsselbild-Modus:
{
"id": "video_1",
"annotations": {
"highlights": [
{
"frame": 450,
"time": 15.0,
"label": "goal",
"note": "First goal of the match"
}
]
}
}Verfolgungsmodus:
{
"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.
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: 30Arbeitsablauf
- Zu einem Schlüsselbild navigieren und einen Begrenzungsrahmen um das Objekt zeichnen
- Mehrere Frames vorspringen und den Begrenzungsrahmen neu positionieren
- Das System interpoliert automatisch Positionen für Zwischenframes
- 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
- Komprimierte Videos verwenden - Große Dateien verlangsamen das Laden
- Geeignete FPS festlegen -
video_fpsan die tatsächliche Video-Framerate anpassen - Frame-Stepping aktivieren - Unverzichtbar für präzise Frame-Annotation
- Wiedergabegeschwindigkeit nutzen - Zeitlupe hilft bei detaillierter Arbeit
- Klare Segmentdefinitionen bereitstellen - Festlegen, was Segmentgrenzen ausmacht
- Eindeutige Farben verwenden - Beschriftungen visuell unterscheidbar machen
- Zeitstrahl-Höhe berücksichtigen - Für komplexe Segmentierungsaufgaben erhöhen