YOLO Vision 2026:

Ultralytics Dokümanları: Dilimlenmiş Çıkarım için SAHI ile YOLO26 Kullanımı#

Open SAHI for Sliced Inference In Colab

YOLO26 ve SAHI (Slicing Aided Hyper Inference) kullanımına ilişkin Ultralytics belgelerine hoş geldin. Bu kapsamlı kılavuz, SAHI'yi YOLO26 ile birlikte uygulamak için ihtiyaç duyacağın tüm temel bilgiyle seni donatmayı amaçlar. SAHI'nin ne olduğunu, dilimlenmiş çıkarımın büyük ölçekli uygulamalar için neden kritik olduğunu ve gelişmiş nesne tespiti performansı için bu işlevleri YOLO26 ile nasıl entegre edeceğini derinlemesine inceleyeceğiz.

SAHI tiled inference for small objects

SAHI'ye Giriş#

SAHI (Dilimleme Destekli Hiper Çıkarım), büyük ölçekli ve yüksek çözünürlüklü görüntüler için nesne algılama algoritmalarını optimize etmek üzere tasarlanmış yenilikçi bir kütüphanedir. Temel işlevi, görüntüleri yönetilebilir dilimlere bölmek, her dilimde nesne algılama çalıştırmak ve ardından sonuçları tekrar birleştirmektir. SAHI, YOLO serisi de dahil olmak üzere bir dizi nesne algılama modeliyle uyumludur ve böylece hesaplama kaynaklarının optimize edilmiş kullanımını sağlarken esneklik sunar.



Watch: How to use SAHI with Ultralytics YOLO26 to Detect Small Objects | Slicing Aided Hyper Inference 🚀

SAHI'nin Temel Özellikleri#

  • Sorunsuz Entegrasyon: SAHI, YOLO modelleriyle zahmetsizce bütünleşir; yani çok fazla kod değişikliği yapmadan dilimlemeye ve algılamaya başlayabilirsin.
  • Kaynak Verimliliği: Büyük görüntüleri daha küçük parçalara bölerek, SAHI bellek kullanımını optimize eder ve sınırlı kaynaklara sahip donanımlarda yüksek kaliteli algılama çalıştırmana olanak tanır.
  • Yüksek Doğruluk: SAHI, birleştirme işlemi sırasında çakışan tespit kutularını birleştirmek için akıllı algoritmalar kullanarak tespit doğruluğunu korur.

Dilimlenmiş Çıkarım Nedir?#

Dilimlenmiş Çıkarım, büyük veya yüksek çözünürlüklü bir görüntüyü daha küçük parçalara (dilimlere) ayırma, bu dilimler üzerinde nesne algılama gerçekleştirme ve ardından orijinal görüntüdeki nesne konumlarını yeniden oluşturmak için dilimleri tekrar birleştirme uygulamasıdır. Bu teknik, hesaplama kaynaklarının sınırlı olduğu durumlarda veya aksi takdirde bellek sorunlarına yol açabilecek son derece yüksek çözünürlüklü görüntülerle çalışırken çok değerlidir.

Dilimlenmiş Çıkarımın Avantajları#

  • Azaltılmış Hesaplama Yükü: Daha küçük görüntü dilimlerinin işlenmesi daha hızlıdır ve daha az bellek tüketir, bu da düşük kaliteli donanımlarda daha sorunsuz bir çalışma sağlar.

  • Korunan Algılama Kalitesi: Her dilim bağımsız olarak ele alındığından, dilimler ilgilenilen nesneleri yakalayacak kadar büyük olduğu sürece nesne algılama kalitesinde bir düşüş olmaz.

  • Gelişmiş Ölçeklenebilirlik: Bu teknik, nesne algılamanın farklı görüntü boyutları ve çözünürlükleri arasında daha kolay ölçeklenmesine olanak tanır; bu da onu uydu görüntülerinden tıbbi teşhislere kadar çok çeşitli uygulamalar için ideal hale getirir.

YOLO26 without SAHIYOLO26 with SAHI
YOLO26 without SAHIYOLO26 with SAHI

Kurulum ve Hazırlık#

Kurulum#

Başlamak için SAHI ve Ultralytics'in en son sürümlerini yükle:

pip install -U ultralytics sahi

