İçeriğe geç

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

Welcome to the Ultralytics documentation on how to use YOLO11 with SAHI (Slicing Aided Hyper Inference). This comprehensive guide aims to furnish you with all the essential knowledge you'll need to implement SAHI alongside YOLO11. We'll deep-dive into what SAHI is, why sliced inference is critical for large-scale applications, and how to integrate these functionalities with YOLO11 for enhanced object detection performance.

SAHI Dilimli Çıkarsamaya Genel Bakış

SAHI'ye Giriş

SAHI (Slicing Aided Hyper Inference), 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 ayırmak, her dilimde nesne algılama çalıştırmak ve ardından sonuçları bir araya getirmektir. SAHI, YOLO serisi de dahil olmak üzere bir dizi nesne algılama modeliyle uyumludur, böylece hesaplama kaynaklarının optimize edilmiş kullanımını sağlarken esneklik sunar.



İzle: Inference with SAHI (Slicing Aided Hyper Inference) using Ultralytics YOLO11

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 yapmanızı sağlar.
  • High Accuracy: SAHI maintains the detection accuracy by employing smart algorithms to merge overlapping detection boxes during the stitching process.

Dilimlenmiş Çıkarım Nedir?

Dilim Çıkarım, büyük veya yüksek çözünürlüklü bir görüntünün daha küçük parçalara (dilimlere) bölünmesi, bu dilimler üzerinde nesne tespiti yapılması ve ardından orijinal görüntü üzerindeki nesne konumlarının yeniden yapılandırılması için dilimlerin yeniden derlenmesi uygulamasını ifade eder. Bu teknik, hesaplama kaynaklarının sınırlı olduğu senaryolarda veya aksi takdirde bellek sorunlarına yol açabilecek aşırı 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üketerek düşük kaliteli donanımlarda daha sorunsuz çalışmayı sağlar.

  • Korunmuş Algılama Kalitesi: Her dilim bağımsız olarak ele alındığından, dilimlerin ilgilenilen nesneleri yakalayacak kadar büyük olması koşuluyla nesne algılama kalitesinde herhangi bir azalma olmaz.

  • Geliştirilmiş Ölçeklenebilirlik: Bu teknik, nesne tespitinin farklı boyut ve çözünürlükteki görüntülerde daha kolay ölçeklendirilmesini sağlayarak uydu görüntülerinden tıbbi teşhislere kadar geniş bir uygulama yelpazesi için idealdir.

YOLO11 without SAHIYOLO11 with SAHI
YOLO11 without SAHIYOLO11 with SAHI

Kurulum ve Hazırlık

Kurulum

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

pip install -U ultralytics sahi

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

Gerekli modüllerin nasıl içe aktarılacağı ve bir YOLO11 modelinin ve bazı test görüntülerinin nasıl indirileceği aşağıda açıklanmıştır:

from sahi.utils.file import download_from_url
from sahi.utils.yolov8 import download_yolov8s_model

# Download YOLO11 model
model_path = "models/yolo11s.pt"
download_yolov8s_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",
)

YOLO11 ile Standart Çıkarım

Modeli Instantiate Etme

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

from sahi import AutoDetectionModel

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

Standart Tahmin Gerçekleştirin

Bir görüntü yolu veya bir numpy görüntüsü kullanarak standart çıkarım gerçekleştirin.

from sahi.predict import get_prediction

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

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

Sonuçları Görselleştirin

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

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

YOLO11 ile Dilimlenmiş Çıkarım

Dilim boyutlarını ve örtüşme oranlarını belirterek dilimli çı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ın İşlenmesi

SAHI şunları sağlar PredictionResult nesnesine dönüştürülebilir ve bu nesne çeşitli açıklama biçimlerine dönüştürülebilir:

# 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]

Toplu Tahmin

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

from sahi.predict import predict

predict(
    model_type="yolov8",
    model_path="path/to/yolo11n.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,
)

