适用于 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
),由于大小的原因,这些文件未包含在存储库中。要使用模型验证运行测试:
- Set
SKIP_MODEL_TESTS = false
in the relevant test files (e.g.,YOLOv11Tests.swift
).
在SKIP_MODEL_TESTS = false
相关测试文件中设置(例如YOLOv11Tests.swift
)。 - Download the required models from the Ultralytics releases or train your own using tools like Ultralytics HUB.
从 Ultralytics 版本下载所需的模型,或使用 Ultralytics HUB 等工具训练您自己的模型。 - Convert the models to CoreML format using the Ultralytics Python library's export function.
使用 Ultralytics Python 库的导出功能将模型转换为 CoreML 格式。 - Add the exported
.mlpackage
files to your Xcode project, ensuring they are included in the test targets.
将导出.mlpackage
的文件添加到您的 Xcode 项目中,确保它们包含在测试目标中。 - 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 🌟
相关文章:

适用于 iOS 的 开源Ultralytics YOLO:应用程序和 Swift 软件包,用于在您自己的 iOS 应用程序中运行 YOLO
一、软件介绍 文末提供程序和源码下载 该项目利用 Ultralytics 最先进的 YOLO11 模型将您的 iOS 设备转变为用于对象检测的强大实时推理工具。直接从 App Store 下载该应用程序,或浏览我们的指南,将 YOLO 功能集成到您自己的 Swift 应用程序中。 二、…...

Java零基础学习Day12——集合ArrayList
一、基本使用 1. 集合与数组 集合只存引用数据类型;长度可变 数组可存基本数据类型、引用数据类型;长度固定 2. 基本格式 ArrayList<String> list new ArrayList<>(); 3. 方法 增、删 import java.util.ArrayList; public class St…...

