Yaygın YOLO Sorunlarını Giderme
Giriş
This guide serves as a comprehensive aid for troubleshooting common issues encountered while working with YOLO11 on your Ultralytics projects. Navigating through these issues can be a breeze with the right guidance, ensuring your projects remain on track without unnecessary delays.
İ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:
Import Errors or Dependency Issues - If you're getting errors during the import of YOLO11, or you're having issues related to dependencies, consider the following troubleshooting steps:
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.
Running YOLO11 on GPU - If you're having trouble running YOLO11 on GPU, consider the following troubleshooting steps:
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ı olarakdata
argümanını çağırırkenmodel.train()
aşağıda gösterildiği gibi:
Ç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:
- Hassasiyet
- Geri Çağırma
- Mean Average Precision (mAP)
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:
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.
Model Tahminleriyle İlgili Sorunlar
Bu bölümde model tahmini sırasında karşılaşılan yaygın sorunlar ele alınacaktır.
Getting Bounding Box Predictions With Your YOLO11 Custom Model
Issue: When running predictions with a custom YOLO11 model, there are challenges with the format and visualization of the bounding box coordinates.
Çözüm:
- Coordinate Format: YOLO11 provides bounding box coordinates in absolute pixel values. To convert these to relative coordinates (ranging from 0 to 1), you need to divide by the image dimensions. For example, let's say your image size is 640x640. Then you would do the following:
# 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.
Filtering Objects in YOLO11 Predictions
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):
Understanding Precision Metrics in YOLO11
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.
Extracting Object Dimensions in YOLO11
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
Engaging with a community of like-minded individuals can significantly enhance your experience and success in working with YOLO11. Below are some channels and resources you may find helpful.
Yardım Almak için Forumlar ve Kanallar
GitHub Issues: The YOLO11 repository on GitHub has an Issues tab where you can ask questions, report bugs, and suggest new features. The community and maintainers are active here, and it's a great place to get help with specific problems.
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.
These resources should provide a solid foundation for troubleshooting and improving your YOLO11 projects, as well as connecting with others in the YOLO11 community.
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
How do I resolve installation errors with YOLO11?
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.
Why is my YOLO11 model training slow on a single GPU?
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:
How can I ensure my YOLO11 model is training on the GPU?
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:
Bu, eğitim sürecini ilk GPU adresine ayarlar. Danışmak nvidia-smi
komutunu kullanarak CUDA kurulumunuzu onaylayın.
How can I monitor and track my YOLO11 model training progress?
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.
What should I do if YOLO11 is not recognizing my dataset format?
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.