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などのフレームワークを通じて、ドメイン固有のタスクをサポートします。
-
高度な機能: パーソナライズされた体験のためのデバイス上のトレーニング機能、インタラクティブな機械学習体験のための非同期予測、モデルの検査および検証ツールが含まれています。
CoreMLのデプロイオプション
YOLO26モデルをCoreMLフォーマットにエクスポートするためのコードを確認する前に、CoreMLモデルが通常どこで使用されるかを理解しておきましょう。
CoreMLは機械学習モデルに対して、以下のようなさまざまなデプロイオプションを提供しています。
-
デバイス上でのデプロイ: この手法では、CoreMLモデルをiOSアプリに直接統合します。低レイテンシの保証、強化されたプライバシー(データがデバイス内に留まるため)、オフライン機能にとって特に有利です。ただし、このアプローチはデバイスのハードウェア性能に制限される可能性があり、特に大規模で複雑なモデルには注意が必要です。以下の2つの方法で実行できます。
-
埋め込みモデル: これらのモデルはアプリバンドルに含まれており、すぐにアクセス可能です。頻繁な更新を必要としない小さなモデルに最適です。
-
ダウンロード型モデル: これらのモデルは必要に応じてサーバーから取得されます。このアプローチは、より大きなモデルや定期的な更新が必要なモデルに適しています。アプリバンドルのサイズを小さく保つのに役立ちます。
-
-
クラウドベースのデプロイ: CoreMLモデルをサーバーでホストし、APIリクエストを介してiOSアプリからアクセスします。このスケーラブルで柔軟なオプションにより、アプリのリビジョンなしでモデルを簡単に更新できます。複雑なモデルや定期的な更新が必要な大規模アプリに最適です。ただし、インターネット接続が必要であり、レイテンシやセキュリティの問題が発生する可能性があります。
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")エクスポート引数
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
format | str | 'coreml' | エクスポートされたモデルのターゲットフォーマット。さまざまなデプロイ環境との互換性を定義します。 |
imgsz | int または tuple | 640 | モデル入力に希望する画像サイズ。正方形の画像の場合は整数、特定の寸法のタプル (height, width) で指定できます。 |
dynamic | bool | False | 動的な入力サイズを許可し、さまざまな画像寸法の処理における柔軟性を高めます。 |
half | bool | False | FP16(半精度)量子化を有効にし、モデルサイズを削減し、サポートされているハードウェア上での推論を高速化する可能性があります。 |
int8 | bool | False | INT8量子化をアクティブにし、主にエッジデバイス向けに、精度の損失を最小限に抑えながらモデルをさらに圧縮し、推論を高速化します。 |
nms | bool | False | Non-Maximum Suppression(NMS)を追加します。これは、正確で効率的な検出後処理に不可欠です。 |
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 and Vision: CoreMLモデルの使用および実装のさまざまな側面を網羅する、包括的なビデオ集です。
-
Integrating a Core ML Model into Your App: 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アプリに統合する詳細については、Integrating a Core ML Model into Your Appのガイドをご覧ください。
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エクスポートガイドの使用法セクションを参照してください。