Welcome to the Ultralytics YOLO iOS App GitHub repository! 📖 Leveraging Ultralytics' advanced YOLO11 object detection models, this app transforms your iOS device into an intelligent detection tool. Explore our guide to get started with the Ultralytics YOLO iOS App and discover the world in a new and exciting way.
Getting started with the Ultralytics YOLO iOS App is straightforward. Follow these steps to install the app on your iOS device.
Ensure you have the following before you start:
-
Xcode: The Ultralytics YOLO iOS App requires Xcode installed on your macOS machine. Download it from the Mac App Store.
-
An iOS Device: For testing the app, you'll need an iPhone or iPad running iOS 14.0 or later. Note: trained models can only work on iPhone or iPad running iOS 17.0 or later.
-
An Apple Developer Account: A free Apple Developer account will suffice for device testing. Sign up here if you haven't already.
-
Clone the Repository:
git clone https://github.com/ultralytics/yolo-ios-app.git
-
Open the Project in Xcode:
Navigate to the cloned directory and open the
YOLO.xcodeproj
file.In Xcode, go to the project's target settings and choose your Apple Developer account under the "Signing & Capabilities" tab.
-
Add YOLO11 Models to the Project:
Since the YOLO CoreML models are not versioned in this repository, you'll need to either:
-
Create them by exporting your trained models to CoreML INT8 models using the
ultralytics
Python package (withpip install ultralytics
).from ultralytics import YOLO # Load a trained YOLO11 PyTorch model model = YOLO("path/to/your/trained/model.pt") # Export the PyTorch model to CoreML INT8 format with NMS layers # The imgsz property may be adjusted when you export a trained model model.export(format="coreml", int8=True, nms=True, imgsz=640)
-
Download the base models from our GitHub release assets.
from ultralytics import YOLO # Loop through all YOLO11 model sizes and exclude any trained models from the loop for size in ("n", "s", "m", "l", "x"): # Load a base YOLO11 PyTorch model model = YOLO(f"yolo11{size}.pt") # Export the PyTorch model to CoreML INT8 format with NMS layers model.export(format="coreml", int8=True, nms=True)
You should have 5 YOLO11 models in total. Place these in the
YOLO/Models
directory as seen in the Xcode screenshot below. -
-
Run the Ultralytics YOLO iOS App:
Connect your iOS device and select it as the run target. Press the Run button to install the app on your device.
The Ultralytics YOLO iOS App is designed to be intuitive:
- Real-Time Detection: Launch the app and aim your camera at objects to detect them instantly.
- Multiple AI Models: Select from a range of Ultralytics YOLO11 models, from YOLO11n 'nano' to YOLO11x 'x-large'.
We warmly welcome your contributions to Ultralytics' open-source projects! Your support and contributions significantly impact. Get involved by reviewing our Contributing Guide, and share your feedback through our Survey. A massive thank you 🙏 to everyone who contributes!
Ultralytics offers two licensing options:
-
AGPL-3.0 License: An OSI-approved open-source license, perfect for academics, researchers, and enthusiasts. It encourages sharing knowledge and collaboration. See the LICENSE file for details.
-
Enterprise License: Designed for commercial use, this license permits integrating Ultralytics software into proprietary products and services. For commercial use, please contact us through Ultralytics Licensing.
- Submit Ultralytics bug reports and feature requests via GitHub Issues.
- Join our Discord for assistance, questions, and discussions with the community and team!