İçeriğe geç

Yaygın YOLO Sorunlarını Giderme

YOLO Ortak Sorunlar Görüntüsü

Giriş

Bu kılavuz, Ultralytics projelerinizde YOLO11 ile çalışırken karşılaşılan yaygın sorunları gidermek için kapsamlı bir yardımcı görevi görür. Bu sorunların üstesinden gelmek doğru rehberlikle çok kolay olabilir ve projelerinizin gereksiz gecikmeler olmadan yolunda gitmesini sağlar.



İzle: Ultralytics YOLO11 Common Issues | Installation Errors, Model Training Issues

Ortak Sorunlar

Kurulum Hataları

Uyumsuz sürümler, eksik bağımlılıklar veya yanlış ortam kurulumları gibi çeşitli nedenlerden dolayı kurulum hataları ortaya çıkabilir. İlk olarak, aşağıdakileri yaptığınızdan emin olmak için kontrol edin:

  • Tavsiye edildiği gibi Python 3.8 veya üstünü kullanıyorsunuz.

  • Ensure that you have the correct version of PyTorch (1.8 or later) installed.

  • Çatışmaları önlemek için sanal ortamları kullanmayı düşünün.

  • Resmi kurulum kılavuzunu adım adım izleyin.

Ayrıca, kullanıcıların karşılaştığı bazı yaygın kurulum sorunlarını ve çözümlerini de burada bulabilirsiniz:

  • İçe Aktarma Hataları veya Bağımlılık Sorunları - YOLO11'in içe aktarılması sırasında hatalar alıyorsanız veya bağımlılıklarla ilgili sorunlar yaşıyorsanız, aşağıdaki sorun giderme adımlarını göz önünde bulundurun:

    • Yeni Kurulum: Bazen yeni bir kurulumla başlamak beklenmedik sorunları çözebilir. Özellikle Ultralytics gibi güncellemelerin dosya ağacı yapısında veya işlevlerde değişikliklere yol açabileceği kütüphanelerde.

    • Düzenli Olarak Güncelleyin: Kütüphanenin en son sürümünü kullandığınızdan emin olun. Eski sürümler son güncellemelerle uyumlu olmayabilir, bu da olası çakışmalara veya sorunlara yol açabilir.

    • Bağımlılıkları Kontrol Edin: Gerekli tüm bağımlılıkların doğru şekilde yüklendiğini ve uyumlu sürümlere sahip olduğunu doğrulayın.

    • Değişiklikleri Gözden Geçirin: Başlangıçta eski bir sürümü klonladıysanız veya yüklediyseniz, önemli güncellemelerin kütüphanenin yapısını veya işlevlerini etkileyebileceğini unutmayın. Önemli değişiklikleri anlamak için her zaman resmi belgelere veya değişiklik günlüklerine bakın.

    • Sorunsuz ve hatasız bir deneyim için kütüphanelerinizi ve bağımlılıklarınızı güncel tutmanın çok önemli olduğunu unutmayın.

  • YOLO11'i GPU üzerinde çalıştırma - YOLO11'i GPU üzerinde çalıştırırken sorun yaşıyorsanız, aşağıdaki sorun giderme adımlarını göz önünde bulundurun:

    • CUDA Uyumluluğunu ve Kurulumu Doğrulayın: GPU adresinizin CUDA uyumlu olduğundan ve CUDA adresinin doğru şekilde yüklendiğinden emin olun. Kullanın nvidia-smi komutunu kullanarak NVIDIA GPU ve CUDA sürümünüzün durumunu kontrol edebilirsiniz.

    • PyTorch ve CUDA Entegrasyonunu Kontrol Edin: PyTorch adresinin CUDA adresini kullanabilmesini sağlamak için import torch; print(torch.cuda.is_available()) bir Python terminalinde. Eğer 'True' döndürürse, PyTorch CUDA kullanmak üzere ayarlanmıştır.

    • Ortam Etkinleştirme: Gerekli tüm paketlerin yüklü olduğu doğru ortamda olduğunuzdan emin olun.

    • Paketlerinizi Güncelleyin: Eski paketler GPU ile uyumlu olmayabilir. Onları güncel tutun.

    • Program Configuration: Check if the program or code specifies GPU usage. In YOLO11, this might be in the settings or configuration.

