İçeriğe geç

Ultralytics Belgeleri: YOLO26'yı SAHI ile Dilimlenmiş Çıkarım için Kullanma

Colab'de Dilimlenmiş Çıkarım için SAHI'yi Açın

YOLO26'yı SAHI (Slicing Aided Hyper Inference) ile nasıl kullanacağınıza dair Ultralytics belgelerine hoş geldiniz. Bu kapsamlı kılavuz, SAHI'yi YOLO26 ile birlikte uygulamak için ihtiyacınız olan tüm temel bilgileri size sunmayı amaçlamaktadır. 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 algılama performansı için bu işlevleri YOLO26 ile nasıl entegre edeceğimizi derinlemesine inceleyeceğiz.

Küçük nesneler için SAHI döşeme çıkarım

SAHI'ye Giriş

SAHI (Dilimleme Destekli Hiper Çıkarım), büyük ölçekli ve yüksek çözünürlüklü görüntüleme 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 ayırmak, 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, böylece esneklik sunarken, hesaplama kaynaklarının optimize edilmiş kullanımını sağlar.



İzle: Ultralytics YOLO26 kullanarak SAHI (Slicing Aided Hyper Inference) ile Çıkarım

SAHI'nin Temel Özellikleri

  • Sorunsuz Entegrasyon: SAHI, YOLO modelleriyle zahmetsizce entegre olur, yani çok fazla kod değişikliği yapmadan dilimlemeye ve algılamaya başlayabilirsiniz.
  • Kaynak Verimliliği: SAHI, büyük görüntüleri daha küçük parçalara ayırarak bellek kullanımını optimize eder ve sınırlı kaynaklara sahip donanımlarda yüksek kaliteli algılama çalıştırmanıza olanak tanır.
  • Yüksek Doğruluk: SAHI, birleştirme işlemi sırasında çakışan algılama kutularını akıllı algoritmalar kullanarak birleştirerek algılama 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 segmentlere (dilimlere) bölme, bu dilimler üzerinde nesne tespiti yapma ve ardından orijinal görüntüdeki nesne konumlarını yeniden oluşturmak için dilimleri yeniden derleme uygulamasıdır. Bu teknik, hesaplama kaynaklarının sınırlı olduğu 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 Faydaları

  • 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 daha düşük özellikli donanımlarda daha sorunsuz çalışmayı sağlar.

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

  • Gelişmiş Ölçeklenebilirlik: Bu teknik, nesne algılamanın farklı görüntü boyutları ve çözünürlüklerinde daha kolay ölçeklenmesini sağlayarak, uydu görüntülerinden tıbbi teşhislere kadar çok çeşitli uygulamalar için ideal hale getirir.

SAHI olmadan YOLO26SAHI ile YOLO26
SAHI olmadan YOLO26SAHI ile YOLO26

Kurulum ve Hazırlık

Kurulum

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

pip install -U ultralytics sahi

Modülleri İçe Aktarın ve Kaynakları İndirin

Gerekli modülleri içe aktarmak ve bir YOLO26 modeli ile bazı test görüntülerini indirmek için işte yapmanız gerekenler:

from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo26n_model

# Download YOLO26 model
model_path = "models/yolo26n.pt"
download_yolo26n_model(model_path)

# 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 Örneklendirin

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

from sahi import AutoDetectionModel

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

Standart Tahmin Gerçekleştir

Bir resim yolu veya bir numpy resmi kullanarak standart çıkarım gerçekleştirin.

from sahi.predict import get_prediction
from sahi.utils.cv import read_image

# With an image path
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)

# With a numpy image
result_with_np_image = get_prediction(read_image("demo_data/small-vehicles1.jpeg"), detection_model)

Sonuçları Görselleştirme

Tahmini sınırlayıcı kutuları ve maskeleri dışa aktarın ve görselleştirin:

from IPython.display import Image

result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")

YOLO26 ile Dilimlenmiş Çıkarım

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

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,
)

Tahmin Sonuçlarını İşleme

SAHI bir PredictionResult çeşitli açıklama formatlarına dönüştürülebilen nesne:

# Access the object prediction list
object_prediction_list = result.object_prediction_list

# Convert to COCO annotation, COCO prediction, imantics, and fiftyone formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]
result.to_imantics_annotations()[:3]
result.to_fiftyone_detections()[:3]

