SkillAgentSearch skills...

Yolo Ios App

Ultralytics YOLO iOS app and Swift package for real-time Core ML inference across major computer vision tasks.

Install / Use

npx skills add ultralytics/yolo-ios-app

Installs into whichever agent you are using.

README

<a href="https://www.ultralytics.com/"><img src="https://raw.githubusercontent.com/ultralytics/assets/main/logo/Ultralytics_Logotype_Original.svg" width="320" alt="Ultralytics logo"></a>

English | 简体中文

🚀 Ultralytics YOLO for iOS: App and Swift Package

Ultralytics Actions CI codecov CocoaPods

Ultralytics Discord Ultralytics Forums Ultralytics Reddit

Ultralytics YOLO for iOS provides on-device real-time inference for object detection, instance segmentation, semantic segmentation, depth estimation, classification, pose estimation, and oriented bounding box detection. The SDK supports both YOLO11 (with Core ML NMS) and YOLO26 models (NMS-free, with Swift-side postprocessing). Download the app from the App Store, or integrate the Swift package into your own applications.

<div align="center"> <br> <a href="https://apps.apple.com/app/ultralytics-yolo/id1452689527" target="_blank"><img width="100%" src="https://github.com/user-attachments/assets/d5dab2e7-f473-47ce-bc63-69bef89ba52a" alt="Ultralytics YOLO iOS App previews"></a> <br> <br> <a href="https://apps.apple.com/app/ultralytics-yolo/id1452689527" style="text-decoration:none;"> <img src="https://raw.githubusercontent.com/ultralytics/assets/main/app/app-store.svg" width="15%" alt="Apple App store"></a> &nbsp;&nbsp; <a href="https://play.google.com/store/apps/details?id=com.ultralytics.yolo" style="text-decoration:none;"> <img src="https://raw.githubusercontent.com/ultralytics/assets/main/app/google-play.svg" width="15%" alt="Get it on Google Play"></a> </div>

✨ Features

  • Swift and Core ML throughout, running on the Apple Neural Engine and GPU
  • Camera-rate (~30 FPS) real-time inference on recent iPhones — see docs/performance.md for on-device profiling
  • Native UI following Apple interface guidelines
  • YOLO26 (NMS-free) and YOLO11 models both supported
  • No third-party dependencies — pure Swift on Apple's first-party frameworks

| Feature | iOS | Details | | ------------------------------------- | --- | --------------------------------------------- | | Object Detection | ✅ | Bounding boxes, labels, and confidence scores | | Instance Segmentation | ✅ | Instance masks with boxes and classes | | Semantic Segmentation | ✅ | Dense per-pixel class maps | | Depth Estimation | ✅ | Dense metric depth maps | | Image Classification | ✅ | Top class predictions and scores | | Pose Estimation | ✅ | Keypoints with boxes and confidence scores | | Oriented Bounding Box (OBB) Detection | ✅ | Rotated boxes and polygon corners |

📂 Repository Content

This repository contains two components for running YOLO models on Apple platforms (Edge AI):

Ultralytics YOLO iOS App (Main App)

The primary iOS application allows easy real-time YOLO inference using your device's camera or image library. The shipped app bundles all seven official nano Core ML models, larger variants download on demand, and you can also test your custom Core ML models by adding them to the app project.

Swift Package (YOLO Library)

A lightweight Swift package designed for iOS and iPadOS. It handles model loading, inference, and postprocessing for YOLO models like YOLO26 in your own applications, with a few lines of SwiftUI:

// Perform inference on a UIImage
let result = model(uiImage)
// Use the built-in camera view for real-time inference with a model bundled in your app
var body: some View {
    YOLOCamera(
        modelPathOrName: "yolo26n-seg",
        task: .segment,
        cameraPosition: .back
    )
    .ignoresSafeArea()
}

📦 Official Model Assets

Official models are GitHub release assets, not large files committed to the repositories. The main iOS app downloads the seven nano Core ML assets at build time and bundles them into the app; larger app models, the Swift package's YOLO(url:) loading, and Flutter package assets download official models on first use and cache them locally.

The main YOLOiOSApp bundles all seven nano models (one per task: detect, segment, semantic, depth, classify, pose, OBB) into the shipped app, including App Store/archive builds. They are downloaded at build time from the GitHub release assets by a Download YOLO Models Xcode build phase that runs scripts/download-models.sh — the .mlpackage files are never committed to the repo (*.mlpackage is gitignored). The step is idempotent and is skipped on GitHub Actions CI, which runs the same script in its own step.

| Runtime asset | Used by | Release | | ----------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------ | | Core ML int8 .mlpackage.zip | iOS app, Swift package, Flutter on iOS/macOS | yolo-ios-app v8.3.0 | | LiteRT w8a32 .tflite | Flutter on Android | yolo-flutter-app v0.6.6 |

URL patterns:

  • Core ML: https://github.com/ultralytics/yolo-ios-app/releases/download/v8.3.0/<model>.mlpackage.zip
  • LiteRT: https://github.com/ultralytics/yolo-flutter-app/releases/download/v0.6.6/<model>_w8a32.tflite

The iOS app registry is RemoteModels.swift. It enumerates YOLO26 n/s/m/l/x assets for detect, segment, semantic, depth, classify, pose, and OBB and points each model ID at the v8.3.0 Core ML release. The Core ML column below is owned by this repo; the LiteRT column summarizes the Flutter repo's Android export script and release assets.

| Property | Core ML | LiteRT | | -------------- | --------------------------------------- | --------------------------------------- | | Model IDs | yolo26{n,s,m,l,x} | yolo26{n,s,m,l,x} | | Tasks | detect, seg, sem, depth, cls, pose, obb | detect, seg, sem, depth, cls, pose, obb | | Format | .mlpackage.zip | .tflite | | quantize | 8 | w8a32 | | imgsz | 224 cls; 640 others | 224 cls; 640 others | | nms | False | False | | end2end | False cls/sem/depth; True others | False | | Calibration | exporter default | None (dynamic-range) | | Postprocessing | Swift/Core ML | Android native |

Core ML assets use nms=False. Detect, segment, pose, and OBB use end2end=True; classification, semantic, and depth use end2end=False. The LiteRT export script passes both nms=False and end2end=False; end2end=False disables the YOLO26 end-to-end head for the Android LiteRT conversion path.

Core ML Release Workflow

The published v8.3.0 binary dimensions are recorded above. The export script scripts/export-models.py defines the official exports, int8 Core ML settings, .mlpackage.zip packaging, the optional local app-copy step, and optional GitHub release upload. If its export matrix changes, replace the generated assets in v8.3.0 and update this table together.

uv venv --python 3.13 .venv
uv pip install -e "../ultralytics[export]"
uv run python scripts/export-models.py

Useful variants:

# Export only nano task models for local validation and copy them into YOLOiOSApp

Related Skills

View on GitHub
GitHub Stars498
CategoryDevelopment
Updated2d ago
Forks98

Languages

Swift

Security Score

100/100

Audited on Aug 6, 2026

No findings