企业级安全保障: 符合 ISO 27001 + SOC 2 Type I 标准。

Link to this section针对 YOLO26 模型的 CoreML 导出#

Apple 在每一款现代 iPhone、iPad 和 Mac 中都配备了专用的 AI 芯片——Neural Engine,而 CoreML 是 Ultralytics 目前支持部署模型至该芯片的路径。将 Ultralytics YOLO26 模型导出为 CoreML,可将训练好的 .pt 检查点转换为原生的 .mlpackage,从而在设备端以低延迟运行全部七项 YOLO 任务,无需网络连接,且无需任何数据离开设备。

立即通过官方移动应用在 Apple Neural Engine 上运行 YOLO

官方的 Ultralytics YOLO iOS SDKFlutter plugin 可直接在 Apple Neural Engine 上运行 CoreML 导出模型——支持所有七项 YOLO26 任务(包括 Depth)的实时摄像头推理、单图预测以及自动模型下载。如需 Android NPU 部署,请参阅 Qualcomm QNN integration

Apple 未来的 Core AI 格式

Apple 已针对 iOS 27 和 macOS 27 版本引入了全新的 Core AI 框架及 .aimodel 格式。Ultralytics 的 Core AI 导出功能计划于 2026 年第四季度推出,目前尚不可用。CoreML 依然是当前 Ultralytics 版本及更广泛的 Apple 设备兼容性所支持的格式。



Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀

Link to this section什么是 CoreML?#

Apple CoreML deployment pipeline

CoreML(苹果称之为“Core ML”)是苹果的设备端 机器学习 框架。它以现代 ML Program 格式加载模型(即 Ultralytics 导出器生成的 .mlpackage 包),并将其调度到设备的 CPU、GPU 和 Apple Neural Engine (ANE)(每个苹果芯片中专用的 NPU)上。由于一切都在本地运行,因此推理可以离线进行,不会产生网络延迟,并将用户数据保留在设备上。

CoreML 直接与苹果的 Vision 框架 集成,该框架可在模型输入前处理图像缩放和方向——这也是 Ultralytics iOS SDK 如何以近乎零预处理成本将相机帧提供给 YOLO 的方式。

Link to this section为什么将 YOLO26 导出为 CoreML?#

  • Neural Engine 速度:YOLO26n 检测在 iPhone 17 Pro 上运行单张图像的端到端耗时为 3.8 ms,在持续实时摄像头使用中为 11.3 ms/帧;YOLO26n Depth 在处理单张图像时耗时 5.5 ms,在实时摄像头中为 16.5 ms/帧(见下表及注释)。
  • 原生无 NMS:YOLO26 是 端到端 的,因此导出的计算图无需 NMS 流水线,解码时间不到一毫秒。像 YOLO11 这样的旧款检测模型可以通过 nms=True 嵌入 CoreML NMS 流水线。
  • 隐私与离线:所有计算都保留在设备上——无需往返云端,无需 API 密钥,实现完全的 数据隐私
  • 一次导出,完整生态:相同的 .mlpackage 可在 iOS、iPadOS、macOS、watchOS、tvOS 和 visionOS 上运行,并支持官方的 Ultralytics iOS SDKFlutter 插件

Link to this section性能测试#

在 iPhone 17 Pro(Apple A19,iOS 26.5.2)上运行官方 YOLO26n INT8 CoreML 模型的端到端单图推理。每个单元格显示的是 总时间(预处理 + 推理 + 后处理,不含标注),下方则是各阶段的拆解耗时。在 iOS 上,Vision 会在推理请求内执行输入缩放,因此预处理被记录为 0,其开销已包含在推理中。

模型任务尺寸
(像素)
CPU
.cpuOnly
(ms)
Neural Engine
.cpuAndNeuralEngine
(ms)
YOLO26n检测6409.1
0.0 / 9.1 / 0.0
3.8
0.0 / 3.8 / 0.0
YOLO26n-seg分割64012.3
0.0 / 12.1 / 0.2
4.8
0.0 / 4.5 / 0.3
YOLO26n-sem语义1024121.8
0.0 / 21.0 / 0.8
12.1
0.0 / 11.3 / 0.8
YOLO26n-depthDepth64024.8
0.0 / 23.9 / 0.9
5.5
0.0 / 4.7 / 0.9
YOLO26n-cls分类2242.2
0.0 / 2.2 / 0.0
2.0
0.0 / 2.0 / 0.0
YOLO26n-pose姿态64012.0
0.0 / 11.9 / 0.0
3.8
0.0 / 3.8 / 0.0
YOLO26n-obbOBB102421.7
0.0 / 21.7 / 0.0
7.2
0.0 / 7.2 / 0.0
  • 1 语义化 CoreML 导出会在计算图中嵌入 ArgMax 并返回一个紧凑的全分辨率类别图([1, 1024, 1024])而非浮点 logits,因此后处理过程仅为亚毫秒级的色彩扫描,且掩码渲染呈现出像素级清晰度。
  • 速度值是指 单图突发延迟——在 bus.jpg 上进行 3 次预热运行后的 15 次运行平均值,通过 iOS SDK 的分阶段计时以及 Flutter plugin 在 profile 模式(优化过的原生代码)下的基准测试工具测得。持续的实时摄像头运行速度会更高,因为它包含了采集和缩放流水线以及热调节:在同一设备上的实时摄像头应用中,YOLO26n 检测测得为 11.3 ms/帧,而 YOLO26n Depth 为 16.5 ms/帧——请参阅 iOS SDK performance doc 以了解稳态性能分析。
  • 匹配的 Snapdragon CPU/GPU/NPU 表位于 Qualcomm QNN 集成 中。