Model Eğitimi Sorunları

Bu bölümde, eğitim sırasında karşılaşılan yaygın sorunlar ve bunların ilgili açıklamaları ve çözümleri ele alınacaktır.

Yapılandırma Ayarlarının Doğrulanması

Sorun: Yapılandırma ayarlarının aşağıdaki gibi olup olmadığından emin değilsiniz .yaml dosyasının model eğitimi sırasında doğru şekilde uygulandığından emin olun.

Çözüm: İçindeki yapılandırma ayarları .yaml dosyası kullanılırken uygulanmalıdır. model.train() işlevini yerine getirir. Bu ayarların doğru şekilde uygulandığından emin olmak için aşağıdaki adımları izleyin:

  • Yolunuzun aşağıdaki gibi olduğunu onaylayın .yaml yapılandırma dosyası doğrudur.
  • Yolunu geçtiğinizden emin olun .yaml dosyası olarak data argümanını çağırırken model.train()aşağıda gösterildiği gibi:
model.train(data="/path/to/your/data.yaml", batch=4)

Çoklu GPU'lar ile Eğitimi Hızlandırma

Sorun: Eğitim tek bir GPU üzerinde yavaş ve birden fazla GPU kullanarak süreci hızlandırmak istiyorsunuz.

Solution: Increasing the batch size can accelerate training, but it's essential to consider GPU memory capacity. To speed up training with multiple GPUs, follow these steps:

  • Birden fazla GPU'ya sahip olduğunuzdan emin olun.

  • Kullanılacak GPU sayısını belirtmek için .yaml yapılandırma dosyanızı değiştirin, örneğin, gpus: 4.

  • Bellek sınırlarını aşmadan çoklu GPU'ları tam olarak kullanmak için parti boyutunu uygun şekilde artırın.

  • Eğitim komutunuzu birden fazla GPU kullanacak şekilde değiştirin:

# Adjust the batch size and other settings as needed to optimize training speed
model.train(data="/path/to/your/data.yaml", batch=32, multi_scale=True)

Sürekli İzleme Parametreleri

Sorun: Antrenman sırasında kayıp dışında hangi parametrelerin sürekli olarak izlenmesi gerektiğini bilmek istiyorsunuz.

Çözüm: Kayıp, izlenmesi gereken çok önemli bir metrik olsa da model performans optimizasyonu için diğer metriklerin izlenmesi de önemlidir. Eğitim sırasında izlenecek bazı önemli metrikler şunlardır:

Bu metriklere eğitim günlüklerinden veya görselleştirme için TensorBoard veya wandb gibi araçları kullanarak erişebilirsiniz. Bu metriklere dayanarak erken durdurma uygulamak daha iyi sonuçlar elde etmenize yardımcı olabilir.

Eğitim İlerlemesini Takip Etmek için Araçlar

Sorun: Eğitim ilerlemesini takip etmek için araç önerileri arıyorsunuz.

Çözüm: Eğitim ilerlemesini izlemek ve görselleştirmek için aşağıdaki araçları kullanmayı düşünebilirsiniz:

  • TensorBoard: TensorBoard is a popular choice for visualizing training metrics, including loss, accuracy, and more. You can integrate it with your YOLO11 training process.
  • Comet: Comet deney izleme ve karşılaştırma için kapsamlı bir araç seti sağlar. Metrikleri, hiperparametreleri ve hatta model ağırlıklarını izlemenizi sağlar. YOLO modelleri ile entegrasyon da basittir ve deney döngünüze tam bir genel bakış sağlar.
  • Ultralytics HUB: Ultralytics HUB, YOLO modellerini izlemek için özel bir ortam sunarak size metrikleri, veri kümelerini yönetmek ve hatta ekibinizle işbirliği yapmak için tek noktadan bir platform sağlar. Özel olarak YOLO adresine odaklandığı için daha özelleştirilmiş izleme seçenekleri sunar.

