跳至内容

CoreML 导出YOLOv8 模型

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

CoreML 导出格式可以优化您的 Ultralytics YOLOv8模型,以便在iOS 和 macOS 应用程序中高效检测对象。在本指南中,我们将指导您完成将模型转换为CoreML 格式的步骤,使您的模型更容易在苹果设备上良好运行。

CoreML

CoreML 概述

CoreML是苹果公司的基础机器学习框架,以 Accelerate、BNNS 和 Metal Performance Shaders 为基础。它提供了一种机器学习模型格式,可无缝集成到iOS 应用程序中,并支持图像分析、自然语言处理、音频到文本转换和声音分析等任务。

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

CoreML 机型的主要特点

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

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

CoreML 支持的机型

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

  • 性能和优化:使用设备的CPU 、GPU 和神经引擎,以最小的功耗和内存占用实现最佳性能。提供用于模型压缩和优化的工具,同时保持精度。

  • 易于集成:为各种类型的模型提供统一格式,并提供用户友好的应用程序接口,可无缝集成到应用程序中。通过视觉和自然语言等框架支持特定领域的任务。

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

CoreML 部署选项

在我们查看导出代码之前 YOLOv8 模型到 CoreML 格式,让我们了解在哪里 CoreML 通常使用模型。

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

  • 在设备上部署:这种方法可将CoreML 模型直接集成到iOS 应用程序中。它在确保低延迟、增强隐私性(因为数据仍保留在设备上)和离线功能方面特别有优势。不过,这种方法可能会受到设备硬件能力的限制,尤其是对于较大和较复杂的模型。设备上部署可以通过以下两种方式进行。

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

    • 下载模型:这些模型根据需要从服务器获取。这种方法适用于较大的模型或需要定期更新的模型。它有助于缩小应用程序捆绑包的大小。

  • 基于云的部署:CoreML 模型托管在服务器上,由iOS 应用程序通过 API 请求访问。这种可扩展且灵活的方案可在不修改应用程序的情况下轻松更新模型。它是需要定期更新的复杂模型或大型应用程序的理想选择。不过,它需要互联网连接,可能会带来延迟和安全问题。

将YOLOv8 模型导出到CoreML

将YOLOv8 导出到CoreML 可在 Apple 生态系统内优化设备上的机器学习性能,在效率、安全性以及与iOS 、macOS、watchOS 和 tvOS 平台的无缝集成方面都有优势。

安装

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

安装

# Install the required package for YOLOv8
pip install ultralytics

有关安装过程的详细说明和最佳实践,请查阅我们的YOLOv8 安装指南。在安装YOLOv8 所需的软件包时,如果遇到任何困难,请查阅我们的常见问题指南,了解解决方案和技巧。

使用方法

在了解使用说明之前,请务必查看 Ultralytics 提供的一系列YOLOv8 型号。这将有助于您根据项目要求选择最合适的型号。

使用方法

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to CoreML format
model.export(format="coreml")  # creates 'yolov8n.mlpackage'

# Load the exported CoreML model
coreml_model = YOLO("yolov8n.mlpackage")

# Run inference
results = coreml_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to CoreML format
yolo export model=yolov8n.pt format=coreml  # creates 'yolov8n.mlpackage''

# Run inference with the exported model
yolo predict model=yolov8n.mlpackage source='https://ultralytics.com/images/bus.jpg'

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

部署导出的YOLOv8 CoreML 模型

成功将Ultralytics YOLOv8 模型导出到CoreML 后,下一个关键阶段是有效部署这些模型。有关在各种环境中部署CoreML 模型的详细指导,请查看这些资源:

  • CoreML 工具:本指南包括将模型从TensorFlow 、PyTorch 和其他库转换到 Core ML 的说明和示例。

  • 多语言和愿景:涵盖使用和实施CoreML 模型各个方面的综合视频集。

  • 将核心 ML 模型集成到应用程序中:将CoreML 模型集成到iOS 应用程序的全面指南,详细介绍了从准备模型到在应用程序中实现各种功能的步骤。

摘要

在本指南中,我们介绍了如何将Ultralytics YOLOv8 模型导出为CoreML 格式。按照本指南中概述的步骤,您可以在将YOLOv8 模型导出到CoreML 时确保最大的兼容性和性能。

有关使用的详细信息,请访问CoreML 官方文档

此外,如果您想了解有关Ultralytics YOLOv8 集成的更多信息,请访问我们的集成指南页面。您将在那里找到大量有价值的资源和见解。

常见问题

如何将YOLOv8 模型导出为CoreML 格式?

要导出您的 Ultralytics YOLOv8 CoreML 格式,首先需要确保您有 ultralytics 软件包已安装。您可以使用

安装

pip install ultralytics

接下来,您可以使用以下Python 或CLI 命令导出模型:

使用方法

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(format="coreml")
yolo export model=yolov8n.pt format=coreml

有关详细信息,请参阅我们文档中的 "将YOLOv8 模型导出到CoreML"部分。

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

CoreML 为在苹果设备上部署 Ultralytics YOLOv8在苹果设备上部署

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

有关将CoreML 模型集成到iOS 应用程序的详细信息,请查看将核心 ML 模型集成到应用程序的指南。

对于导出到CoreML 的YOLOv8 模型,有哪些部署选项?

将YOLOv8 模型导出为CoreML 格式后,就有了多种部署选项:

  1. 在设备上部署:直接将CoreML 模型集成到您的应用程序中,以增强隐私性和离线功能。可以通过以下方式实现

    • 嵌入式模型:包含在应用程序捆绑包中,可立即访问。
    • 下载模型:根据需要从服务器获取,从而减小应用程序捆绑包的大小。
  2. 基于云的部署:在服务器上托管CoreML 模型,并通过 API 请求进行访问。这种方法支持更简单的更新,并能处理更复杂的模型。

有关部署CoreML 型号的详细指导,请参阅CoreML 部署选项

CoreML 如何确保优化YOLOv8 型号的性能?

CoreML 通过利用各种优化技术 Ultralytics YOLOv8通过利用各种优化技术,确保模型的性能得到优化:

  • 硬件加速:利用设备的CPU 、GPU 和神经引擎进行高效计算。
  • 模型压缩:提供压缩模型的工具,在不影响精度的情况下减少模型的占用空间。
  • 自适应推理:根据设备能力调整推理,在速度和性能之间保持平衡。

有关性能优化的更多信息,请访问CoreML 官方文档

我可以直接使用导出的CoreML 模型进行推理吗?

是的,您可以直接使用导出的CoreML 模型运行推理。以下是Python 和CLI 的命令:

运行推理

from ultralytics import YOLO

coreml_model = YOLO("yolov8n.mlpackage")
results = coreml_model("https://ultralytics.com/images/bus.jpg")
yolo predict model=yolov8n.mlpackage source='https://ultralytics.com/images/bus.jpg'

有关其他信息,请参阅CoreML 导出指南中的 "使用 "部分



创建于 2024-02-07,更新于 2024-07-05
作者:glenn-jocher(6)、RizwanMunawar(1)、abirami-vina(1)

评论