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.
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:
pip install --upgrade potato-annotationUnd 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
pip install ultralytics opencv-pythonKonfiguration
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: trueDatenformat
Erstellen Sie data/images.json im JSONL-Format (ein JSON-Objekt pro Zeile):
{"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
| Modell | Größe | Geschwindigkeit | Genauigkeit | Am besten geeignet für |
|---|---|---|---|---|
yolov8n.pt | 6 MB | Schnellste | Geringer | Schnelles Prototyping |
yolov8s.pt | 22 MB | Schnell | Gut | Ausgewogene Workloads |
yolov8m.pt | 50 MB | Mittel | Besser | Allgemeiner Einsatz |
yolov8l.pt | 84 MB | Langsamer | Hoch | Wenn Genauigkeit wichtig ist |
yolov8x.pt | 131 MB | Langsamste | Höchste | Maximale 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:
ai_config:
model: "yolo-world"
confidence_threshold: 0.3Erkennung anpassen
Wenn YOLO Objekte übersieht, senken Sie den Konfidenz-Schwellenwert:
ai_config:
confidence_threshold: 0.3 # More detections, more false positivesWenn Sie zu viele falsch-positive Ergebnisse erhalten, erhöhen Sie ihn:
ai_config:
confidence_threshold: 0.7 # Fewer detections, higher precisionOption 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
# 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:7bKonfiguration
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: trueUnterstützte Modelle
| Modell | Parameter | Stärken |
|---|---|---|
llava:7b | 7B | Schnell, gutes allgemeines Verständnis |
llava:13b | 13B | Bessere Genauigkeit |
llava-llama3 | 8B | Starke Schlussfolgerung |
bakllava | 7B | Gute visuelle Details |
llama3.2-vision:11b | 11B | Neuestes Llama Vision |
qwen2.5-vl:7b | 7B | Starke Mehrsprachigkeit + Vision |
moondream | 1.8B | Sehr 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
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 detailAPI-Schlüssel setzen:
export OPENAI_API_KEY="sk-..."Der Parameter detail steuert die an die API gesendete Bildauflösung:
low-- Schneller und günstiger, gut für Klassifizierunghigh-- Volle Auflösung, besser für kleine Objekteauto-- API entscheiden lassen
Option 4: Anthropic Vision
Claudes Vision-Fähigkeiten sind stark beim Verstehen von Bildkontext und beim Liefern detaillierter Erklärungen.
Konfiguration
ai_support:
enabled: true
endpoint_type: "anthropic_vision"
ai_config:
api_key: "${ANTHROPIC_API_KEY}"
model: "claude-sonnet-4-20250514"
max_tokens: 1024export 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:
ai_support:
enabled: true
features:
detection: trueDer 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:
ai_support:
enabled: true
features:
pre_annotate: trueKlassifizierungsmodus
Klassifiziert einen ausgewählten Bereich oder das gesamte Bild und gibt ein vorgeschlagenes Label mit einem Konfidenzwert zurück:
ai_support:
enabled: true
features:
classification: trueHinweis-Modus
Bietet Anleitungstext, ohne die Antwort zu verraten. Gut für das Training neuer Annotatoren:
ai_support:
enabled: true
features:
hint: trueDer Accept/Reject-Workflow
Wenn ein Annotator auf eine KI-Unterstützungsschaltfläche klickt, erscheinen Vorschläge als gestrichelte Overlays:
- Vorschlag akzeptieren -- Doppelklick auf das gestrichelte Overlay, um es in eine echte Annotation umzuwandeln
- Vorschlag ablehnen -- Rechtsklick auf das Overlay, um es zu verwerfen
- Alle akzeptieren -- Auf „Accept All" in der Symbolleiste klicken, um alle Vorschläge auf einmal zu akzeptieren
- 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:
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 sampleDer 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:
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.5Oder ein Cloud-Vision-Modell zusammen mit einem lokalen Text-Modell verwenden:
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:
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: trueBeispieldaten (data/product_photos.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
- 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
- Den Endpunkt der Aufgabe anpassen -- YOLO für präzise Erkennung, VLLMs für Klassifizierung und Verständnis
- Konfidenz-Schwellenwerte anpassen -- Bei 0,5 beginnen und basierend auf dem falsch-positiv/falsch-negativ-Verhältnis anpassen
- Hinweise für Annotator-Training nutzen -- Der Hinweis-Modus leitet Annotatoren, ohne sie auf eine bestimmte Antwort festzulegen
- Endpunkte kombinieren -- Ein visueller YOLO-Endpunkt für Erkennung plus ein Ollama-Text-Endpunkt für Hinweise bietet das Beste aus beiden Welten
- 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:
curl http://localhost:11434/api/tags # Check Ollama is running
ollama list # Check installed modelsLangsame Antwort von Cloud-APIs
Aktivieren Sie Caching, damit dasselbe Bild nicht zweimal analysiert wird:
ai_support:
cache_config:
disk_cache:
enabled: true
path: "ai_cache/visual_cache.json"Nächste Schritte
- Vollständige Visuelle KI-Unterstützung – Dokumentation für API-Referenzdetails lesen
- Instanzanzeige einrichten, um Bilder neben anderen Inhaltstypen anzuzeigen
- Textbasierte KI-Unterstützung für Hinweise und Schlüsselwort-Hervorhebung erkunden
Vollständige Dokumentation unter /docs/features/visual-ai-support.