Meet YOLO26: next-gen vision AI.

Link to this sectionRust için Ultralytics Inference#

GitHub Crates.io docs.rs Downloads MSRV

Ultralytics Inference is a high-performance YOLO inference library and command-line tool written in Rust. It runs exported ONNX models through ONNX Runtime to deliver fast, memory-safe predictions on images, videos, webcams, and streams, with no Python runtime required at inference time.

Proje, iki şekilde kullanabileceğin ultralytics-inference adında tek bir crate olarak gelir: hızlı tahminler ve toplu işler için bir CLI veya doğrudan Rust uygulamana gömülü bir kütüphane olarak. Tüm Ultralytics görevlerini ve birleşik bir cihaz arayüzü aracılığıyla geniş bir donanım arka ucu setini destekler.

Link to this sectionNeden Rust ile çıkarım?#

  • Yerel hız ve küçük ayak izi. Yorumlayıcı olmadan yerel bir ikili dosyaya derlenir; sunucular, konteynerler ve uç cihazlar için idealdir.
  • Bellek güvenliği. Rust'ın sahiplik modeli, çöp toplayıcı olmadan çalışma zamanı hatalarının tüm sınıflarını ortadan kaldırır.
  • Tüm YOLO görevleri. Tek bir API'den tespit, segmentasyon, poz, OBB, sınıflandırma ve anlamsal segmentasyon.
  • Geniş donanım desteği. CPU'nun yanı sıra derleme zamanında seçilen CUDA, TensorRT, CoreML, OpenVINO, DirectML, ROCm ve XNNPACK yürütme sağlayıcıları.
  • GPU tarafında ön işleme. İsteğe bağlı bir birleşik CUDA çekirdeği; sıfır kopyalı bir giriş yolu için letterbox, normalleştirme ve düzen dönüştürmeyi cihaz üzerinde tutar.
  • Otomatik indirme. Bilinen YOLO model adları ve örnek varlıklar ilk kullanımda otomatik olarak indirilir.
Python paketini mi arıyorsun?

Bu sayfa bağımsız Rust crate'ini kapsar. Python iş akışı (eğitim, doğrulama, dışa aktarma ve tahmin) için ana Hızlı Başlangıç kılavuzuna ve Tahmin modu sayfasına bak. Herhangi bir Ultralytics modelini ONNX entegrasyonu ile ONNX'e dışa aktar ve ardından burada çalıştır.

Link to this sectionKurulum#

Rust 1.89 veya daha yenisi gereklidir. video özelliği ayrıca sistemde FFmpeg 7+ kurulu olmasını gerektirir.

# Install the command-line tool from crates.io
cargo install ultralytics-inference

# Or with GPU support compiled in
cargo install ultralytics-inference --features cuda,tensorrt

İkili dosya, Linux ve macOS'te ~/.cargo/bin/ultralytics-inference konumuna veya Windows'ta %USERPROFILE%\.cargo\bin\ dizinine yerleştirilir.

Link to this sectionCLI hızlı başlangıç#

CLI, bir predict alt komutu sunar. Hiçbir bağımsız değişken olmadan çalıştırıldığında bir nano tespit modeli ve örnek görüntüler indirir, çıkarımı çalıştırır ve açıklamalı sonuçları runs/detect/predict dizinine kaydeder.

# Detect on the built-in samples (downloads model and images)
ultralytics-inference predict

# Detect on your own image
ultralytics-inference predict --model yolo26n.onnx --source image.jpg

# Segmentation (auto-downloads yolo26n-seg.onnx)
ultralytics-inference predict --task segment --source image.jpg

# Pose on a video, shown live in a window
ultralytics-inference predict --task pose --source video.mp4 --show

# Tune thresholds and filter to specific classes
ultralytics-inference predict --source image.jpg --conf 0.5 --iou 0.45 --classes "0,1,2"

# Run a whole folder on the GPU in half precision
ultralytics-inference predict --source images/ --device cuda:0 --half

Yaygın bayraklar:

