Arm Runtime for YOLO26 on Raspberry Pi 5

About

This runtime runs YOLO26n on Raspberry Pi 5 with Raspberry Pi OS Trixie. It is a fixed-graph implementation that uses model-specific memory planning, custom operators, and operator fusion to maximize throughput on the Raspberry Pi CPU.

The runtime supports the standard YOLO26n model and compatible fine-tuned variants at square resolutions of 320, 480, 640, 800, 960, and 1280 pixels.

Performance

The following YOLO26n results were measured on Raspberry Pi 5 at 640x640, batch 1, against the 128-image, 1,025-instance coco-128-by-sa published dataset revision. Inference time excludes preprocessing and postprocessing.

Runtime Inference (ms/image) mAP50-95
Arm Runtime (this project) 36.60 0.4863
NCNN 67.20 0.4902
MNN 90.90 0.4753
OpenVINO 102.00 0.4812
ONNX Runtime 126.90 0.4812
ExecuTorch 136.90 0.4880

See the performance baseline for the Arm Runtime measurement and host context.

Quick start

Prerequisites

On Raspberry Pi OS Trixie, install the required packages:

sudo apt update
sudo apt install --yes --no-install-recommends \
  ca-certificates \
  curl \
  git \
  libgl1 \
  libglib2.0-0t64 \
  make \
  patch \
  python3 \
  python3-venv \
  tar \
  gzip

Clone the repository:

git clone https://github.com/arm/Optimized-Runtimes.git
cd Optimized-Runtimes/yolo26-raspberry-pi-5

Run an example

Run object detection on a sample video using the standard YOLO26n checkpoint:

make example-video

For a fine-tuned checkpoint, your own video, or live camera input, see Usage.

Run the benchmark

Run the Ultralytics benchmark harness using this runtime:

make ultralytics-benchmark

See the Ultralytics benchmark documentation for configuration options.

Usage

Acquiring a runtime

A prebuilt runtime library is available from this repository's releases. The example and benchmark targets download the release matching the checked-out project version when no runtime exists under dist/runtime/.

To build the runtime from source, install the native build prerequisites:

sudo apt update
sudo apt install --yes --no-install-recommends \
  build-essential \
  ca-certificates \
  cmake \
  curl \
  git \
  patch \
  python3 \
  python3-venv \
  tar \
  gzip

Then run:

make runtime

The resulting runtime is installed under dist/runtime/, where the examples and benchmark consume it automatically.

Acquiring a model

The examples and benchmark require a YOLO26n checkpoint converted for this runtime. If the default model is absent, their Make targets download the pinned standard YOLO26n checkpoint and convert it automatically.

The benchmark normally uses the standard model because its classes match the default COCO dataset. To use a compatible fine-tuned checkpoint with the video or camera examples, convert it first:

make model CHECKPOINT=/path/to/your-checkpoint.pt

The default conversion uses 640x640 input and writes the model under dist/models/. Select another supported resolution with, for example:

make model CHECKPOINT=/path/to/your-checkpoint.pt RESOLUTION=320

Examples and benchmarks

The examples use the Python API. Their Make targets prepare missing default runtime and model artifacts automatically.

Other information

Run make help for other useful commands.

Project layout

  • src/converter/ - Converts compatible YOLO26n PyTorch checkpoints into the runtime model format.
  • src/runtime/ - Implements the fixed YOLO26n runtime.
  • src/runtime/patches/ - Contains project changes to XNNPACK and pthreadpool.
  • src/runtime/api/python/arm_yolo26n/ - Provides the Python API.
  • examples/ - Contains prerecorded-video and live-camera examples.
  • benchmarks/ultralytics/ - Integrates the runtime with the Ultralytics benchmark.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support