Skip to content

Suporte de IA Visual

Use LLMs de visão — GPT-4 Vision, Claude Vision, Gemini e YOLO — para pré-anotar imagens, gerar sugestões de caixas delimitadoras e auxiliar em tarefas visuais no Potato.

Novo na v2.1.0

O Potato oferece assistência baseada em IA para tarefas de anotação de imagem e vídeo usando diversos modelos de visão, incluindo YOLO para detecção de objetos e modelos de visão-linguagem (VLLMs) como GPT-4o, Claude e modelos de visão do Ollama.

Visão geral

O suporte de IA visual permite:

  • Detecção de objetos: detectar e localizar objetos automaticamente em imagens usando YOLO ou VLLMs
  • Pré-anotação: detectar automaticamente todos os objetos para revisão humana
  • Classificação: classificar imagens ou regiões dentro de imagens
  • Dicas: obter orientação sem revelar localizações exatas
  • Detecção de cenas: identificar segmentos temporais em vídeos
  • Detecção de quadros-chave: encontrar momentos significativos em vídeos
  • Rastreamento de objetos: rastrear objetos entre quadros de vídeo

Endpoints suportados

Endpoint YOLO

Ideal para detecção de objetos rápida e precisa usando inferência local.

yaml
ai_support:
  enabled: true
  endpoint_type: "yolo"
  ai_config:
    model: "yolov8m.pt"  # or yolov8n, yolov8l, yolov8x, yolo-world
    confidence_threshold: 0.5
    iou_threshold: 0.45

Modelos suportados:

  • YOLOv8 (variantes n/s/m/l/x)
  • YOLO-World (detecção de vocabulário aberto)
  • Modelos treinados personalizados

Endpoint Ollama Vision

Para inferência local de modelos de visão-linguagem.

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama_vision"
  ai_config:
    model: "llava:latest"  # or llava-llama3, bakllava, llama3.2-vision, qwen2.5-vl
    base_url: "http://localhost:11434"
    max_tokens: 500
    temperature: 0.1

Modelos suportados:

  • LLaVA (7B, 13B, 34B)
  • LLaVA-LLaMA3
  • BakLLaVA
  • Llama 3.2 Vision (11B, 90B)
  • Qwen2.5-VL
  • Moondream

Endpoint OpenAI Vision

Para análise visual baseada em nuvem usando GPT-4o.

yaml
ai_support:
  enabled: true
  endpoint_type: "openai_vision"
  ai_config:
    api_key: "${OPENAI_API_KEY}"
    model: "gpt-4o"  # or gpt-4o-mini
    max_tokens: 1000
    detail: "auto"  # low, high, or auto

Endpoint Anthropic Vision

Para o Claude com capacidades de visão.

yaml
ai_support:
  enabled: true
  endpoint_type: "anthropic_vision"
  ai_config:
    api_key: "${ANTHROPIC_API_KEY}"
    model: "claude-sonnet-4-20250514"
    max_tokens: 1024

Capacidades dos endpoints

Cada endpoint tem pontos fortes diferentes:

EndpointGeração de textoVisãoSaída de bboxPalavra-chaveJustificativa
ollama_visionSimSimNãoNãoSim
openai_visionSimSimNãoNãoSim
anthropic_visionSimSimNãoNãoSim
yoloNãoSimSimNãoNão

Boas práticas:

  • Para detecção precisa de objetos, use o endpoint yolo
  • Para classificação de imagens com explicações, use um VLLM como ollama_vision com Qwen-VL ou LLaVA
  • Para fluxos de trabalho combinados, configure um endpoint de texto e um endpoint visual

Anotação de imagem com IA

Configure a anotação de imagem assistida por IA com recursos de detecção, pré-anotação, classificação e dicas:

yaml
annotation_schemes:
  - annotation_type: image_annotation
    name: object_detection
    description: "Detect and label objects in the image"
    tools:
      - bbox
      - polygon
    labels:
      - name: "person"
        color: "#FF6B6B"
      - name: "car"
        color: "#4ECDC4"
      - name: "dog"
        color: "#45B7D1"
 
    ai_support:
      enabled: true
      features:
        detection: true      # "Detect" button - find objects
        pre_annotate: true   # "Auto" button - detect all
        classification: false # "Classify" button - classify region
        hint: true           # "Hint" button - get guidance
 
ai_support:
  enabled: true
  endpoint_type: "yolo"
  ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5

Anotação de vídeo com IA

yaml
annotation_schemes:
  - annotation_type: video_annotation
    name: scene_segmentation
    description: "Segment video into scenes"
    mode: segment
    labels:
      - name: "intro"
        color: "#4ECDC4"
      - name: "action"
        color: "#FF6B6B"
      - name: "outro"
        color: "#45B7D1"
 
    ai_support:
      enabled: true
      features:
        scene_detection: true     # Detect scene boundaries
        keyframe_detection: false
        tracking: false
        pre_annotate: true        # Auto-segment entire video
        hint: true
 
