Object Detection
Eine Computer-Vision-Aufgabe, bei der KI-Modelle Objekte in Bildern oder Videos erkennen und mit Bounding Boxes lokalisieren – Grundlage für autonomes Fahren, Videoüberwachung und Robotik.
Eine Computer-Vision-Aufgabe, bei der jeder Pixel eines Bildes einer Klasse oder Instanz zugeordnet wird – präziser als Object Detection und Grundlage für medizinische Bildgebung, autonomes Fahren und Bildbearbeitung.
Image Segmentation ist die präziseste Form der Objekterkennung in Computer Vision. Während Object Detection Objekte mit groben Rechtecken (Bounding Boxes) umrahmt, ordnet Segmentation jeden einzelnen Pixel des Bildes einer Klasse zu. Das Ergebnis ist eine pixelgenaue Maske, die exakt die Form des Objekts abbildet – nicht nur einen Rahmen darum.
Diese Präzision ist entscheidend für Anwendungen, wo Bounding Boxes nicht ausreichen: Ein autonomes Fahrzeug muss wissen, wo genau die Straße endet und der Bürgersteig beginnt – nicht nur, dass irgendwo eine Straße ist. Ein medizinisches Bildanalysesystem muss den genauen Rand eines Tumors bestimmen, um die Größe zu messen. Eine Foto-App muss haargenau wissen, welche Pixel zum Vordergrund gehören, um den Hintergrund zu ersetzen.
| Typ | Beschreibung | Beispiel |
|---|---|---|
| Semantic Segmentation | Jeder Pixel → Klasse | Alle Autos = “Auto” |
| Instance Segmentation | Jeder Pixel → Klasse + Instanz | Auto #1, Auto #2 |
| Panoptic Segmentation | Kombination beider Ansätze | Vollständiges Szenenverständnis |
U-Net (2015): Encoder-Decoder mit Skip Connections
→ Standard in medizinischer Bildgebung
DeepLab v3+ (2018): Atrous Convolutions für Multi-Scale-Kontext
→ Semantic Segmentation auf Straßenszenen
Mask R-CNN (2017): Faster R-CNN + Segmentierungsmaske
→ Instance Segmentation, Basis vieler Systeme
SAM (2023): Vision Transformer + promptbasierte Segmentierung
→ Zero-Shot, beliebige Objekte
from segment_anything import SamPredictor, sam_model_registry
import numpy as np
# Modell laden
sam = sam_model_registry["vit_h"](checkpoint="sam_vit_h.pth")
predictor = SamPredictor(sam)
# Bild setzen
predictor.set_image(image) # numpy array (H, W, 3)
# Punkt-Prompt: Klick auf Objekt
input_point = np.array([[500, 375]]) # x, y Koordinaten
input_label = np.array([1]) # 1 = Vordergrund
# Segmentierung
masks, scores, logits = predictor.predict(
point_coords=input_point,
point_labels=input_label,
multimask_output=True,
)
# masks: (3, H, W) Boolean-Arrays
IoU (Intersection over Union) / Jaccard Index:
IoU = |Vorhersage ∩ Ground Truth| / |Vorhersage ∪ Ground Truth|
→ 1.0 = perfekte Übereinstimmung
Dice Coefficient (F1 für Segmentierung):
Dice = 2 × |Vorhersage ∩ Ground Truth| / (|Vorhersage| + |Ground Truth|)
→ Sensitiver bei kleinen Objekten als IoU
mIoU (mean IoU):
Durchschnitt des IoU über alle Klassen
→ Standard-Metrik für Semantic Segmentation Image Segmentation ist wie Ausmalen nach Zahlen: Statt nur einen Rahmen um ein Objekt zu zeichnen (Object Detection), wird jeder einzelne Pixel des Bildes einer Kategorie zugeordnet – wie wenn man ein Bild pixelgenau mit verschiedenen Farben für 'Straße', 'Auto', 'Fußgänger' und 'Himmel' ausmalt.
Semantic Segmentation: Jeder Pixel bekommt eine Klasse (aber keine Instanz-Unterscheidung)
Instance Segmentation: Jede Objekt-Instanz wird separat segmentiert
SAM (Segment Anything Model) von Meta hat die Segmentierung demokratisiert
Medizinische Bildgebung
Pixelgenaue Segmentierung von Tumoren, Organen und Läsionen in MRT/CT-Scans
Autonomes Fahren
Echtzeit-Segmentierung von Straße, Fahrzeugen, Fußgängern und Hindernissen
Bildbearbeitung
Hintergrund-Entfernung, Objekt-Freistellen, Compositing in Foto-Apps
Satelliten-Analyse
Segmentierung von Landnutzung, Gebäuden, Wäldern und Gewässern in Satellitenbildern
Semantic Segmentation ordnet jeden Pixel einer Klasse zu – alle Autos sind 'Auto', egal wie viele. Instance Segmentation unterscheidet zusätzlich zwischen einzelnen Instanzen: Auto #1, Auto #2, Auto #3. Instance Segmentation ist schwieriger, aber nötiger wenn man einzelne Objekte verfolgen will.
SAM ist Metas Foundation Model für Segmentierung, das 2023 veröffentlicht wurde. Es kann beliebige Objekte in Bildern segmentieren – ohne spezifisches Training für die Zieldomäne. Man gibt einen Punkt oder eine Bounding Box als Prompt, und SAM segmentiert das Objekt pixelgenau. SAM 2 (2024) erweitert das auf Videos.
Segmentierungs-Annotation ist deutlich aufwändiger als Bounding-Box-Annotation – statt 4 Koordinaten müssen Polygone oder Masken gezeichnet werden. Für Transfer Learning reichen oft 200–500 annotierte Bilder. SAM kann als Annotation-Assistent genutzt werden, um den Aufwand zu reduzieren.