Bu araçların her biri kendine özgü avantajlar sunar, bu nedenle bir seçim yaparken projenizin özel ihtiyaçlarını göz önünde bulundurmak isteyebilirsiniz.

Eğitimin Gerçekleşip Gerçekleşmediği Nasıl Kontrol Edilir? GPU

Sorun: Eğitim günlüklerindeki 'cihaz' değeri 'null' ve GPU adresinde eğitimin gerçekleşip gerçekleşmediğinden emin değilsiniz.

Çözüm: 'Cihaz' değerinin 'null' olması genellikle eğitim sürecinin otomatik olarak mevcut bir GPU adresini kullanacak şekilde ayarlandığı anlamına gelir ki bu varsayılan davranıştır. Eğitimin belirli bir GPU üzerinde gerçekleşmesini sağlamak için .yaml yapılandırma dosyanızda 'device' değerini manuel olarak GPU dizinine (örneğin, ilk GPU için '0') ayarlayabilirsiniz:

device: 0

Bu, eğitim sürecini açıkça belirtilen GPU adresine atayacaktır. Eğer CPU üzerinde eğitim yapmak istiyorsanız, 'device' seçeneğini 'cpu' olarak ayarlayın.

Eğitim ilerlemesini etkili bir şekilde izlemek için günlükler ve ölçümler için 'koşular' klasörüne göz atın.

Etkili Model Eğitimi için Temel Hususlar

Model eğitimi ile ilgili sorunlarla karşılaşıyorsanız, aklınızda bulundurmanız gereken bazı noktalar şunlardır.

Veri Kümesi Formatı ve Etiketleri

  • Importance: The foundation of any machine learning model lies in the quality and format of the data it is trained on.

  • Öneri: Özel veri kümenizin ve ilişkili etiketlerinin beklenen biçime uygun olduğundan emin olun. Ek açıklamaların doğru ve yüksek kalitede olduğunu doğrulamak çok önemlidir. Yanlış veya yetersiz ek açıklamalar, modelin öğrenme sürecini raydan çıkararak öngörülemeyen sonuçlara yol açabilir.

Model Yakınsaması

  • Importance: Achieving model convergence ensures that the model has sufficiently learned from the training data.

  • Recommendation: When training a model 'from scratch', it's vital to ensure that the model reaches a satisfactory level of convergence. This might necessitate a longer training duration, with more epochs, compared to when you're fine-tuning an existing model.

Learning Rate and Batch Size

  • Önemi: Bu hiperparametreler, modelin eğitim sırasında ağırlıklarını nasıl güncelleyeceğini belirlemede çok önemli bir rol oynar.

  • Öneri: Seçilen öğrenme oranı ve yığın boyutunun belirli veri setiniz için en uygun olup olmadığını düzenli olarak değerlendirin. Veri kümesinin özellikleriyle uyumlu olmayan parametreler modelin performansını engelleyebilir.

Sınıf Dağılımı

  • Önemlilik: Veri setinizdeki sınıfların dağılımı modelin tahmin eğilimlerini etkileyebilir.

  • Öneri: Veri setinizdeki sınıfların dağılımını düzenli olarak değerlendirin. Bir sınıf dengesizliği varsa, modelin daha yaygın olan sınıfa doğru bir önyargı geliştirme riski vardır. Bu önyargı, modelin ağırlıklı olarak çoğunluk sınıfını tahmin edebileceği karışıklık matrisinde belirgin olabilir.