[论文阅读]Formalizing and Benchmarking Prompt Injection Attacks and Defenses
Formalizing and Benchmarking Prompt Injection Attacks and Defenses Formalizing and Benchmarking Prompt Injection Attacks and Defenses | USENIX 33rd USENIX Security Symposium (USENIX Security 24) 提出了一个框架来形式化提示注入攻击,对提示注入攻击…...
ffmpeg 写入avpacket时候,即av_interleaved_write_frame方法是如何不需要 业务层释放avpacket的 逻辑分析
我们在通过 av_interleaved_write_frame方法 写入 avpacket的时候,通常不需要关心 avpacket的生命周期。 本文分析一下内部实现的部分。 ----> 代表一个内部实现。 A(){ B(); C(); } B(){ D(); } 表示为: A ---->B(); ---->D(); ---->C(); int…...
目标检测中的IoU损失函数
目标检测中的IoU损失函数 目标检测中的IoU损失函数一、为什么需要IoU损失函数?二、常见IoU损失函数详解1. **IoU Loss**2. **GIoU Loss(Generalized IoU)**3. **DIoU Loss(Distance IoU)**4. **CIoU Loss(C…...
深入剖析 MyBatis 位运算查询:从原理到最佳实践
深入剖析 MyBatis 位运算查询:从原理到最佳实践 引言 在数据库设计中,位运算是一种高效存储和查询多选字段的常用技术。然而,在实际开发中,特别是在使用 MyBatis 这样的 ORM 框架时,位运算查询往往会遇到一些意想不到…...

JavaScript性能优化实战,从理论到落地的全面指南
在前端开发领域,JavaScript的性能优化是提升用户体验的核心环节。随着Web应用复杂度的提升,开发者面临的性能瓶颈也日益多样化。本文将从理论分析、代码实践和工具使用三个维度,系统性地讲解JavaScript性能优化的实战技巧,并通过大…...
第二个五年计划!
下一阶段!5年后!33岁!体重维持在125斤内!腰围74! 健康目标: 体检指标正常,结节保持较小甚至变小! 工作目标: 每年至少在一次考评里拿A(最高S,A我理…...
【行为型之中介者模式】游戏开发实战——Unity复杂系统协调与通信架构的核心秘诀
文章目录 🕊️ 中介者模式(Mediator Pattern)深度解析一、模式本质与核心价值二、经典UML结构三、Unity实战代码(成就系统协调)1. 定义中介者接口与同事基类2. 实现具体同事类3. 实现具体中介者4. 客户端使用 四、模式…...
分布式微服务系统架构第125集:AI大模型
加群联系作者vx:xiaoda0423 仓库地址:https://webvueblog.github.io/JavaPlusDoc/ https://1024bat.cn/ 一、user 表(用户表) sql 复制编辑 create table if not exists user (id bigint auto_increment comment id pri…...

MySQL 8.0 OCP 英文题库解析(三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题16~25 试题16:…...
MapReduce 模型
引言 MapReduce 是分布式计算领域的里程碑式模型,由 Google 在 2004 年论文中首次提出,旨在简化海量数据处理的复杂性。其核心思想是通过函数式编程的 Map (映射)和 Reduce (归约)阶段&#x…...

Docker容器启动失败?无法启动?
Docker容器无法启动的疑难杂症解析与解决方案 一、问题现象 Docker容器无法启动是开发者在容器化部署中最常见的故障之一。尽管Docker提供了丰富的调试工具,但问题的根源往往隐藏在复杂的配置、环境依赖或资源限制中。本文将从环境变量配置错误这一细节问题入手&am…...
mysql dump 导入导出用法
导出 指定库中指定的表 mysqldump -uroot -pmysql databasename table1 table2 > ./bak.sql 导入 mysql -uroot -p123456 databasename< ./bak.sql 导出指定数据库 mysqldump -uroot -p123456 databasename > ./databasename.sql 导入: mysql -uroot…...

MySQL 数据类型全面指南:从理论到实践
在数据库设计和开发中,数据类型的选择是构建高效、可靠系统的基石。MySQL作为最流行的关系型数据库之一,提供了丰富的数据类型以满足各种数据存储需求。本文将全面介绍MySQL的数据类型体系,通过理论讲解和实际示例,帮助开发者做出…...
第二课:ESP32 使用 PWM 渐变控制——实现模拟呼吸灯或音调变化
第二课:ESP32 使用 PWM 渐变控制——实现模拟呼吸灯或音调变化 🧠 一、PWM 占空比与亮度/音量控制原理 PWM(Pulse Width Modulation,脉宽调制)是一种常用的数字信号控制方式,广泛应用于 LED 灯光亮度、电…...
Quartus与Modelsim-Altera使用手册
目录 文章内容: 视频内容: Quartus: ModelSim: 顶层设计与子模块: 只是对所查阅的相关文章的总结与视频总结 文章内容: 这篇对基础操作很详细: 一、Quartus II软件的使用_quartus2软件上…...

uniapp(微信小程序)>关于父子组件的样式传递问题(自定义组件样式穿透)
在父组件中给子组件添加类名,子组件的样式由父组件决定 由于"微信小程序"存在【样式隔离机制】,且默认设置为isolated(启用样式隔离),因此这里给出以下两种解决方案: // 小程序编译机制 1. 当 <style scoped> 存在时&#…...

【HCIA】BFD
前言 前面我们介绍了浮动路由以及出口路由器的默认路由配置,可如此配置会存在隐患,就是出口路由器直连的网络设备并不是运营商的路由器,而是交换机。此时我们就需要感知路由器的存活状态,这就需要用到 BFD(Bidirectio…...

计算机视觉最不卷的方向:三维重建学习路线梳理
提到计算机视觉(CV),大多数人脑海中会立马浮现出一个字:“卷”。卷到什么程度呢?2022年秋招CV工程师岗位数下降了16%,但求职人数增加了23%,求职人数与招聘岗位的比例达到了恐怖的15:1࿰…...

android抓包踩坑记录
由于需要公司业务需求,需要抓取APP中摄像机插件的网络包,踩了两天坑,这里做个总结吧。 事先准备 android-studio emulatesdk 需要android模拟器和adb调试工具。如果已经有其他模拟器的话,可以只安装adb调试工具即可 mitmproxy…...

Webpack其他插件
安装html打包插件 const path require(path); const HtmlWebpackPlugin require(html-webpack-plugin) module.exports {entry: path.resolve(__dirname,src/login/index.js),output: {path: path.resolve(__dirname, dist),filename: ./login/index.js,clean:true},Plugin:…...
如何正确地写出单例模式
如何正确地写出单例模式 | Jarks Blog 枚举方式: public class SingletonObject {private SingletonObject() {}/*** 枚举类型是线程安全的,并且只会装载一次*/private enum Singleton {INSTANCE;private final SingletonObject instance;Singleton() {…...
常见相机焦段的分类及其应用
相机焦段是指镜头的焦距范围,决定了拍摄时的视角、画面范围和透视效果。不同焦段适合不同的拍摄场景和主题,以下是常见焦段的分类及其应用: 一、焦段的核心概念 焦距:镜头光学中心到成像传感器的距离(单位:…...

Python Matplotlib 库【绘图基础库】全面解析
让AI成为我们的得力助手:《用Cursor玩转AI辅助编程——不写代码也能做软件开发》 一、发展历程 Matplotlib 由 John D. Hunter 于 2003 年创建,灵感来源于 MATLAB 的绘图系统。作为 Python 生态中最早的可视化工具之一,它逐渐成为科学计算领…...

C++ string数据查找、string数据替换、string子串获取
string查找示例见下,代码见下,以及对应运行结果见下: #include<iostream>using namespace std;int main() {// 1string s1 "hellooooworld";cout << s1.find("oooo") << endl;// 2cout << (in…...
入侵检测SNORT系统部署过程记录
原理背景知识: 一、入侵检测系统介绍 1、入侵检测系统 入侵检测(Intrusion Detection) 指通过对计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。 入侵检测系统(IDS) 是从网络和系统中收集…...
使用 Java 反射动态加载和操作类
Java 的反射机制(Reflection)是 Java 语言的一大特色,它允许程序在运行时检查、加载和操作类、方法、字段等元信息。通过 java.lang.Class 和 java.lang.reflect 包,开发者可以动态加载类、创建实例、调用方法,甚至在运行时构造新类。反射是 Java 灵活性的核心,广泛应用于…...

关于甲骨文(oracle cloud)丢失MFA的解决方案
前两年,申请了一个招商的多币种信用卡,然后就从网上撸了一个oracle的免费1h1g的服务器。 用了一段时间,人家要启用MFA验证。 啥叫MFA验证,类似与短信验证吧,就是绑定一个手机,然后下载一个app,每…...
vue3项目中使用CodeMirror组件的详细教程,中文帮助文档,使用手册
简介 这是基于 Vue 3 开发的 CodeMirror 组件。该组件基于 CodeMirror 5 开发,仅支持 Vue 3。 除了支持官方提供的各种语法模式外,还额外添加了日志输出展示模式,开箱即用,但不一定适用于所有场景。 如需完整文档和更多使用案例…...