Skip to content
Tutorials4 min read

Polygon-Annotation für Segmentierungsaufgaben

So konfigurierst du die Polygon-Werkzeuge in Potato für die Bildsegmentierung, mit Hinweisen zu komplexen Formen, überlappenden Regionen, mehreren Klassen und Export nach COCO.

Potato Team

Mit Polygonen zeichnest du Objektgrenzen Pixel für Pixel nach, und genau das brauchen semantische und Instanzsegmentierung. Dieser Leitfaden geht die Konfiguration durch, dann die Zeichentechnik und schließlich die Fälle, in denen die Formen unübersichtlich werden.

Polygone oder Bounding Boxes

Polygone, wennBounding Boxes, wenn
Genaue Grenzen nötig sindGrobe Lokalisierung reicht
Objekte unregelmäßig geformt sindObjekte ungefähr rechteckig sind
Segmentierungsmodelle trainiert werdenDetektionsmodelle trainiert werden
Objekte sich überlappenObjekte sich nicht überlappen
Höhere Genauigkeit gefragt istTempo im Vordergrund steht

Grundeinrichtung für Polygone

yaml
annotation_task_name: "Image Segmentation"
 
data_files:
  - "data/images.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: segments
    description: "Draw polygons around each object"
    labels:
      - name: road
        color: "#808080"
      - name: sidewalk
        color: "#F5F5DC"
      - name: building
        color: "#8B4513"
      - name: vegetation
        color: "#228B22"
      - name: sky
        color: "#87CEEB"
      - name: vehicle
        color: "#FF6B6B"
      - name: person
        color: "#4ECDC4"

Polygone zeichnen

Der grundlegende Ablauf

  1. Ein Label in der Werkzeugleiste auswählen
  2. Per Klick Stützpunkte rund um das Objekt setzen
  3. Mit Doppelklick oder Enter das Polygon schließen
  4. Stützpunkte durch Ziehen nachjustieren
  5. Auf eine Kante klicken, um einen Punkt zu ergänzen

Tastenkürzel

Potato bringt Tastenkürzel für die Polygonbearbeitung mit:

  • Enter: das aktuelle Polygon schließen
  • Escape: Zeichnen abbrechen oder Auswahl aufheben
  • Entf: ausgewählten Stützpunkt oder ausgewähltes Polygon löschen
  • +/-: hinein- und herauszoomen
  • Leertaste + Ziehen: das Bild verschieben

Wenn es kompliziert wird

Überlappende Objekte

Überlappen sich Objekte, zeichnen Annotierende einfach mehrere Polygone übereinander. Potato speichert jedes einzeln, sodass du Annotationen auf Instanzebene bekommst, auch wo Objekte sich gegenseitig verdecken.

Schwierige Grenzen

Bei Objekten mit sperrigen, geschwungenen Rändern:

  1. Setz auf gekrümmten Kanten mehr Stützpunkte, damit die Form genau wird
  2. Zoom hinein, bevor du die kniffligen Stellen nachzeichnest
  3. Arbeite dich der Reihe nach am Umriss entlang, statt hin und her zu springen
  4. Wechsel danach in den Bearbeitungsmodus und rück die Stützpunkte zurecht

Einrichtung für semantische Segmentierung

Für die Segmentierung des gesamten Bildes:

yaml
annotation_task_name: "Semantic Segmentation"
 
data_files:
  - "data/images.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: semantic_segments
    description: "Segment the entire image"
    labels:
      - name: background
        color: "#000000"
      - name: road
        color: "#808080"
      - name: sidewalk
        color: "#F5F5DC"
      - name: building
        color: "#8B4513"
      - name: vegetation
        color: "#228B22"
      - name: sky
        color: "#87CEEB"
      - name: person
        color: "#4ECDC4"
      - name: vehicle
        color: "#FF6B6B"

Einrichtung für Instanzsegmentierung

Für einzelne Objektinstanzen:

yaml
annotation_task_name: "Instance Segmentation"
 
data_files:
  - "data/images.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: instances
    description: "Draw polygons around each object instance"
    labels:
      - name: person
        color: "#4ECDC4"
      - name: car
        color: "#FF6B6B"
      - name: dog
        color: "#FFEAA7"

Jedes Polygon wird als eigene Annotation gespeichert, sodass du einzelne Instanzen innerhalb einer Objektklasse auseinanderhalten kannst.

Vollständiges Konfigurationsbeispiel

yaml
annotation_task_name: "Cityscapes-style Segmentation"
 
data_files:
  - "data/urban_scenes.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: segments
    description: "Segment all objects following Cityscapes protocol"
    labels:
      # Flat
      - name: road
        color: "#804080"
      - name: sidewalk
        color: "#F423E8"
      # Construction
      - name: building
        color: "#464646"
      - name: wall
        color: "#666666"
      - name: fence
        color: "#BE9999"
      # Nature
      - name: vegetation
        color: "#6B8E23"
      - name: terrain
        color: "#98FB98"
      # Sky
      - name: sky
        color: "#4682B4"
      # Human
      - name: person
        color: "#DC143C"
      - name: rider
        color: "#FF0000"
      # Vehicle
      - name: car
        color: "#00008B"
      - name: truck
        color: "#000046"
      - name: bus
        color: "#003C64"
      - name: motorcycle
        color: "#0000E6"
      - name: bicycle
        color: "#770B20"

Ausgabeformat

Polygon-Annotationen landen mit den Koordinaten jedes Stützpunkts in der Ausgabe:

json
{
  "id": "img001",
  "annotations": {
    "segments": [
      {
        "label": "road",
        "points": [[0, 600], [100, 580], [200, 590], [0, 600]]
      },
      {
        "label": "car",
        "points": [[450, 400], [520, 400], [520, 480], [450, 480]]
      }
    ]
  }
}

Hinweise zu sauberen Polygonen

  1. Zoom auf mindestens 2x, wenn du feine Grenzen nachzeichnest.
  2. Lern die Tastenkürzel. Sie sind deutlich schneller, als jedes Mal zur Werkzeugleiste zu greifen.
  3. Leg zuerst einen groben Umriss an und verfeinere ihn danach.
  4. Nimm so wenige Stützpunkte, wie die Form es zulässt. Mehr ist nicht besser.
  5. Mach Pausen. Detaillierte Polygonarbeit zehrt schnell.

Nächste Schritte

Was der Annotationstyp für Bilder sonst noch kann (Polygon, bbox und die übrigen Zeichenwerkzeuge), steht in der Quelldokumentation.


Die vollständige Polygon-Dokumentation steht unter Bildannotation.