Link to this section将 YOLO26 模型导出到 CoreML#

Link to this section安装#

要安装所需的软件包,请运行:

安装
# Install the required package for YOLO26
pip install ultralytics

coremltools 转换器在首次导出时自动安装。导出在 macOS 或 x86 Linux 上运行;有关详细说明和最佳实践,请查看我们的 安装指南常见问题指南

Link to this section用法#

CoreML 格式支持 导出预测验证 模式。CoreML 的推理和验证仅在 macOS 上运行。导出你的模型,然后加载已导出的模型进行推理或验证其准确性。

导出
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export to CoreML with INT8 weight quantization, matching 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导出参数#

参数类型默认值描述
formatstr'coreml'导出模型的目标格式,定义了与各种部署环境的兼容性。
imgszinttuple640模型输入的期望图像尺寸。可以是一个用于正方形图像的整数,或者是一个用于特定尺寸的元组 (height, width)
quantizeintstrNone量化精度(CoreML 仅限权重):16 (FP16)、8 (INT8)、"w8a16" (INT8 权重配合 FP16 激活) 或 32/未设置 (FP32)。未设置的 NMS ML Programs 在 Xcode 预览中使用 FP16;传入 32 可覆盖此设置。此项取代了已弃用的 half/int8 标志。
nmsboolFalse嵌入一个 CoreML NMS 流水线。仅限检测模型(对于其他任务将被忽略并发出警告);无 NMS 的 YOLO26 不需要此功能,请用于 YOLO11 等早期模型。
dynamicboolFalse允许动态输入尺寸,增强处理不同图像尺寸时的灵活性。
batchint1指定导出模型的推理批次大小,或导出模型在 predict 模式下并发处理的最大图像数量。
devicestrNone指定导出所用的设备:GPU (device=0)、CPU (device=cpu) 或 Apple 芯片的 MPS (device=mps)。

有关导出过程的更多详细信息,请访问 Ultralytics 导出文档页面

Link to this section针对 Neural Engine 进行优化#

CoreML 通过 MLModelConfiguration.computeUnits 选择硬件。Ultralytics iOS SDK 在 iOS 16+ 上默认使用 .cpuAndNeuralEngine 而不是 .all:在实时相机应用中,GPU 已经忙于合成预览和覆盖层,因此排除它可避免竞争和帧时间抖动,同时由 ANE 完成繁重的工作。仅在进行兼容性测试时使用 .cpuOnly——上表显示了其成本。

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 也很简单——用 MLModel 加载它,将其包装在 VNCoreMLRequest 中,然后通过 VNImageRequestHandler 馈送图像。这些资源涵盖了详细信息:

你可以选择将模型嵌入应用包(即时可用,非常适合 nano/small 模型)或者在首次运行时下载并缓存(二进制文件更小,易于模型更新)——官方应用使用第二种方法,结合 GitHub 发布资产

Link to this section推荐工作流程#

  1. 训练你的模型,使用 Ultralytics 训练模式,或从官方 YOLO26 权重开始。
  2. 在 macOS 或 x86 Linux 上使用 model.export(format="coreml", quantize=8) 进行导出
  3. 验证准确率,使用 Mac 上的 model.val(),并使用目标设备上的 Xcode Core ML 性能报告进行分析。
  4. 部署,使用 iOS SDK、Flutter 插件或你自己的 Vision 集成,并指定 .cpuAndNeuralEngine

Link to this section总结#

在本指南中,你学习了如何将 Ultralytics YOLO26 模型导出为 CoreML 的 .mlpackage 格式,为 Apple Neural Engine 进行量化,并以毫秒级的延迟进行部署——无论是通过官方 iOS SDK 和 Flutter 插件,还是你自己的 Vision 集成。对于其他部署目标,请浏览 集成指南页面,并使用 基准测试模式 比较不同格式。

Link to this section常见问题解答#

Link to this section如何将 YOLO26 模型导出为 CoreML 格式?#

在 macOS 或 x86 Linux 上,可以通过 Python 运行 model.export(format="coreml"),或使用 CLI 运行 yolo export model=yolo26n.pt format=coreml。添加 quantize=8 以匹配官方应用模型。导出将生成一个可用于 Xcode、iOS SDK 或 Flutter 插件的 yolo26n.mlpackage ML Program。

Link to this section导出 YOLO26 时我需要 nms=True 吗?#

不需要。YOLO26 是端到端无 NMS 的,因此导出的计算图已经可以直接输出最终检测结果,且解码成本远低于一毫秒。nms=True 选项仅为 YOLO11 等早期检测模型提供,以便在模型中嵌入 CoreML NMS 流水线,从而无需在你的应用中实现抑制逻辑。CoreML NMS 流水线仅支持目标检测,因此对于分割或姿态估计等其他任务,nms=True 将被忽略并发出警告。

Link to this section我应该使用哪种精度——FP16 还是 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 section我可以使用 Ultralytics CLI 运行和验证 CoreML 模型吗?#

可以,在 macOS 上:yolo predict model=yolo26n.mlpackage source=image.jpgyolo val model=yolo26n.mlpackage data=coco8.yaml 的工作方式与任何其他格式相同。CoreML 执行需要苹果硬件,因此这些模式在 Linux 和 Windows 上不可用。

Link to this section在 iOS 或 Flutter 应用中运行 YOLO26 的最快方法是什么?#

使用官方 Ultralytics YOLO iOS SDK (Swift Package) 或 Flutter 插件。两者都按名称加载官方模型并自动下载和缓存,在 Neural Engine 上运行它们,并包含完整的实时相机 UI——上表的测量性能正是通过此技术栈得出的。

评论