Ana içeriğe geç

Hızlı Başlangıç

SAHI (Slicing Aided Hyper Inference), büyük görselleri örtüşen dilimlere (tiles) ayırarak, her dilimde dedektörünüzü çalıştırıp sonuçları birleştirerek büyük görsellerdeki küçük nesneleri tespit eder. Yeniden eğitim (retraining) gerektirmeden tüm tespit modelleriyle çalışır.

sliced inference

Kurulum

PyPI - Version Conda Version PyPI - Python Version

pip install sahi

Object detection için ayrıca bir framework'e ihtiyacınız olacaktır. En yaygın tercih Ultralytics'tir:

pip install ultralytics
Diğer kurulum yöntemleri

Conda:

Conda Downloads Conda Platforms

conda install -c conda-forge sahi

Note

CUDA ortamında kurulum yapıyorsanız, ultralytics, pytorch ve pytorch-cuda paketlerini aynı komutta yüklemeniz tavsiye edilir:

conda install -c pytorch -c nvidia -c conda-forge pytorch torchvision pytorch-cuda=11.8 ultralytics

Kaynak koddan:

pip install git+https://github.com/obss/sahi.git@main

Geliştirme (düzenlenebilir):

git clone https://github.com/obss/sahi
cd sahi
pip install -e .

Bağımlılıkların tam listesi için pyproject.toml dosyasına bakabilirsiniz.

Python ile Sliced Prediction

from sahi import AutoDetectionModel
from sahi.predict import get_sliced_prediction

# Load a model (works with any supported framework)
detection_model = AutoDetectionModel.from_pretrained(
    model_type="ultralytics",
    model_path="yolo26n.pt",
    confidence_threshold=0.25,
    device="cuda:0",  # or "cpu"
)

# Run sliced prediction
result = get_sliced_prediction(
    "path/to/your/image.jpg",
    detection_model,
    slice_height=512,
    slice_width=512,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

# Export visualizations
result.export_visuals(export_dir="demo_data/")

# Access individual predictions
for pred in result.object_prediction_list:
    print(pred.category.name, pred.score.value, pred.bbox.to_xyxy())

CLI ile Prediction

Python kodu yazmadan Sliced Inference çalıştırın:

sahi predict \
  --model_path yolo26n.pt \
  --model_type ultralytics \
  --source /path/to/images/ \
  --slice_height 512 \
  --slice_width 512

Sonuçlar varsayılan olarak runs/predict/exp dizinine kaydedilir.

Postprocessing Backend Seçimi

Dilimleme sonrasında SAHI, örtüşen prediction'ları NMS veya NMM ile birleştirir. Mevcut en iyi backend otomatik olarak seçilir:

Backend Ne zaman seçilir Kurulum
torchvision CUDA GPU + torchvision mevcut olduğunda pip install torch torchvision
numba numba yüklü, GPU yok pip install numba
numpy Her zaman mevcut (fallback) --

Seçimi manuel olarak geçersiz kılma:

from sahi.postprocess.backends import set_postprocess_backend

set_postprocess_backend("numpy")       # always available
set_postprocess_backend("numba")       # JIT-compiled
set_postprocess_backend("torchvision") # GPU-accelerated
set_postprocess_backend("auto")        # restore auto-detection

Sonraki Adımlar