Önceden Eğitilmiş Ağırlıklarla Çapraz Kontrol

  • Önemi: Önceden eğitilmiş ağırlıklardan yararlanmak, özellikle verilerin sınırlı olduğu durumlarda model eğitimi için sağlam bir başlangıç noktası sağlayabilir.

  • Öneri: Tanısal bir adım olarak, modelinizi aynı verileri kullanarak eğitmeyi ancak önceden eğitilmiş ağırlıklarla başlatmayı düşünün. Bu yaklaşım iyi biçimlendirilmiş bir karışıklık matrisi verirse, 'sıfırdan' modelin daha fazla eğitim veya ayarlama gerektirebileceğini gösterebilir.

Bu bölümde model tahmini sırasında karşılaşılan yaygın sorunlar ele alınacaktır.

YOLO11 Özel Modelinizle Sınırlayıcı Kutu Tahminleri Alma

Issue: When running predictions with a custom YOLO11 model, there are challenges with the format and visualization of the bounding box coordinates.

Çözüm:

  • Koordinat Biçimi: YOLO11 sınırlayıcı kutu koordinatlarını mutlak piksel değerleri olarak sağlar. Bunları göreli koordinatlara (0 ile 1 arasında değişen) dönüştürmek için görüntü boyutlarına bölmeniz gerekir. Örneğin, görüntü boyutunuzun 640x640 olduğunu varsayalım. O zaman aşağıdakileri yaparsınız:
# Convert absolute coordinates to relative coordinates
x1 = x1 / 640  # Divide x-coordinates by image width
x2 = x2 / 640
y1 = y1 / 640  # Divide y-coordinates by image height
y2 = y2 / 640
  • Dosya Adı: Üzerinde tahminde bulunduğunuz görüntünün dosya adını elde etmek için, görüntü dosyası yoluna doğrudan tahmin döngünüzdeki sonuç nesnesinden erişin.

YOLO11 Tahminlerinde Nesneleri Filtreleme

Issue: Facing issues with how to filter and display only specific objects in the prediction results when running YOLO11 using the Ultralytics library.

Çözüm: Belirli sınıfları tespit etmek için, çıktıya dahil etmek istediğiniz sınıfları belirtmek üzere classes bağımsız değişkenini kullanın. Örneğin, yalnızca arabaları tespit etmek için ('cars' sınıf indeksinin 2 olduğunu varsayarak):

yolo task=detect mode=segment model=yolo11n-seg.pt source='path/to/car.mp4' show=True classes=2

YOLO11'de Hassasiyet Ölçütlerini Anlama

Issue: Confusion regarding the difference between box precision, mask precision, and confusion matrix precision in YOLO11.

Solution: Box precision measures the accuracy of predicted bounding boxes compared to the actual ground truth boxes using IoU (Intersection over Union) as the metric. Mask precision assesses the agreement between predicted segmentation masks and ground truth masks in pixel-wise object classification. Confusion matrix precision, on the other hand, focuses on overall classification accuracy across all classes and does not consider the geometric accuracy of predictions. It's important to note that a bounding box can be geometrically accurate (true positive) even if the class prediction is wrong, leading to differences between box precision and confusion matrix precision. These metrics evaluate distinct aspects of a model's performance, reflecting the need for different evaluation metrics in various tasks.

YOLO11'de Nesne Boyutlarını Çıkarma

Issue: Difficulty in retrieving the length and height of detected objects in YOLO11, especially when multiple objects are detected in an image.

Solution: To retrieve the bounding box dimensions, first use the Ultralytics YOLO11 model to predict objects in an image. Then, extract the width and height information of bounding boxes from the prediction results.

from ultralytics import YOLO

# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")

# Specify the source image
source = "https://ultralytics.com/images/bus.jpg"

# Make predictions
results = model.predict(source, save=True, imgsz=320, conf=0.5)

# Extract bounding box dimensions
boxes = results[0].boxes.xywh.cpu()
for box in boxes:
    x, y, w, h = box
    print(f"Width of Box: {w}, Height of Box: {h}")

Dağıtım Zorlukları

