Artikel

YOLO-Objekterkennung: Ein vollständiger Praxisleitfaden für Entwickler

YOLO-Objekterkennung: Ein vollständiger Praxisleitfaden für Entwickler

Ein durchgängiger Entwicklerleitfaden zu YOLO: Grundlagen, Datenqualität, Training, Evaluation, Echtzeit-Inferenz, Produktion, Performance und Sicherheit.

18 Min. LesezeitSprache: DE DeutschKostenlos0 Claps0 Kommentare
Engineering-ArtikelKI-LeitfädenAIPythonVisionTutorialTraining
Leseoptionen

Was ist YOLO-Objekterkennung?

YOLO („You Only Look Once“) bezeichnet eine Familie einstufiger Objektdetektoren. Während eine Bildklassifikation dem gesamten Bild ein Label zuweist, liefert Objekterkennung mehrere Ergebnisse: Klasse, Konfidenz und Begrenzungsrahmen für jedes gefundene Objekt.

YOLO wird unter anderem für Verkehrsanalysen, industrielle Qualitätsprüfung, Robotik, Landwirtschaft, Sportanalyse und Echtzeitvideo eingesetzt. Entscheidend ist das ausgewogene Verhältnis aus Genauigkeit, Latenz, Modellgröße und einfacher Bereitstellung.

Zentrale Begriffe

  • Bounding Box: Rechteck um ein Objekt.
  • Confidence: geschätzte Zuverlässigkeit einer Erkennung.
  • IoU: Schnittfläche zweier Boxen geteilt durch ihre Vereinigungsfläche.
  • Precision: Anteil korrekter Treffer an allen ausgegebenen Treffern.
  • Recall: Anteil gefundener Objekte an allen tatsächlich vorhandenen Objekten.
  • mAP: zusammenfassende Genauigkeitsmetrik über Klassen und IoU-Schwellen.

Ein höherer Confidence-Schwellwert reduziert häufig Fehlalarme, kann aber schwierige Objekte übersehen. Die Auswahl muss sich an den Kosten der Fehler orientieren.

Ablauf einer YOLO-Pipeline

  1. Bild oder Videoframe dekodieren.
  2. Größe und Werte entsprechend dem Modell vorbereiten.
  3. Neuronales Netz ausführen.
  4. Rohwerte in Boxen, Klassen und Scores umwandeln.
  5. Schwache und doppelte Treffer mit NMS entfernen.
  6. Koordinaten auf das Originalbild zurückskalieren.

Typisch sind Backbone zur Merkmalsextraktion, Neck zur Fusion mehrerer Skalen und Detection Head für die Vorhersagen.

Installation

python -m venv .venv
source .venv/bin/activate
pip install ultralytics opencv-python

Erste Inferenz und Echtzeitkamera

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
result = model.predict("street.jpg", conf=0.35, imgsz=640)[0]

for box in result.boxes:
    class_id = int(box.cls.item())
    print({
        "class": model.names[class_id],
        "confidence": float(box.conf.item()),
        "xyxy": box.xyxy[0].tolist(),
    })
import cv2
from ultralytics import YOLO

model = YOLO("yolo11n.pt")
camera = cv2.VideoCapture(0)

while camera.isOpened():
    ok, frame = camera.read()
    if not ok:
        break
    result = model.predict(frame, conf=0.4, verbose=False)[0]
    cv2.imshow("YOLO", result.plot())
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

camera.release()
cv2.destroyAllWindows()
from ultralytics import YOLO

model = YOLO("yolo11n.pt")
model.train(
    data="dataset.yaml",
    epochs=100,
    imgsz=640,
    batch=16,
    device=0,
    project="runs/safety",
    name="baseline",
)
path: /absolute/path/to/dataset
train: images/train
val: images/val
test: images/test
names:
  0: person
  1: helmet
  2: safety_vest

Beginne mit einem kleinen Modell als Latenz-Baseline. Nutze ein größeres Modell erst, wenn die gemessene Genauigkeitssteigerung Rechenzeit und Speicher rechtfertigt.

Datensatz und Annotationen

Eine YOLO-Labelzeile hat meist dieses Format:

class_id x_center y_center width height

Die Koordinaten sind normalisiert. Trenne Bilder und Labels in train, val und test. Benachbarte Frames desselben Videos dürfen nicht zufällig auf Training und Validierung verteilt werden, weil nahezu identische Bilder die Bewertung verfälschen.

Qualitätscheck

  • Einheitliche Regeln für verdeckte Objekte definieren.
  • Enge, konsistente Boxen zeichnen.
  • Jede relevante Instanz annotieren.
  • Regeln für Spiegelungen, Monitore und Poster festlegen.
  • Klassenbalance und Objektgrößen prüfen.
  • Stichproben jedes Annotators kontrollieren.
  • Datensatz und Richtlinien versionieren.

Training und Evaluation

Vortrainierte Gewichte sind normalerweise der beste Start. Mehr Epochen reparieren keine falschen Labels, Datenlecks oder fehlenden Produktionssituationen.

