跳至内容

CoreML 导出YOLOv8 模型

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

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

CoreML

CoreML 概述

CoreML是 Apple 的基础机器学习框架,以 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 集成的更多信息,请访问我们的集成指南页面。您将在那里找到大量有价值的资源和见解。



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

评论