YOLO26 모델을 위한 CoreML 내보내기
iPhone 및 Mac과 같은 Apple 기기에 컴퓨터 비전 모델을 배포하려면 원활한 성능을 보장하는 형식이 필요합니다.
Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀
The CoreML export format allows you to optimize your Ultralytics YOLO26 models for efficient object detection in iOS and macOS applications. In this guide, we'll walk you through the steps for converting your models to the CoreML format, making it easier for your models to perform well on Apple devices.
CoreML
CoreML은 Accelerate, BNNS 및 Metal Performance Shaders를 기반으로 구축된 Apple의 기본 머신 러닝 프레임워크입니다. 이 프레임워크는 iOS 애플리케이션에 원활하게 통합되는 머신 러닝 모델 형식을 제공하며, 이미지 분석, 자연어 처리, 오디오-텍스트 변환 및 사운드 분석과 같은 작업을 지원합니다.
애플리케이션은 온디바이스 컴퓨팅을 사용하는 Core ML 프레임워크를 통해 네트워크 연결이나 API 호출 없이도 Core ML을 활용할 수 있습니다. 즉, 사용자 기기에서 로컬로 모델 추론을 수행할 수 있습니다.
CoreML 모델의 주요 기능
Apple의 CoreML 프레임워크는 온디바이스 머신 러닝을 위한 강력한 기능을 제공합니다. 다음은 개발자를 위한 CoreML의 주요 기능입니다.
- 포괄적인 모델 지원: TensorFlow, PyTorch, scikit-learn, XGBoost 및 LibSVM과 같은 인기 있는 프레임워크의 모델을 변환하고 실행합니다.
-
온디바이스 머신 러닝: 모델을 사용자 기기에서 직접 실행하여 데이터 프라이버시를 보장하고 빠른 처리를 가능하게 하며, 네트워크 연결의 필요성을 없앱니다.
-
성능 및 최적화: 기기의 CPU, GPU 및 Neural Engine을 사용하여 최소한의 전력과 메모리 사용으로 최적의 성능을 발휘합니다. 정확도를 유지하면서 모델 압축 및 최적화를 위한 도구를 제공합니다.
-
간편한 통합: 다양한 모델 유형을 위한 통합 형식을 제공하고 앱에 쉽게 통합할 수 있는 사용자 친화적인 API를 지원합니다. Vision 및 Natural Language와 같은 프레임워크를 통해 도메인별 작업을 지원합니다.
-
고급 기능: 개인화된 경험을 위한 온디바이스 학습 기능, 대화형 ML 경험을 위한 비동기 예측, 모델 검사 및 유효성 검사 도구를 포함합니다.
CoreML 배포 옵션
YOLO26 모델을 CoreML 형식으로 내보내기 위한 코드를 살펴보기 전에, CoreML 모델이 일반적으로 어디에 사용되는지 알아보겠습니다.
CoreML은 다음과 같은 다양한 머신 러닝 모델 배포 옵션을 제공합니다.
-
온디바이스 배포: 이 방법은 CoreML 모델을 iOS 앱에 직접 통합합니다. 낮은 지연 시간, 향상된 프라이버시(데이터가 기기에 남기 때문), 오프라인 기능 보장에 특히 유리합니다. 그러나 이 방식은 기기 하드웨어 성능의 제한을 받을 수 있으며, 특히 더 크고 복잡한 모델의 경우 다음 두 가지 방식으로 실행될 수 있습니다.
-
내장 모델: 앱 번들에 포함되어 즉시 액세스할 수 있는 모델입니다. 빈번한 업데이트가 필요하지 않은 소형 모델에 적합합니다.
-
다운로드 모델: 필요할 때 서버에서 가져오는 모델입니다. 대형 모델이나 정기적인 업데이트가 필요한 모델에 적합합니다. 앱 번들 크기를 작게 유지하는 데 도움이 됩니다.
-
-
클라우드 기반 배포: CoreML 모델을 서버에 호스팅하고 iOS 앱에서 API 요청을 통해 액세스합니다. 이 확장 가능하고 유연한 옵션을 사용하면 앱 수정 없이도 쉽게 모델을 업데이트할 수 있습니다. 복잡한 모델이나 정기적인 업데이트가 필요한 대규모 앱에 이상적입니다. 하지만 인터넷 연결이 필요하며 지연 시간 및 보안 문제가 발생할 수 있습니다.
YOLO26 모델을 CoreML로 내보내기
YOLO26을 CoreML로 내보내면 Apple 생태계 내에서 최적화된 온디바이스 머신 러닝 성능을 구현할 수 있으며, 효율성, 보안, iOS, macOS, watchOS 및 tvOS 플랫폼과의 원활한 통합 측면에서 이점을 제공합니다.
설치
필수 패키지를 설치하려면 다음을 실행하세요.
# Install the required package for YOLO26
pip install ultralytics설치 과정과 관련된 자세한 지침 및 모범 사례는 YOLO26 설치 가이드를 확인하세요. YOLO26용 필수 패키지를 설치하는 동안 문제가 발생하면 일반 문제 가이드에서 해결책과 팁을 확인하세요.
사용법
사용 지침을 살펴보기 전에 Ultralytics에서 제공하는 다양한 YOLO26 모델을 확인하십시오. 이는 프로젝트 요구 사항에 가장 적합한 모델을 선택하는 데 도움이 됩니다.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to CoreML format
model.export(format="coreml") # creates 'yolo26n.mlpackage'
# Load the exported CoreML model
coreml_model = YOLO("yolo26n.mlpackage")
# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")내보내기 인수
| 인수(Argument) | 유형(Type) | 기본값(Default) | 설명 |
|---|---|---|---|
format | str | 'coreml' | 내보낸 모델의 대상 형식으로, 다양한 배포 환경과의 호환성을 정의합니다. |
imgsz | int 또는 tuple | 640 | 모델 입력에 필요한 이미지 크기입니다. 정사각형 이미지의 경우 정수를, 특정 크기의 경우 (height, width) 튜플을 사용할 수 있습니다. |
dynamic | bool | False | 동적 입력 크기를 허용하여 다양한 이미지 크기를 처리하는 유연성을 향상시킵니다. |
half | bool | False | FP16(반정밀도) 양자화를 활성화하여 모델 크기를 줄이고 지원되는 하드웨어에서 추론 속도를 높일 수 있습니다. |
int8 | bool | False | INT8 양자화를 활성화하여 모델을 추가로 압축하고, 주로 엣지 기기에서 정확도 손실을 최소화하면서 추론 속도를 높입니다. |
nms | bool | False | 정확하고 효율적인 탐지 후처리에 필수적인 NMS(Non-Maximum Suppression)를 추가합니다. |
batch | int | 1 | 내보낸 모델의 배치 추론 크기 또는 predict 모드에서 내보낸 모델이 동시에 처리할 최대 이미지 수를 지정합니다. |
device | str | None | 내보낼 기기를 지정합니다: GPU (device=0), CPU (device=cpu), Apple 실리콘용 MPS (device=mps). |
CoreML로 내보낼 때는 반드시 macOS 또는 x86 Linux 머신을 사용하세요.
내보내기 과정에 대한 자세한 내용은 Ultralytics 내보내기 설명서 페이지를 방문하세요.
내보낸 YOLO26 CoreML 모델 배포
Ultralytics YOLO26 모델을 CoreML로 성공적으로 내보낸 후, 다음으로 중요한 단계는 이러한 모델을 효과적으로 배포하는 것입니다. 다양한 환경에서 CoreML 모델을 배포하는 방법에 대한 자세한 지침은 다음 리소스를 확인하세요.
-
CoreML Tools: 이 가이드에는 TensorFlow, PyTorch 및 기타 라이브러리의 모델을 Core ML로 변환하는 지침과 예제가 포함되어 있습니다.
-
ML 및 Vision: CoreML 모델 사용 및 구현의 다양한 측면을 다루는 포괄적인 비디오 모음입니다.
-
앱에 Core ML 모델 통합하기: 모델 준비부터 다양한 기능을 위해 앱에 구현하는 단계까지, iOS 애플리케이션에 CoreML 모델을 통합하는 방법에 대한 포괄적인 가이드입니다.
요약
이 가이드에서는 Ultralytics YOLO26 모델을 CoreML 형식으로 내보내는 방법을 살펴보았습니다. 이 가이드에 설명된 단계를 따르면 YOLO26 모델을 CoreML로 내보낼 때 최대의 호환성과 성능을 보장할 수 있습니다.
사용에 대한 자세한 내용은 CoreML 공식 문서를 방문하세요.
또한 다른 Ultralytics YOLO26 통합에 대해 자세히 알고 싶으시면 통합 가이드 페이지를 방문하세요. 그곳에서 많은 귀중한 리소스와 통찰력을 얻을 수 있습니다.
FAQ
YOLO26 모델을 CoreML 형식으로 어떻게 내보내나요?
Ultralytics YOLO26 모델을 CoreML 형식으로 내보내려면 먼저 ultralytics 패키지가 설치되어 있는지 확인해야 합니다. 다음을 사용하여 설치할 수 있습니다.
pip install ultralytics다음으로 다음 Python 또는 CLI 명령을 사용하여 모델을 내보낼 수 있습니다.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="coreml")자세한 내용은 설명서의 YOLO26 모델을 CoreML로 내보내기 섹션을 참조하세요.
YOLO26 모델 배포에 CoreML을 사용할 때의 이점은 무엇인가요?
CoreML은 Apple 기기에서 Ultralytics YOLO26 모델을 배포할 때 다음과 같은 수많은 이점을 제공합니다.
- 온디바이스 처리: 기기에서 로컬 모델 추론을 가능하게 하여 데이터 프라이버시를 보장하고 지연 시간을 최소화합니다.
- 성능 최적화: 기기의 CPU, GPU 및 Neural Engine의 잠재력을 최대한 활용하여 속도와 효율성을 모두 최적화합니다.
- 간편한 통합: iOS, macOS, watchOS 및 tvOS를 포함한 Apple 생태계와의 원활한 통합 경험을 제공합니다.
- 범용성: CoreML 프레임워크를 사용하여 이미지 분석, 오디오 처리, 자연어 처리와 같은 광범위한 머신 러닝 작업을 지원합니다.
CoreML 모델을 iOS 앱에 통합하는 방법에 대한 자세한 내용은 앱에 Core ML 모델 통합하기 가이드를 확인하세요.
CoreML로 내보낸 YOLO26 모델의 배포 옵션은 무엇인가요?
YOLO26 모델을 CoreML 형식으로 내보내면 여러 가지 배포 옵션을 사용할 수 있습니다.
-
온디바이스 배포: 향상된 프라이버시와 오프라인 기능을 위해 CoreML 모델을 앱에 직접 통합합니다. 이 작업은 다음과 같이 수행될 수 있습니다.
- 내장 모델: 앱 번들에 포함되어 즉시 액세스할 수 있습니다.
- 다운로드 모델: 필요할 때 서버에서 가져오며, 앱 번들 크기를 작게 유지합니다.
-
클라우드 기반 배포: 서버에 CoreML 모델을 호스팅하고 API 요청을 통해 액세스합니다. 이 접근 방식은 더 쉬운 업데이트를 지원하며 더 복잡한 모델을 처리할 수 있습니다.
CoreML 모델 배포에 대한 자세한 지침은 CoreML 배포 옵션을 참조하세요.
CoreML은 YOLO26 모델의 최적화된 성능을 어떻게 보장하나요?
CoreML은 다양한 최적화 기술을 사용하여 Ultralytics YOLO26 모델의 성능을 최적화합니다.
- 하드웨어 가속: 효율적인 계산을 위해 기기의 CPU, GPU 및 Neural Engine을 사용합니다.
- 모델 압축: 정확도를 저하시키지 않으면서 모델의 설치 공간을 줄이기 위해 모델을 압축하는 도구를 제공합니다.
- 적응형 추론: 속도와 성능 간의 균형을 유지하기 위해 기기 성능에 따라 추론을 조정합니다.
성능 최적화에 대한 자세한 내용은 CoreML 공식 문서를 방문하세요.
내보낸 CoreML 모델로 직접 추론을 실행할 수 있나요?
네, 내보낸 CoreML 모델을 사용하여 직접 추론을 실행할 수 있습니다. 다음은 Python 및 CLI용 명령입니다.
from ultralytics import YOLO
coreml_model = YOLO("yolo26n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")추가 정보는 CoreML 내보내기 가이드의 사용 섹션을 참조하세요.