Bewerte nicht nur einen globalen mAP-Wert. Analysiere nach Klasse, Objektgröße, Kamera, Kunde, Licht, Wetter, Verdeckung, Bewegungsunschärfe, Entfernung und Kompression. Eine Fehlergalerie mit False Positives, False Negatives, Lokalisierungsfehlern und Duplikaten zeigt, welche Daten als Nächstes fehlen.

API und Produktionsbetrieb

Lade das Modell beim Anwendungsstart einmal und wärme es auf. Prüfe Dateiinhalt, Pixelabmessungen und Größenlimit. Für lange Videos empfiehlt sich ein asynchroner Job mit Fortschritt statt einer langen HTTP-Anfrage.

Eine robuste Architektur trennt Gateway und Authentifizierung, Upload-Prüfung, Objektspeicher, Queue, Inferenz-Worker, Ergebnisablage, Monitoring und Audit-Logs.

Performance optimieren

Miss die gesamte Latenz: Dekodieren, Resize, Datentransfer, Inferenz, NMS, Rendering, Serialisierung und Netzwerk. Nutze FP16 auf geeigneter Hardware, begrenze Parallelität und Queue-Länge und beobachte p50, p95, p99, Speicher und verworfene Frames.

Exporte nach ONNX, TensorRT oder OpenVINO benötigen Regressionstests gegen das ursprüngliche Modell. Schneller bedeutet nicht automatisch äquivalent.

Sicherheit und Datenschutz

Bilder können Gesichter, Kennzeichen, Bildschirme, Adressen und private Räume enthalten. Minimiere Daten, begrenze Aufbewahrung, verschlüssele und kontrolliere Zugriffe. Vertraue weder Dateiendungen noch unbekannten Modelldateien. YOLO-Ausgaben sind probabilistisch und dürfen nicht allein über medizinische, rechtliche, berufliche oder sicherheitskritische Fälle entscheiden.

Häufige Fehler

  1. Datenleck durch ähnliche Frames.
  2. Widersprüchliche Annotationen.
  3. Kritische Klassen hinter gutem Gesamt-mAP übersehen.
  4. Nur saubere Bilder testen.
  5. Einen Schwellwert für alle Klassen verwenden.
  6. p95 und p99 ignorieren.
  7. Unbegrenzte Video-Queues.
  8. Export ohne Vergleichstest.
  9. Private Bilder standardmäßig protokollieren.
  10. Drift nach Kamera- oder Umgebungsänderungen ignorieren.

Interviewfragen

Warum ist YOLO einstufig?

Weil Positionen und Klassen direkt vorhergesagt werden, ohne separate Region-Proposal-Stufe.

Was misst IoU?

Die Überlappung von vorhergesagter und wahrer Box relativ zu ihrer Gesamtfläche.

Precision oder Recall?

Das hängt von den Fehlerkosten ab. Sicherheitsprüfungen priorisieren oft Recall, automatische Sperren benötigen hohe Precision.

Wie verbessert man kleine Objekte?

Repräsentative hochauflösende Daten und Labels verbessern, Eingabegröße und Augmentationen abstimmen, Multi-Scale-Merkmale erhalten und gegebenenfalls Tiling testen.

Fazit

Ein erfolgreiches YOLO-System ist ein Daten- und Softwareprojekt. Starte mit einer messbaren Baseline, verbessere Labels anhand realer Fehler und optimiere erst nach einem vollständigen Profiling der Pipeline.

Referenzen

Empfohlene Artikel

Kafka im Produktivbetrieb: Partitionen, Consumer Lag und sichere Wiederherstellung
EditorialDE
11 Min.Kostenlos

Kafka im Produktivbetrieb: Partitionen, Consumer Lag und sichere Wiederherstellung

Von der Wahl des Partition Keys bis zum Incident Runbook: Dieser Leitfaden verbindet Kafka Kennzahlen mit den tatsächlichen Geschäftsergebnissen.

Engineering-ArtikelPlattform-Leitfäden
0 Claps
Lesen
Laravel und Kafka ohne verlorene Events: Transactional Outbox und idempotente Consumer mit PostgreSQL
EditorialDE
11 Min.Kostenlos

Laravel und Kafka ohne verlorene Events: Transactional Outbox und idempotente Consumer mit PostgreSQL

Ein Datenbank-Commit und eine Kafka-Veröffentlichung sind keine normale gemeinsame Transaktion. Outbox und Duplikatschutz schließen die wichtigsten Fehlerfenster.

Engineering-ArtikelPlattform-Leitfäden
0 Claps
Lesen
Apache Kafka verstehen: Topics, Partitionen, Consumer Groups und deine erste Event-Pipeline
EditorialDE
10 Min.Kostenlos

Apache Kafka verstehen: Topics, Partitionen, Consumer Groups und deine erste Event-Pipeline

Verfolge ein Bestellereignis vom Producer zu mehreren Consumern und probiere Partitionen, Reihenfolge und Replay lokal aus.

Engineering-ArtikelPlattform-Leitfäden
0 Claps
Lesen

Kommentare

0 Kommentare

Noch keine freigegebenen Kommentare sichtbar. Neue Antworten können moderiert werden.