BayrakVarsayılanAçıklama
--model, -myolo26n.onnxBir ONNX modelinin yolu; bilinen bir YOLO adı otomatik olarak indirilir.
--taskdetectdetect, segment, pose, obb, classify, semantic seçeneklerinden biri.
--source, -sörnekGörüntü, dizin, glob, video, web kamerası dizini veya URL.
--conf0.25Güven eşiği.
--iou0.7Maksimum olmayan bastırma (NMS) için IoU eşiği.
--imgszmodel meta verileriÇıkarım görüntü boyutu.
--devicecpuYürütme cihazı, örneğin cuda:0, coreml, tensorrt:0.
--halffalseFP16 yarı hassasiyetli çıkarım.
--savetrueAçıklamalı sonuçları runs/<task>/predict dizinine kaydet.
--showfalseSonuçları bir pencerede göster.
--classestümüTespitleri sınıf kimliklerine göre filtrele, örneğin "0,1,2".

Link to this sectionKütüphane hızlı başlangıç#

Bir model yükle ve tahmin çalıştır. Sınıf adları, görev türü ve görüntü boyutu gibi model meta verileri ONNX dosyasından otomatik olarak okunur.

use ultralytics_inference::YOLOModel;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Metadata (classes, task, imgsz) is parsed from the model.
    let mut model = YOLOModel::load("yolo26n.onnx")?;

    let results = model.predict("image.jpg")?;

    for result in &results {
        if let Some(boxes) = &result.boxes {
            for i in 0..boxes.len() {
                let class_id = boxes.cls()[i] as usize;
                let conf = boxes.conf()[i];
                let name = result.names.get(&class_id).map_or("unknown", |s| s.as_str());
                println!("{name} {conf:.2}");
            }
        }
    }

    Ok(())
}

Eşikleri, görüntü boyutunu, hassasiyeti ve cihazı bir oluşturucu API ile kontrol etmek için InferenceConfig kullan:

use ultralytics_inference::{Device, InferenceConfig, YOLOModel};

let config = InferenceConfig::new()
    .with_confidence(0.5)
    .with_iou(0.45)
    .with_imgsz(640, 640)
    .with_device(Device::Cuda(0))
    .with_half(true);

let mut model = YOLOModel::load_with_config("yolo26n.onnx", config)?;
let results = model.predict("image.jpg")?;

Her görev Results üzerinde farklı bir alanı doldurur. Aşağıdaki her sekme eksiksiz ve çalıştırılabilir bir programdır; model ve örnek girdiler ilk çalıştırmada otomatik olarak indirilir. Kendi dosyaların üzerinde çalıştırmak için predict_default() yerine predict("image.jpg") kullan.

use ultralytics_inference::YOLOModel;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut model = YOLOModel::load("yolo26n.onnx")?;
    let results = model.predict_default()?;

    for result in &results {
        if let Some(boxes) = &result.boxes {
            println!("{} detections", boxes.len());
            let xyxy = boxes.xyxy(); // rows of [x1, y1, x2, y2]
            for i in 0..boxes.len() {
                let class_id = boxes.cls()[i] as usize;
                let name = result.names.get(&class_id).map_or("unknown", |s| s.as_str());
                println!("  {name} {:.2} {:?}", boxes.conf()[i], xyxy.row(i).to_vec());
            }
        }
    }

    Ok(())
}

Link to this sectionDesteklenen görevler#

Tüm Ultralytics görevleri desteklenir. --model atlandığında, seçilen görev için eşleşen nano model otomatik olarak indirilir.

Görev--taskÇıktıVarsayılan model
TespitdetectSınırlayıcı kutular ve sınıflaryolo26n.onnx
Örnek segmentasyonusegmentKutular artı örnek başına maskeleryolo26n-seg.onnx
PoseposeKutular artı anahtar noktalaryolo26n-pose.onnx
Yönlendirilmiş kutularobbDöndürülmüş sınırlayıcı kutularyolo26n-obb.onnx
SınıflandırmaclassifySınıf olasılıklarıyolo26n-cls.onnx
Anlamsal segmentasyonsemanticPiksel başına sınıf haritasıyolo26n-sem.onnx

Link to this sectionModel uyumluluğu#

ONNX'e aktarılan herhangi bir Ultralytics modeli yerel dosyadan yüklenebilir. Standart YOLO26, YOLO11 ve YOLOv8 model adları için n, s, m, l ve x boyutlarında otomatik indirme mevcuttur:

Model ailesiOtomatik indirilebilir varyantlar
YOLO26yolo26{n,s,m,l,x}.onnx, -seg, -pose, -obb, -cls ve -sem
YOLO11yolo11{n,s,m,l,x}.onnx, -seg, -pose, -obb ve -cls
YOLOv8yolov8{n,s,m,l,x}.onnx, -seg, -pose, -obb ve -cls

