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
| Werkzeug | Beschreibung | Anwendungsfall |
|---|---|---|
bbox | Rechteckige Begrenzungsrahmen | Objekterkennung |
polygon | Mehrpunktige Polygone | Instanzsegmentierung |
freeform | Freihandzeichnung | Unregelmäßige Formen |
landmark | Punktmarkierungen | Keypoint-Erkennung |
fill | Pixelgenaues Füllwerkzeug | Segmentierungsmasken |
eraser | Gemalte Bereiche löschen | Korrektur von Segmentierungsmasken |
brush | Pinselwerkzeug | Feinkörnige Segmentierung |
Grundkonfiguration
annotation_schemes:
- name: "objects"Konfigurationsoptionen
| Feld | Typ | Standard | Beschreibung |
|---|---|---|---|
name | string | Erforderlich | Eindeutiger Bezeichner für die Annotation |
description | string | Erforderlich | Anweisungen für Annotatoren |
annotation_type | string | Erforderlich | Muss "image_annotation" sein |
tools | list | Erforderlich | Aktivierte Annotationswerkzeuge (bbox, polygon, freeform, landmark, fill, eraser, brush) |
labels | list | Erforderlich | Kategoriebeschriftungen für Annotationen |
zoom_enabled | boolean | true | Zoom-Steuerung aktivieren |
pan_enabled | boolean | true | Ziehnavigation aktivieren |
min_annotations | integer | 0 | Mindestanzahl erforderlicher Annotationen |
max_annotations | integer | null | Maximale Anzahl erlaubter Annotationen (null = unbegrenzt) |
freeform_brush_size | integer | 5 | Pinselgröße für Freihandzeichnung |
freeform_simplify | float | 2.0 | Pfadvereinfachungsfaktor |
Beschriftungskonfiguration
Beschriftungen können einfache Zeichenketten oder detaillierte Objekte sein:
# 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)
annotation_schemes:
- name: "detection"Instanzsegmentierung (Polygone)
annotation_schemes:
- name: "segmentation"Keypoint-Annotation (Landmarken)
annotation_schemes:
- name: "facial_landmarks"Mehrere Werkzeuge
annotation_schemes:
- name: "mixed_annotation"Tastaturkürzel
| Taste | Aktion |
|---|---|
b | Begrenzungsrahmen-Werkzeug aktivieren |
p | Polygon-Werkzeug aktivieren |
f | Freihand-Werkzeug aktivieren |
l | Landmarken-Werkzeug aktivieren |
1-9 | Beschriftung auswählen |
Delete | Ausgewählte Annotation entfernen |
Ctrl+Z | Rückgängig machen |
Ctrl+Y | Wiederholen |
+ / - | Hinein-/herauszoomen |
Datenformat
Eingabedaten
Die Datendatei sollte Bildpfade oder URLs enthalten:
[
{
"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:
item_properties:
id_key: id
text_key: image_urlDie 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:
{
"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.
annotation_schemes:
- name: "segmentation"| Taste | Aktion |
|---|---|
i | Füll-Werkzeug aktivieren |
e | Radiergummi-Werkzeug aktivieren |
r | Pinsel-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.
instance_display:
fields:
- key: pdf_url
type: pdf
annotation_schemes:
- name: "document_regions"Bewährte Vorgehensweisen
- Geeignete Werkzeuge verwenden - Begrenzungsrahmen für schnelle Erkennung, Polygone für präzise Grenzen, Füll-/Pinselwerkzeuge für Segmentierung
- Klare Beschriftungen definieren - Eindeutige, nicht überlappende Kategorien verwenden
- Annotationslimits setzen -
min_annotationsfür vollständige Erfassung nutzen - Zoom aktivieren - Unverzichtbar für detaillierte Annotationen bei hochauflösenden Bildern
- Tastaturkürzel verwenden - Beschleunigt die Annotation erheblich
- Beschriftungsfarben angeben - Erleichtert die visuelle Unterscheidung von Annotationen