Ein Modell, das auf einem Benchmark-Datensatz Spitzengenauigkeit erzielt, qualifiziert sich nicht automatisch für den Feldeinsatz. Forschungsmodelle werden auf GPU-Clustern mit reichlich Speicher und Rechenkapazität trainiert. Eingesetzte Modelle müssen auf Edge-Hardware mit strengen Leistungsbudgets, begrenztem Speicher und Echtzeitlatenzanforderungen laufen. ONNX und TensorRT sind die beiden Schlüsseltechnologien in der Modelloptimierungspipeline für Jetson-Deployment.

Die Lücke zwischen Training und Inferenz

Das Ausführen eines Forschungsmodells in PyTorch auf einem Jetson Orin NX ohne Optimierung liefert bei ~8–15 fps für ein mittleres Erkennungsmodell — deutlich unter dem 30-fps-Ziel für Echtzeit-Videoanalyse. Drei Quellen dieser Lücke: Speicher-Overhead (Optimiererzustand, Gradientenpuffer), Rechen-Overhead (dynamische Graphen) und Präzisionsfehlanpassung (FP32 vs. INT8).

ONNX als universeller Austausch: Export aus PyTorch

Die Funktion `torch.onnx.export` verfolgt den Berechnungsgraph des Modells durch Ausführen mit Beispiel-Input-Tensoren. Schlüsselparameter: opset_version (opset 16 oder 17 für maximale Abdeckung mit TensorRT); dynamic_axes (Batch-Dimension sollte dynamisch sein). Häufige Fallstricke: Der NMS-Detektionskopf von YOLOv8 ist der häufigste Problembereich — immer exportiertes ONNX-Modell auf representativem Testset validieren vor TensorRT-Kompilierung.

TensorRT-Kompilierung: INT8-Kalibrierung, Layer-Fusion, Kernel-Auto-Tuning

TensorRT nimmt ein ONNX-Modell als Eingabe und erzeugt eine Engine-Datei, die für eine bestimmte GPU-Architektur optimiert ist. Kompilierung umfasst: Netzwerk-Parsing; Optimierungsdurchläufe (Layer-Fusion, Tensor-Layout-Optimierung); Präzisionskalibrierung — für INT8 führt TensorRT eine Kalibrierung auf 500–1.000 repräsentativen Bildern durch. Der Auto-Tuning-Schritt dauert 30–90 Minuten, wird aber nur einmal ausgeführt. Engine-Dateien sind GPU-architekturspezifisch.

Latenz vs. Durchsatz: Batch-Größe 1 für Echtzeit-Inferenz

Bei Batch-Größe 1 läuft YOLOv8-medium INT8 auf Jetson AGX Orin bei ~1,8ms Latenz. Für ein Vier-Kamera-System mit jeweils 30fps erlaubt Batch-Größe 4 die gleichzeitige Verarbeitung eines Frames aus jedem Kamera-Stream in ~5ms.

Wichtige Erkenntnis: TensorRT-Engine-Dateien sind nicht zwischen GPU-Architekturen portierbar. Kompilieren Sie Engines auf der Zielgeräteklasse gemäß BMVg-Anforderungen für das spezifische Waffensystem — Versuche, eine auf AGX Orin kompilierte Engine auf Orin NX auszuführen, führen zu Fehlern oder Genauigkeitsdegradation.

Modell-Versionierung und Update-Pipeline für Feldgeräte

Update-Workflow: Neues Modell zentral trainiert → ONNX-Export → ONNX über sicheren Update-Kanal auf Gerät übertragen → TensorRT-Kompilierung on-device ausgeführt → kompilierte Engine aktiviert → alte Engine für Rollback archiviert. Jedes ONNX-Modell-Release sollte eine semantische Versionskennung, SHA-256-Hash und kryptografische Signatur tragen.