Anlamsal segmentasyon (-sem) sadece YOLO26'ya özeldir.

Link to this sectionGiriş kaynakları#

--source bağımsız değişkeni (ve kütüphanedeki Source türü), dizeden otomatik olarak algılanan birçok giriş türünü kabul eder:

KaynakÖrnekNotlar
Görselimage.jpgTek dosya.
Dizinimages/Klasördeki tüm görüntüler.
Globimages/*.jpgKabuk stili desen.
Videovideo.mp4video özelliğini gerektirir.
Web kamerası0video özelliğini gerektirir.
Streamrtsp://...video özelliğini gerektirir.
URLhttps://example.com/image.jpgUzak görüntü indirme.

Link to this sectionCihazlar ve yürütme sağlayıcıları#

Çıkarım varsayılan olarak CPU üzerinde çalışır. GPU ve hızlandırıcı arka uçları, Cargo özellikleri olarak derlenir ve çalışma zamanında --device (CLI) veya Device (kütüphane) ile seçilir.

Cihaz dizesiDevice varyantıDerleme özelliğiDonanım
cpuDevice::CpudahiliHerhangi bir CPU
cuda:0Device::Cuda(0)cudaNVIDIA GPU
tensorrt:0Device::TensorRt(0)tensorrtNVIDIA GPU, optimize edilmiş
coremlDevice::CoreMlcoremlApple Silicon / macOS
openvinoDevice::OpenVinoopenvinoIntel CPU / iGPU
directml:0Device::DirectMl(0)directmlWindows GPU
rocm:0Device::Rocm(0)rocmAMD GPU
xnnpackDevice::XnnpackxnnpackOptimize edilmiş CPU
# Build the CLI with the providers you need
cargo install ultralytics-inference --features cuda,tensorrt

Link to this sectionGPU hızlandırma ve CUDA ön işleme#

NVIDIA donanımında, cuda özelliği CUDA yürütme sağlayıcısını etkinleştirir ve tensorrt daha fazla optimizasyon için TensorRT sağlayıcısını ekler. Mümkün olan en düşük gecikme süresi için, cuda-preprocess özelliği ön işlemeyi GPU üzerine taşır.

cuda-preprocess letterbox yeniden boyutlandırmayı, normalleştirmeyi ve HWC-to-CHW düzeni dönüşümünü tek bir birleşik CUDA çekirdeği olarak çalıştırır, ardından sonucu modele sıfır kopyalı cihaz tensörü olarak aktarır. Bu, görüntü başına CPU ön işleme maliyetini ve ana bilgisayardan cihaza kopyalama işlemini ortadan kaldırır; bu da yüksek verimli yığınlar ve gerçek zamanlı akışlar için en önemli noktadır.

# Build with fused GPU preprocessing (implies cuda + tensorrt)
cargo build --release --features cuda-preprocess

Hızlı yol, aşağıdaki koşulların tümü sağlandığında herhangi bir API değişikliği olmadan otomatik olarak kullanılır: özellik derlemeye dahil edilmişse, cihaz CUDA veya TensorRT ise, görev detect, segment, pose, OBB veya anlamsal segmentasyon ise ve model FP32 giriş kullanıyorsa. Varsayılan olarak etkindir ve model bazında kapatılabilir:

use ultralytics_inference::{Device, InferenceConfig};

let config = InferenceConfig::new()
    .with_device(Device::TensorRt(0))
    .with_cuda_preprocess(false); // force CPU preprocessing
CUDA araç setinle eşleştir

cuda-preprocess, derleme zamanında eşleşen bir CUDA araç seti gerektirir ve birleşik ön işleme çekirdeği için çalışma zamanında NVRTC kullanır. Sürüm gereksinimleri ve sorun giderme için CUDA ve TensorRT hızlandırma kılavuzuna bak.

Link to this sectionCargo özellikleri#

Özellikler derleme zamanında etkinleştirilir. Varsayılanlar açıklama ekleme ve canlı görüntülemeyi kapsar.

ÖzellikVarsayılanAmaç
annotateevetKutuları, maskeleri, anahtar noktaları ve etiketleri çizer; --save için gereklidir.
visualizeevetReal-time window display for --show.
videohayırVideo dosyalarını okuma ve yazma (FFmpeg 7+ gerektirir).
cudahayırNVIDIA CUDA yürütme sağlayıcısı.
tensorrthayırNVIDIA TensorRT yürütme sağlayıcısı.
cuda-preprocesshayırSıfır kopyalı giriş ile birleşik GPU ön işleme (cuda, tensorrt içerir).
coremlhayırApple CoreML yürütme sağlayıcısı.
openvinohayırIntel OpenVINO yürütme sağlayıcısı.
rocmhayırAMD ROCm yürütme sağlayıcısı.
directmlhayırWindows DirectML yürütme sağlayıcısı.

Kolaylık grupları ilgili sağlayıcıları bir araya getirir: nvidia (cuda, tensorrt), amd (rocm, migraphx), intel (openvino, onednn), mobile (nnapi, coreml, qnn) ve all (annotate, visualize, video). nnapi, qnn, xnnpack, webgpu ve diğerleri gibi ek sağlayıcılar da mevcuttur.

CLI'yı kurarken veya kütüphaneyi eklerken özellikleri etkinleştir:

cargo install ultralytics-inference --features video
cargo install ultralytics-inference --features cuda,tensorrt
[dependencies]
ultralytics-inference = { version = "0.0.18", features = ["video"] }

Link to this sectionÇıktı ve kaydetme#

Varsayılan olarak, tahminler açıklama eklenmiş halde otomatik artan bir çalışma dizinine kaydedilir:

runs/
└── detect/
    └── predict/          # then predict2, predict3, ...
        └── image.jpg     # annotated result

Alt klasör görevle eşleşir (runs/segment/, runs/pose/ vb.). Video kaynakları için açıklama eklenmiş çıktı bir video dosyası olarak yazılır; bunun yerine ayrı kareleri yazmak için --save-frames kullan. semantic görevi için, --save-json pikseller arası sınıf haritası PNG'lerini bir results/ alt klasörü altında yazar. Açıklama eklenmiş görüntü ve video kaydetme annotate özelliğini gerektirir; anlamsal sınıf haritası PNG dışa aktarımı gerektirmez. Video girişi ve çıkışı video özelliğini gerektirir.

Link to this sectionSSS#

Link to this sectionPython yüklü olması gerekiyor mu?#

Hayır. Crate, dışa aktarılmış ONNX modellerini doğrudan ONNX Runtime aracılığıyla çalıştırır. Python yalnızca modelleri önceden Ultralytics paketi ile eğitirsen veya dışa aktarırsan gerekir.

Link to this sectionHangi modelleri çalıştırabilirim?#

ONNX'e dışa aktarılmış herhangi bir Ultralytics YOLO modeli; buna YOLO26, YOLO11 ve YOLOv8 dahildir. Bilinen model isimleri otomatik olarak indirilir; ayrıca --model komutunu herhangi bir yerel .onnx dosyasına yönlendirebilirsin.

Link to this sectionModel dosyasını nasıl alırım?#

Python paketinden dışa aktar, örneğin ONNX entegrasyonu ile veya ilk çalıştırmada CLI'nın seçilen görev için standart bir nano model indirmesine izin ver.

Link to this sectionVideo destekleniyor mu?#

Evet, video özelliği etkinleştirilmişse ve sistemde FFmpeg 7+ yüklüyse. Bu, video dosyalarını, web kameralarını ve RTSP/RTMP/HTTP akışlarını kapsar.

Link to this sectionannotate ve visualize özellikleri ne işe yarar?#

Her ikisi de varsayılan olarak etkindir. annotate, görüntü üzerine kutular, maskeler, anahtar noktalar ve sınıf etiketleri çizer ve açıklama eklenmiş sonuçları yazmak için --save tarafından gereklidir. visualize ise --show için canlı bir pencere açar. Yalnızca programlı olarak sonuç döndüren daha küçük, başlıksız bir derleme için bunları cargo build --no-default-features ile devre dışı bırak (gerektiğinde bireysel özellikleri tekrar ekle).

Link to this sectionTam API referansı nerede?#

Bu sayfa üst düzey bir genel bakıştır. Her genel yapı, yöntem ve yapılandırma seçeneği için tam, tip bazlı API referansı, doğrudan kaynaktan oluşturulan docs.rs üzerinde yayınlanmaktadır.

Katkıda bulunanlar

Yorumlar