Are you sure you want to delete this access key?
This repository provides a Rust demo showcasing key Ultralytics YOLO series tasks such as Classification, Segmentation, Detection, Pose Estimation, and Oriented Bounding Box (OBB) detection using the ONNXRuntime. It supports various YOLO models (v5 through 11) across multiple computer vision tasks.
Classification
, Segmentation
, Detection
, Pose
, and OBB
.FP16
and FP32
precision ONNX models.CPU
, CUDA, CoreML, and TensorRT.batch
, width
, and height
dimensions for flexible model input.DataLoader
component handles images, folders, videos, and real-time video streams.Viewer
provides real-time frame visualization and video export functions, similar to OpenCV’s imshow()
and imwrite()
.Annotator
facilitates comprehensive result rendering, supporting bounding boxes (HBB), oriented bounding boxes (OBB), polygons, masks, keypoints, and text labels.Option 1: Manual Linking
ORT_DYLIB_PATH
environment variable, pointing to the downloaded library file:
# Example path, replace with your actual path
export ORT_DYLIB_PATH=/path/to/onnxruntime/lib/libonnxruntime.so.1.19.0
Option 2: Automatic Download
--features auto
flag with Cargo to let the build script handle downloading the library automatically:
cargo run -r --example yolo --features auto
12.x
.12.x
and NVIDIA TensorRT 10.x
. Ensure cuDNN is also correctly installed.To enable viewing video frames and saving video inferences, install the rust-ffmpeg
crate's dependencies. Follow the instructions provided here:
https://github.com/zmwangx/rust-ffmpeg/wiki/Notes-on-building#dependencies
Run the examples using Cargo. The --
separates Cargo arguments from the example's arguments.
# Run a custom model (e.g., YOLOv8 detection)
cargo run -r -- --task detect --ver v8 --nc 6 --model path/to/your/model.onnx
# Classify examples
cargo run -r -- --task classify --ver v5 --scale s --width 224 --height 224 --nc 1000 # YOLOv5 Classification
cargo run -r -- --task classify --ver v8 --scale n --width 224 --height 224 --nc 1000 # YOLOv8 Classification
cargo run -r -- --task classify --ver v11 --scale n --width 224 --height 224 --nc 1000 # YOLO11 Classification
# Detect examples
cargo run -r -- --task detect --ver v5 --scale n # YOLOv5 Detection
cargo run -r -- --task detect --ver v6 --scale n # YOLOv6 Detection
cargo run -r -- --task detect --ver v7 --scale t # YOLOv7 Detection
cargo run -r -- --task detect --ver v8 --scale n # YOLOv8 Detection
cargo run -r -- --task detect --ver v9 --scale t # YOLOv9 Detection
cargo run -r -- --task detect --ver v10 --scale n # YOLOv10 Detection
cargo run -r -- --task detect --ver v11 --scale n # YOLO11 Detection
cargo run -r -- --task detect --ver rtdetr --scale l # RT-DETR Detection
# Pose examples
cargo run -r -- --task pose --ver v8 --scale n # YOLOv8-Pose Estimation
cargo run -r -- --task pose --ver v11 --scale n # YOLO11-Pose Estimation
# Segment examples
cargo run -r -- --task segment --ver v5 --scale n # YOLOv5-Segment
cargo run -r -- --task segment --ver v8 --scale n # YOLOv8-Segment
cargo run -r -- --task segment --ver v11 --scale n # YOLO11-Segment
cargo run -r -- --task segment --ver v8 --model path/to/FastSAM-s-dyn-f16.onnx # FastSAM Segmentation
# OBB (Oriented Bounding Box) examples
cargo run -r -- --ver v8 --task obb --scale n --width 1024 --height 1024 --source images/dota.png # YOLOv8-OBB
cargo run -r -- --ver v11 --task obb --scale n --width 1024 --height 1024 --source images/dota.png # YOLO11-OBB
Use cargo run -- --help
to see all available options.
For more detailed information and advanced usage, please refer to the usls-yolo example documentation.
Contributions are welcome! If you'd like to improve this demo or add new features, please feel free to submit issues or pull requests on the repository. Your input helps make the Ultralytics ecosystem better for everyone. Check out the Ultralytics Contribution Guide for more details.
Press p or to see the previous file or, n or to see the next file
Browsing data directories saved to S3 is possible with DAGsHub. Let's configure your repository to easily display your data in the context of any commit!
ultralytics is now integrated with AWS S3!
Are you sure you want to delete this access key?
Browsing data directories saved to Google Cloud Storage is possible with DAGsHub. Let's configure your repository to easily display your data in the context of any commit!
ultralytics is now integrated with Google Cloud Storage!
Are you sure you want to delete this access key?
Browsing data directories saved to Azure Cloud Storage is possible with DAGsHub. Let's configure your repository to easily display your data in the context of any commit!
ultralytics is now integrated with Azure Cloud Storage!
Are you sure you want to delete this access key?
Browsing data directories saved to S3 compatible storage is possible with DAGsHub. Let's configure your repository to easily display your data in the context of any commit!
ultralytics is now integrated with your S3 compatible storage!
Are you sure you want to delete this access key?