
Ein durchgängiger Entwicklerleitfaden zu YOLO: Grundlagen, Datenqualität, Training, Evaluation, Echtzeit-Inferenz, Produktion, Performance und Sicherheit.
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.
Ein höherer Confidence-Schwellwert reduziert häufig Fehlalarme, kann aber schwierige Objekte übersehen. Die Auswahl muss sich an den Kosten der Fehler orientieren.
Typisch sind Backbone zur Merkmalsextraktion, Neck zur Fusion mehrerer Skalen und Detection Head für die Vorhersagen.
python -m venv .venv
source .venv/bin/activate
pip install ultralytics opencv-python
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.
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.
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.
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.
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.
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.
Weil Positionen und Klassen direkt vorhergesagt werden, ohne separate Region-Proposal-Stufe.
Die Überlappung von vorhergesagter und wahrer Box relativ zu ihrer Gesamtfläche.
Das hängt von den Fehlerkosten ab. Sicherheitsprüfungen priorisieren oft Recall, automatische Sperren benötigen hohe Precision.
Repräsentative hochauflösende Daten und Labels verbessern, Eingabegröße und Augmentationen abstimmen, Multi-Scale-Merkmale erhalten und gegebenenfalls Tiling testen.
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.
Noch keine freigegebenen Kommentare sichtbar. Neue Antworten können moderiert werden.