Modülleri İçe Aktar ve Kaynakları İndir#

İşte bazı test görüntülerini nasıl indireceğin:

from sahi.utils.file import download_from_url

# Download test images
download_from_url(
    "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
    "demo_data/small-vehicles1.jpeg",
)
download_from_url(
    "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
    "demo_data/terrain2.png",
)

YOLO26 ile Standart Çıkarım#

Modeli Örneklendir#

Nesne algılama için bir YOLO26 modelini şu şekilde örneklendirebilirsin:

from sahi import AutoDetectionModel

detection_model = AutoDetectionModel.from_pretrained(
    model_type="ultralytics",
    model_path="yolo26n.pt",
    confidence_threshold=0.3,
    device="cpu",  # or 'cuda:0'
)

Standart Tahmin Gerçekleştir#

Bir görüntü yolu kullanarak standart çıkarım gerçekleştir.

from sahi.predict import get_prediction

result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)

result.export_visuals(export_dir="demo_data/", hide_conf=True)

Sonuçları Görselleştir#

Tahmin edilen sınırlayıcı kutuları ve maskeleri dışa aktar ve görselleştir:

from PIL import Image

# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")

# Display the predicted image
processed_image.show()

YOLO26 ile Dilimlenmiş Çıkarım#

Dilim boyutlarını ve örtüşme oranlarını belirterek dilimlenmiş çıkarım gerçekleştir:

from PIL import Image
from sahi.predict import get_sliced_prediction

result = get_sliced_prediction(
    "demo_data/small-vehicles1.jpeg",
    detection_model,
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

# Export results
result.export_visuals(export_dir="demo_data/", hide_conf=True)

# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")

# Display the predicted image
processed_image.show()

Tahmin Sonuçlarını İşleme#

SAHI, çeşitli açıklama formatlarına dönüştürülebilen bir PredictionResult nesnesi sağlar:

# Access the object prediction list
object_prediction_list = result.object_prediction_list

# Convert to COCO annotation and COCO prediction formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]
Ek dışa aktarma formatları

PredictionResult ayrıca result.to_imantics_annotations() ve result.to_fiftyone_detections() kullanarak algılamaları imantics ve FiftyOne nesnelerine dönüştürebilir. Bu yöntemler ilgili paketleri gerektirir, bu yüzden bunları önce pip install imantics fiftyone ile yükle.

Toplu Tahmin#

Bir görüntü dizini üzerinde toplu tahmin için:

from sahi.predict import predict

predict(
    model_type="ultralytics",
    model_path="yolo26n.pt",
    model_device="cpu",  # or 'cuda:0'
    model_confidence_threshold=0.4,
    source="path/to/dir",
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

Artık hem standart hem de dilimlenmiş çıkarım için YOLO26'yı SAHI ile kullanmaya hazırsın.

Alıntılar ve Teşekkür#

SAHI'yi araştırma veya geliştirme çalışmalarında kullanıyorsan, lütfen orijinal SAHI makalesini kaynak göster ve yazarlara teşekkür et:

Alıntı
@article{akyon2022sahi,
  title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection},
  author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin},
  journal={2022 IEEE International Conference on Image Processing (ICIP)},
  doi={10.1109/ICIP46576.2022.9897990},
  pages={966-970},
  year={2022}
}

Computer vision topluluğu için bu paha biçilmez kaynağı oluşturan ve sürdüren SAHI araştırma grubuna teşekkürlerimizi sunarız. SAHI ve yaratıcıları hakkında daha fazla bilgi için SAHI GitHub repository adresini ziyaret et.

SSS#

Nesne algılamada dilimlenmiş çıkarım için YOLO26'yı SAHI ile nasıl entegre edebilirim?#

Ultralytics YOLO26'yı dilimlenmiş çıkarım için SAHI (Dilimleme Destekli Hiper Çıkarım) ile entegre etmek, yüksek çözünürlüklü görüntüleri yönetilebilir dilimlere bölerek nesne algılama görevlerini optimize eder. Bu yaklaşım bellek kullanımını iyileştirir ve yüksek algılama doğruluğu sağlar. Başlamak için ultralytics ve sahi kütüphanelerini yüklemen gerekir:

pip install -U ultralytics sahi

Ardından test görüntülerini indir:

from sahi.utils.file import download_from_url

