Link to this sectionYOLO26モデルのCoreMLエクスポート#
Appleはすべての最新のiPhone、iPad、およびMacに専用のAIシリコンであるNeural Engineを搭載しており、CoreMLはそのプログラミングのための唯一の手段です。Ultralytics YOLO26モデルをCoreMLにエクスポートすると、学習済みの.ptチェックポイントがネイティブの.mlpackageに変換され、6つのYOLOタスクすべてをデバイス上でミリ秒単位の速度で実行できます。ネットワーク接続は不要で、データがデバイスから外部へ流出することもありません。
公式のUltralytics YOLO iOS SDKおよびFlutterプラグインは、CoreMLエクスポートをApple Neural Engineでそのまま実行可能です。リアルタイムカメラ推論、単一画像予測、および6つのYOLO26タスクすべてに対応した自動モデルダウンロード機能を提供します。Android NPUでのデプロイについては、Qualcomm QNNインテグレーションを参照してください。
Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀
Link to this sectionCoreMLとは何ですか?#
CoreML(Appleによる表記は「Core ML」)は、Appleのデバイス上での機械学習フレームワークです。Ultralyticsエクスポート機能が生成する.mlpackageバンドルである最新のML Program形式でモデルを読み込み、デバイスのCPU、GPU、およびすべてのAppleシリコンチップに搭載された専用NPUである**Apple Neural Engine (ANE)**にタスクをスケジュールします。すべてがローカルで動作するため、推論はオフラインで機能し、ネットワーク遅延が発生せず、ユーザーデータはデバイス内に留まります。
CoreMLは、AppleのVisionフレームワークと直接統合されており、モデルへの入力時の画像スケーリングや回転を処理します。これが、Ultralytics iOS SDKが実質的に前処理コストゼロでカメラフレームをYOLOに供給する仕組みです。
Link to this sectionなぜYOLO26をCoreMLにエクスポートするのですか?#
- Neural Engineの速度: YOLO26nの検出は、iPhone 17 Proでの単一画像においてエンドツーエンドで3.8ミリ秒、持続的なリアルタイムカメラ使用時では約16ミリ秒/フレームで実行されます(以下の表と注記を参照)。アプリの残りの処理のための余裕を残しつつ、快適なリアルタイム性能を発揮します。
- NMS不要の設計: YOLO26はエンドツーエンドであるため、エクスポートされたグラフにNMSパイプラインは不要で、デコードはサブミリ秒単位です。YOLO11のような古いモデルでは、
nms=Trueを使用してCoreML NMSパイプラインを埋め込むことができます。 - プライバシーとオフライン動作: すべての計算がデバイス上で完結するため、クラウドへの通信やAPIキーは不要であり、完全なデータプライバシーが保持されます。
- 一度のエクスポートでエコシステム全体に対応: 同じ
.mlpackageがiOS、iPadOS、macOS、watchOS、tvOS、visionOSで動作し、公式のUltralytics iOS SDKおよびFlutterプラグインを支えています。
Link to this section測定されたパフォーマンス#
iPhone 17 Pro(Apple A19、iOS 26.5)における公式YOLO26n INT8 CoreMLモデルの単一画像エンドツーエンド推論。各セルは合計時間(前処理 + 推論 + 後処理、アノテーションを除く)を示し、その下に各ステージの内訳が記載されています。iOSでは、Visionが推論リクエスト内で入力スケーリングを実行するため、前処理は0と報告され、そのコストは推論に含まれます。
| モデル | タスク | サイズ (ピクセル) | CPU.cpuOnly(ms) | Neural Engine.cpuAndNeuralEngine(ms) |
|---|---|---|---|---|
| YOLO26n | Detect(検出) | 640 | 9.1 0.0 / 9.1 / 0.0 | 3.8 0.0 / 3.8 / 0.0 |
| YOLO26n-seg | Segment(セグメンテーション) | 640 | 12.3 0.0 / 12.1 / 0.2 | 4.8 0.0 / 4.5 / 0.3 |
| YOLO26n-sem | セマンティック | 10241 | 21.8 0.0 / 21.0 / 0.8 | 12.1 0.0 / 11.3 / 0.8 |
| YOLO26n-cls | Classify(分類) | 224 | 2.2 0.0 / 2.2 / 0.0 | 2.0 0.0 / 2.0 / 0.0 |
| YOLO26n-pose | Pose(姿勢推定) | 640 | 12.0 0.0 / 11.9 / 0.0 | 3.8 0.0 / 3.8 / 0.0 |
| YOLO26n-obb | OBB(指向性バウンディングボックス) | 1024 | 21.7 0.0 / 21.7 / 0.0 | 7.2 0.0 / 7.2 / 0.0 |
- 1 セマンティックCoreMLエクスポートはArgMaxをグラフ内に埋め込み、浮動小数点ロジットの代わりにコンパクトなフル解像度のクラスマップ(
[1, 1024, 1024])を返すため、ポストプロセスはサブミリ秒のカラースイープとなり、マスクはピクセル単位でシャープにレンダリングされます。 - Speedの値は単一画像のバーストレイテンシであり、
bus.jpgに対して3回のウォームアップ実行後の15回の実行平均値です。これは、iOS SDKの段階的タイミング計測を通じ、Flutterプラグインのベンチマークハーネスをプロファイルモード(最適化されたネイティブコード)で測定したものです。持続的なリアルタイムカメラ動作はより高い値になります(毎フレームのフルセンサーレターボクシングと熱的安定化を含む):YOLO26nの検出は、同じデバイス上のライブカメラアプリにおいて約16ms/フレームを記録します。定常状態のプロファイリングについては、iOS SDKパフォーマンスドキュメントを参照してください。 - 対応するSnapdragonのCPU/GPU/NPUの表については、Qualcomm QNNインテグレーションを参照してください。
Link to this sectionYOLO26モデルをCoreMLにエクスポートする#
Link to this sectionインストール#
必要なパッケージをインストールするには、以下を実行してください:
# Install the required package for YOLO26
pip install ultralyticscoremltoolsコンバーターは初回エクスポート時に自動的にインストールされます。エクスポートはmacOSまたはx86 Linuxで実行されます。詳細な手順とベストプラクティスについては、インストールガイドおよび共通の問題ガイドを確認してください。
Link to this section使用方法#
CoreML形式はExport、Predict、およびValidateモードをサポートしています。CoreMLを使用した推論と検証はmacOSでのみ動作します。モデルをエクスポートした後、エクスポートされたモデルを読み込んで推論を実行するか、精度を検証してください。
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export to CoreML (FP16 by default); quantize=8 matches the official app models
model.export(format="coreml", quantize=8) # creates 'yolo26n.mlpackage'from ultralytics import YOLO
# Load the exported CoreML model (macOS)
model = YOLO("yolo26n.mlpackage")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported CoreML model (macOS)
model = YOLO("yolo26n.mlpackage")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Link to this sectionエクスポートの引数#
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
format | str | 'coreml' | エクスポートするモデルのターゲット形式。さまざまなデプロイ環境との互換性を定義します。 |
imgsz | intまたはtuple | 640 | モデル入力用の希望する画像サイズ。正方形画像の場合は整数、特定の寸法の場合はタプル(height, width)を指定できます。 |
quantize | int または str | None | 量子化精度(CoreMLでは重みのみ):16 (FP16)、8 (INT8)、"w8a16" (INT8の重みとFP16の活性化関数)、または32/未設定 (FP32)。非推奨となったhalf/int8フラグを置き換えます。 |
nms | bool | False | CoreML NMSパイプラインを埋め込みます。NMSフリーのYOLO26には不要ですが、YOLO11のような旧モデルで使用します。 |
dynamic | bool | False | 動的な入力サイズを許可し、さまざまな画像次元を扱う際の柔軟性を高めます。 |
batch | int | 1 | エクスポートされたモデルのバッチ推論サイズ、あるいはpredictモードで同時に処理する画像の最大数を指定します。 |
device | str | None | エクスポート用のデバイスを指定します。GPU (device=0)、CPU (device=cpu)、Appleシリコン用MPS (device=mps)など。 |
エクスポートプロセスの詳細については、Ultralyticsのエクスポートに関するドキュメントページを参照してください。
Link to this sectionNeural Engineをターゲットにする#
CoreML chooses hardware via MLModelConfiguration.computeUnits. The Ultralytics iOS SDK defaults to .cpuAndNeuralEngine on iOS 16+ rather than .all: in a real-time camera app the GPU is already busy compositing the preview and overlays, so excluding it avoids contention and frame-time jitter while the ANE does the heavy lifting. Pin .cpuOnly only for compatibility testing — the table above shows what it costs.
Running a CoreML model from Python on a Mac host (via Ultralytics or coremltools) follows the same rule: Ultralytics loads with ComputeUnit.CPU_AND_NE (macOS 13+, falling back to CPU_ONLY on older macOS), keeping inference on the Neural Engine (~3× faster than CPU). This also avoids a current macOS host limitation where the default ComputeUnit.ALL / CPU_AND_GPU — which add the GPU/MPSGraph compile path — abort the process with an Error: MLIR pass manager failed assertion on coremltools 9.x.
Link to this sectionエクスポートされたYOLO26 CoreMLモデルをデプロイする#
最も高速なパスは公式のUltralytics YOLO iOS SDKを使用することです。これはUltralytics iOSアプリとFlutterプラグインを駆動するのと同じSwiftパッケージです。公式モデル名を自動的に解決し、.mlpackageをダウンロードしてキャッシュし、完全にデコードされた結果を返します。
import UltralyticsYOLO
// Loads the official INT8 model (downloaded and cached on first use), then runs inference
let yolo = YOLO("yolo26n", task: .detect) { result in
if case .success(let model) = result {
let results = model(uiImage) // boxes, labels, confidences, timing
}
}カメラアプリの場合は、SDKのYOLOViewを組み込んでネイティブオーバーレイ付きのリアルタイム推論を行うか、Androidとコードベースを共有するクロスプラットフォームアプリにはFlutterプラグインを使用してください。
生の.mlpackageを直接統合することもAppleのスタックを使えば簡単です。MLModelで読み込み、VNCoreMLRequestでラップし、VNImageRequestHandlerを通して画像を供給します。以下のリソースで詳細を確認できます。
- Integrating a Core ML Model into Your App: CoreMLモデルをバンドルし、呼び出すためのAppleのガイド。
- CoreML Tools: このエクスポートを支える
coremltoolsツールチェーンの変換、量子化、および最適化に関するリファレンス。 - Xcode Core ML Performance Reports: 使用するモデルとデバイスに合わせたレイヤーごとのデバイス配置とレイテンシのプロファイリング。
モデルはアプリバンドルに埋め込む(即時利用可能、ナノ/小型モデルに最適)か、初回実行時にダウンロードしてキャッシュする(バイナリを小さく保ち、モデル更新が容易)形で提供します。公式アプリはGitHubリリースアセットを用いた後者のアプローチを採用しています。
Link to this section推奨されるワークフロー#
- Ultralytics Trainモードでモデルをトレーニングするか、公式のYOLO26ウェイトから開始してください。
- macOSまたはx86 Linuxで
model.export(format="coreml", quantize=8)を使用してエクスポートします。 - Macで
model.val()を使用して精度をVerify(検証)し、ターゲットデバイス上でXcode Core MLパフォーマンスレポートを使用してプロファイルを作成します。 - iOS SDK、Flutterプラグイン、または独自のVision統合を使用して
.cpuAndNeuralEngineをターゲットにしてDeploy(デプロイ)します。
Link to this section要約#
このガイドでは、Ultralytics YOLO26モデルをCoreMLの.mlpackage形式にエクスポートし、Apple Neural Engine向けに量子化し、ミリ秒単位のレイテンシでデプロイする方法を学習しました。他のデプロイターゲットについてはインテグレーションガイドページを参照し、Benchmarkモードで形式を比較してください。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionYOLO26モデルをCoreML形式にエクスポートするにはどうすればよいですか?#
Pythonでmodel.export(format="coreml")を実行するか、macOSまたはx86 LinuxのCLIからyolo export model=yolo26n.pt format=coremlを実行します。公式アプリモデルと合わせるにはquantize=8を追加してください。エクスポートにより、Xcode、iOS SDK、またはFlutterプラグインで使用可能なyolo26n.mlpackage ML Programが生成されます。
Link to this sectionYOLO26をエクスポートする際に nms=True は必要ですか?#
いいえ。YOLO26はエンドツーエンドでNMSフリーであるため、エクスポートされたグラフは既に最終的な検出結果を出力しており、デコードコストも1ミリ秒を大幅に下回っています。nms=TrueオプションはYOLO11のような旧モデル向けに存在しており、アプリ側で抑制処理を実装しなくても済むようにCoreML NMSパイプラインを埋め込むものです。
Link to this sectionFP16とINT8のどちらの精度を使用すべきですか?#
公式のUltralyticsアプリモデルはINT8で提供されており、ダウンロードサイズを最小化し、上の表の速度で実行されます。quantize=16(FP16)は、精度の損失が実質的にない保守的な代替案です。配布前に、Mac上でmodel.val()を使用して、エクスポートされたモデルを検証してください。
Link to this section推論がNeural Engine上で確実に実行されるようにするにはどうすればよいですか?#
MLModelConfiguration.computeUnits = .cpuAndNeuralEngine を設定してください(iOS 16以降のiOS SDKデフォルトです)。カメラアプリで .all を使用することは避けてください。GPUはプレビューの合成で忙しく、推論をそこにスケジュールするとフレームタイミングのジッターが発生します。Xcode Core MLパフォーマンスレポートで配置を確認してください。
Link to this sectionUltralytics CLIでCoreMLモデルを実行および検証できますか?#
はい、macOS上で可能です。yolo predict model=yolo26n.mlpackage source=image.jpg および yolo val model=yolo26n.mlpackage data=coco8.yaml は他の形式と同様に動作します。CoreMLの実行にはApple製ハードウェアが必要なため、これらのモードはLinuxやWindowsでは使用できません。
Link to this sectioniOSまたはFlutterアプリでYOLO26を動作させる最も速い方法は何ですか?#
公式のUltralytics YOLO iOS SDK(Swiftパッケージ)またはFlutterプラグインを使用してください。どちらも公式モデルを名前で読み込み、自動ダウンロードとキャッシュを行い、Neural Engine上で実行し、完全なリアルタイムカメラUIを含んでいます。上記の測定パフォーマンス表は、まさにこのスタックで作成されました。