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 if you expect a helpful response, including results plots (train losses, val losses, P, R, mAP), PR curve, confusion matrix, training mosaics, test results and dataset statistics images such as labels.png. All of these are located in your 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.
- Label accuracy. Labels must closely enclose each object. No space should exist between an object and it's bounding box. No objects should be missing a label.
- 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.
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 bellek gerektirir ve daha yavaş çalışır. Mobil dağıtımlar için YOLOv5s/m'yi, bulut dağıtımları için YOLOv5l/x'i öneriyoruz. Tüm modellerin tam bir karşılaştırması için README tablomuza bakın.
- Ö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.
- Epochs. Start with 300 epochs. If this overfits early then you can reduce epochs. If overfitting does not occur after 300 epochs, train longer, i.e. 600, 1200 etc. epochs.
- Resim boyutu. COCO şu çözünürlükte eğitim verir
--img 640
Bununla 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
. - Batch size. 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
If you'd like to know more, a good place to start is Karpathy's 'Recipe for Training Neural Networks', which has great ideas for training that apply broadly across all ML domains: https://karpathy.github.io/2019/04/25/recipe/
İyi şanslar 🍀 ve başka sorularınız olursa bize bildirin!