İçeriğe geç

En İyi Antrenman Sonuçları için İpuçları

📚 Bu kılavuz, YOLOv5 🚀 ile en iyi mAP ve eğitim sonuçlarının nasıl üretileceğini açıklamaktadır.

Veri setinizin yeterince büyük ve iyi etiketlenmiş olması koşuluyla, çoğu zaman modellerde veya eğitim ayarlarında hiçbir değişiklik yapmadan iyi sonuçlar elde edilebilir. İlk başta iyi sonuçlar alamazsanız, iyileştirmek için atabileceğiniz adımlar olabilir, ancak her zaman kullanıcıların herhangi bir değişiklik yapmadan önce tüm varsayılan ayar larla eğitim almasını öneririz. Bu, bir performans taban çizgisi oluşturmaya ve iyileştirme alanlarını tespit etmeye yardımcı olur.

Eğitim sonuçlarınız hakkında sorularınız varsa mümkün olan maksimum miktarda bilgi vermenizi öneririz Sonuç grafikleri (train losses, val losses, P, R, mAP), PR eğrisi, karışıklık matrisi, eğitim mozaikleri, test sonuçları ve labels.png gibi veri kümesi istatistik görüntüleri dahil olmak üzere yararlı bir yanıt bekliyorsanız. Bunların hepsi sizin project/name dizini, tipik olarak yolov5/runs/train/exp.

YOLOv5 eğitimlerinde en iyi sonuçları almak isteyen kullanıcılar için aşağıda tam bir kılavuz hazırladık.

Veri Seti

  • Sınıf başına görüntü. ≥ Sınıf başına 1500 görüntü önerilir
  • Sınıf başına örnek. ≥ Sınıf başına 10000 örnek (etiketli nesne) önerilir
  • Görüntü çeşitliliği. Konuşlandırılan ortamı temsil etmelidir. Gerçek dünya kullanım durumları için günün farklı zamanlarından, farklı mevsimlerden, farklı hava koşullarından, farklı ışıklardan, farklı açılardan, farklı kaynaklardan (çevrimiçi olarak kazınmış, yerel olarak toplanmış, farklı kameralar) vb. görüntüler öneririz.
  • Etiket tutarlılığı. Tüm resimlerdeki tüm sınıfların tüm örnekleri etiketlenmelidir. Kısmi etiketleme işe yaramayacaktır.
  • Etiket doğruluğu. Etiketler her nesneyi yakından çevrelemelidir. Bir nesne ile sınırlayıcı kutusu arasında boşluk olmamalıdır. Hiçbir nesnenin etiketi eksik olmamalıdır.
  • Etiket doğrulama. Görünüm train_batch*.jpg Etiketlerinizin doğru göründüğünü doğrulamak için tren başlangıcında, örn. örnek Mozaik.
  • Arka plan görüntüleri. Arka plan görüntüleri, Yanlış Pozitifleri (FP) azaltmak için bir veri kümesine eklenen ve nesne içermeyen görüntülerdir. FP'leri azaltmaya yardımcı olması için yaklaşık %0-10 oranında arka plan görüntüsü öneriyoruz (COCO'da referans olarak 1000 arka plan görüntüsü vardır, toplamın %1'i). Arka plan görüntüleri için etiket gerekmez.

COCO Analizi

Model Seçimi

YOLOv5x ve YOLOv5x6 gibi daha büyük modeller neredeyse tüm durumlarda daha iyi sonuçlar üretecektir, ancak daha fazla parametreye sahiptir, eğitmek için daha fazla CUDA belleği gerektirir ve çalıştırılması daha yavaştır. Mobil dağıtımlar için YOLOv5s/m'yi, bulut dağıtımları için YOLOv5l/x'i öneriyoruz. Tüm modellerin tam karşılaştırması için README tablomuza bakın.

YOLOv5 Modeller

  • Önceden eğitilmiş ağırlıklardan başlayın. Küçük ve orta ölçekli veri kümeleri için önerilir (örn. VOC, VisDrone, GlobalWheat). Modelin adını, modelin --weights argüman. Modeller otomatik olarak en son YOLOv5 sürümü.
python train.py --data custom.yaml --weights yolov5s.pt
                                             yolov5m.pt
                                             yolov5l.pt
                                             yolov5x.pt
                                             custom_pretrained.pt
  • Sıfırdan başlayın. Büyük veri kümeleri için önerilir (örn. COCO, Objects365, OIv6). İlgilendiğiniz model mimarisi YAML'ını boş bir --weights '' Tartışma:
python train.py --data custom.yaml --weights '' --cfg yolov5s.yaml
                                                      yolov5m.yaml
                                                      yolov5l.yaml
                                                      yolov5x.yaml

Eğitim Ayarları

Herhangi bir değişiklik yapmadan önce, bir performans taban çizgisi oluşturmak için önce varsayılan ayarlarla eğitin. train.py ayarlarının tam listesi train.py argparser'da bulunabilir.

  • Çağlar. 300 dönem ile başlayın. Eğer bu erken uyum sağlarsa, epokları azaltabilirsiniz. Aşırı uyum 300 epoktan sonra gerçekleşmezse, daha uzun süre eğitin, yani 600, 1200 vb. epoklar.
  • Resim boyutu. COCO şu çözünürlükte eğitim verir --img 640Bununla birlikte, veri kümesindeki yüksek miktardaki küçük nesneler nedeniyle, aşağıdaki gibi daha yüksek çözünürlüklerde eğitimden faydalanabilir --img 1280. Çok sayıda küçük nesne varsa, özel veri kümeleri yerel veya daha yüksek çözünürlükte eğitimden fayda sağlayacaktır. En iyi çıkarım sonuçları aynı çözünürlükte elde edilir --img eğitimin yürütüldüğü gibi, yani eğer --img 1280 de test etmeli ve tespit etmelisiniz. --img 1280.
  • Parti büyüklüğü. En büyüğünü kullanın --batch-size donanımınızın izin verdiği kadar. Küçük yığın boyutları zayıf yığın normu istatistikleri üretir ve bundan kaçınılmalıdır.
  • Hiperparametreler. Varsayılan hiperparametreler hyp.scratch-low.yaml. Herhangi birini değiştirmeyi düşünmeden önce varsayılan hiperparametrelerle eğitim yapmanızı öneririz. Genel olarak, artırma hiperparametrelerinin artırılması aşırı uyumu azaltacak ve geciktirecek, daha uzun eğitimlere ve daha yüksek nihai mAP'ye izin verecektir. Kayıp bileşeni kazanç hiperparametrelerindeki azalma hyp['obj'] bu belirli kayıp bileşenlerinde aşırı uyumu azaltmaya yardımcı olacaktır. Bu hiperparametreleri optimize etmenin otomatik bir yöntemi için bkz. Hiperparametre Evrimi Eğitimi.

Daha Fazla Okuma

Daha fazla bilgi edinmek isterseniz, Karpathy'nin 'Sinir Ağlarını Eğitmek İçin Reçete' adlı kitabı başlangıç için iyi bir yerdir; bu kitapta tüm makine öğrenimi alanlarında geçerli olan eğitim için harika fikirler vardır: https://karpathy.github.io/2019/04/25/recipe/

İyi şanslar 🍀 ve başka sorularınız olursa bize bildirin!



Oluşturuldu 2023-11-12, Güncellendi 2024-01-12
Yazarlar: glenn-jocher (3)

Yorumlar