Ultralytics Belgeleri: Dilimlenmiş Çıkarım için SAHI ile YOLO11 Kullanımı
SAHI (Dilimleme Destekli Hiper Çıkarım) ile YOLO11'i nasıl kullanacağınızla ilgili Ultralytics belgelerine hoş geldiniz. Bu kapsamlı kılavuz, YOLO11 ile birlikte SAHI'yi uygulamak için ihtiyaç duyacağınız tüm temel bilgileri size sağlamayı amaçlamaktadır. SAHI'nin ne olduğuna, dilimlenmiş çıkarımın büyük ölçekli uygulamalar için neden kritik olduğuna ve gelişmiş nesne algılama performansı için bu işlevleri YOLO11 ile nasıl entegre edeceğinize derinlemesine bakacağız.
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 YOLO11 kullanarak SAHI (Dilimleme Destekli Hiper Çıkarım) 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 YOLO11 | SAHI ile YOLO11 |
---|---|
![]() |
![]() |
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
İşte gerekli modülleri nasıl içe aktaracağınız ve bir YOLO11 modeli ile bazı test görüntülerini nasıl indireceğiniz:
from sahi.utils.file import download_from_url
from sahi.utils.ultralytics import download_yolo11n_model
# Download YOLO11 model
model_path = "models/yolo11n.pt"
download_yolo11n_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 Örneklendirin
Nesne algılama için bir YOLO11 modelini şu şekilde örneklendirebilirsiniz:
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
# 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:
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 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/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 hem standart hem de dilimlenmiş çıkarım için YOLO11'i 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
Nesne tespitinde dilimlenmiş çıkarım için YOLO11'i SAHI ile nasıl entegre edebilirim?
Dilimlenmiş çıkarım için Ultralytics YOLO11'i SAHI (Dilimleme Destekli Hiper Çıkarım) ile entegre etmek, yüksek çözünürlüklü görüntülerdeki nesne algılama görevlerinizi, onları 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 kurmanız 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.ultralytics import download_yolo11n_model
# Download YOLO11 model
model_path = "models/yolo11n.pt"
download_yolo11n_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 algılama için neden YOLO11 ile SAHI kullanmalıyım?
Büyük görüntülerde nesne tespiti için Ultralytics YOLO11 ile SAHI 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.
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 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, YOLO11 nesne tespitini iyileştirmek için hangi özellikleri sunar?
SAHI (Dilimleme Destekli Hiper Çıkarım), Ultralytics YOLO11'i 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.
YOLO11 ve SAHI kullanarak büyük ölçekli çıkarım projelerini nasıl yönetirim?
YOLO11 ve SAHI kullanarak büyük ölçekli çıkarım projelerini yönetmek için şu en iyi uygulamaları izleyin:
- Gerekli Kitaplıkları Yükleyin: ultralytics ve sahi'nin en son sürümlerine sahip olduğunuzdan emin olun.
- Dilimlenmiş Çıkarımı Yapılandırın: Projenize özel optimum dilim boyutlarını ve örtüşme oranlarını belirleyin.
- 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/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.