GPU Dağıtım Sorunları

Sorun: Modelleri çokluGPU ortamında dağıtmak bazen beklenmedik bellek kullanımı, GPU'lar arasında tutarsız sonuçlar vb. gibi beklenmedik davranışlara yol açabilir.

Çözüm: Varsayılan GPU başlatmasını kontrol edin. PyTorch gibi bazı çerçeveler, belirlenen GPU'lara geçmeden önce CUDA işlemlerini varsayılan bir GPU üzerinde başlatabilir. Beklenmedik varsayılan başlatmaları atlamak için, dağıtım ve tahmin sırasında GPU adresini doğrudan belirtin. Ardından, herhangi bir anormalliği gerçek zamanlı olarak tespit etmek için GPU kullanımını ve bellek kullanımını izlemek üzere araçlar kullanın. Ayrıca, çerçevenin veya kütüphanenin en son sürümünü kullandığınızdan emin olun.

Model Dönüştürme/İhraç Etme Sorunları

Sorun: Makine öğrenimi modellerini farklı biçimlere veya platformlara dönüştürme veya dışa aktarma işlemi sırasında kullanıcılar hatalarla veya beklenmedik davranışlarla karşılaşabilir.

Çözüm:

  • Uyumluluk Kontrolü: Kütüphanelerin ve çerçevelerin birbiriyle uyumlu sürümlerini kullandığınızdan emin olun. Uyumsuz sürümler dönüştürme sırasında beklenmedik hatalara yol açabilir.

  • Ortam Sıfırlama: Jupyter veya Colab gibi etkileşimli bir ortam kullanıyorsanız, önemli değişiklikler veya kurulumlar yaptıktan sonra ortamınızı yeniden başlatmayı düşünün. Yeni bir başlangıç bazen altta yatan sorunları çözebilir.

  • Resmi Belgeler: Her zaman dönüştürme için kullandığınız araç veya kütüphanenin resmi belgelerine başvurun. Genellikle model dışa aktarma için özel yönergeler ve en iyi uygulamaları içerir.

  • Topluluk Desteği: Diğer kullanıcılar tarafından bildirilen benzer sorunlar için kütüphane veya çerçevenin resmi deposunu kontrol edin. Bakımcılar veya topluluk, tartışma başlıklarında çözümler veya geçici çözümler sağlamış olabilir.

  • Düzenli Olarak Güncelleyin: Aracın veya kütüphanenin en son sürümünü kullandığınızdan emin olun. Geliştiriciler sık sık bilinen hataları düzelten veya işlevselliği artıran güncellemeler yayınlar.

  • Aşamalı Olarak Test Edin: Tam bir dönüşüm gerçekleştirmeden önce, olası sorunları erkenden belirlemek için süreci daha küçük bir model veya veri kümesiyle test edin.

Topluluk ve Destek

Benzer düşünen bireylerden oluşan bir toplulukla etkileşim kurmak, YOLO11 ile çalışma deneyiminizi ve başarınızı önemli ölçüde artırabilir. Aşağıda yararlı bulabileceğiniz bazı kanallar ve kaynaklar yer almaktadır.

Yardım Almak için Forumlar ve Kanallar

GitHub Sorunları: GitHub'daki YOLO11 deposunda soru sorabileceğiniz, hataları bildirebileceğiniz ve yeni özellikler önerebileceğiniz bir Sorunlar sekmesi vardır. Topluluk ve bakımcılar burada aktiftir ve belirli sorunlarla ilgili yardım almak için harika bir yerdir.

Ultralytics Discord Sunucusu: Ultralytics , diğer kullanıcılar ve geliştiricilerle etkileşime girebileceğiniz bir Discord sunucusuna sahiptir.

Resmi Dokümantasyon ve Kaynaklar

Ultralytics YOLO11 Docs: The official documentation provides a comprehensive overview of YOLO11, along with guides on installation, usage, and troubleshooting.

