Skip to content
Guides9 min read

Visuelle KI zur Beschleunigung von Bild- und Video-Annotation einsetzen

KI-gestützte Objekterkennung, Pre-Annotation und Klassifizierung für Bild- und Videoaufgaben mit YOLO, Ollama, OpenAI und Claude einrichten.

Potato Team·
यह पृष्ठ अभी आपकी भाषा में उपलब्ध नहीं है। अंग्रेज़ी संस्करण दिखाया जा रहा है।

Visuelle KI zur Beschleunigung von Bild- und Video-Annotation einsetzen

Potato 2.1 führt visuelle KI-Unterstützung ein, die KI-gestützte Hilfe direkt in Bild- und Video-Annotations-Workflows integriert. Anstatt jede Bounding Box von Grund auf zu annotieren, können Sie YOLO Objekte automatisch erkennen lassen und dann die Vorschläge überprüfen, oder ein Vision-Language-Modell bitten, Bilder zu klassifizieren und seine Überlegungen zu erläutern.

Dieser Leitfaden beschreibt die Einrichtung jedes visuellen KI-Endpunkts, die Konfiguration der verschiedenen Unterstützungsmodi und die Kombination visueller KI mit Potatos textbasierter KI.

Was Sie lernen werden

  • YOLO für schnelle lokale Objekterkennung einrichten
  • Ollama Vision-Modelle für lokales Bildverständnis betreiben
  • OpenAI- und Anthropic-Cloud-Vision-APIs verwenden
  • Erkennungs-, Pre-Annotation-, Klassifizierungs- und Hinweis-Modi konfigurieren
  • Visuelle und Text-KI-Endpunkte in einem einzelnen Projekt kombinieren
  • Den Accept/Reject-Workflow für die Überprüfung von KI-Vorschlägen

Voraussetzungen

Sie benötigen Potato 2.1.0 oder höher:

bash
pip install --upgrade potato-annotation

Und je nach gewähltem Endpunkt eines der folgenden:

  • YOLO: pip install ultralytics opencv-python
  • Ollama: Von ollama.ai installieren und ein Vision-Modell herunterladen
  • OpenAI: Ein API-Schlüssel mit Zugang zu GPT-4o
  • Anthropic: Ein API-Schlüssel mit Zugang zu Claude Vision-Modellen

Option 1: YOLO für Objekterkennung

YOLO ist die beste Wahl, wenn Sie eine schnelle, präzise Bounding-Box-Erkennung benötigen, die vollständig auf Ihrem lokalen Rechner läuft. Es eignet sich hervorragend für die Erkennung gängiger Objekte (Personen, Autos, Tiere, Möbel) und kann Bilder in Millisekunden verarbeiten.

Einrichtung

bash
pip install ultralytics opencv-python

Konfiguration

yaml
annotation_task_name: "Object Detection with YOLO"
 
data_files:
  - data/images.json
 
item_properties:
  id_key: id
  text_key: image_url
 
instance_display:
  fields:
    - key: image_url
      type: image
      display_options:
        max_width: 800
        zoomable: true
 
annotation_schemes:
  - annotation_type: image_annotation
    name: objects
    description: "Detect and label objects"
    source_field: "image_url"
    tools:
      - bbox
    labels:
      - name: "person"
        color: "#FF6B6B"
      - name: "car"
        color: "#4ECDC4"
      - name: "dog"
        color: "#45B7D1"
      - name: "cat"
        color: "#96CEB4"
 
    ai_support:
      enabled: true
      features:
        detection: true
        pre_annotate: true
        hint: true
 
ai_support:
  enabled: true
  endpoint_type: "yolo"
  ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5
    iou_threshold: 0.45
 
output_annotation_dir: "annotation_output/"
user_config:
  allow_all_users: true

Datenformat

Erstellen Sie data/images.json im JSONL-Format (ein JSON-Objekt pro Zeile):

json
{"id": "img_001", "image_url": "images/street_scene_1.jpg"}
{"id": "img_002", "image_url": "images/park_photo.jpg"}
{"id": "img_003", "image_url": "https://example.com/images/office.jpg"}

Ein YOLO-Modell auswählen

