Skip to content

Support IA pour le visuel

Utilisez des LLM de vision — GPT-4 Vision, Claude Vision, Gemini et YOLO — pour pré-annoter des images, proposer des boîtes englobantes et assister les tâches visuelles dans Potato.

Nouveau dans la v2.1.0

Potato assiste les tâches d'annotation d'images et de vidéos à l'aide de différents modèles de vision : YOLO pour la détection d'objets et des modèles vision-langage (VLLM) comme GPT-4o, Claude ou les modèles de vision d'Ollama.

Vue d'ensemble

Le support IA pour le visuel permet :

  • Détection d'objets : détecter et localiser automatiquement les objets d'une image avec YOLO ou un VLLM
  • Pré-annotation : détecter automatiquement tous les objets, pour relecture humaine
  • Classification : classer une image ou des régions à l'intérieur d'une image
  • Indices : obtenir des repères sans révéler les emplacements exacts
  • Détection de scènes : identifier les segments temporels d'une vidéo
  • Détection d'images clés : repérer les moments marquants d'une vidéo
  • Suivi d'objets : suivre les objets d'une image à l'autre dans une vidéo

Points de terminaison pris en charge

Point de terminaison YOLO

Le meilleur choix pour une détection d'objets rapide et précise en inférence locale.

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

Modèles pris en charge :

  • YOLOv8 (variantes n/s/m/l/x)
  • YOLO-World (détection à vocabulaire ouvert)
  • Modèles entraînés sur mesure

Point de terminaison Ollama Vision

Pour l'inférence locale de modèles vision-langage.

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

Modèles pris en charge :

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

Point de terminaison OpenAI Vision

Pour l'analyse visuelle dans le cloud avec 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

Point de terminaison Anthropic Vision

Pour Claude et ses capacités de vision.

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

Capacités des points de terminaison

Chaque point de terminaison a ses points forts :

Point de terminaisonGénération de texteVisionSortie bboxMots-clésJustification
ollama_visionOuiOuiNonNonOui
openai_visionOuiOuiNonNonOui
anthropic_visionOuiOuiNonNonOui
yoloNonOuiOuiNonNon

Bonnes pratiques :

  • Pour une détection d'objets précise, utilisez le point de terminaison yolo
  • Pour une classification d'images avec explications, utilisez un VLLM comme ollama_vision avec Qwen-VL ou LLaVA
  • Pour des flux de travail mixtes, configurez à la fois un point de terminaison texte et un point de terminaison visuel

Annotation d'images assistée par IA

Configurez l'annotation d'images assistée par IA avec la détection, la pré-annotation, la classification et les indices :

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:

Annotation vidéo assistée par 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:

Séparer les points de terminaison visuel et texte

Vous pouvez configurer un point de terminaison distinct pour les tâches visuelles, et ainsi utiliser le modèle le mieux adapté à chaque type de contenu :

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 en associant un modèle vision-langage à un modèle de texte :

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"

Fonctionnalités IA

Détection

Trouve les objets correspondant aux étiquettes configurées et trace des boîtes englobantes proposées. Les suggestions apparaissent en surimpression pointillée et peuvent être acceptées ou rejetées.

Pré-annotation (Auto)

Détecte automatiquement tous les objets de l'image ou de la vidéo et crée des suggestions à relire. Utile pour accélérer l'annotation de gros jeux de données.

Classification

Classe une région sélectionnée ou l'image entière. Renvoie une étiquette proposée, avec un score de confiance et un raisonnement.

Indices

Fournit des repères sans révéler la réponse exacte. Pratique pour former les annotateurs, ou quand vous voulez conserver le jugement humain tout en apportant une assistance IA.

Détection de scènes (vidéo)

Analyse les images de la vidéo pour repérer les frontières entre scènes et propose des segments temporels étiquetés.

Détection d'images clés (vidéo)

Repère dans une vidéo les moments marquants qui feraient de bons points d'annotation.

Suivi d'objets (vidéo)

Propose la position des objets d'une image à l'autre, pour une annotation de suivi cohérente.

Utiliser les suggestions de l'IA

  1. Cliquez sur le bouton d'assistance IA (Detect, Auto, Hint, etc.)
  2. Attendez que les suggestions apparaissent en surimpression pointillée
  3. Accepter une suggestion : double-cliquez sur la surimpression
  4. Rejeter une suggestion : faites un clic droit sur la surimpression
  5. Tout accepter : cliquez sur « Accept All » dans la barre d'outils
  6. Tout effacer : cliquez sur « Clear » pour supprimer toutes les suggestions

Format de réponse de l'API de détection

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

Pour les indices :

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

Pour les segments vidéo :

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

Prérequis

Pour le point de terminaison YOLO

bash
pip install ultralytics opencv-python

Pour Ollama Vision

  1. Installez Ollama depuis ollama.ai
  2. Récupérez un modèle de vision : ollama pull llava
  3. Démarrez le serveur Ollama (il écoute sur http://localhost:11434 par défaut)

Pour OpenAI/Anthropic Vision

  • Renseignez la clé d'API dans l'environnement ou la configuration
  • Vérifiez que vous avez accès à des modèles capables de vision

Dépannage

« Aucun point de terminaison IA visuel configuré »

Vérifiez que vous avez :

  1. Défini ai_support.enabled: true
  2. Défini un endpoint_type valide qui prend en charge la vision (yolo, ollama_vision, openai_vision, anthropic_vision)
  3. Installé les dépendances requises par le point de terminaison choisi

YOLO ne détecte pas les objets attendus

  • Essayez d'abaisser confidence_threshold
  • Vérifiez que vos étiquettes correspondent aux noms de classes de YOLO (ou utilisez YOLO-World pour un vocabulaire personnalisé)
  • Vérifiez que le fichier du modèle existe et est valide

Erreurs avec Ollama Vision

  • Vérifiez qu'Ollama tourne : curl http://localhost:11434/api/tags
  • Vérifiez que vous avez bien récupéré un modèle de vision : ollama list
  • Vérifiez que le modèle prend en charge la vision (llava, bakllava, llama3.2-vision, etc.)

Pour aller plus loin

Pour les détails d'implémentation, consultez la documentation source.