İşte bu kadar! Artık YOLO11'i SAHI ile birlikte hem standart hem de dilimli çıkarım için kullanabilecek donanıma sahipsiniz.

Atıflar ve Teşekkür

Araştırma veya geliştirme çalışmalarınızda SAHI'yi kullanırsanız, lütfen orijinal SAHI makalesine atıfta bulunun ve yazarlara 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}
}

We extend our thanks to the SAHI research group for creating and maintaining this invaluable resource for the computer vision community. For more information about SAHI and its creators, visit the SAHI GitHub repository.

SSS

Nesne tespitinde dilimli çıkarım için YOLO11'i SAHI ile nasıl entegre edebilirim?

Dilimli çıkarım için Ultralytics YOLO11'in SAHI (Dilimleme Destekli Hiper Çıkarım) ile entegre edilmesi, yüksek çözünürlüklü görüntülerdeki nesne algılama görevlerinizi yönetilebilir dilimlere bölerek 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 YOLO11 modeli ve test görüntüleri indirin:

from sahi.utils.file import download_from_url
from sahi.utils.yolov8 import download_yolov8s_model

# Download YOLO11 model
model_path = "models/yolo11s.pt"
download_yolov8s_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 Dilimli Çıkarım kılavuzumuza bakın.

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

Büyük görüntülerde nesne tespiti için SAHI'yi Ultralytics YOLO11 ile birlikte 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 tespitlerin çalıştırılmasını mümkün kılar.
  • Korunan Algılama Doğruluğu: SAHI, algılama kalitesini koruyarak örtüşen kutuları birleştirmek için akıllı algoritmalar kullanır.
  • Geliştirilmiş Ölçeklenebilirlik: SAHI, nesne algılama görevlerini farklı görüntü boyutları ve çözünürlükleri arasında ölçeklendirerek uydu görüntüleri 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.

YOLO11'i SAHI ile kullanırken tahmin sonuçlarını görselleştirebilir miyim?

Evet, YOLO11'i SAHI ile kullanırken tahmin sonuçlarını görselleştirebilirsiniz. Sonuçları nasıl dışa aktarabileceğiniz ve görselleştirebileceğ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 kaydeder ve daha sonra not defterinizde veya uygulamanızda görüntülemek için görüntüyü yükleyebilirsiniz. Ayrıntılı bir kılavuz için Standart Çıkarım bölümüne göz atın.

SAHI, YOLO11 nesne tespitini iyileştirmek için hangi özellikleri sunuyor?

SAHI (Dilimleme Destekli Hiper Çıkarım), nesne tespiti için Ultralytics YOLO11 adresini tamamlayan çeşitli özellikler sunar:

  • Sorunsuz Entegrasyon: SAHI, YOLO modelleriyle kolayca entegre olur ve minimum kod ayarlaması gerektirir.
  • Kaynak Verimliliği: Büyük görüntüleri daha küçük dilimlere bölerek bellek kullanımını ve hızı optimize eder.
  • Yüksek Doğruluk: SAHI, birleştirme işlemi sırasında örtüşen 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.

YOLO11 ve SAHI kullanarak büyük ölçekli çıkarım projelerini nasıl ele alabilirim?

YOLO11 ve SAHI kullanarak büyük ölçekli çıkarım projelerinin üstesinden gelmek için aşağıdaki en iyi uygulamaları izleyin:

  1. Gerekli Kütüphaneleri Yükleyin: ultralytics ve sahi'nin en son sürümlerine sahip olduğunuzdan emin olun.
  2. Dilimli Çıkarsamayı Yapılandırma: Özel projeniz için en uygun dilim boyutlarını ve örtüşme oranlarını belirleyin.
  3. Toplu Tahminler Çalıştırın: Verimliliği artıran bir görüntü dizini üzerinde 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="yolov8",
    model_path="path/to/yolo11n.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.

📅 1 yıl önce oluşturuldu ✏️ 1 ay önce güncellendi

Yorumlar