ModellGrößeGeschwindigkeitGenauigkeitAm besten geeignet für
yolov8n.pt6 MBSchnellsteGeringerSchnelles Prototyping
yolov8s.pt22 MBSchnellGutAusgewogene Workloads
yolov8m.pt50 MBMittelBesserAllgemeiner Einsatz
yolov8l.pt84 MBLangsamerHochWenn Genauigkeit wichtig ist
yolov8x.pt131 MBLangsamsteHöchsteMaximale Präzision

Für die Erkennung von Objekten, die nicht in YOLOs integrierten Klassen enthalten sind, verwenden Sie YOLO-World für Open-Vocabulary-Erkennung:

yaml
ai_config:
  model: "yolo-world"
  confidence_threshold: 0.3

Erkennung anpassen

Wenn YOLO Objekte übersieht, senken Sie den Konfidenz-Schwellenwert:

yaml
ai_config:
  confidence_threshold: 0.3  # More detections, more false positives

Wenn Sie zu viele falsch-positive Ergebnisse erhalten, erhöhen Sie ihn:

yaml
ai_config:
  confidence_threshold: 0.7  # Fewer detections, higher precision

Option 2: Ollama Vision für lokale VLLMs

Ollama Vision gibt Ihnen die Leistung von Vision-Language-Modellen, die lokal laufen. Im Gegensatz zu YOLO können diese Modelle Bildkontext verstehen, Szenen klassifizieren und textuelle Erklärungen generieren -- alles ohne Daten an eine Cloud-API zu senden.

Einrichtung

bash
# Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh
 
# Pull a vision model
ollama pull llava
 
# Or for better performance:
ollama pull qwen2.5-vl:7b

Konfiguration

yaml
annotation_task_name: "Image Classification with Ollama Vision"
 
data_files:
  - data/images.json
 
item_properties:
  id_key: id
  text_key: image_url
 
instance_display:
  fields:
    - key: image_url
      type: image
      display_options:
        max_width: 600
        zoomable: true
 
annotation_schemes:
  - annotation_type: radio
    name: scene_type
    description: "What type of scene is shown?"
    labels:
      - indoor
      - outdoor_urban
      - outdoor_nature
      - aerial
      - underwater
 
    ai_support:
      enabled: true
      features:
        hint: true
        classification: true
 
ai_support:
  enabled: true
  endpoint_type: "ollama_vision"
  ai_config:
    model: "llava:latest"
    base_url: "http://localhost:11434"
    max_tokens: 500
    temperature: 0.1
 
output_annotation_dir: "annotation_output/"
user_config:
  allow_all_users: true

Unterstützte Modelle

ModellParameterStärken
llava:7b7BSchnell, gutes allgemeines Verständnis
llava:13b13BBessere Genauigkeit
llava-llama38BStarke Schlussfolgerung
bakllava7BGute visuelle Details
llama3.2-vision:11b11BNeuestes Llama Vision
qwen2.5-vl:7b7BStarke Mehrsprachigkeit + Vision
moondream1.8BSehr schnell, leichtgewichtig

Option 3: OpenAI Vision

OpenAI Vision bietet hochqualitatives Bildverständnis durch GPT-4o. Am besten geeignet, wenn Sie das leistungsfähigste Vision-Modell benötigen und Cloud-API-Kosten akzeptieren.

Konfiguration

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

API-Schlüssel setzen:

bash
export OPENAI_API_KEY="sk-..."

Der Parameter detail steuert die an die API gesendete Bildauflösung:

  • low -- Schneller und günstiger, gut für Klassifizierung
  • high -- Volle Auflösung, besser für kleine Objekte
  • auto -- API entscheiden lassen

Option 4: Anthropic Vision

Claudes Vision-Fähigkeiten sind stark beim Verstehen von Bildkontext und beim Liefern detaillierter Erklärungen.

Konfiguration

yaml
ai_support:
  enabled: true
  endpoint_type: "anthropic_vision"
  ai_config:
    api_key: "${ANTHROPIC_API_KEY}"
    model: "claude-sonnet-4-20250514"
    max_tokens: 1024
bash
export ANTHROPIC_API_KEY="sk-ant-..."

KI-Unterstützungsmodi

Jeder visuelle KI-Endpunkt unterstützt verschiedene Unterstützungsmodi. Aktivieren Sie nur die, die Sie pro Annotationsschema benötigen.

Erkennungsmodus

Findet Objekte, die Ihren konfigurierten Labels entsprechen, und zeigt sie als gestrichelte Bounding-Box-Overlays:

