适用于 iOS 的 开源Ultralytics YOLO:应用程序和 Swift 软件包,用于在您自己的 iOS 应用程序中运行 YOLO

​一、软件介绍

文末提供程序和源码下载

       该项目利用 Ultralytics 最先进的 YOLO11 模型将您的 iOS 设备转变为用于对象检测的强大实时推理工具。直接从 App Store 下载该应用程序,或浏览我们的指南,将 YOLO 功能集成到您自己的 Swift 应用程序中。 

二、Ultralytics YOLO iOS 应用程序(主应用程序)

     主要的 iOS 应用程序允许使用设备的相机或图像库轻松进行实时对象检测。您只需将自定义 CoreML 模型拖放到应用程序中,即可轻松测试这些模型。

三、Swift 包(YOLO 库)

专为 iOS、iPadOS 和 macOS 设计的轻量级 Swift 软件包。它简化了基于 YOLO 的模型(如 YOLO11)在您自己的应用程序中的集成和使用。使用 SwiftUI 以最少的代码轻松集成 YOLO 模型:

// Perform inference on a UIImage
let result = model(uiImage)
// Use the built-in camera view for real-time detection
var body: some View {YOLOCamera(modelPathOrName: "yolo11n-seg", // Specify model name or pathtask: .segment,                // Define the task (detect, segment, classify, pose)cameraPosition: .back          // Choose camera (back or front)).ignoresSafeArea()
}

四、快速入门指南

首次在移动设备上使用 YOLO 或想要快速测试您的自定义模型?从主 YOLOiOSApp 开始。

  • Ultralytics YOLO iOS App (Main App): The easiest way to experience YOLO detection on iOS.
    Ultralytics YOLO iOS 应用程序(主应用程序):在 iOS 上体验 YOLO 检测的最简单方法。

Ready to integrate YOLO into your own project? Explore the Swift Package and example applications.
准备好将 YOLO 集成到您自己的项目中了吗?探索 Swift Package 和示例应用程序。

  • Swift Package (YOLO Library): Integrate YOLO capabilities into your Swift app.
    Swift 软件包(YOLO 库):将 YOLO 功能集成到您的 Swift 应用程序中。
  • Example Apps: See practical implementations using the YOLO Swift Package.
    示例应用程序:查看使用 YOLO Swift Package 的实际实现。

五、 主要亮点

  • Real-Time Inference: Achieve high-speed, high-accuracy object detection on iPhones and iPads using optimized CoreML models, potentially enhanced through techniques like model quantization.
    实时推理:使用优化的 CoreML 模型在 iPhone 和 iPad 上实现高速、高精度的对象检测,并可能通过模型量化等技术得到增强。
  • Multi-OS Support: The Swift Package is compatible with iOS, iPadOS, and macOS, enabling broad application deployment.
    多作系统支持:Swift 套件与 iOS、iPadOS 和 macOS 兼容,支持广泛的应用程序部署。
  • Flexible Tasks: Supports object detection, with segmentation, classification, pose estimation, and oriented bounding box (OBB) detection planned for future updates.
    灵活的任务:支持对象检测,并计划在未来更新中进行分割、分类、姿势估计和定向边界框 (OBB) 检测。

🧪 Testing Procedures 🧪 测试程序

This repository includes comprehensive unit tests for both the YOLO Swift Package and the example applications, ensuring code reliability and stability.
此存储库包括针对 YOLO Swift Package 和示例应用程序的全面单元测试,确保代码的可靠性和稳定性。

Running Tests 运行测试

Tests require CoreML model files (.mlpackage), which are not included in the repository due to their size. To run the tests with model validation:
测试需要 CoreML 模型文件 ( .mlpackage ),由于大小的原因,这些文件未包含在存储库中。要使用模型验证运行测试:

  1. Set SKIP_MODEL_TESTS = false in the relevant test files (e.g., YOLOv11Tests.swift).
    在 SKIP_MODEL_TESTS = false 相关测试文件中设置(例如 YOLOv11Tests.swift )。
  2. Download the required models from the Ultralytics releases or train your own using tools like Ultralytics HUB.
    从 Ultralytics 版本下载所需的模型,或使用 Ultralytics HUB 等工具训练您自己的模型。
  3. Convert the models to CoreML format using the Ultralytics Python library's export function.
    使用 Ultralytics Python 库的导出功能将模型转换为 CoreML 格式。
  4. Add the exported .mlpackage files to your Xcode project, ensuring they are included in the test targets.
    将导出 .mlpackage 的文件添加到您的 Xcode 项目中,确保它们包含在测试目标中。
  5. Run the tests using Xcode's Test Navigator (Cmd+U).
    使用 Xcode 的 Test Navigator (Cmd+U) 运行测试。

If you don't have the model files, you can still run tests by keeping SKIP_MODEL_TESTS = true. This will skip tests that require loading and running a model.
如果您没有模型文件,您仍然可以通过保留 SKIP_MODEL_TESTS = true 来运行测试。这将跳过需要加载和运行模型的测试。

Test Coverage 测试覆盖率

  • YOLO Swift Package: Includes tests for core functionalities like model loading, preprocessing, inference, and postprocessing across different tasks.
    YOLO Swift 软件包:包括对核心功能的测试,例如跨不同任务的模型加载、预处理、推理和后处理。
  • Example Apps: Contains tests verifying UI components, model integration, and real-time inference performance within the sample applications.
    示例应用程序:包含验证示例应用程序中的 UI 组件、模型集成和实时推理性能的测试。

Test Documentation 测试文档

Each test directory (e.g., Tests/YOLOTests) may include a README.md with specific instructions for testing that component, covering:
每个测试目录(例如) Tests/YOLOTests 可能包含一个 README.md ,其中包含用于测试该组件的具体说明,包括:

  • Required model files and where to obtain them.
    所需的模型文件以及获取它们的位置。
  • Steps for model conversion and setup.
    模型转换和设置的步骤。
  • Overview of the testing strategy.
    测试策略概述。
  • Explanation of key test cases.
    关键测试用例的解释。

六、软件下载

夸克网盘分享

本文信息来源于GitHub作者地址:GitHub - ultralytics/yolo-ios-app: Ultralytics YOLO iOS App source code for running YOLO in your own iOS apps 🌟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/905593.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js关于number类型的计算问题

js中关于number类型的计算 因:在js中,number类型是用于表示数值的基本类型,它遵循 IEEE 754 双精度浮点数(64 位)标准。这导致在某些计算中可能出现精度问题。 例:console.log(0.1 0.2); // 0.300000000…

RAG之大规模解析 PDF 文档全流程实战

PDF 文档在商业、学术和政府领域无处不在,蕴含着大量宝贵信息。然而,从 PDF 中提取结构化数据却面临着独特的挑战,尤其是在处理数千甚至数百万个文档时。本指南探讨了大规模解析 PDF 的策略和工具。 PDF解析挑战 PDF 的设计初衷是为了提供一致的视觉呈现,而非数据提取。这…

TypeScript:类

一、基本概念 TypeScript 类是基于 ES6 类的语法扩展,增加了类型注解和访问修饰符等特性,提供了更强大的面向对象编程能力。 二、基本语法 class Person {name: string;age: number;constructor(name: string, age: number) {this.name name;this.ag…

抢购Python代码示例与技术解析

引言:抢购系统的技术挑战 在当今电子商务高度发达的时代,抢购活动已成为各大电商平台吸引用户的重要手段。然而,高并发、低延迟的抢购场景对系统设计提出了严峻挑战。本文将提供一个完整的Python抢购代码示例,并深入分析其技术实…

实战分析Cpython逆向

Cpython逆向 Python代码转换为C代码的时候,将会大大增加框架代码量。 1、正向py->c 先有正向,再有逆向 pip install cython 写一个简单的pyx文件 .pyx 文件是由 Cython 编程语言 "编写" 而成的 Python 扩展模块源代码文件 print(&qu…

Modbus转IEC104网关(三格电子)

产品概述 Modbus转IE104网关型号SG-TCP-IEC104,是三格电子推出的工业级网关(以下简称网关),主要用于Modbus RTU/TCP/ASCII数据采集、DLT645-1997/2007数据采集,可接多功能电力仪表、温控仪、电表等,将采集…

智能工具协同赋能STEM教育科研|探索LLM大语言模型和数学软件Maple的创新实践

LLM 与 Maple:开启 STEM 教育科研新范式 在当今数字化浪潮下,教育与科研领域正面临着前所未有的变革机遇。大语言模型(LLM)的横空出世,为知识生成、问题求解等带来了全新思路;而数学软件 Maple 以其强大的…

专项智能练习(定义判断)_DA_01

1. 单选题 热传导是介质内无宏观运动时的传热现象,其在固体、液体和气体中均可发生。但严格而言,只有在固体中才是纯粹的热传导,在流体(泛指液体和气体)中又是另外一种情况,流体即使处于静止状态&#xff0…

pandas读取pymysql和解析excel的一系列问题(版本不匹配)

pandas读取pymysql和解析excel的一系列问题,大部分都是版本不匹配导致的 尤其是pandas,numpy,pymysql,openpyxl不匹配导致 from sqlalchemy import create_engine import numpy as np import pandas as pd conncreate_engine("mysqlpymysql://user:passhost:3…

【中级软件设计师】网络攻击(附软考真题)

【中级软件设计师】网络攻击(附软考真题) 目录 【中级软件设计师】网络攻击(附软考真题)一、历年真题二、考点:网络攻击1、拒绝服务攻击(DoS攻击)2、重放攻击3、特洛伊木马4、网络监听5、SQL注入…

20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤

20250515配置联想笔记本电脑IdeaPad总是使用独立显卡的步骤 2025/5/15 19:55 百度:intel 集成显卡 NVIDIA 配置成为 总是用独立显卡 百度为您找到以下结果 ?要将Intel集成显卡和NVIDIA独立显卡配置为总是使用独立显卡,可以通过以下步骤实现?&#xff…

【C++ | 内存管理】C++ 智能指针 std::shared_ptr 详解及使用例子代码

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

【CF】Day59——Codeforces Round 914 (Div. 2) D

D. Set To Max 题目: Easy 思路: 简单题 由于题目的数据给的很小,所以我们可以用 n 的复杂度过,那我们来观察一下我们应该怎么操作 显然,如果 a[i] > b[i] 时是无法构造的,同时 a[i] b[i] 时就不用管…

解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs- GPT源代码解析

解密企业级大模型智能体Agentic AI 关键技术:MCP、A2A、Reasoning LLMs- GPT源代码解析 我们可以稍微看一下, 这是我们GPT的基于它的源代码产生的可视化的内容。 这边是model ,我们在谈这个sampling的时候,本身首先就是说它这个probability distribution ,会有很多的参数…

AI 推理 | vLLM 快速部署指南

本文是 AI 推理系列的第一篇,近期将更新与 vLLM 的相关内容。本篇从 vLLM 的部署开始,介绍 vLLM GPU/CPU 后端的安装方式,后续将陆续讲解 vLLM 的核心特性,如 PD 分离、Speculative Decoding、Prefix Caching 等,敬请关…

Python-MCPInspector调试

Python-MCPInspector调试 使用FastMCP开发MCPServer,熟悉【McpServer编码过程】【MCPInspector调试方法】-> 可以这样理解:只编写一个McpServer,然后使用MCPInspector作为McpClient进行McpServer的调试 1-核心知识点 1-熟悉【McpServer编…

Linux 常用命令 -hostnamectl【主机名控制】

简介 hostnamectl 命令中的 “hostname” 顾名思义,指的是计算机在网络上的名称,“ctl” 是 “control” 的缩写,意味着控制。hostnamectl 命令用于查询和修改系统主机名以及相关的设置。它通过与 systemd 系统管理器交互,允许用…

力扣-二叉树-101 对称二叉树

思路 分解问题为,该节点的左孩子的左子树和右孩子的右子树是不是同一棵树 && 该节点的左孩子的右字数和右孩子的左子树是不是同一课树 && 该节点的左右孩子的值相不相同 代码 class Solution {public boolean isSymmetric(TreeNode root) {// 层…

Nginx技术方案【学习记录】

文章目录 1. 需求分析1.1 应用场景1.2 实现目标 2. Nginx反向代理与实现均衡负载2.1 部署架构2.2 架构描述2.2.1 Nginx代理服务器2.2.2 API服务器与API服务器(Backup)2.2.3 nginx.conf配置文件2.2.4 测试方法 3. 高速会话缓存技术3.1 问题背景3.2 使用 R…

Ubuntu22.04怎么退出Emergency Mode(紧急模式)

1.使用nano /etc/fstab命令进入fstab文件下; 2.将挂载项首行加#注释掉,修改完之后使用ctrlX退出; 3.重启即可退出紧急模式!