针对 YOLO26 模型的 CoreML 导出

在 iPhone 和 Mac 等 Apple 设备上部署计算机视觉模型,需要一种能够确保无缝性能的格式。



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

CoreML 导出格式允许你针对 iOS 和 macOS 应用程序优化 Ultralytics YOLO26 模型,以实现高效的目标检测。在本指南中,我们将带你完成将模型转换为 CoreML 格式的步骤,从而让你更轻松地在 Apple 设备上运行模型。

CoreML

Apple CoreML deployment pipeline

CoreML 是 Apple 的基础机器学习框架,构建在 Accelerate、BNNS 和 Metal Performance Shaders 之上。它提供了一种可无缝集成到 iOS 应用程序中的机器学习模型格式,并支持图像分析、自然语言处理、语音转文字和声音分析等任务。

应用程序无需网络连接或 API 调用即可利用 Core ML,因为 Core ML 框架通过设备端计算工作。这意味着模型推理可以在用户的设备上本地执行。

CoreML 模型的主要功能

Apple 的 CoreML 框架为设备端机器学习提供了强大的功能。以下是使 CoreML 成为开发者强大工具的关键特性:

  • 全面的模型支持:转换并运行来自 TensorFlow、PyTorch、scikit-learn、XGBoost 和 LibSVM 等流行框架的模型。

CoreML supported deep learning frameworks

  • 设备端机器学习:通过直接在用户设备上执行模型,确保数据隐私和快速处理,无需网络连接。

  • 性能与优化:利用设备的 CPU、GPU 和 Neural Engine 以最低的功耗和内存占用实现最佳性能。提供模型压缩和优化工具,同时保持准确性

  • 易于集成:为各种模型类型提供统一格式,并提供用于无缝集成到应用程序中的用户友好型 API。通过 Vision 和 Natural Language 等框架支持特定领域的任务。

  • 高级功能:包括用于个性化体验的设备端训练能力、用于交互式 ML 体验的异步预测,以及模型检查和验证工具。

CoreML 部署选项

在查看将 YOLO26 模型导出为 CoreML 格式的代码之前,我们先了解一下 CoreML 模型通常的使用场景。

CoreML 为机器学习模型提供了多种部署选项,包括:

  • 设备端部署:此方法将 CoreML 模型直接集成到你的 iOS 应用中。它对于确保低延迟、增强隐私(因为数据保留在设备上)和离线功能特别有利。然而,这种方法可能会受到设备硬件能力的限制,对于更大、更复杂的模型尤其如此,并且可以通过以下两种方式执行:

    • 嵌入式模型:这些模型包含在应用包中,可立即访问。它们非常适合不需要频繁更新的小型模型。

    • 下载式模型:这些模型根据需要从服务器获取。此方法适用于大型模型或需要定期更新的模型。它有助于减小应用包的大小。

  • 云端部署: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")

导出参数

参数类型默认值描述
formatstr'coreml'导出模型的目标格式,定义与各种部署环境的兼容性。
imgszinttuple640模型输入的所需图像尺寸。可以是正方形图像的整数,也可以是特定维度的元组 (height, width)
dynamicboolFalse允许动态输入大小,提高了处理不同图像尺寸的灵活性。
halfboolFalse启用 FP16(半精度)量化,减小模型大小并可能在受支持的硬件上加快推理速度。
int8boolFalse激活 INT8 量化,进一步压缩模型并以极小的准确性损失加快推理速度,主要适用于边缘设备。
nmsboolFalse添加非极大值抑制(NMS),这对于准确且高效的检测后处理至关重要。
batchint1指定导出模型的批量推理大小,或者导出模型在 predict 模式下将同时处理的最大图像数量。
devicestrNone指定导出的设备: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 模型集成到你的应用中:一份关于将 CoreML 模型集成到 iOS 应用程序中的综合指南,详细介绍了从准备模型到为各种功能在应用程序中实现它的步骤。

总结

在本指南中,我们介绍了如何将 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 部分。

使用 CoreML 部署 YOLO26 模型有什么好处?

CoreML 为在 Apple 设备上部署 Ultralytics YOLO26 模型提供了诸多优势:

  • 设备端处理:支持在设备上进行本地模型推理,确保数据隐私并最大限度地减少延迟。
  • 性能优化:充分利用设备的 CPU、GPU 和 Neural Engine 的潜力,同时优化速度和效率。
  • 易于集成:提供与 Apple 生态系统(包括 iOS、macOS、watchOS 和 tvOS)的无缝集成体验。
  • 多功能性:支持使用 CoreML 框架进行图像分析、音频处理和自然语言处理等多种机器学习任务。

有关将 CoreML 模型集成到 iOS 应用中的更多详细信息,请查看 将 Core ML 模型集成到你的应用中 指南。

导出到 CoreML 的 YOLO26 模型有哪些部署选项?

一旦你将 YOLO26 模型导出为 CoreML 格式,你就有多种部署选项:

  1. 设备端部署:直接将 CoreML 模型集成到你的应用中,以增强隐私性和离线功能。这可以通过以下方式完成:

    • 嵌入式模型:包含在应用包中,可立即访问。
    • 下载式模型:根据需要从服务器获取,使应用包体积更小。
  2. 云端部署:在服务器上托管 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 导出指南的 用法部分

评论