yaml
ai_support:
  enabled: true
  features:
    detection: true

Der Annotator klickt auf „Erkennen", und KI-Vorschläge erscheinen als gestrichelte Overlays auf dem Bild. Doppelklick zum Akzeptieren, Rechtsklick zum Ablehnen.

Pre-Annotation-(Auto-)Modus

Erkennt automatisch alle Objekte und erstellt Vorschläge in einem Durchgang. Am besten zum Bootstrapping großer Datensätze:

yaml
ai_support:
  enabled: true
  features:
    pre_annotate: true

Klassifizierungsmodus

Klassifiziert einen ausgewählten Bereich oder das gesamte Bild und gibt ein vorgeschlagenes Label mit einem Konfidenzwert zurück:

yaml
ai_support:
  enabled: true
  features:
    classification: true

Hinweis-Modus

Bietet Anleitungstext, ohne die Antwort zu verraten. Gut für das Training neuer Annotatoren:

yaml
ai_support:
  enabled: true
  features:
    hint: true

Der Accept/Reject-Workflow

Wenn ein Annotator auf eine KI-Unterstützungsschaltfläche klickt, erscheinen Vorschläge als gestrichelte Overlays:

  1. Vorschlag akzeptieren -- Doppelklick auf das gestrichelte Overlay, um es in eine echte Annotation umzuwandeln
  2. Vorschlag ablehnen -- Rechtsklick auf das Overlay, um es zu verwerfen
  3. Alle akzeptieren -- Auf „Accept All" in der Symbolleiste klicken, um alle Vorschläge auf einmal zu akzeptieren
  4. Alle löschen -- Auf „Clear" klicken, um alle Vorschläge zu verwerfen

Dies hält Annotatoren in der Kontrolle und reduziert gleichzeitig die manuelle Arbeit des Zeichnens von Boxen von Grund auf.

Video-Annotation mit visueller KI

Visuelle KI funktioniert auch mit Video-Annotations-Aufgaben. Sie können Szenerkennung, Keyframe-Erkennung und Objektverfolgung aktivieren:

yaml
annotation_schemes:
  - annotation_type: video_annotation
    name: scenes
    description: "Segment this video into scenes"
    mode: segment
    labels:
      - name: "intro"
        color: "#4ECDC4"
      - name: "main_content"
        color: "#FF6B6B"
      - name: "outro"
        color: "#45B7D1"
 
    ai_support:
      enabled: true
      features:
        scene_detection: true
        pre_annotate: true
        hint: true
 
ai_support:
  enabled: true
  endpoint_type: "ollama_vision"
  ai_config:
    model: "llava:latest"
    max_frames: 10  # Number of frames to sample

Der Parameter max_frames steuert, wie viele Frames die KI aus dem Video für die Analyse entnimmt. Mehr Frames bedeuten bessere Genauigkeit, aber langsamere Verarbeitung.

Visuelle und Text-KI-Endpunkte kombinieren

Wenn Ihr Projekt sowohl Text- als auch Bild-Annotation enthält, können Sie separate Endpunkte für jedes konfigurieren. Verwenden Sie ein textoptimiertes Modell für Hinweise und Schlüsselwörter sowie ein Vision-Modell für die Erkennung:

yaml
ai_support:
  enabled: true
 
  # Text AI for radio buttons, text schemes, etc.
  endpoint_type: "ollama"
  ai_config:
    model: "llama3.2"
    include:
      all: true
 
  # Visual AI for image/video schemes
  visual_endpoint_type: "yolo"
  visual_ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5

Oder ein Cloud-Vision-Modell zusammen mit einem lokalen Text-Modell verwenden:

yaml
ai_support:
  enabled: true
  endpoint_type: "ollama"
  visual_endpoint_type: "openai_vision"
  ai_config:
    model: "llama3.2"
  visual_ai_config:
    api_key: "${OPENAI_API_KEY}"
    model: "gpt-4o"

Vollständiges Beispiel: Produktfoto-Annotation

Hier ist eine produktionsreife Konfiguration für die Annotation von Produktfotos mit YOLO-Erkennung und textbasierter KI-Hilfe:

yaml
annotation_task_name: "Product Photo Annotation"
 
data_files:
  - data/product_photos.json
 
item_properties:
  id_key: sku
  text_key: photo_url
 
