CNN (Convolutional Neural Network)
Eine neuronale Netzwerk-Architektur, die speziell für die Verarbeitung von Bildern und räumlichen Daten entwickelt wurde und lokale Muster durch Filter erkennt.
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.
Object Detection ist eine der grundlegendsten Aufgaben in Computer Vision: Ein Modell bekommt ein Bild und gibt für jedes erkannte Objekt eine Bounding Box (Rechteck mit Koordinaten), ein Klassen-Label (“Auto”, “Person”, “Hund”) und einen Konfidenz-Score zurück. Das klingt einfach, ist aber technisch anspruchsvoll – das Modell muss gleichzeitig erkennen, was im Bild ist und wo genau es sich befindet.
Der Unterschied zur reinen Bildklassifikation ist entscheidend: Klassifikation sagt “Im Bild ist ein Hund”. Object Detection sagt “Im Bild sind 3 Hunde: einer oben links (92% Konfidenz), einer in der Mitte (87%) und einer unten rechts (79%)”. Diese Lokalisierung macht Object Detection zur Grundlage für autonomes Fahren, Robotik, Videoüberwachung und industrielle Qualitätskontrolle.
| Architektur | Ansatz | Stärke |
|---|---|---|
| YOLO (v5–v11) | Single-Shot, ein Durchlauf | Echtzeit, einfaches Deployment |
| Faster R-CNN | Two-Stage, Region Proposals | Hohe Genauigkeit, langsamer |
| DETR | Transformer-basiert | Kein Anchor-Design nötig |
| SSD | Single-Shot, Multi-Scale | Guter Speed/Accuracy-Kompromiss |
mAP (mean Average Precision): Hauptmetrik für Object Detection
- mAP@0.5: IoU-Schwellwert 50% (lockerer)
- mAP@0.5:0.95: Durchschnitt über IoU 50%–95% (strenger, COCO-Standard)
IoU (Intersection over Union):
IoU = Schnittmenge(predicted, ground_truth) / Vereinigung(predicted, ground_truth)
from ultralytics import YOLO
# Vortrainiertes Modell laden
model = YOLO('yolov8n.pt') # nano = kleinste/schnellste Variante
# Inferenz auf Bild
results = model('bild.jpg')
# Ergebnisse ausgeben
for r in results:
for box in r.boxes:
print(f"Klasse: {r.names[int(box.cls)]}")
print(f"Konfidenz: {box.conf:.2f}")
print(f"Bounding Box: {box.xyxy}") # x1, y1, x2, y2
# Training auf eigenem Datensatz
model = YOLO('yolov8n.pt')
results = model.train(
data='dataset.yaml', # Pfad zu Datensatz-Config
epochs=100,
imgsz=640,
batch=16
) Object Detection ist wie ein Sicherheitsbeamter, der in einem Raum nicht nur sagt 'Ich sehe eine Tasche' (Klassifikation), sondern auch zeigt: 'Diese Tasche ist dort in der linken Ecke' – und das für alle Objekte gleichzeitig.
Kombiniert Klassifikation (Was?) und Lokalisierung (Wo?) in einem Schritt
Ausgabe: Bounding Boxes mit Klassen-Labels und Konfidenz-Scores
YOLO, Faster R-CNN und DETR sind die dominanten Architekturen
Autonomes Fahren
Erkennung von Fußgängern, Fahrzeugen, Ampeln und Hindernissen in Echtzeit
Qualitätskontrolle
Automatische Erkennung von Defekten in Produktionslinien
Retail Analytics
Zählung von Personen, Analyse von Regalbestückung, Checkout-Automatisierung
Medizinische Bildgebung
Lokalisierung von Tumoren, Läsionen und anatomischen Strukturen in Scans
Image Classification sagt nur 'Was ist im Bild?' (z.B. 'Hund'). Object Detection sagt 'Was ist wo im Bild?' und gibt für jedes erkannte Objekt eine Bounding Box mit Koordinaten aus. Detection ist komplexer, aber für die meisten Praxis-Anwendungen nötiger.
YOLO (You Only Look Once) ist eine Architektur, die das gesamte Bild in einem einzigen Durchlauf verarbeitet – im Gegensatz zu zweistufigen Methoden wie Faster R-CNN. Das macht YOLO extrem schnell (Echtzeit auf Consumer-Hardware) bei guter Genauigkeit. YOLOv8 ist heute der Standard für Produktions-Deployments.
Für einen guten Start reichen oft 500–2000 annotierte Bilder pro Klasse, wenn man ein vortrainiertes Modell fine-tuned (Transfer Learning). Für sehr spezifische Domänen oder viele Klassen werden mehr Daten benötigt. Daten-Augmentation (Rotation, Flip, Helligkeit) kann die effektive Datenmenge vervielfachen.