Bu kaynaklar, YOLO11 projelerinizde sorun giderme ve iyileştirmenin yanı sıra YOLO11 topluluğundaki diğer kişilerle bağlantı kurmak için sağlam bir temel oluşturmalıdır.

Sonuç

Troubleshooting is an integral part of any development process, and being equipped with the right knowledge can significantly reduce the time and effort spent in resolving issues. This guide aimed to address the most common challenges faced by users of the YOLO11 model within the Ultralytics ecosystem. By understanding and addressing these common issues, you can ensure smoother project progress and achieve better results with your computer vision tasks.

Ultralytics topluluğunun değerli bir kaynak olduğunu unutmayın. Diğer geliştiriciler ve uzmanlarla etkileşim kurmak, standart belgelerde yer almayan ek bilgiler ve çözümler sağlayabilir. Topluluğun kolektif bilgisine katkıda bulunmak için her zaman öğrenmeye, denemeye ve deneyimlerinizi paylaşmaya devam edin.

Mutlu sorun giderme!

SSS

YOLO11 ile kurulum hatalarını nasıl çözerim?

Kurulum hataları genellikle uyumluluk sorunları veya eksik bağımlılıklardan kaynaklanabilir. Python 3.8 veya üstünü kullandığınızdan ve PyTorch 1.8 veya üstünün kurulu olduğundan emin olun. Çakışmaları önlemek için sanal ortamlar kullanmakta fayda vardır. Adım adım kurulum kılavuzu için resmi kurulum kılavuzumuzu takip edin. İçe aktarma hatalarıyla karşılaşırsanız, yeni bir kurulum deneyin veya kütüphaneyi en son sürüme güncelleyin.

YOLO11 model eğitimim neden tek bir GPU adresinde yavaş?

Tek bir GPU üzerinde eğitim, büyük yığın boyutları veya yetersiz bellek nedeniyle yavaş olabilir. Eğitimi hızlandırmak için birden fazla GPU kullanın. Sisteminizde birden fazla GPU bulunduğundan emin olun ve .yaml GPU sayısını belirtmek için yapılandırma dosyası, örn, gpus: 4. Bellek sınırlarını aşmadan GPU'ları tam olarak kullanmak için parti boyutunu uygun şekilde artırın. Örnek komut:

model.train(data="/path/to/your/data.yaml", batch=32, multi_scale=True)

YOLO11 modelimin GPU adresinde eğitim aldığından nasıl emin olabilirim?

Eğitim günlüklerinde 'cihaz' değeri 'null' olarak görünüyorsa, bu genellikle eğitim sürecinin otomatik olarak mevcut bir GPU adresini kullanacak şekilde ayarlandığı anlamına gelir. Belirli bir GPU adresini açıkça atamak için, 'cihaz' değerini .yaml yapılandırma dosyası. Örneğin:

device: 0

Bu, eğitim sürecini ilk GPU adresine ayarlar. Danışmak nvidia-smi komutunu kullanarak CUDA kurulumunuzu onaylayın.

YOLO11 model eğitim ilerlememi nasıl izleyebilir ve takip edebilirim?

Tracking and visualizing training progress can be efficiently managed through tools like TensorBoard, Comet, and Ultralytics HUB. These tools allow you to log and visualize metrics such as loss, precision, recall, and mAP. Implementing early stopping based on these metrics can also help achieve better training outcomes.

YOLO11 veri kümesi formatımı tanımıyorsa ne yapmalıyım?

Veri kümenizin ve etiketlerinizin beklenen biçime uygun olduğundan emin olun. Ek açıklamaların doğru ve yüksek kalitede olduğunu doğrulayın. Herhangi bir sorunla karşılaşırsanız, en iyi uygulamalar için Veri Toplama ve Ek Açıklama kılavuzuna bakın. Veri kümesine özel daha fazla rehberlik için belgelerdeki Veri Kümeleri bölümüne göz atın.

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

Yorumlar