instance_display:
  layout:
    direction: horizontal
    gap: 24px
  fields:
    - key: photo_url
      type: image
      label: "Product Photo"
      display_options:
        max_width: 600
        zoomable: true
    - key: product_description
      type: text
      label: "Product Details"
 
annotation_schemes:
  - annotation_type: image_annotation
    name: product_regions
    description: "Draw boxes around products and defects"
    source_field: "photo_url"
    tools:
      - bbox
    labels:
      - name: "product"
        color: "#4ECDC4"
      - name: "defect"
        color: "#FF6B6B"
      - name: "label"
        color: "#45B7D1"
      - name: "packaging"
        color: "#96CEB4"
 
    ai_support:
      enabled: true
      features:
        detection: true
        pre_annotate: true
 
  - annotation_type: radio
    name: photo_quality
    description: "Is this photo suitable for the product listing?"
    labels:
      - Approved
      - Needs editing
      - Reshoot required
 
  - annotation_type: multiselect
    name: quality_issues
    description: "Select any issues present"
    labels:
      - Blurry
      - Poor lighting
      - Wrong angle
      - Background clutter
      - Color inaccurate
 
ai_support:
  enabled: true
  endpoint_type: "ollama"
  visual_endpoint_type: "yolo"
 
  ai_config:
    model: "llama3.2"
    include:
      all: true
 
  visual_ai_config:
    model: "yolov8m.pt"
    confidence_threshold: 0.5
 
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
user_config:
  allow_all_users: true

Beispieldaten (data/product_photos.json):

json
{"sku": "SKU-001", "photo_url": "images/products/laptop_front.jpg", "product_description": "15-inch laptop, silver finish"}
{"sku": "SKU-002", "photo_url": "images/products/headphones_side.jpg", "product_description": "Over-ear wireless headphones, black"}
{"sku": "SKU-003", "photo_url": "images/products/backpack_full.jpg", "product_description": "40L hiking backpack, navy blue"}

Tipps für visuelle KI-Annotation

  1. Bei großen Datensätzen mit Pre-Annotation beginnen -- Verwenden Sie die Auto-Schaltfläche, um Vorschläge für alle Objekte zu generieren, und lassen Sie dann Annotatoren diese überprüfen und korrigieren, anstatt von Grund auf zu zeichnen
  2. Den Endpunkt der Aufgabe anpassen -- YOLO für präzise Erkennung, VLLMs für Klassifizierung und Verständnis
  3. Konfidenz-Schwellenwerte anpassen -- Bei 0,5 beginnen und basierend auf dem falsch-positiv/falsch-negativ-Verhältnis anpassen
  4. Hinweise für Annotator-Training nutzen -- Der Hinweis-Modus leitet Annotatoren, ohne sie auf eine bestimmte Antwort festzulegen
  5. Endpunkte kombinieren -- Ein visueller YOLO-Endpunkt für Erkennung plus ein Ollama-Text-Endpunkt für Hinweise bietet das Beste aus beiden Welten
  6. KI-Ergebnisse cachen -- Disk-Caching aktivieren, um die Erkennung auf denselben Bildern nicht mehrfach durchzuführen

Fehlerbehebung

„No visual AI endpoint configured"

Stellen Sie sicher, dass ai_support.enabled auf true gesetzt ist und Sie einen endpoint_type angegeben haben, der Vision unterstützt: yolo, ollama_vision, openai_vision oder anthropic_vision.

YOLO erkennt Ihre Objekte nicht

YOLOs integrierte Klassen decken 80 gängige Objekte ab. Wenn Ihre Labels nicht mit YOLOs Klassennamen übereinstimmen, versuchen Sie YOLO-World für Open-Vocabulary-Erkennung oder senken Sie den confidence_threshold.

Ollama gibt Fehler zurück

Überprüfen Sie, ob Ollama läuft und Sie ein Vision-Modell heruntergeladen haben:

bash
curl http://localhost:11434/api/tags  # Check Ollama is running
ollama list                           # Check installed models

Langsame Antwort von Cloud-APIs

Aktivieren Sie Caching, damit dasselbe Bild nicht zweimal analysiert wird:

yaml
ai_support:
  cache_config:
    disk_cache:
      enabled: true
      path: "ai_cache/visual_cache.json"

Nächste Schritte


Vollständige Dokumentation unter /docs/features/visual-ai-support.