YOLO11 モデルの CoreML エクスポート
iPhoneやMacなどのAppleデバイスにコンピュータビジョンモデルをデプロイするには、シームレスなパフォーマンスを保証する形式が必要です。
見る: Ultralytics YOLO11をCoreMLにエクスポートしてAppleデバイスでの推論を2倍高速化する方法 🚀
CoreMLエクスポート形式を使用すると、iOSおよびmacOSアプリケーションでの効率的な物体検出のために、Ultralytics YOLO11モデルを最適化できます。このガイドでは、モデルをCoreML形式に変換する手順を説明し、モデルがAppleデバイスで優れたパフォーマンスを発揮しやすくします。
CoreML
CoreMLは、Accelerate、BNNS、およびMetal Performance Shadersを基盤とするAppleの基盤となる機械学習フレームワークです。iOSアプリケーションにシームレスに統合され、画像分析、自然言語処理、音声テキスト変換、サウンド分析などのタスクをサポートする機械学習モデル形式を提供します。
Core MLフレームワークはオンデバイスコンピューティングを使用しているため、アプリケーションはネットワーク接続やAPI呼び出しを必要とせずにCore MLを利用できます。これは、モデル推論をユーザーのデバイス上でローカルに実行できることを意味します。
CoreMLモデルの主な機能
AppleのCoreMLフレームワークは、オンデバイス機械学習のための堅牢な機能を提供します。CoreMLを開発者にとって強力なツールとする主な機能は次のとおりです。
- 包括的なモデルサポート: TensorFlow、PyTorch、scikit-learn、XGBoost、LibSVMなどの一般的なフレームワークのモデルを変換して実行します。
-
On-device Machine Learning: ネットワーク接続を必要とせずに、ユーザーのデバイス上で直接モデルを実行することにより、データのプライバシーと迅速な処理を保証します。
-
パフォーマンスと最適化: デバイスのCPU、GPU、およびNeural Engineを使用して、最小限の電力とメモリ使用量で最適なパフォーマンスを実現します。精度を維持しながら、モデルの圧縮と最適化のためのツールを提供します。
-
統合の容易さ: さまざまなモデルタイプに対応する統一された形式と、アプリへのシームレスな統合のためのユーザーフレンドリーなAPIを提供します。VisionやNatural Languageなどのフレームワークを通じて、ドメイン固有のタスクをサポートします。
-
高度な機能: パーソナライズされた体験のためのオンデバイス学習機能、インタラクティブなML体験のための非同期予測、モデル検査および検証ツールが含まれています。
CoreML のデプロイメントオプション
YOLO11モデルをCoreML形式にエクスポートするコードを見る前に、CoreMLモデルが通常どこで使用されるかを理解しましょう。
CoreML は、機械学習モデルにさまざまなデプロイメントオプションを提供します。以下を含みます。
-
On-Device Deployment: この方法は、CoreMLモデルをiOSアプリに直接統合します。これは、低遅延、強化されたプライバシー(データはデバイス上に残るため)、およびオフライン機能を確保する上で特に有利です。ただし、このアプローチは、特に大規模で複雑なモデルの場合、デバイスのハードウェア機能によって制限される場合があります。オンデバイスデプロイメントは、次の2つの方法で実行できます。
-
組み込みモデル: これらのモデルはアプリのバンドルに含まれており、すぐに利用できます。頻繁な更新を必要としない小規模なモデルに最適です。
-
ダウンロードされたモデル: これらのモデルは、必要に応じてサーバーから取得されます。このアプローチは、大規模なモデルや定期的な更新が必要なモデルに適しています。これにより、アプリのバンドルサイズを小さく保つことができます。
-
-
クラウドベースのデプロイメント: CoreMLモデルはサーバーでホストされ、APIリクエストを介してiOSアプリからアクセスされます。このスケーラブルで柔軟なオプションにより、アプリの改訂なしで簡単なモデル更新が可能です。複雑なモデルや、定期的な更新が必要な大規模アプリに最適です。ただし、インターネット接続が必要であり、レイテンシーとセキュリティの問題が発生する可能性があります。
YOLO11モデルをCoreMLへエクスポート
YOLO11をCoreMLにエクスポートすると、Appleのエコシステム内で最適化されたオンデバイス機械学習パフォーマンスが可能になり、効率、セキュリティ、およびiOS、macOS、watchOS、tvOSプラットフォームとのシームレスな統合の面でメリットが得られます。
インストール
必要なパッケージをインストールするには、以下を実行します:
インストール
# Install the required package for YOLO11
pip install ultralytics
インストールプロセスに関する詳細な手順とベストプラクティスについては、YOLO11インストールガイドを確認してください。YOLO11に必要なパッケージをインストールする際に問題が発生した場合は、一般的な問題ガイドで解決策とヒントを参照してください。
使用法
使用方法の説明に入る前に、Ultralyticsが提供するYOLO11モデルの範囲を必ず確認してください。これは、プロジェクトの要件に最適なモデルを選択するのに役立ちます。
使用法
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to CoreML format
model.export(format="coreml") # creates 'yolo11n.mlpackage'
# Load the exported CoreML model
coreml_model = YOLO("yolo11n.mlpackage")
# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to CoreML format
yolo export model=yolo11n.pt format=coreml # creates 'yolo11n.mlpackage''
# Run inference with the exported model
yolo predict model=yolo11n.mlpackage source='https://ultralytics.com/images/bus.jpg'
エクスポート引数
引数 | 種類 | デフォルト | 説明 |
---|---|---|---|
format |
str |
'coreml' |
エクスポートされたモデルのターゲット形式。さまざまなデプロイメント環境との互換性を定義します。 |
imgsz |
int または tuple |
640 |
モデル入力に必要な画像サイズ。正方形の画像の場合は整数、タプルの場合は (height, width) 特定の寸法の場合。 |
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ドキュメントページをご覧ください。
エクスポートされたYOLO11 CoreMLモデルのデプロイ
Ultralytics YOLO11 モデルを CoreML に正常にエクスポートしたら、次の重要な段階は、これらのモデルを効果的にデプロイすることです。さまざまな環境での CoreML モデルのデプロイに関する詳細なガイダンスについては、以下のリソースをご確認ください。
-
CoreML Tools: このガイドには、TensorFlow、PyTorch、およびその他のライブラリからCore MLにモデルを変換するための手順と例が含まれています。
-
MLとVision: CoreMLモデルの使用と実装のさまざまな側面を網羅した包括的なビデオ集です。
-
Core MLモデルをアプリケーションに統合する: CoreMLモデルをiOSアプリケーションに統合するための包括的なガイドです。モデルの準備から、さまざまな機能のためにアプリケーションに実装するまでの手順を詳細に説明します。
概要
このガイドでは、Ultralytics YOLO11モデルをCoreML形式にエクスポートする方法について説明しました。このガイドで概説されている手順に従うことで、YOLO11モデルをCoreMLにエクスポートする際の最大の互換性とパフォーマンスを確保できます。
使用方法の詳細については、CoreMLの公式ドキュメントをご覧ください。
また、Ultralytics YOLO11のその他の統合について詳しく知りたい場合は、統合ガイドページをご覧ください。貴重なリソースや洞察が多数掲載されています。
よくある質問
YOLO11モデルをCoreML形式にエクスポートするにはどうすればよいですか?
エクスポートするには Ultralytics YOLO11 モデルをCoreML形式に変換するには、まず以下があることを確認する必要があります。 ultralytics
パッケージがインストールされました。インストールするには、以下を使用します:
インストール
pip install ultralytics
次に、以下のpythonまたはCLIコマンドを使用して、モデルをエクスポートできます。
使用法
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="coreml")
yolo export model=yolo11n.pt format=coreml
詳細については、ドキュメントのYOLO11モデルのCoreMLへのエクスポートセクションを参照してください。
YOLO11 モデルのデプロイに CoreML を使用する利点は何ですか?
CoreML は、Apple デバイスに Ultralytics YOLO11 モデルをデプロイするために、数多くの利点を提供します。
- オンデバイス処理: デバイス上でのローカルなモデル推論を可能にし、データプライバシーを確保し、レイテンシを最小限に抑えます。
- パフォーマンスの最適化: デバイスのCPU、GPU、Neural Engineの潜在能力を最大限に活用し、速度と効率の両方を最適化します。
- 統合の容易さ: iOS、macOS、watchOS、tvOSを含む、Appleの ecosystem とのシームレスな統合体験を提供します。
- Versatility(汎用性): CoreMLフレームワークを使用して、画像解析、音声処理、自然言語処理など、幅広い機械学習タスクをサポートします。
CoreMLモデルをiOSアプリに統合する方法の詳細については、Core MLモデルをアプリに統合するのガイドを確認してください。
CoreMLにエクスポートされたYOLO11モデルのデプロイオプションは何ですか?
YOLO11モデルをCoreML形式にエクスポートすると、複数のデプロイオプションがあります:
-
On-Device Deployment: 強化されたプライバシーとオフライン機能のために、CoreMLモデルをアプリに直接統合します。これは、次の方法で実行できます。
- 組み込みモデル: アプリバンドルに含まれており、すぐにアクセスできます。
- ダウンロードされたモデル: 必要に応じてサーバーから取得され、アプリのバンドルサイズを小さく保ちます。
-
クラウドベースのデプロイメント: CoreMLモデルをサーバーでホストし、APIリクエストを介してアクセスします。このアプローチは、より簡単な更新をサポートし、より複雑なモデルを処理できます。
CoreMLモデルのデプロイに関する詳細なガイダンスについては、CoreMLデプロイメントオプションを参照してください。
CoreMLはYOLO11モデルの最適化されたパフォーマンスをどのように保証しますか?
CoreML は、さまざまな最適化手法を利用して、Ultralytics YOLO11 モデルの最適化されたパフォーマンスを保証します。
- ハードウェアアクセラレーション: 効率的な計算のために、デバイスのCPU、GPU、およびNeural Engineを使用します。
- モデル圧縮:精度を損なうことなく、モデルを圧縮してフットプリントを削減するためのツールを提供します。
- 適応型推論: デバイスの機能に基づいて推論を調整し、速度とパフォーマンスのバランスを維持します。
パフォーマンスの最適化の詳細については、CoreMLの公式ドキュメントをご覧ください。
エクスポートされたCoreMLモデルで直接推論を実行できますか?
はい、エクスポートされたCoreMLモデルを使用して直接推論を実行できます。以下は、pythonおよびCLIのコマンドです。
推論の実行
from ultralytics import YOLO
coreml_model = YOLO("yolo11n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolo11n.mlpackage source='https://ultralytics.com/images/bus.jpg'
追加情報については、CoreMLエクスポートガイドの使用方法セクションを参照してください。