Ultralytics logo # Ultralytics YOLO Rust Examples Rust crates.io docs.rs Ultralytics Docs Runnable examples for the [`ultralytics-inference`](https://crates.io/crates/ultralytics-inference) library. Each example is a single file you run with `cargo run --example`. They show how to load and run [Ultralytics YOLO26](https://docs.ultralytics.com/models/yolo26), [Ultralytics YOLO11](https://docs.ultralytics.com/models/yolo11), and [Ultralytics YOLOv8](https://docs.ultralytics.com/models/yolov8) models from Rust. > [!NOTE] > Model metadata (classes, task, image size) is read from the ONNX file, so Ultralytics YOLOv8, Ultralytics YOLO11, and Ultralytics YOLO26 models all work without extra configuration. Each example takes an optional image path and downloads a sample image when none is given. ## 📂 Examples | Example | Feature | Description | Run | | ----------------------- | ---------- | -------------------------------------------------------------------- | -------------------------------------------------- | | [basic](basic.rs) | none | Load a model, run inference, print detections | `cargo run --example basic` | | [config](config.rs) | none | Set confidence, IoU, image size, and device | `cargo run --example config` | | [tasks](tasks.rs) | none | Summary for every task, plus raw arrays for segment, semantic, depth | `cargo run --example tasks` | | [annotate](annotate.rs) | `annotate` | Draw boxes and labels, save the annotated image | `cargo run --example annotate --features annotate` | ## ✅ How to Run Run any example from the repository root. The model and a sample image are downloaded on first use, so a network connection is needed once. ```bash # Print detections for the sample image cargo run --example basic # Use your own image cargo run --example basic -- path/to/image.jpg # Set thresholds, image size, and device cargo run --example config # Annotate and save to runs/predict/annotated_*.jpg cargo run --example annotate --features annotate ``` The `tasks` example defaults to detection and works with the other tasks when you pass their model. The matching sample image is downloaded automatically. The segment, semantic, and depth branches also print the raw output array, which `ndarray` truncates with `...`: ```bash cargo run --example tasks # detect (default) cargo run --example tasks -- yolo26n-seg.onnx # segment cargo run --example tasks -- yolo26n-pose.onnx # pose cargo run --example tasks -- yolo26n-obb.onnx # obb cargo run --example tasks -- yolo26n-cls.onnx # classify cargo run --example tasks -- yolo26n-sem.onnx # semantic (Ultralytics YOLO26) cargo run --example tasks -- yolo26n-depth.onnx # depth (Ultralytics YOLO26) ``` The `basic` example prints one block per image: ```text Found 5 detections bus 0.93 [5.9 228.8 807.3 748.9] person 0.92 [46.7 398.6 237.0 901.8] person 0.90 [223.0 405.3 345.2 863.1] person 0.86 [668.6 391.2 810.0 879.7] person 0.51 [0.0 553.4 65.4 874.1] ``` The examples load `yolo26n.onnx`, downloading it on first use. To provide the model yourself, export it with the Ultralytics Python package. The command below writes `yolo26n.onnx` into the current directory, which the example then loads instead of downloading. The positional argument is still the input image: ```bash pip install ultralytics yolo export model=yolo26n.pt format=onnx cargo run --example basic -- image.jpg ``` To run a different model, change the model path in the example. ## 🤝 Contributing Contributions are welcome. See the [Ultralytics Contributing Guide](https://docs.ultralytics.com/help/contributing) for details. If you find an issue with an example or want to add one, open an issue or pull request on the [Ultralytics inference repository](https://github.com/ultralytics/inference).