Skip to content

Anotação de Vídeo

Anote vídeos no Potato — classifique segmentos temporais, marque keyframes e rastreie objetos com navegação quadro a quadro e rotulagem de eventos ao longo da linha do tempo.

O Potato oferece recursos abrangentes de anotação de vídeo, incluindo segmentação temporal, classificação de quadros, marcação de keyframes e rastreamento de objetos.

Modos de Anotação

ModoDescriçãoCaso de Uso
segmentMarca intervalos temporaisDetecção de cenas, turnos de fala
frameClassifica quadros individuaisRotulagem em nível de quadro
keyframeMarca momentos importantesDetecção de destaques
trackingRastreia objetos ao longo dos quadrosRastreamento de objetos
combinedTodos os modos em uma só interfaceTarefas de anotação complexas

Configuração Básica

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"

Opções de Configuração

CampoTipoPadrãoDescrição
namestringObrigatórioIdentificador único para a anotação
descriptionstringObrigatórioInstruções exibidas aos anotadores
annotation_typestringObrigatórioDeve ser "video_annotation"
labelslistObrigatórioRótulos de anotação disponíveis
modestring"segment"Modo de anotação
min_segmentsinteger0Número mínimo de anotações exigidas
max_segmentsintegernullNúmero máximo de anotações permitidas
timeline_heightinteger70Altura da linha do tempo em pixels
overview_heightinteger40Altura da barra de visão geral em pixels
zoom_enabledbooleantrueAtiva o zoom da linha do tempo
playback_rate_controlbooleantrueExibe o seletor de velocidade de reprodução
frame_steppingbooleantrueAtiva a navegação quadro a quadro
show_timecodebooleantrueExibe o número do quadro e o tempo
video_fpsinteger30Taxa de quadros do vídeo para cálculos

Configuração de Rótulos

Os rótulos podem ser strings simples ou objetos detalhados com cores e atalhos de teclado:

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

Exemplos por Modo

Modo de Segmento (Padrão)

Marque intervalos temporais com horários de início e fim:

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

Modo de Quadro

Classifique quadros individuais:

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

Modo de Keyframe

Marque momentos importantes:

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

Modo de Rastreamento

Rastreie objetos ao longo dos quadros com caixas delimitadoras:

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

Modo Combinado

Use vários tipos de anotação em uma só interface:

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

Exibição de Vídeo

Para reprodução simples de vídeo sem anotação (por exemplo, para acompanhar outros tipos de anotação), use o tipo video:

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

Atalhos de Teclado

TeclaAção
SpaceReproduzir/pausar
, / .Quadro anterior/seguinte
[Marcar início do segmento
]Marcar fim do segmento
EnterCriar segmento
KMarcar keyframe
CClassificar o quadro atual
DeleteRemover anotação selecionada
1-9Selecionar rótulo
+ / -Aumentar/diminuir zoom

Formato dos Dados

Dados de Entrada

Seu arquivo de dados deve incluir caminhos ou URLs de vídeo:

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

Formato de Saída

A saída varia conforme o modo:

Modo de Segmento:

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

Modo de Quadro:

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

Modo de Keyframe:

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

Modo de Rastreamento:

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

Formatos de Vídeo Suportados

  • MP4 (recomendado)
  • WebM
  • MOV
  • OGG

Rastreamento de Objetos em Vídeo com Interpolação de Keyframes

Novo na v2.2.0

O modo de rastreamento agora oferece suporte à interpolação de keyframes, permitindo que os anotadores marquem as posições dos objetos em quadros-chave e tenham os quadros intermediários interpolados automaticamente. Isso acelera significativamente as tarefas de rastreamento de objetos.

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

Fluxo de Trabalho

  1. Navegue até um keyframe e desenhe uma caixa delimitadora ao redor do objeto
  2. Avance vários quadros e reposicione a caixa delimitadora
  3. O sistema interpola automaticamente as posições para os quadros intermediários
  4. Revise e ajuste as posições interpoladas conforme necessário

O conjunto completo de modos de anotação válidos é: segment, frame, keyframe, tracking e combined.

Notas Técnicas

  • Usa o Peaks.js para visualização da linha do tempo
  • Elementos de vídeo HTML5 padrão (sem dependências adicionais de servidor)
  • A linha do tempo permite arrastar para selecionar e criar segmentos

Boas Práticas

  1. Use vídeos comprimidos - Arquivos grandes deixam o carregamento mais lento
  2. Defina o FPS apropriado - Faça o video_fps corresponder à taxa de quadros real do seu vídeo
  3. Ative o avanço por quadro - Essencial para anotação precisa em nível de quadro
  4. Use o controle de velocidade de reprodução - A câmera lenta ajuda no trabalho detalhado
  5. Forneça definições claras de segmentos - Defina o que constitui os limites de um segmento
  6. Use cores distintas - Torne os rótulos visualmente distinguíveis
  7. Considere a altura da linha do tempo - Aumente-a para tarefas de segmentação complexas