Anotação de Vídeo com Controles Quadro a Quadro
Configure anotação de vídeo no Potato com navegação quadro a quadro, marcadores de tempo, rotulagem de eventos temporais e classificação por segmento usando esquemas radio ou span.
A anotação de vídeo é como você cria dados de treinamento para coisas como reconhecimento de ações, rastreamento de objetos e detecção de eventos temporais. Este tutorial cobre a navegação por quadros, a segmentação de um clipe no tempo e como manter a rotulagem rápida. Para a referência completa do esquema de vídeo, consulte a documentação de origem.
O que a anotação de vídeo pode fazer
O Potato lida com vídeo tanto para tarefas de rotulagem quanto de classificação:
- Classificação de vídeo: rotule clipes de vídeo inteiros
- Marcação multirrótulo: aplique várias tags aos vídeos
- Anotação temporal: marque eventos nos vídeos
Configuração Básica de Vídeo
annotation_task_name: "Video Action Recognition"
task_dir: "."
data_files:
- "data/videos.json"
item_properties:
id_key: id
text_key: video_url
output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl"
annotation_schemes:
- annotation_type: video_annotation
name: action
description: "Mark each stretch of video where one action is happening"
mode: segment
labels:
- name: walking
color: "#4ECDC4"
key_value: "1"
- name: running
color: "#FF6B6B"
key_value: "2"
- name: jumping
color: "#45B7D1"
key_value: "3"
- name: sitting
color: "#FFEAA7"
key_value: "4"
user_config:
allow_all_users: trueNavegação Quadro a Quadro
min_segments: 1
label_requirement:
required: trueAnotação de segmentos temporais
Marque eventos com um tempo de início e de fim:
annotation_schemes:
- annotation_type: video_annotation
name: frame_label
description: "Classify the current frame"
mode: frame
frame_stepping: true
show_timecode: true
video_fps: 30
labels:
- name: action
color: "#FF6B6B"
key_value: "1"
- name: no_action
color: "#9CA3AF"
key_value: "2"Criando Segmentos
- Navegue até o início de um evento
- Pressione
[ou clique em "Mark Start" - Navegue até o fim do evento
- Pressione
]ou clique em "Mark End" - Selecione o rótulo do evento
- Repita para todos os eventos
Marcando momentos-chave
Marque momentos específicos dentro de um clipe:
annotation_schemes:
- annotation_type: video_annotation
name: key_moments
description: "Mark the moment each action begins, peaks, and ends"
mode: keyframe
labels:
- name: action_start
color: "#22C55E"
key_value: "1"
- name: action_peak
color: "#EF4444"
key_value: "2"
- name: action_end
color: "#3B82F6"
key_value: "3"Classificação por vídeo
Classifique um vídeo inteiro com os tipos de anotação padrão:
annotation_schemes:
- annotation_type: video_annotation
name: plays
description: "Mark each play and describe it"
mode: segment
labels:
- name: attack
color: "#EF4444"
- name: defense
color: "#3B82F6"
segment_schemes:
- annotation_type: radio
name: outcome
description: "How did this play end?"
labels: ["scored", "turnover", "out of play"]Vídeo com rótulos de categoria
Anote vídeos com rótulos de categoria:
annotation_schemes:
- annotation_type: multiselect
name: clip_tags
description: "Tags that apply to this clip as a whole"
labels:
- Highlight worthy
- Good camera angle
- Multiple players
- Close-up
- Wide shot
- Slow motion availableUma configuração completa
annotation_task_name: "Sports Video Analysis"
task_dir: "."
data_files:
- "data/sports_clips.json"
item_properties:
id_key: id
text_key: video_url
output_annotation_dir: "annotations/"
export_annotation_format: "jsonl"
annotation_instructions: |
## Event marking
- Mark an event from the frame it **starts**, not from the frame it becomes obvious.
- Include the full play sequence in the segment.
- For a goal, run the segment from the shot to the ball crossing the line.
## Navigation
- `Space` plays and pauses, `,` and `.` step one frame.
- `[` and `]` set the segment boundaries, `Enter` creates the segment.
annotation_schemes:
- annotation_type: video_annotation
name: game_events
description: "Mark every game event and its duration"
mode: segment
frame_stepping: true
show_timecode: true
playback_rate_control: true
video_fps: 30
min_segments: 1
label_requirement:
required: true
labels:
- name: goal
color: "#22C55E"
key_value: "1"
- name: foul
color: "#EF4444"
key_value: "2"
- name: corner_kick
color: "#3B82F6"
key_value: "3"
- name: free_kick
color: "#F59E0B"
key_value: "4"
- name: penalty
color: "#EC4899"
key_value: "5"
- name: offside
color: "#8B5CF6"
key_value: "6"
- annotation_type: multiselect
name: clip_tags
description: "Tags that apply to this clip as a whole"
labels:
- Highlight worthy
- Good camera angle
- Multiple players
- Close-up
- Wide shot
- Slow motion available
user_config:
allow_all_users: trueFormato de Saída
{
"video_metadata": {
"duration": 120.5,
"fps": 30,
"width": 1920,
"height": 1080
},
"segments": [
{
"id": "segment_1",
"start_time": 0.0,
"end_time": 10.5,
"start_frame": 0,
"end_frame": 315,
"label": "goal"
}
],
"frame_annotations": {
"450": {
"frame": 450,
"time": 15.0,
"label": "scene_change"
}
},
"keyframes": [
{
"id": "kf_1",
"frame": 900,
"time": 30.0,
"label": "important_moment",
"note": "Key dialogue"
}
],
"tracking": {}
}Dicas para anotação de vídeo
- Visão geral na primeira passagem: assista primeiro em velocidade normal
- Câmera lenta para precisão: use 0,25x para timestamps exatos
- Atalhos de teclado: muito mais rápidos do que o mouse
- Faça pausas: anotação de vídeo é visualmente exigente
- Critérios consistentes: documente os casos limítrofes com clareza
Próximos Passos
- Aprenda comparação de imagens para avaliação de qualidade de vídeo
- Configure crowdsourcing para anotação de vídeo em larga escala
Documentação completa em Anotação de Imagens (seção de vídeo).