본문으로 건너뛰기

기기에서 CoreML 모델 컴파일 (coreml.compile_model)

선언

컴파일된 모델 경로, 오류 정보 = coreml.compile_model(모델 파일 경로)

매개변수

  • 모델 파일 경로
    문자열형. 컴파일할 모델의 경로입니다. iOS 15 이상에서는 .mlpackage 형식을 지원하며, iOS 13, 14에서는 기존 .mlmodel 형식만 지원합니다.

    YOLO11을 CoreML로 변환하는 관련 문서

    macOS에서 YOLO11 형식을 변환하는 명령 참고
    # Python 3.10 환경이 이미 있다고 가정합니다. 없다면 직접 생성하십시오(Python 3.10에서만 테스트했으며 상위 버전은 확인하지 않았습니다).
    # 먼저 ultralytics를 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다.
    pip install ultralytics

    # iOS 13 또는 iOS 14에서는 format을 mlmodel로 지정하여 기존 mlmodel로 변환할 수 있습니다.
    yolo export format=mlmodel nms=True model=best.pt

    # iOS 15 이상에서는 format을 coreml로 지정하여 mlpackage 모델로 변환할 수 있습니다.
    yolo export format=coreml nms=True model=best.pt

    # nms=True는 필수가 아닙니다.
    # NMS를 내보내는 모델에 인라인으로 포함하려면 활성화할 수 있습니다.
    # XXTouch에서 coreml.nms / coreml.rotated_nms를 사용해 직접 후처리할 예정이라면 nms=True를 생략할 수도 있습니다.

반환값

  • 컴파일된 모델 경로
    문자열형 | nil. 컴파일에 성공하면 컴파일된 모델 경로, 실패하면 nil을 반환합니다.

  • 오류 정보
    문자열형 | nil. 컴파일에 성공하면 nil, 실패하면 오류 정보를 반환합니다.

설명

  • 소프트웨어 버전 1.3.8 이상에서 사용할 수 있습니다.

  • iOS 12 미만 시스템 버전은 지원하지 않습니다.

  • 이 함수는 .mlpackage 또는 .mlmodel 형식의 모델을 기기에서 직접 불러올 수 있는 .mlmodelc 형식으로 컴파일합니다.

  • 기기 모델이나 시스템 버전이 다르면 컴파일된 .mlmodelc를 공통으로 사용하지 못할 수 있습니다.

    NVIDIA 그래픽 카드가 있는 컴퓨터에서 YOLO11 모델을 학습하는 명령
    # 먼저 컴퓨터에 Visual Studio C++ 데스크톱 개발 도구를 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다. 링크는 다음과 같습니다.
    # https://visualstudio.microsoft.com/
    # 컴퓨터에 CUDA 11.8 Toolkit을 다운로드하여 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다. 링크는 다음과 같습니다.
    # https://developer.nvidia.com/cuda-11-8-0-download-archive

    # Python 3.10 환경이 이미 있다고 가정합니다. 없다면 직접 생성하십시오(Python 3.10에서만 테스트했으며 상위 버전은 확인하지 않았습니다).
    # 먼저 ultralytics를 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다.
    pip install ultralytics

    # NVIDIA CUDA 11.8 Toolkit을 지원하는 torch 라이브러리를 다시 설치합니다.
    # CUDA를 지원하는 torch 라이브러리가 이미 설치되어 있다면 이 단계를 건너뜁니다.
    pip uninstall torch torchvision torchaudio # 컴퓨터에 설치된 CPU 버전 torch 제거
    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 # GPU0으로 학습
    macOS에서 YOLO11 모델을 학습하는 명령
    # Python 3.10 환경이 이미 있다고 가정합니다. 없다면 직접 생성하십시오(Python 3.10에서만 테스트했으며 상위 버전은 확인하지 않았습니다).
    # 먼저 ultralytics를 설치합니다. 이미 설치했다면 이 단계를 건너뜁니다.
    pip install ultralytics

    # torch가 이미 설치되어 있다면 이 단계를 건너뜁니다.
    pip install torch torchvision torchaudio

    yolo train model=yolo11m.pt data=COCO.yml epochs=300 imgsz=640 device=mps # Metal 셰이더로 학습 가속

예제

compiled_model_path = XXT_HOME_PATH..'/models/yolo11m.mlmodelc' -- 컴파일된 모델 저장 위치

file.remove(compiled_model_path) -- 테스트 단계에서는 매번 다시 컴파일하며, 모델이 안정되면 이 줄을 주석 처리할 수 있습니다.

if not file.exists(compiled_model_path) then -- 아직 컴파일된 모델이 없다면 하나를 컴파일합니다.
local tmp_path, err = coreml.compile_model(XXT_HOME_PATH..'/models/yolo11m.mlpackage') -- 모델 컴파일
if not tmp_path then
error(err)
end
file.move(tmp_path, compiled_model_path, 'mo') -- 컴파일된 모델을 지정 위치로 이동합니다.
end