Yığın Tahmini

Bir resim dizininde toplu tahmin için:

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,
)

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

Alıntılar ve Teşekkürler

Araştırma veya geliştirme çalışmalarınızda SAHI'yi kullanırsanız, lütfen orijinal SAHI makalesine atıfta bulunun ve yazarlarına teşekkür edin:

@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}
}

Bilgisayarla görü topluluğu için bu paha biçilmez kaynağı oluşturdukları ve sürdürdükleri için SAHI araştırma grubuna teşekkürlerimizi sunarız. SAHI ve yaratıcıları hakkında daha fazla bilgi için SAHI GitHub deposunu ziyaret edin.

SSS

YOLO26'yı SAHI ile nesne detect etmede dilimlenmiş çıkarım için nasıl entegre edebilirim?

Ultralytics YOLO26'yı SAHI (Slicing Aided Hyper Inference) ile dilimlenmiş çıkarım için entegre etmek, yüksek çözünürlüklü görüntülerdeki nesne algılama görevlerinizi, görüntüleri yönetilebilir dilimlere ayırarak 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üklemeniz gerekir:

pip install -U ultralytics sahi

Ardından, bir YOLO26 modeli ve test görüntülerini indirin:

from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo26n_model

# Download YOLO26 model
model_path = "models/yolo26n.pt"
download_yolo26n_model(model_path)

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

Daha ayrıntılı talimatlar için Dilimlenmiş Çıkarım kılavuzumuza bakın.

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

Büyük görüntülerde nesne algılama için SAHI'yi Ultralytics YOLO26 ile kullanmak çeşitli avantajlar sunar:

  • 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, örtüşen kutuları birleştirmek için akıllı algoritmalar kullanarak algılama kalitesini korur.
  • Gelişmiş Ölçeklenebilirlik: Nesne algılama görevlerini farklı görüntü boyutları ve çözünürlüklerinde ölçeklendirerek SAHI, uydu görüntüleme analizi ve tıbbi teşhis gibi çeşitli uygulamalar için ideal hale gelir.

Belgelerimizde dilimlenmiş çıkarımın faydaları hakkında daha fazla bilgi edinin.

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ştirebilirsiniz. Sonuçları nasıl dışa aktaracağınız ve görselleştireceğiniz aşağıda açıklanmıştır:

from IPython.display import Image

result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")

Bu komut, görselleştirilmiş tahminleri belirtilen dizine kaydedecek ve ardından görüntüyü not defterinizde veya uygulamanızda görüntülemek için yükleyebilirsiniz. Ayrıntılı bir kılavuz için Standart Çıkarım bölümüne göz atın.

SAHI, YOLO26 nesne algılamayı geliştirmek için hangi özellikleri sunar?

SAHI (Slicing Aided Hyper Inference), Ultralytics YOLO26'yı nesne algılama için tamamlayan çeşitli özellikler sunar:

  • Sorunsuz Entegrasyon: SAHI, minimum kod ayarlaması gerektirerek YOLO modelleriyle kolayca entegre olur.
  • Kaynak Verimliliği: Büyük görüntüleri daha küçük dilimlere ayırır, bu da bellek kullanımını ve hızı optimize eder.
  • Yüksek Doğruluk: SAHI, birleştirme işlemi sırasında çakışan algılama kutularını etkili bir şekilde birleştirerek yüksek algılama doğruluğunu korur.

Daha derin bir anlayış için SAHI'nin temel özellikleri hakkında bilgi edinin.

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

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

  1. Gerekli Kitaplıkları Yükleyin: ultralytics ve sahi'nin en son sürümlerine sahip olduğunuzdan emin olun.
  2. Dilimlenmiş Çıkarımı Yapılandırın: Projenize özel optimum dilim boyutlarını ve örtüşme oranlarını belirleyin.
  3. Toplu Tahminleri Çalıştırma: Verimliliği artıran bir görüntü dizininde toplu tahminler gerçekleştirmek için SAHI'nin yeteneklerini kullanın.

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 Toplu Tahmin bölümümüzü ziyaret edin.



📅 2 yıl önce oluşturuldu ✏️ 7 gün önce güncellendi
glenn-jocherRizwanMunawarpderrengerCoderUniUltralyticsAssistantMatthewNoyce

Yorumlar