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.
Kurulum¶
Object detection için ayrıca bir framework'e ihtiyacınız olacaktır. En yaygın tercih Ultralytics'tir:
Diğer kurulum yöntemleri
Conda:
Note
CUDA ortamında kurulum yapıyorsanız, ultralytics, pytorch ve pytorch-cuda paketlerini aynı komutta yüklemeniz tavsiye edilir:
Kaynak koddan:
Geliştirme (düzenlenebilir):
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¶
- Sliced Inference Nasıl Çalışır -- Algoritmayı, parametre ipuçlarını ve ne zaman kullanılacağını anlayın
- Model Entegrasyonları -- SAHI'yi Ultralytics, HuggingFace, MMDetection, TorchVision, Detectron2 ve daha fazlası ile kullanın
- Prediction Araçları -- Toplu (batch) inference, ilerleme takibi, görselleştirme seçenekleri
- COCO Araçları -- COCO veri kümelerini oluşturun, dilimleyin, birleştirin ve dönüştürün
- CLI Komutları -- Tam CLI referansı
- Etkileşimli Notebook'lar -- Tüm framework'ler için uygulamalı Colab notebook'ları