Link to this section针对 YOLO26 模型的 CoreML 导出#
在 iPhone 和 Mac 等 Apple 设备上部署 计算机视觉 模型,需要一种能够确保流畅性能的格式。
Watch: How to Export Ultralytics YOLO26 to CoreML for 2x Fast Inference on Apple Devices 🚀
CoreML 导出格式允许你优化 Ultralytics YOLO26 模型,以便在 iOS 和 macOS 应用程序中实现高效的 目标检测。在本指南中,我们将指导你完成将模型转换为 CoreML 格式的步骤,从而使你的模型更容易在 Apple 设备上获得出色的表现。
Link to this sectionCoreML#
CoreML 是 Apple 的基础机器学习框架,它构建于 Accelerate、BNNS 和 Metal Performance Shaders 之上。它提供了一种能够无缝集成到 iOS 应用程序中的机器学习模型格式,并支持图像分析、自然语言处理、音频转文本转换和声音分析等任务。
应用程序可以在无需网络连接或 API 调用即的情况下利用 Core ML,因为 Core ML 框架通过设备端计算工作。这意味着模型推理可以在用户的设备上本地执行。
Link to this sectionCoreML 模型的主要功能#
Apple 的 CoreML 框架为设备端机器学习提供了强大的功能。以下是使 CoreML 成为开发者强大工具的关键特性:
- 全面的模型支持:转换并运行来自 TensorFlow、PyTorch、scikit-learn、XGBoost 和 LibSVM 等流行框架的模型。
-
设备端 机器学习:通过直接在用户的设备上执行模型,确保数据隐私并实现快速处理,无需网络连接。
-
性能与优化:利用设备的 CPU、GPU 和 Neural Engine 来获得最佳性能,同时最大限度地减少功耗和内存使用。提供模型压缩和优化工具,同时保持 精度。
-
易于集成:为各种模型类型提供了统一的格式,并为无缝集成到应用程序中提供了用户友好的 API。通过 Vision 和 Natural Language 等框架支持特定领域的任务。
-
高级功能:包括用于个性化体验的设备端训练功能、用于交互式 ML 体验的异步预测,以及模型检查和验证工具。
Link to this sectionCoreML 部署选项#
在查看将 YOLO26 模型导出到 CoreML 格式的代码之前,让我们先了解一下 CoreML 模型通常在何处使用。
CoreML 为机器学习模型提供了多种部署选项,包括:
-
设备端部署:此方法将 CoreML 模型直接集成到你的 iOS 应用中。它在确保低延迟、增强隐私(因为数据保留在设备上)和离线功能方面特别有优势。然而,这种方法可能会受到设备硬件能力的限制,尤其是对于更大、更复杂的模型,并且可以通过以下两种方式执行:
-
嵌入式模型:这些模型包含在应用程序包中,可立即访问。它们非常适合不需要频繁更新的小型模型。
-
下载模型:这些模型根据需要从服务器获取。此方法适用于大型模型或需要定期更新的模型。它有助于保持应用程序包的大小较小。
-
-
基于云的部署:CoreML 模型托管在服务器上,并通过 API 请求由 iOS 应用访问。这种可扩展且灵活的选项支持在不修改应用的情况下轻松更新模型。它非常适合复杂模型或需要定期更新的大型应用。但是,它确实需要互联网连接,并可能带来延迟和安全问题。
Link to this section将 YOLO26 模型导出到 CoreML#
将 YOLO26 导出到 CoreML 可以在 Apple 生态系统中实现优化的设备端机器学习性能,在效率、安全性和与 iOS、macOS、watchOS 和 tvOS 平台的无缝集成方面提供益处。
Link to this section安装#
要安装所需的包,请运行:
# Install the required package for YOLO26
pip install ultralytics有关与安装过程相关的详细说明和最佳实践,请查看我们的 YOLO26 安装指南。在安装 YOLO26 所需的包时,如果你遇到任何困难,请查阅我们的 常见问题指南 以获取解决方案和提示。
Link to this section用法#
在深入了解用法说明之前,请务必查看 Ultralytics 提供的系列 YOLO26 模型。这将帮助你为项目需求选择最合适的模型。
CoreML 格式支持 导出、预测 和 验证 模式。使用 CoreML 的推理和验证仅在 macOS 上运行。导出你的模型,然后加载导出的模型以运行推理或验证其精度。
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to CoreML format
model.export(format="coreml") # creates 'yolo26n.mlpackage'from ultralytics import YOLO
# Load the exported CoreML model
model = YOLO("yolo26n.mlpackage")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported CoreML model
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)。 |
dynamic | bool | False | 允许动态输入大小,增强处理不同图像尺寸的灵活性。 |
half | bool | False | 启用 FP16(半精度)量化,减小模型大小并可能在受支持的硬件上加快推理速度。 |
int8 | bool | False | 激活 INT8 量化,进一步压缩模型并以最小的 精度 损失加快推理速度,主要适用于边缘设备。 |
nms | bool | False | 添加非极大值抑制 (NMS),这对准确高效的检测后处理至关重要。 |
batch | int | 1 | 指定导出模型的批量推理尺寸,或导出模型在 predict 模式下并发处理的最大图像数量。 |
device | str | None | 指定导出的设备:GPU (device=0)、CPU (device=cpu)、用于 Apple 芯片的 MPS (device=mps)。 |
导出到 CoreML 时,请确保使用 macOS 或 x86 Linux 机器。
有关导出过程的更多详细信息,请访问 Ultralytics 关于导出的文档页面。
Link to this section部署导出的 YOLO26 CoreML 模型#
成功将你的 Ultralytics YOLO26 模型导出到 CoreML 后,下一个关键阶段是有效地部署这些模型。有关在各种环境中部署 CoreML 模型的详细指南,请查看以下资源:
-
CoreML Tools:本指南包含将模型从 TensorFlow、PyTorch 和其他库转换为 Core ML 的说明和示例。
-
ML 和 Vision:一系列涵盖使用和实现 CoreML 模型各个方面的综合视频。
-
将 Core ML 模型集成到你的应用中:一份关于将 CoreML 模型集成到 iOS 应用程序中的综合指南,详细介绍了从准备模型到将其实现到应用程序中以实现各种功能的步骤。
Link to this section摘要#
在本指南中,我们介绍了如何将 Ultralytics YOLO26 模型导出到 CoreML 格式。通过遵循本指南中概述的步骤,你可以确保在将 YOLO26 模型导出到 CoreML 时实现最大的兼容性和性能。
有关用法的更多详细信息,请访问 CoreML 官方文档。
此外,如果你想了解有关其他 Ultralytics YOLO26 集成的更多信息,请访问我们的 集成指南页面。你将在那里找到大量宝贵的资源和见解。
Link to this section常见问题解答 (FAQ)#
Link to this section如何将 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 部分。
Link to this section使用 CoreML 部署 YOLO26 模型有什么好处?#
CoreML 为在 Apple 设备上部署 Ultralytics YOLO26 模型提供了诸多优势:
- 设备端处理:实现设备上的本地模型推理,确保 数据隐私 并最大限度地减少延迟。
- 性能优化:充分利用设备的 CPU、GPU 和 Neural Engine 的潜力,优化速度和效率。
- 易于集成:提供与 Apple 生态系统(包括 iOS、macOS、watchOS 和 tvOS)的无缝集成体验。
- 多功能性:支持使用 CoreML 框架进行广泛的机器学习任务,如图像分析、音频处理和自然语言处理。
有关将 CoreML 模型集成到 iOS 应用中的更多详细信息,请查看 将 Core ML 模型集成到你的应用中 指南。
Link to this section导出到 CoreML 的 YOLO26 模型有哪些部署选项?#
将 YOLO26 模型导出为 CoreML 格式后,你有多种部署选项:
-
设备端部署:将 CoreML 模型直接集成到你的应用中,以增强隐私性和离线功能。这可以通过以下方式完成:
- 嵌入式模型:包含在应用包中,可立即访问。
- 下载模型:根据需要从服务器获取,使应用包保持较小体积。
-
基于云的部署:在服务器上托管 CoreML 模型并通过 API 请求访问它们。这种方法支持更轻松的更新,并且可以处理更复杂的模型。
有关部署 CoreML 模型的详细指南,请参阅 CoreML 部署选项。
Link to this sectionCoreML 如何确保 YOLO26 模型的优化性能?#
CoreML 通过利用各种优化技术来确保 Ultralytics YOLO26 模型的优化性能:
- 硬件加速:使用设备的 CPU、GPU 和 Neural Engine 进行高效计算。
- 模型压缩:提供用于压缩模型的工具,以在不影响精度的情况下减小其占用空间。
- 自适应推理:根据设备的能力调整推理,以保持速度和性能之间的平衡。
有关性能优化的更多信息,请访问 CoreML 官方文档。
Link to this section我可以直接使用导出的 CoreML 模型运行推理吗?#
是的,你可以直接使用导出的 CoreML 模型运行推理。以下是 Python 和 CLI 的命令:
from ultralytics import YOLO
coreml_model = YOLO("yolo26n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")有关更多信息,请参阅 CoreML 导出指南的 用法部分。