ai_support:
  enabled: true
  endpoint_type: "ollama_vision"
  ai_config:
    model: "llava:latest"
    max_frames: 10  # Frames to sample for video analysis

Endpoints visuais e de texto separados

Você pode configurar um endpoint separado para tarefas visuais, usando o melhor modelo para cada tipo de conteúdo:

yaml
ai_support:
  enabled: true
  endpoint_type: "openai"  # For text annotations
  ai_config:
    api_key: "${OPENAI_API_KEY}"
    model: "gpt-4o-mini"
 
  # Separate visual endpoint
  visual_endpoint_type: "yolo"
  visual_ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5

Ou usando um modelo de visão-linguagem junto com um modelo de texto:

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama"  # Main endpoint for text
  visual_endpoint_type: "ollama_vision"  # Visual endpoint for images
  ai_config:
    model: "llama3.2"
    include:
      all: true
  visual_ai_config:
    model: "qwen2.5-vl:7b"

Recursos de IA

Detecção

Encontra objetos que correspondem aos rótulos configurados e desenha caixas delimitadoras de sugestão. As sugestões aparecem como sobreposições tracejadas que podem ser aceitas ou rejeitadas.

Pré-anotação (Auto)

Detecta automaticamente todos os objetos na imagem/vídeo e cria sugestões para revisão humana. Útil para acelerar a anotação de grandes conjuntos de dados.

Classificação

Classifica uma região selecionada ou a imagem inteira. Retorna um rótulo sugerido com pontuação de confiança e raciocínio.

Dicas

Oferece orientação sem revelar as respostas exatas. Bom para treinar anotadores ou quando você quer o julgamento humano com assistência de IA.

Detecção de cenas (vídeo)

Analisa os quadros do vídeo para identificar limites de cena e sugere segmentos temporais com rótulos.

Detecção de quadros-chave (vídeo)

Identifica momentos significativos em um vídeo que serviriam como bons pontos de anotação.

Rastreamento de objetos (vídeo)

Sugere posições de objetos entre quadros para anotação de rastreamento consistente.

Usando sugestões de IA

  1. Clique no botão de assistência de IA (Detect, Auto, Hint, etc.)
  2. Aguarde as sugestões aparecerem como sobreposições tracejadas
  3. Aceitar uma sugestão: dê um clique duplo na sobreposição da sugestão
  4. Rejeitar uma sugestão: clique com o botão direito na sobreposição da sugestão
  5. Aceitar tudo: clique em "Accept All" na barra de ferramentas
  6. Limpar tudo: clique em "Clear" para remover todas as sugestões

Formato de resposta da API de detecção

json
{
  "detections": [
    {
      "label": "person",
      "bbox": {"x": 0.1, "y": 0.2, "width": 0.3, "height": 0.5},
      "confidence": 0.95
    }
  ]
}

Para dicas:

json
{
  "hint": "Look for objects in the lower right corner",
  "suggestive_choice": "Focus on overlapping regions"
}

Para segmentos de vídeo:

json
{
  "segments": [
    {
      "start_time": 0.0,
      "end_time": 5.5,
      "suggested_label": "intro",
      "confidence": 0.85
    }
  ]
}

Requisitos

Para o endpoint YOLO

bash
pip install ultralytics opencv-python

Para o Ollama Vision

  1. Instale o Ollama em ollama.ai
  2. Baixe um modelo de visão: ollama pull llava
  3. Inicie o servidor Ollama (roda em http://localhost:11434 por padrão)

Para o OpenAI/Anthropic Vision

  • Defina a chave de API no ambiente ou na configuração
  • Garanta que você tenha acesso a modelos com capacidade de visão

Solução de problemas

"No visual AI endpoint configured"

Garanta que você tenha:

  1. Definido ai_support.enabled: true
  2. Definido um endpoint_type válido que suporte visão (yolo, ollama_vision, openai_vision, anthropic_vision)
  3. Instalado as dependências necessárias para o endpoint escolhido

YOLO não detecta os objetos esperados

  • Tente reduzir o confidence_threshold
  • Garanta que seus rótulos correspondam aos nomes de classe do YOLO (ou use YOLO-World para vocabulários personalizados)
  • Verifique se o arquivo do modelo existe e é válido

Erros do Ollama Vision

  • Verifique se o Ollama está em execução: curl http://localhost:11434/api/tags
  • Garanta que você baixou um modelo de visão: ollama list
  • Verifique se o modelo suporta visão (llava, bakllava, llama3.2-vision, etc.)

Leitura adicional

Para detalhes de implementação, consulte a documentação de origem.