Skip to content

Annotation vidéo

Annotez la vidéo dans Potato — classez des segments temporels, marquez des images clés et suivez des objets avec navigation image par image et étiquetage d'événements sur la timeline.

Potato prend en charge l'annotation vidéo pour la segmentation temporelle, la classification d'images, le marquage d'images clés et le suivi d'objets.

Modes d'annotation

ModeDescriptionCas d'usage
segmentMarquer des plages temporellesDétection de scènes, tours de parole
frameClasser des images individuellesÉtiquetage au niveau de l'image
keyframeMarquer les moments importantsDétection de temps forts
trackingSuivre des objets d'une image à l'autreSuivi d'objets
combinedTous les modes dans une seule interfaceTâches d'annotation complexes

Configuration de base

yaml
annotation_schemes:
  - name: "video_segments"

Options de configuration

ChampTypeDéfautDescription
namestringObligatoireIdentifiant unique de l'annotation
descriptionstringObligatoireInstructions affichées aux annotateurs
annotation_typestringObligatoireDoit être "video_annotation"
labelslistObligatoireÉtiquettes d'annotation disponibles
modestring"segment"Mode d'annotation
min_segmentsinteger0Nombre minimum d'annotations requises
max_segmentsintegernullNombre maximum d'annotations autorisées
timeline_heightinteger70Hauteur de la timeline en pixels
overview_heightinteger40Hauteur de la barre de vue d'ensemble en pixels
zoom_enabledbooleantrueActiver le zoom de la timeline
playback_rate_controlbooleantrueAfficher le sélecteur de vitesse de lecture
frame_steppingbooleantrueActiver la navigation image par image
show_timecodebooleantrueAfficher le numéro d'image et le temps
video_fpsinteger30Fréquence d'images de la vidéo pour les calculs

Configuration des étiquettes

Les étiquettes peuvent être de simples chaînes ou des objets détaillés avec couleurs et raccourcis clavier :

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

Exemples par mode

Mode segment (par défaut)

Marquez des plages temporelles avec un début et une fin :

yaml
annotation_schemes:
  - name: "scene_detection"

Mode image

Classez les images individuelles :

yaml
annotation_schemes:
  - name: "frame_quality"

Mode image clé

Marquez les moments importants :

yaml
annotation_schemes:
  - name: "highlights"

Mode suivi

Suivez des objets d'une image à l'autre avec des boîtes englobantes :

yaml
annotation_schemes:
  - name: "object_tracking"

Mode combiné

Utilisez plusieurs types d'annotation dans une seule interface :

yaml
annotation_schemes:
  - name: "comprehensive"

Affichage vidéo

Pour une simple lecture vidéo sans annotation (par exemple pour accompagner d'autres types d'annotation), utilisez le type video :

yaml
annotation_schemes:
  - name: "video_player"

Sous-titres et légendes

Si la vidéo comporte des sous-titres, vous pouvez les annoter à la place de la timeline vidéo, ou en parallèle. Potato lit les formats WebVTT, SubRip, TTML/DFXP, SubStation Alpha, ainsi que les formats json3 et srv1/srv2/srv3 de YouTube, et détecte chacun d'après le contenu du fichier plutôt que d'après l'extension.

bash
yt-dlp --write-auto-subs --sub-langs en --sub-format vtt --skip-download <URL>
json
{"id": "talk_01", "conversation": {"audio": "media/talk_01.mp3",
                                   "transcript": "captions/talk_01.vtt"}}

Remarque : les sous-titres générés automatiquement n'ont ni ponctuation ni identification des locuteurs, et leurs frontières de cue tombent là où la fenêtre de sous-titre s'est remplie, pas là où une phrase s'est terminée. N'y appliquez pas un schéma au niveau de la phrase. Voir Annoter les sous-titres YouTube pour la marche à suivre.

La liste complète des formats se trouve dans Formats de transcription.

Raccourcis clavier

ToucheAction
SpaceLecture/pause
, / .Image précédente/suivante
[Marquer le début du segment
]Marquer la fin du segment
EnterCréer le segment
KMarquer une image clé
CClasser l'image courante
DeleteSupprimer l'annotation sélectionnée
1-9Sélectionner l'étiquette
+ / -Zoom avant/arrière

Format de données

Données d'entrée

Votre fichier de données doit inclure des chemins ou URL de vidéos :

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"
  }
]

Format de sortie

La sortie varie selon le mode :

Mode segment :

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

Mode image :

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

Mode image clé :

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

Mode suivi :

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}}
        ]
      }
    ]
  }
}

Formats vidéo pris en charge

  • MP4 (recommandé)
  • WebM
  • MOV
  • OGG

Suivi d'objets vidéo avec interpolation d'images clés

Nouveau en v2.2.0

Le mode suivi prend désormais en charge l'interpolation d'images clés : les annotateurs marquent la position des objets sur des images clés et les images intermédiaires sont interpolées automatiquement. Cela accélère nettement les tâches de suivi d'objets.

yaml
annotation_schemes:
  - name: "tracking"

Déroulement

  1. Placez-vous sur une image clé et dessinez une boîte englobante autour de l'objet
  2. Avancez de plusieurs images et repositionnez la boîte englobante
  3. Le système interpole automatiquement les positions des images intermédiaires
  4. Vérifiez et ajustez les positions interpolées si besoin

L'ensemble complet des modes d'annotation valides est : segment, frame, keyframe, tracking et combined.

Notes techniques

  • Utilise Peaks.js pour la visualisation de la timeline
  • Éléments vidéo HTML5 standard (aucune dépendance serveur supplémentaire)
  • La timeline permet le glisser-sélectionner pour créer des segments

Bonnes pratiques

  1. Utilisez des vidéos compressées - Les gros fichiers ralentissent le chargement
  2. Réglez la fréquence d'images correcte - Faites correspondre video_fps à la fréquence réelle de votre vidéo
  3. Activez la navigation image par image - Indispensable pour une annotation précise au niveau de l'image
  4. Utilisez le contrôle de vitesse de lecture - Le ralenti aide pour le travail de détail
  5. Donnez des définitions de segments claires - Précisez ce qui constitue une frontière de segment
  6. Utilisez des couleurs distinctes - Rendez les étiquettes visuellement discernables
  7. Pensez à la hauteur de la timeline - Augmentez-la pour les tâches de segmentation complexes