Zum Hauptinhalt springen

CoreML-Modell lokal kompilieren (coreml.compile_model)

Deklaration

compiled_model_path, err = coreml.compile_model(model_path)

Parameter

  • model_path
    Zeichenkette. Zu kompilierender Modellpfad. Ab iOS 15 wird das Format .mlpackage unterstützt; iOS 13 und 14 unterstützen nur das ältere Format .mlmodel.

    Dokumentation zur YOLO11-Konvertierung nach CoreML

    Referenzbefehle zur YOLO11-Formatkonvertierung unter macOS
    # Hier wird eine Python-3.10-Umgebung vorausgesetzt; andernfalls selbst erstellen (nur mit Python 3.10 getestet, höhere Versionen nicht verifiziert).
    # Zuerst ultralytics installieren; bei vorhandener Installation diesen Schritt überspringen.
    pip install ultralytics

    # Unter iOS 13 oder iOS 14 kann mit format=mlmodel in das ältere mlmodel-Format konvertiert werden.
    yolo export format=mlmodel nms=True model=best.pt

    # Ab iOS 15 kann mit format=coreml in ein mlpackage-Modell konvertiert werden.
    yolo export format=coreml nms=True model=best.pt

    # nms=True ist optional.
    # Wenn NMS in das exportierte Modell eingebettet werden soll, kann es aktiviert werden.
    # Wenn die Nachverarbeitung auf XXTouch-Seite mit coreml.nms / coreml.rotated_nms erfolgen soll, kann nms=True entfallen.

Rückgabewerte

  • compiled_model_path
    Zeichenkette | nil. Bei Erfolg der kompilierte Modellpfad, bei einem Fehler nil.

  • err
    Zeichenkette | nil. Bei Erfolg nil, bei einem Fehler die Fehlermeldung.

Hinweise

  • Ab Softwareversion 1.3.8 verfügbar

  • Systeme vor iOS 12 werden nicht unterstützt.

  • Diese Funktion kompiliert Modelle im Format .mlpackage oder .mlmodel in das von Geräten direkt ladbare Format .mlmodelc.

  • Ein auf einem Gerät eines bestimmten Modells oder einer bestimmten Systemversion kompiliertes .mlmodelc ist möglicherweise nicht auf anderen Geräten verwendbar.

    YOLO11-Modelltrainingsbefehle auf einem Computer mit NVIDIA-Grafikkarte
    # Zuerst das Visual-Studio-Desktopentwicklungstool für C++ installieren; bei vorhandener Installation überspringen. Link:
    # https://visualstudio.microsoft.com/
    # CUDA 11.8 Toolkit auf dem Computer installieren; bei vorhandener Installation überspringen. Link:
    # https://developer.nvidia.com/cuda-11-8-0-download-archive

    # Hier wird eine Python-3.10-Umgebung vorausgesetzt; andernfalls selbst erstellen (nur mit Python 3.10 getestet, höhere Versionen nicht verifiziert).
    # Zuerst ultralytics installieren; bei vorhandener Installation überspringen.
    pip install ultralytics

    # torch-Bibliotheken mit Unterstützung für NVIDIA CUDA 11.8 Toolkit neu installieren.
    # Überspringen, wenn bereits eine CUDA-fähige torch-Version installiert ist.
    pip uninstall torch torchvision torchaudio # Auf dem Computer installierte CPU-Version von torch deinstallieren.
    pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118

    yolo train model=yolo11m.pt data=COCO.yml epochs=300 imgsz=640 device=0 # Mit GPU0 trainieren.
    YOLO11-Modelltrainingsbefehle unter macOS
    # Hier wird eine Python-3.10-Umgebung vorausgesetzt; andernfalls selbst erstellen (nur mit Python 3.10 getestet, höhere Versionen nicht verifiziert).
    # Zuerst ultralytics installieren; bei vorhandener Installation überspringen.
    pip install ultralytics

    # Bei vorhandener torch-Installation überspringen.
    pip install torch torchvision torchaudio

    yolo train model=yolo11m.pt data=COCO.yml epochs=300 imgsz=640 device=mps # Training mit Metal-Shadern beschleunigen.

Beispiel

compiled_model_path = XXT_HOME_PATH..'/models/yolo11m.mlmodelc' -- Speicherort des kompilierten Modells

file.remove(compiled_model_path) -- Während des Tests bei jedem Lauf neu kompilieren; nach Stabilisierung auskommentieren.

if not file.exists(compiled_model_path) then -- Falls noch kein kompiliertes Modell vorhanden ist, eines kompilieren.
local tmp_path, err = coreml.compile_model(XXT_HOME_PATH..'/models/yolo11m.mlpackage') -- Modell kompilieren.
if not tmp_path then
error(err)
end
file.move(tmp_path, compiled_model_path, 'mo') -- Kompiliertes Modell an den Zielort verschieben.
end