Bereitstellung von Ultralytics YOLO auf Luxonis OAK#
Luxonis-OAK-Kameras führen Ultralytics-YOLO-Modelle nach der Konvertierung mit Luxonis-Werkzeugen direkt auf dem Gerät aus. Dabei handelt es sich um einen manuellen Bereitstellungsworkflow; Luxonis ist kein natives Ultralytics-Ziel model.export(format="...").
Diese Anleitung behandelt Geräte mit RVC2 und RVC4. Konvertiere das Modell für die Plattform deiner Kamera: RVC2- und RVC4-Artefakte sind nicht untereinander austauschbar. Die unterstützten Modellfamilien und Aufgaben unterscheiden sich. Prüfe daher vor der Konvertierung die Kompatibilitätsmatrix der Luxonis Tools.
Beginne mit einem unterstützten YOLO-.pt-Checkpoint, beispielsweise yolo26n.pt, oder mit deinem eigenen trainierten Modell. Das konvertierte NN Archive enthält das Modell und Metadaten zur Laufzeit.
Cloud-Konvertierung mit Luxonis Hub#
- Melde dich bei Luxonis Hub an und öffne Quick Conversion.
- Wähle YOLO und anschließend RVC2 oder RVC4 aus. Lade dann deinen
.pt-Checkpoint hoch. - Lege die Eingabeform und die Konvertierungsparameter fest und starte anschließend die Konvertierung.
- Kopiere nach Abschluss die Kennung des konvertierten Modells für das folgende Inferenzbeispiel oder lade das NN Archive herunter.
Für automatisierte Konvertierungen oder benutzerdefinierte RVC4-Kalibrierungsdaten verwende das HubAI SDK. Folge den Installationsanweisungen in einer Python-3.10+-Umgebung. Ausführliche Konvertierung bietet Funktionen zur Registry-Verwaltung und vordefinierte Kalibrierungsdatensätze.
Lokale Konvertierung mit Tools und ModelConverter#
Verwende Python 3.10+ und Docker. Installiere Luxonis Tools gemäß den Installationsanweisungen des Anbieters, einschließlich der Abhängigkeitseinschränkungen. Tools bereitet YOLO-Ausgaben für die Verarbeitung durch Luxonis vor. Ein allgemeiner ONNX-Export ersetzt diesen Schritt nicht.
# Export the checkpoint to an ONNX NN Archive
tools yolo26n.pt --imgsz "640 640" --output-dir output
# Install the target-platform converter
pip install modelconv==0.6.0Tools speichert yolo26n.tar.xz in einem Verzeichnis mit Zeitstempel unter output/. Ersetze den Beispielpfad unten durch den Pfad zu dieser Datei. Für die RVC4-INT8-Konvertierung fügst du repräsentative Bilder aus der Zielumgebung zu calibration_images/ hinzu. Weitere Informationen findest du unter Anforderungen an Kalibrierungsdaten.
modelconverter convert rvc4 --path output/yolo26n_20260807_104858/yolo26n.tar.xz \
calibration.path calibration_images/Verwende für RVC2 rvc2 statt rvc4. Für die FP16-Konvertierung werden keine Kalibrierungsbilder benötigt. Verwende für die Inferenz das resultierende kompilierte NN Archive aus dem Ausgabeverzeichnis von ModelConverter und nicht das zwischengespeicherte ONNX-Archiv. Informationen zu Ausgabepfaden und plattformspezifischen Optionen findest du unter ModelConverter.
Inferenz auf einer OAK-Kamera ausführen#
Schließe eine kompatible OAK-Kamera an und installiere DepthAI in deiner Python-Umgebung:
pip install depthai==3.9.0Wenn du ein privates Hub-Modell verwendest, setze DEPTHAI_HUB_API_KEY vor dem Ausführen des Skripts auf einen Luxonis-Hub-API-Schlüssel. Ersetze your-model-identifier durch die Kennung aus Hub oder verwende stattdessen das lokal kompilierte NN Archive.
import depthai as dai
model = "your-model-identifier"
# Verwende alternativ dein lokal konvertiertes Artefakt:
# model = dai.NNArchive("path/to/model.rvc4.tar.xz")
visualizer = dai.RemoteConnection()
with dai.Pipeline() as pipeline:
camera = pipeline.create(dai.node.Camera).build()
detection = pipeline.create(dai.node.DetectionNetwork).build(camera, model)
visualizer.addTopic("rgb", detection.passthrough, group="RGB")
visualizer.addTopic("detections", detection.out, group="RGB")
pipeline.start()
visualizer.registerPipeline(pipeline)
while pipeline.isRunning():
if visualizer.waitKey(1) == ord("q"):
pipeline.stop()Öffne http://localhost:8082, um den RGB-Stream und die Erkennungen anzuzeigen. DetectionNetwork unterstützt auch kompatible Modelle für die Instanzsegmentierung und Posenschätzung. Informationen zu anderen Aufgaben wie semantischer Segmentierung und Klassifizierung findest du in den aufgabenspezifischen Anweisungen zur Inferenz.
Beispiele für räumliche Erkennung in Stereotiefen-Pipelines findest du unter Beispiel zur räumlichen Erkennung. Miss die Leistung deines Modells auf der Zielkamera anhand der Benchmarking-Anleitung. Der Durchsatz hängt vom Modell, der Eingabegröße, der Genauigkeit und der Pipeline-Konfiguration ab.
Häufig gestellte Fragen#
Nein. Luxonis ist kein natives Ultralytics-Exportformat. Konvertiere einen
.pt-Checkpoint mit Luxonis Hub oder dem lokalen Workflow mit Tools und ModelConverter und führe das resultierende NN Archive anschließend mit DepthAI aus.Nein. RVC2- und RVC4-Artefakte werden für unterschiedliche Hardware kompiliert und sind nicht untereinander austauschbar. Konvertiere das Modell daher für jede Plattform separat.
Die Unterstützung hängt von den Luxonis-Werkzeugen und nicht von Ultralytics ab. Prüfe vor der Konvertierung die Kompatibilitätsmatrix der Luxonis Tools. Hinweise zur Ausführung von Modellen für andere Aufgaben als Objekterkennung findest du in den aufgabenspezifischen Anweisungen zur Inferenz.