Skip to content

Bildannotation

Bilder mit Begrenzungsrahmen, Polygonen, Freihandzeichnungen und Landmarkpunkten annotieren.

Potatos Bildannotationssystem unterstützt mehrere Annotationsmethoden für Computer-Vision-Aufgaben, einschließlich Objekterkennung, Segmentierung und Keypoint-Annotation.

Unterstützte Werkzeuge

WerkzeugBeschreibungAnwendungsfall
bboxRechteckige BegrenzungsrahmenObjekterkennung
polygonMehrpunktige PolygoneInstanzsegmentierung
freeformFreihandzeichnungUnregelmäßige Formen
landmarkPunktmarkierungenKeypoint-Erkennung
fillPixelgenaues FüllwerkzeugSegmentierungsmasken
eraserGemalte Bereiche löschenKorrektur von Segmentierungsmasken
brushPinselwerkzeugFeinkörnige Segmentierung

Grundkonfiguration

yaml
annotation_schemes:
  - name: "objects"

Konfigurationsoptionen

FeldTypStandardBeschreibung
namestringErforderlichEindeutiger Bezeichner für die Annotation
descriptionstringErforderlichAnweisungen für Annotatoren
annotation_typestringErforderlichMuss "image_annotation" sein
toolslistErforderlichAktivierte Annotationswerkzeuge (bbox, polygon, freeform, landmark, fill, eraser, brush)
labelslistErforderlichKategoriebeschriftungen für Annotationen
zoom_enabledbooleantrueZoom-Steuerung aktivieren
pan_enabledbooleantrueZiehnavigation aktivieren
min_annotationsinteger0Mindestanzahl erforderlicher Annotationen
max_annotationsintegernullMaximale Anzahl erlaubter Annotationen (null = unbegrenzt)
freeform_brush_sizeinteger5Pinselgröße für Freihandzeichnung
freeform_simplifyfloat2.0Pfadvereinfachungsfaktor

Beschriftungskonfiguration

Beschriftungen können einfache Zeichenketten oder detaillierte Objekte sein:

yaml
# Simple labels (auto-colored)
labels:
  - person
  - car
  - tree
 
# Detailed labels with custom colors and shortcuts
labels:
  - name: "person"
    color: "#FF6B6B"
    key_value: "1"
  - name: "car"
    color: "#4ECDC4"
    key_value: "2"
  - name: "bicycle"
    color: "#45B7D1"
    key_value: "3"

Beispiele

Objekterkennung (Begrenzungsrahmen)

yaml
annotation_schemes:
  - name: "detection"

Instanzsegmentierung (Polygone)

yaml
annotation_schemes:
  - name: "segmentation"

Keypoint-Annotation (Landmarken)

yaml
annotation_schemes:
  - name: "facial_landmarks"

Mehrere Werkzeuge

yaml
annotation_schemes:
  - name: "mixed_annotation"

Tastaturkürzel

TasteAktion
bBegrenzungsrahmen-Werkzeug aktivieren
pPolygon-Werkzeug aktivieren
fFreihand-Werkzeug aktivieren
lLandmarken-Werkzeug aktivieren
1-9Beschriftung auswählen
DeleteAusgewählte Annotation entfernen
Ctrl+ZRückgängig machen
Ctrl+YWiederholen
+ / -Hinein-/herauszoomen

Datenformat

Eingabedaten

Die Datendatei sollte Bildpfade oder URLs enthalten:

json
[
  {
    "id": "img_001",
    "image_url": "https://example.com/images/photo1.jpg"
  },
  {
    "id": "img_002",
    "image_url": "/data/images/photo2.png"
  }
]

Das Bildfeld in der Konfiguration festlegen:

yaml
item_properties:
  id_key: id
  text_key: image_url

Die Zeichenfläche fordert jedes Bild mit CORS an, damit sie die Pixel des Bildes lesen kann. Viele öffentliche Hosts, darunter cocodataset.org, senden keinen Access-Control-Allow-Origin-Header und lehnen diese Anfrage ab. Ab Potato 2.11 lädt die Zeichenfläche das Bild dann erneut ohne CORS. Auf einem so geladenen Bild funktionieren Begrenzungsrahmen, Polygone, Ellipsen, Punkte, Freihandstriche und der Pinsel. Die Werkzeuge, die die Pixel des Bildes lesen, laufen darauf nicht: Das Füllwerkzeug meldet, dass es das Bild nicht lesen kann, und füllt nichts, und SAM sowie die Segmentierung per Textprompt melden, dass der Host keine CORS-Header sendet. Um diese Werkzeuge zu nutzen, kopieren Sie die Bilder in das media_directory der Aufgabe und verweisen Sie auf sie als /media/<file>.

Ausgabeformat

Annotationen enthalten Geometriedaten für jede Annotation:

json
{
  "id": "img_001",
  "annotations": {
    "objects": [
      {
        "id": "ann_1",
        "type": "bbox",
        "label": "car",
        "geometry": {
          "x": 100,
          "y": 150,
          "width": 200,
          "height": 100
        }
      },
      {
        "id": "ann_2",
        "type": "polygon",
        "label": "building",
        "geometry": {
          "points": [
            [50, 50],
            [150, 50],
            [150, 200],
            [50, 200]
          ]
        }
      }
    ]
  }
}

Unterstützte Bildformate

  • JPEG / JPG
  • PNG
  • GIF
  • WebP

Segmentierungsmasken

Neu in v2.2.0

Die Werkzeuge fill, eraser und brush ermöglichen pixelgenaue Segmentierungsmasken-Annotation. Diese Werkzeuge sind ideal für semantische Segmentierungsaufgaben, bei denen präzise Regionsgrenzen benötigt werden.

yaml
annotation_schemes:
  - name: "segmentation"
TasteAktion
iFüll-Werkzeug aktivieren
eRadiergummi-Werkzeug aktivieren
rPinsel-Werkzeug aktivieren

PDF/Dokument-Begrenzungsrahmen

Neu in v2.2.0

Begrenzungsrahmen auf PDF-Seiten und Dokumentbildern zeichnen. In Kombination mit dem pdf-Anzeigetyp in instance_display können Annotatoren Rahmen auf einzelnen Seiten von PDF-Dokumenten zeichnen.

yaml
instance_display:
  fields:
    - key: pdf_url
      type: pdf
 
annotation_schemes:
  - name: "document_regions"

Bewährte Vorgehensweisen

  1. Geeignete Werkzeuge verwenden - Begrenzungsrahmen für schnelle Erkennung, Polygone für präzise Grenzen, Füll-/Pinselwerkzeuge für Segmentierung
  2. Klare Beschriftungen definieren - Eindeutige, nicht überlappende Kategorien verwenden
  3. Annotationslimits setzen - min_annotations für vollständige Erfassung nutzen
  4. Zoom aktivieren - Unverzichtbar für detaillierte Annotationen bei hochauflösenden Bildern
  5. Tastaturkürzel verwenden - Beschleunigt die Annotation erheblich
  6. Beschriftungsfarben angeben - Erleichtert die visuelle Unterscheidung von Annotationen