# Download test images
download_from_url(
    "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
    "demo_data/small-vehicles1.jpeg",
)
download_from_url(
    "https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
    "demo_data/terrain2.png",
)

Daha ayrıntılı talimatlar için Sliced Inference guide adresine göz at.

Büyük görüntülerde nesne algılama için neden SAHI'yi YOLO26 ile kullanmalıyım?#

Büyük görüntülerde nesne algılama için SAHI'yi Ultralytics YOLO26 ile kullanmanın çeşitli faydaları vardır:

  • Azaltılmış Hesaplama Yükü: Daha küçük dilimlerin işlenmesi daha hızlıdır ve daha az bellek tüketir, bu da sınırlı kaynaklara sahip donanımlarda yüksek kaliteli algılamalar çalıştırmayı mümkün kılar.
  • Korunan Algılama Doğruluğu: SAHI, algılama kalitesini korumak için örtüşen kutuları birleştirmek üzere akıllı algoritmalar kullanır.
  • Gelişmiş Ölçeklenebilirlik: Nesne algılama görevlerini farklı görüntü boyutları ve çözünürlükleri arasında ölçeklendirerek SAHI, uydu görüntüsü analizi ve tıbbi teşhis gibi çeşitli uygulamalar için ideal hale gelir.

Belgelerimizde benefits of sliced inference hakkında daha fazla bilgi edin.

YOLO26'yı SAHI ile kullanırken tahmin sonuçlarını görselleştirebilir miyim?#

Evet, YOLO26'yı SAHI ile kullanırken tahmin sonuçlarını görselleştirebilirsin. Sonuçları nasıl dışa aktarıp görselleştirebileceğin aşağıdadır:

from PIL import Image

result.export_visuals(export_dir="demo_data/", hide_conf=True)

processed_image = Image.open("demo_data/prediction_visual.png")

processed_image.show()

Bu komut, görselleştirilmiş tahminleri belirtilen dizine kaydeder ve ardından resmi not defterinde veya uygulamanda görüntülemek üzere yükleyebilirsin. Ayrıntılı bir kılavuz için Standard Inference section bölümüne göz at.

SAHI, YOLO26 nesne algılamayı iyileştirmek için hangi özellikleri sunuyor?#

SAHI (Dilimleme Destekli Hiper Çıkarım), nesne algılama için Ultralytics YOLO26'yı tamamlayan çeşitli özellikler sunar:

  • Sorunsuz Entegrasyon: SAHI, YOLO modelleriyle kolayca bütünleşir ve minimum kod ayarı gerektirir.
  • Kaynak Verimliliği: Büyük görüntüleri, bellek kullanımını ve hızı optimize eden daha küçük dilimlere böler.
  • Yüksek Doğruluk: Birleştirme işlemi sırasında örtüşen algılama kutularını etkili bir şekilde birleştirerek SAHI, yüksek algılama doğruluğunu korur.

Daha derin bir anlayış için SAHI'nin key features özelliklerini oku.

YOLO26 ve SAHI kullanarak büyük ölçekli çıkarım projelerini nasıl yönetebilirim?#

YOLO26 ve SAHI kullanarak büyük ölçekli çıkarım projelerini yönetmek için şu en iyi uygulamaları izle:

  1. Gerekli Kütüphaneleri Yükle: ultralytics ve sahi kütüphanelerinin en son sürümlerine sahip olduğundan emin ol.
  2. Dilimlenmiş Çıkarımı Yapılandır: Belirli projen için en uygun dilim boyutlarını ve örtüşme oranlarını belirle.
  3. Toplu Tahminleri Çalıştır: Verimliliği artıran, bir görüntü dizini üzerinde toplu tahminler gerçekleştirmek için SAHI'nin yeteneklerini kullan.

Toplu tahmin için örnek:

from sahi.predict import predict

predict(
    model_type="ultralytics",
    model_path="path/to/yolo26n.pt",
    model_device="cpu",  # or 'cuda:0'
    model_confidence_threshold=0.4,
    source="path/to/dir",
    slice_height=256,
    slice_width=256,
    overlap_height_ratio=0.2,
    overlap_width_ratio=0.2,
)

Daha ayrıntılı adımlar için Batch Prediction hakkındaki bölümümüzü ziyaret et.

Yorumlar