Konfigürasyon
YOLO ayarlar ve hiperparametreler modelin performansında, hızında ve doğruluğunda kritik bir rol oynar. Bu ayarlar ve hiperparametreler, eğitim, doğrulama ve tahmin dahil olmak üzere model geliştirme sürecinin çeşitli aşamalarında modelin davranışını etkileyebilir.
İzle: Mastering Ultralytics YOLO : Yapılandırma
Ultralytics komutları aşağıdaki sözdizimini kullanır:
Örnek
Nerede?
TASK
(isteğe bağlı) şunlardan biridir (tespit etmek, segment, sınıflandırmak, poz, obb)MODE
(gerekli) aşağıdakilerden biridir (Tren, val, tahmin etmek, ihracat, parça, kıyaslama)ARGS
(isteğe bağlı) şunlardırarg=value
gibi çiftlerimgsz=640
varsayılanları geçersiz kılar.
Varsayılan ARG
değerleri bu sayfada cfg/defaults.yaml
dosya.
Görevler
YOLO modelleri algılama, segmentasyon, sınıflandırma ve pozlama gibi çeşitli görevler için kullanılabilir. Bu görevler, ürettikleri çıktı türüne ve çözmek için tasarlandıkları özel soruna göre farklılık gösterir.
- Tespit etmek: Bir görüntü veya videodaki nesneleri veya ilgilenilen bölgeleri tanımlamak ve konumlandırmak için.
- Segment: Bir görüntüyü veya videoyu farklı nesnelere veya sınıflara karşılık gelen bölgelere veya piksellere bölmek için.
- Sınıflandırmak: Bir giriş görüntüsünün sınıf etiketini tahmin etmek için.
- Poz: Nesneleri tanımlamak ve bir görüntü veya videodaki kilit noktalarını tahmin etmek için.
- OBB: Uydu veya tıbbi görüntüler için uygun yönlendirilmiş (yani döndürülmüş) sınırlayıcı kutular.
Tartışma | Varsayılan | Açıklama |
---|---|---|
task | 'detect' | Yürütülecek YOLO görevini belirtir. Seçenekler şunları içerir detect için nesne algılama, segment segmentasyon için, classify sınıflandırma için, pose poz tahmini için ve obb yönlendirilmiş sınırlayıcı kutular için. Her görev, görüntü ve video analizindeki belirli çıktı türlerine ve sorunlara göre uyarlanmıştır. |
Modlar
YOLO modeller, çözmeye çalıştığınız özel soruna bağlı olarak farklı modlarda kullanılabilir. Bu modlar şunları içerir:
- Eğitmek: Bir YOLO11 modelini özel bir veri kümesi üzerinde eğitmek için.
- Val: Eğitildikten sonra bir YOLO11 modelini doğrulamak için.
- Tahmin Et: Yeni görüntüler veya videolar üzerinde eğitilmiş bir YOLO11 modeli kullanarak tahminler yapmak için.
- Dışa aktarma: Bir YOLO11 modelini dağıtım için kullanılabilecek bir formata dışa aktarmak için.
- İz: Bir YOLO11 modeli kullanarak nesneleri gerçek zamanlı olarak izlemek için.
- Kıyaslama: YOLO11 ihracatlarının (ONNX, TensorRT, vb.) hızını ve doğruluğunu kıyaslamak için.
Tartışma | Varsayılan | Açıklama |
---|---|---|
mode | 'train' | YOLO modelinin hangi modda çalışacağını belirtir. Seçenekler şunlardır train model eğitimi için, val doğrulama için, predict yeni veriler üzerinde çıkarım yapmak için, export dağıtım formatlarına model dönüşümü için, track nesne takibi için ve benchmark performans değerlendirmesi için. Her mod, geliştirmeden dağıtıma kadar model yaşam döngüsünün farklı aşamaları için tasarlanmıştır. |
Tren Ayarları
YOLO modelleri için eğitim ayarları, eğitim süreci sırasında kullanılan çeşitli hiper parametreleri ve yapılandırmaları kapsar. Bu ayarlar modelin performansını, hızını ve doğruluğunu etkiler. Temel eğitim ayarları arasında yığın boyutu, öğrenme hızı, momentum ve ağırlık azalması yer alır. Ayrıca optimize edici, kayıp fonksiyonu ve eğitim veri kümesi bileşimi seçimi de eğitim sürecini etkileyebilir. Bu ayarların dikkatli bir şekilde ayarlanması ve denenmesi performansı optimize etmek için çok önemlidir.
Tartışma | Varsayılan | Açıklama |
---|---|---|
model | None | Eğitim için model dosyasını belirtir. Bir model dosyasına giden bir yol kabul eder. .pt ön eğitimli model veya bir .yaml yapılandırma dosyası. Model yapısını tanımlamak veya ağırlıkları başlatmak için gereklidir. |
data | None | Veri kümesi yapılandırma dosyasının yolu (örn, coco8.yaml ). Bu dosya, eğitim yolları ve veri kümesine özgü parametreleri içerir. doğrulama veri̇leri̇, sınıf adları ve sınıf sayısı. |
epochs | 100 | Toplam eğitim epok sayısı. Her epok, tüm veri kümesi üzerinde tam bir geçişi temsil eder. Bu değerin ayarlanması eğitim süresini ve model performansını etkileyebilir. |
time | None | Saat cinsinden maksimum eğitim süresi. Eğer ayarlanırsa, bu epochs argümanı, eğitimin belirtilen süreden sonra otomatik olarak durmasına izin verir. Zaman kısıtlı eğitim senaryoları için kullanışlıdır. |
patience | 100 | Eğitimi erken durdurmadan önce doğrulama metriklerinde iyileşme olmadan beklenecek epok sayısı. Performans platoları olduğunda eğitimi durdurarak aşırı uyumu önlemeye yardımcı olur. |
batch | 16 | Parti büyüklüğüüç mod ile: bir tamsayı olarak ayarlanır (örn, batch=16 ), %60 GPU bellek kullanımı için otomatik mod (batch=-1 ) veya belirtilen kullanım fraksiyonu (batch=0.70 ). |
imgsz | 640 | Eğitim için hedef görüntü boyutu. Tüm görüntüler modele girilmeden önce bu boyuta yeniden boyutlandırılır. Model doğruluğunu ve hesaplama karmaşıklığını etkiler. |
save | True | Eğitim kontrol noktalarının ve son model ağırlıklarının kaydedilmesini sağlar. Eğitime veya model dağıtımına devam etmek için kullanışlıdır. |
save_period | -1 | Model kontrol noktalarını kaydetme sıklığı, epok cinsinden belirtilir. -1 değeri bu özelliği devre dışı bırakır. Uzun eğitim oturumları sırasında ara modelleri kaydetmek için kullanışlıdır. |
cache | False | Veri kümesi görüntülerinin bellekte önbelleğe alınmasını etkinleştirir (True /ram ), disk üzerinde (disk ) veya devre dışı bırakır (False ). Artan bellek kullanımı pahasına disk I/O'sunu azaltarak eğitim hızını artırır. |
device | None | Eğitim için hesaplama cihaz(lar)ını belirtir: tek bir GPU (device=0 ), çoklu GPU'lar (device=0,1 ), CPU (device=cpu ) veya Apple silikonu için MPS (device=mps ). |
workers | 8 | Veri yükleme için işçi iş parçacığı sayısı (her RANK eğer ÇokluGPU eğitim). Veri ön işleme ve modele besleme hızını etkiler, özellikle çokluGPU kurulumlarında kullanışlıdır. |
project | None | Eğitim çıktılarının kaydedildiği proje dizininin adı. Farklı deneylerin düzenli bir şekilde saklanmasını sağlar. |
name | None | Eğitim çalışmasının adı. Proje klasörü içinde eğitim günlüklerinin ve çıktılarının saklandığı bir alt dizin oluşturmak için kullanılır. |
exist_ok | False | True ise, mevcut bir proje/isim dizininin üzerine yazılmasına izin verir. Önceki çıktıları manuel olarak temizlemeye gerek kalmadan yinelemeli denemeler için kullanışlıdır. |
pretrained | True | Eğitime önceden eğitilmiş bir modelden başlanıp başlanmayacağını belirler. Boolean bir değer veya ağırlıkların yükleneceği belirli bir modele giden bir dize yolu olabilir. Eğitim verimliliğini ve model performansını artırır. |
optimizer | 'auto' | Eğitim için optimize edici seçimi. Seçenekler şunları içerir SGD , Adam , AdamW , NAdam , RAdam , RMSProp vb. veya auto model yapılandırmasına dayalı otomatik seçim için. Yakınsama hızını ve kararlılığı etkiler. |
seed | 0 | Eğitim için rastgele tohumu ayarlar ve aynı konfigürasyonlara sahip çalıştırmalar arasında sonuçların tekrarlanabilirliğini sağlar. |
deterministic | True | Deterministik algoritma kullanımını zorlayarak tekrarlanabilirliği sağlar, ancak deterministik olmayan algoritmalar üzerindeki kısıtlama nedeniyle performansı ve hızı etkileyebilir. |
single_cls | False | Eğitim sırasında çok sınıflı veri kümelerindeki tüm sınıfları tek bir sınıf olarak ele alır. İkili sınıflandırma görevleri için veya sınıflandırmadan ziyade nesne varlığına odaklanırken kullanışlıdır. |
rect | False | Minimum dolgu için yığın kompozisyonunu optimize ederek dikdörtgen eğitim sağlar. Verimliliği ve hızı artırabilir ancak model doğruluğunu etkileyebilir. |
cos_lr | False | Epoklar boyunca bir kosinüs eğrisini takip ederek öğrenme oranını ayarlayan bir kosinüs öğrenme oranı zamanlayıcısı kullanır. Daha iyi yakınsama için öğrenme oranını yönetmeye yardımcı olur. |
close_mosaic | 10 | Tamamlanmadan önce eğitimi stabilize etmek için son N epokta mozaik veri artırımını devre dışı bırakır. 0 olarak ayarlanması bu özelliği devre dışı bırakır. |
resume | False | Son kaydedilen kontrol noktasından eğitime devam eder. Model ağırlıklarını, optimizer durumunu ve epok sayısını otomatik olarak yükleyerek eğitime sorunsuz bir şekilde devam eder. |
amp | True | Otomatik Karma Hassasiyet (AMP) eğitimini etkinleştirerek bellek kullanımını azaltır ve muhtemelen doğruluk üzerinde minimum etkiyle eğitimi hızlandırır. |
fraction | 1.0 | Veri kümesinin eğitim için kullanılacak kısmını belirtir. Tam veri kümesinin bir alt kümesi üzerinde eğitime izin verir, deneyler için veya kaynaklar sınırlı olduğunda kullanışlıdır. |
profile | False | Eğitim sırasında ONNX ve TensorRT hızlarının profilinin çıkarılmasını sağlar, model dağıtımını optimize etmek için kullanışlıdır. |
freeze | None | Modelin ilk N katmanını veya indekse göre belirtilen katmanları dondurarak eğitilebilir parametrelerin sayısını azaltır. İnce ayar veya aktarımlı öğrenme için kullanışlıdır. |
lr0 | 0.01 | İlk öğrenme oranı (örn. SGD=1E-2 , Adam=1E-3 ) . Bu değerin ayarlanması optimizasyon süreci için çok önemlidir ve model ağırlıklarının ne kadar hızlı güncelleneceğini etkiler. |
lrf | 0.01 | Başlangıç oranının bir kesri olarak nihai öğrenme oranı = (lr0 * lrf ), zaman içinde öğrenme oranını ayarlamak için zamanlayıcılarla birlikte kullanılır. |
momentum | 0.937 | SGD için momentum faktörü veya Adam optimize ediciler için beta1, geçmiş gradyanların mevcut güncellemeye dahil edilmesini etkiler. |
weight_decay | 0.0005 | Aşırı uyumu önlemek için büyük ağırlıkları cezalandıran L2 düzenleme terimi. |
warmup_epochs | 3.0 | Öğrenme hızı ısınması için epok sayısı, eğitimi erkenden stabilize etmek için öğrenme hızını düşük bir değerden başlangıç öğrenme hızına kademeli olarak artırır. |
warmup_momentum | 0.8 | Isınma aşaması için başlangıç momentumu, ısınma süresi boyunca kademeli olarak ayarlanan momentuma ayarlanır. |
warmup_bias_lr | 0.1 | Isınma aşamasında önyargı parametreleri için öğrenme oranı, ilk epoklarda model eğitiminin dengelenmesine yardımcı olur. |
box | 7.5 | Kayıp fonksiyonundaki kutu kaybı bileşeninin ağırlığı, sınırlayıcı kutu koordinatlarının doğru tahmin edilmesine ne kadar önem verildiğini etkiler. |
cls | 0.5 | Sınıflandırma kaybının toplam kayıp fonksiyonundaki ağırlığı, doğru sınıf tahmininin diğer bileşenlere göre önemini etkiler. |
dfl | 1.5 | Belirli YOLO sürümlerinde ince taneli sınıflandırma için kullanılan dağıtım odak kaybının ağırlığı. |
pose | 12.0 | Poz tahmini için eğitilen modellerde poz kaybının ağırlığı, poz anahtar noktalarını doğru bir şekilde tahmin etme vurgusunu etkiler. |
kobj | 2.0 | Poz tahmin modellerinde anahtar nokta nesnellik kaybının ağırlığı, algılama güvenini poz doğruluğu ile dengeler. |
label_smoothing | 0.0 | Etiket yumuşatma uygular, sert etiketleri hedef etiketin bir karışımına ve etiketler üzerinde tek tip bir dağılıma yumuşatır, genelleştirmeyi iyileştirebilir. |
nbs | 64 | Kaybın normalleştirilmesi için nominal parti büyüklüğü. |
overlap_mask | True | Nesne maskelerinin eğitim için tek bir maskede birleştirilip birleştirilmeyeceğini veya her nesne için ayrı tutulup tutulmayacağını belirler. Üst üste binme durumunda, birleştirme sırasında küçük maske büyük maskenin üzerine bindirilir. |
mask_ratio | 4 | Segmentasyon maskeleri için aşağı örnekleme oranı, eğitim sırasında kullanılan maskelerin çözünürlüğünü etkiler. |
dropout | 0.0 | Sınıflandırma görevlerinde düzenli hale getirme için bırakma oranı, eğitim sırasında birimleri rastgele atlayarak aşırı uyumu önler. |
val | True | Eğitim sırasında doğrulamayı etkinleştirerek model performansının ayrı bir veri kümesi üzerinde periyodik olarak değerlendirilmesine olanak tanır. |
plots | False | Eğitim ve doğrulama ölçümlerinin yanı sıra tahmin örneklerinin grafiklerini oluşturur ve kaydeder, model performansı ve öğrenme ilerlemesi hakkında görsel bilgiler sağlar. |
Toplu İş Boyutu Ayarları Hakkında Not
Bu batch
Bağımsız değişken üç şekilde yapılandırılabilir:
- Sabit Parti Boyutu: Bir tamsayı değeri ayarlayın (örn.
batch=16
), doğrudan parti başına görüntü sayısını belirtir. - Otomatik Mod (%60 GPU Bellek):Kullanmak
batch=-1
yaklaşık %60 CUDA bellek kullanımı için toplu iş boyutunu otomatik olarak ayarlar. - Kullanım Fraksiyonlu Otomatik Mod: Bir kesir değeri ayarlayın (örn.
batch=0.70
) toplu iş boyutunu GPU bellek kullanımının belirtilen kısmına göre ayarlamak için.
Ayarları Tahmin Et
YOLO modelleri için tahmin ayarları, yeni veriler üzerinde çıkarım yaparken modelin performansını, hızını ve doğruluğunu etkileyen bir dizi hiper parametreyi ve yapılandırmayı kapsar. Bu ayarların dikkatli bir şekilde ayarlanması ve denenmesi, belirli bir görev için optimum performans elde etmek için gereklidir. Temel ayarlar arasında güven eşiği, Maksimum Olmayan Bastırma (NMS) eşiği ve dikkate alınan sınıf sayısı yer alır. Tahmin sürecini etkileyen diğer faktörler arasında girdi veri boyutu ve formatı, maskeler veya kutu başına birden fazla etiket gibi tamamlayıcı özelliklerin varlığı ve modelin kullanıldığı özel görev yer almaktadır.
Çıkarım argümanları:
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
source | str | 'ultralytics/assets' | Çıkarım için veri kaynağını belirtir. Bir görüntü yolu, video dosyası, dizin, URL veya canlı yayınlar için cihaz kimliği olabilir. Çok çeşitli formatları ve kaynakları destekleyerek farklı girdi türlerinde esnek uygulama sağlar. |
conf | float | 0.25 | Tespitler için minimum güven eşiğini ayarlar. Bu eşiğin altında güvenle tespit edilen nesneler dikkate alınmayacaktır. Bu değerin ayarlanması yanlış pozitiflerin azaltılmasına yardımcı olabilir. |
iou | float | 0.7 | Maksimum Olmayan Bastırma (NMS) için Birlik Üzerinde Kesişme (IoU) eşiği. Daha düşük değerler, üst üste binen kutuları ortadan kaldırarak daha az tespitle sonuçlanır, bu da kopyaları azaltmak için kullanışlıdır. |
imgsz | int or tuple | 640 | Çıkarım için görüntü boyutunu tanımlar. Tek bir tamsayı olabilir 640 kare yeniden boyutlandırma veya bir (yükseklik, genişlik) tuple için. Doğru boyutlandırma algılamayı iyileştirebilir doğruluk ve işlem hızı. |
half | bool | False | Desteklenen GPU'larda model çıkarımını doğruluk üzerinde minimum etkiyle hızlandırabilen yarı hassas (FP16) çıkarımı etkinleştirir. |
device | str | None | Çıkarım için cihazı belirtir (örn, cpu , cuda:0 veya 0 ). Kullanıcıların CPU, belirli bir GPU veya model yürütme için diğer hesaplama cihazları arasında seçim yapmasına olanak tanır. |
max_det | int | 300 | Görüntü başına izin verilen maksimum algılama sayısı. Modelin tek bir çıkarımda tespit edebileceği toplam nesne sayısını sınırlayarak yoğun sahnelerde aşırı çıktıları önler. |
vid_stride | int | 1 | Video girişleri için kare atlama. Zamansal çözünürlük pahasına işlemeyi hızlandırmak için videolardaki karelerin atlanmasına izin verir. 1 değeri her kareyi işler, daha yüksek değerler kareleri atlar. |
stream_buffer | bool | False | Video akışları için gelen çerçevelerin sıraya alınıp alınmayacağını belirler. Eğer False yeni kareleri yerleştirmek için eski kareler bırakılır (gerçek zamanlı uygulamalar için optimize edilmiştir). Eğer `True' ise, yeni kareleri bir tamponda sıraya koyarak hiçbir karenin atlanmamasını sağlar, ancak çıkarım FPS'si akış FPS'sinden düşükse gecikmeye neden olur. |
visualize | bool | False | Çıkarım sırasında model özelliklerinin görselleştirilmesini etkinleştirerek modelin "ne gördüğüne" dair içgörü sağlar. Hata ayıklama ve model yorumlama için kullanışlıdır. |
augment | bool | False | Tahminler için test zamanı artırımını (TTA) etkinleştirerek çıkarım hızı pahasına tespit sağlamlığını potansiyel olarak iyileştirir. |
agnostic_nms | bool | False | Farklı sınıfların örtüşen kutularını birleştiren, sınıftan bağımsız Maksimum Olmayan Bastırma (NMS) özelliğini etkinleştirir. Sınıf çakışmasının yaygın olduğu çok sınıflı algılama senaryolarında kullanışlıdır. |
classes | list[int] | None | Tahminleri bir dizi sınıf kimliğine göre filtreler. Yalnızca belirtilen sınıflara ait tespitler döndürülür. Çok sınıflı algılama görevlerinde ilgili nesnelere odaklanmak için kullanışlıdır. |
retina_masks | bool | False | Yüksek çözünürlüklü segmentasyon maskeleri döndürür. Döndürülen maskeler (masks.data ) etkinleştirilmişse orijinal görüntü boyutuyla eşleşecektir. Devre dışı bırakılırsa, çıkarım sırasında kullanılan görüntü boyutuna sahip olurlar. |
embed | list[int] | None | Özellik vektörlerinin veya katıştırmaların çıkarılacağı katmanları belirtir. Kümeleme veya benzerlik arama gibi sonraki görevler için kullanışlıdır. |
project | str | None | Tahmin çıktılarının kaydedildiği proje dizininin adı save etkinleştirilir. |
name | str | None | Tahmin çalışmasının adı. Proje klasörü içinde tahmin çıktılarının saklanacağı bir alt dizin oluşturmak için kullanılır. save etkinleştirilir. |
Görselleştirme argümanları:
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
show | bool | False | Eğer True , açıklamalı görüntüleri veya videoları bir pencerede görüntüler. Geliştirme veya test sırasında anında görsel geri bildirim için kullanışlıdır. |
save | bool | False veya True | Açıklamalı görüntülerin veya videoların dosyaya kaydedilmesini sağlar. Dokümantasyon, ileri analiz veya sonuçları paylaşmak için kullanışlıdır. CLI kullanıldığında varsayılan değer True, Python kullanıldığında ise False'dir. |
save_frames | bool | False | Videoları işlerken, tek tek kareleri görüntü olarak kaydeder. Belirli kareleri ayıklamak veya ayrıntılı kare kare analiz için kullanışlıdır. |
save_txt | bool | False | Algılama sonuçlarını formata uygun olarak bir metin dosyasına kaydeder [class] [x_center] [y_center] [width] [height] [confidence] . Diğer analiz araçlarıyla entegrasyon için kullanışlıdır. |
save_conf | bool | False | Kaydedilen metin dosyalarına güven puanları ekler. İşlem sonrası ve analiz için mevcut ayrıntıları geliştirir. |
save_crop | bool | False | Tespitlerin kırpılmış görüntülerini kaydeder. Veri kümesini büyütmek, analiz etmek veya belirli nesneler için odaklanmış veri kümeleri oluşturmak için kullanışlıdır. |
show_labels | bool | True | Görsel çıktıdaki her algılama için etiketleri görüntüler. Algılanan nesnelerin anında anlaşılmasını sağlar. |
show_conf | bool | True | Etiketin yanında her bir tespit için güven puanını görüntüler. Her bir tespit için modelin kesinliği hakkında fikir verir. |
show_boxes | bool | True | Algılanan nesnelerin etrafına sınırlayıcı kutular çizer. Görüntülerdeki veya video karelerindeki nesnelerin görsel olarak tanımlanması ve konumlandırılması için gereklidir. |
line_width | None veya int | None | Sınırlayıcı kutuların çizgi genişliğini belirtir. Eğer None çizgi genişliği görüntü boyutuna göre otomatik olarak ayarlanır. Netlik için görsel özelleştirme sağlar. |
Doğrulama Ayarları
YOLO modelleri için val (doğrulama) ayarları, modelin performansını bir doğrulama veri kümesi üzerinde değerlendirmek için kullanılan çeşitli hiperparametreleri ve yapılandırmaları içerir. Bu ayarlar modelin performansını, hızını ve doğruluğunu etkiler. Yaygın YOLO doğrulama ayarları arasında yığın boyutu, eğitim sırasında doğrulama sıklığı ve performans değerlendirme metrikleri yer alır. Doğrulama sürecini etkileyen diğer faktörler arasında doğrulama veri kümesinin boyutu ve bileşiminin yanı sıra modelin kullanıldığı özel görev de yer alır.
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
data | str | None | Veri kümesi yapılandırma dosyasının yolunu belirtir (örn, coco8.yaml ). Bu dosya aşağıdakilere giden yolları içerir doğrulama veri̇leri̇, sınıf adları ve sınıf sayısı. |
imgsz | int | 640 | Girdi görüntülerinin boyutunu tanımlar. Tüm görüntüler işlenmeden önce bu boyuta yeniden boyutlandırılır. |
batch | int | 16 | Toplu iş başına görüntü sayısını ayarlar. Kullanım -1 GPU bellek kullanılabilirliğine göre otomatik olarak ayarlanan AutoBatch için. |
save_json | bool | False | Eğer True daha fazla analiz veya diğer araçlarla entegrasyon için sonuçları bir JSON dosyasına kaydeder. |
save_hybrid | bool | False | Eğer True orijinal açıklamaları ek model tahminleriyle birleştiren etiketlerin hibrit bir versiyonunu kaydeder. |
conf | float | 0.001 | Tespitler için minimum güven eşiğini ayarlar. Bu eşiğin altında güvene sahip tespitler atılır. |
iou | float | 0.6 | Maksimum Olmayan Bastırma (NMS) için Birlik Üzerinde Kesişme (IoU) eşiğini ayarlar. Yinelenen algılamaların azaltılmasına yardımcı olur. |
max_det | int | 300 | Görüntü başına maksimum algılama sayısını sınırlar. Yoğun sahnelerde aşırı algılamaları önlemek için kullanışlıdır. |
half | bool | True | Yarım hassasiyetli (FP16) hesaplamaya olanak tanıyarak bellek kullanımını azaltır ve doğruluk üzerinde minimum etkiyle hızı potansiyel olarak artırır. |
device | str | None | Doğrulama için cihazı belirtir (cpu , cuda:0 vb.). CPU veya GPU kaynaklarının kullanımında esneklik sağlar. |
dnn | bool | False | Eğer True , kullanır OpenCV ONNX model çıkarımı için DNN modülü, aşağıdakilere bir alternatif sunar PyTorch çıkarım yöntemleri. |
plots | bool | False | Olarak ayarlandığında True modelin performansının görsel olarak değerlendirilmesi için zemin gerçeğine karşı tahminlerin çizimlerini oluşturur ve kaydeder. |
rect | bool | True | Eğer True gruplama için dikdörtgen çıkarım kullanır, dolguyu azaltır ve potansiyel olarak hızı ve verimliliği artırır. |
split | str | val | Doğrulama için kullanılacak veri kümesi bölünmesini belirler (val , test veya train ). Performans değerlendirmesi için veri segmenti seçiminde esneklik sağlar. |
project | str | None | Doğrulama çıktılarının kaydedildiği proje dizininin adı. |
name | str | None | Doğrulama çalışmasının adı. Proje klasörü içinde doğrulama günlüklerinin ve çıktılarının depolandığı bir alt dizin oluşturmak için kullanılır. |
Doğrulama veri kümesinde optimum performans sağlamak ve aşırı uyumu tespit edip önlemek için bu ayarların dikkatli bir şekilde ayarlanması ve denenmesi çok önemlidir.
Dışa Aktarma Ayarları
YOLO modelleri için dışa aktarma ayarları, modelin farklı ortamlarda veya platformlarda kullanılmak üzere kaydedilmesi veya dışa aktarılmasıyla ilgili yapılandırmaları ve seçenekleri kapsar. Bu ayarlar modelin performansını, boyutunu ve çeşitli sistemlerle uyumluluğunu etkileyebilir. Temel dışa aktarma ayarları arasında dışa aktarılan model dosyası formatı (örneğin, ONNX, TensorFlow SavedModel ), hedef cihaz (örneğin, CPU, GPU) ve maskeler veya kutu başına birden fazla etiket gibi ek özellikler yer alır. Dışa aktarma süreci, modelin özel görevinden ve hedef ortamın veya platformun gereksinimlerinden veya kısıtlamalarından da etkilenebilir.
Tartışma | Tip | Varsayılan | Açıklama |
---|---|---|---|
format | str | 'torchscript' | Dışa aktarılan model için hedef format, örneğin 'onnx' , 'torchscript' , 'tensorflow' veya diğerleri, çeşitli dağıtım ortamlarıyla uyumluluğu tanımlar. |
imgsz | int veya tuple | 640 | Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı veya bir tuple olabilir (height, width) belirli boyutlar için. |
keras | bool | False | için Keras formatına aktarmayı etkinleştirir TensorFlow SavedModel TensorFlow hizmet ve API'leri ile uyumluluk sağlar. |
optimize | bool | False | TorchScript adresine aktarırken mobil cihazlar için optimizasyon uygular, potansiyel olarak model boyutunu azaltır ve performansı artırır. |
half | bool | False | FP16 (yarım hassasiyetli) nicemlemeyi etkinleştirerek model boyutunu azaltır ve desteklenen donanımda çıkarımı potansiyel olarak hızlandırır. |
int8 | bool | False | INT8 nicelemeyi etkinleştirerek modeli daha da sıkıştırır ve özellikle uç cihazlar için minimum doğruluk kaybıyla çıkarımı hızlandırır. |
dynamic | bool | False | ONNX, TensorRT ve OpenVINO dışa aktarımları için dinamik giriş boyutlarına izin vererek değişen görüntü boyutlarının işlenmesinde esnekliği artırır. |
simplify | bool | True | Model grafiğini basitleştirir. ONNX ile ihracat onnxslim , potansiyel olarak performansı ve uyumluluğu artırır. |
opset | int | None | Farklı ONNX ayrıştırıcıları ve çalışma zamanları ile uyumluluk için ONNX opset sürümünü belirtir. Ayarlanmamışsa, desteklenen en son sürümü kullanır. |
workspace | float | 4.0 | Bellek kullanımı ve performansı dengeleyen TensorRT optimizasyonları için GiB cinsinden maksimum çalışma alanı boyutunu ayarlar. |
nms | bool | False | CoreML dışa aktarımına, doğru ve verimli algılama sonrası işleme için gerekli olan Maksimum Olmayan Bastırma (NMS) ekler. |
batch | int | 1 | Dışarı aktarma modeli toplu çıkarım boyutunu veya dışarı aktarılan modelin eşzamanlı olarak işleyeceği maksimum görüntü sayısını belirtir predict Mod. |
device | str | None | Dışa aktarma için cihazı belirtir: GPU (device=0 ), CPU (device=cpu ), Apple silikonları için MPS (device=mps ) veya NVIDIA Jetson için DLA (device=dla:0 veya device=dla:1 ). |
Dışa aktarılan modelin amaçlanan kullanım durumu için optimize edildiğinden ve hedef ortamda etkili bir şekilde çalıştığından emin olmak için bu ayarları dikkatli bir şekilde yapılandırmak çok önemlidir.
Büyütme Ayarları
Güçlendirme teknikleri, eğitim verilerine değişkenlik katarak YOLO modellerinin sağlamlığını ve performansını artırmak için gereklidir ve modelin görülmeyen verilere daha iyi genelleme yapmasına yardımcı olur. Aşağıdaki tabloda her bir güçlendirme argümanının amacı ve etkisi özetlenmektedir:
Tartışma | Tip | Varsayılan | Menzil | Açıklama |
---|---|---|---|---|
hsv_h | float | 0.015 | 0.0 - 1.0 | Görüntünün tonunu renk tekerleğinin bir kısmına göre ayarlayarak renk değişkenliği sağlar. Modelin farklı aydınlatma koşullarında genelleştirilmesine yardımcı olur. |
hsv_s | float | 0.7 | 0.0 - 1.0 | Görüntünün doygunluğunu bir miktar değiştirerek renklerin yoğunluğunu etkiler. Farklı çevre koşullarını simüle etmek için kullanışlıdır. |
hsv_v | float | 0.4 | 0.0 - 1.0 | Görüntünün değerini (parlaklığını) belli bir oranda değiştirerek modelin çeşitli aydınlatma koşullarında iyi performans göstermesine yardımcı olur. |
degrees | float | 0.0 | -180 - +180 | Görüntüyü belirtilen derece aralığında rastgele döndürerek modelin çeşitli yönlerdeki nesneleri tanıma yeteneğini geliştirir. |
translate | float | 0.1 | 0.0 - 1.0 | Görüntüyü yatay ve dikey olarak görüntü boyutunun bir kısmı kadar çevirerek kısmen görülebilen nesneleri tespit etmeyi öğrenmeye yardımcı olur. |
scale | float | 0.5 | >=0.0 | Görüntüyü bir kazanç faktörü ile ölçeklendirerek kameradan farklı mesafelerdeki nesneleri simüle eder. |
shear | float | 0.0 | -180 - +180 | Görüntüyü belirli bir dereceye kadar keserek, farklı açılardan görüntülenen nesnelerin etkisini taklit eder. |
perspective | float | 0.0 | 0.0 - 0.001 | Görüntüye rastgele bir perspektif dönüşümü uygulayarak modelin 3D uzaydaki nesneleri anlama yeteneğini geliştirir. |
flipud | float | 0.0 | 0.0 - 1.0 | Görüntüyü belirtilen olasılıkla ters çevirerek nesnenin özelliklerini etkilemeden veri değişkenliğini artırır. |
fliplr | float | 0.5 | 0.0 - 1.0 | Görüntüyü belirtilen olasılıkla soldan sağa çevirir, simetrik nesneleri öğrenmek ve veri kümesi çeşitliliğini artırmak için kullanışlıdır. |
bgr | float | 0.0 | 0.0 - 1.0 | Görüntü kanallarını belirtilen olasılıkla RGB'den BGR'ye çevirir, yanlış kanal sıralamasına karşı sağlamlığı artırmak için kullanışlıdır. |
mosaic | float | 1.0 | 0.0 - 1.0 | Dört eğitim görüntüsünü tek bir görüntüde birleştirerek farklı sahne kompozisyonlarını ve nesne etkileşimlerini simüle eder. Karmaşık sahneleri anlamak için son derece etkilidir. |
mixup | float | 0.0 | 0.0 - 1.0 | İki görüntüyü ve etiketlerini harmanlayarak bileşik bir görüntü oluşturur. Etiket gürültüsü ve görsel değişkenlik ekleyerek modelin genelleme yeteneğini geliştirir. |
copy_paste | float | 0.0 | 0.0 - 1.0 | Nesneleri bir görüntüden kopyalar ve başka bir görüntüye yapıştırır, nesne örneklerini artırmak ve nesne tıkanıklığını öğrenmek için kullanışlıdır. |
copy_paste_mode | str | flip | - | seçenekleri arasından Kopyala-Yapıştır büyütme yöntemi seçimi ("flip" , "mixup" ). |
auto_augment | str | randaugment | - | Önceden tanımlanmış bir büyütme politikasını otomatik olarak uygular (randaugment , autoaugment , augmix ), görsel özellikleri çeşitlendirerek sınıflandırma görevleri için optimize eder. |
erasing | float | 0.4 | 0.0 - 0.9 | Sınıflandırma eğitimi sırasında görüntünün bir kısmını rastgele silerek modeli tanıma için daha az belirgin özelliklere odaklanmaya teşvik eder. |
crop_fraction | float | 1.0 | 0.1 - 1.0 | Merkezi özellikleri vurgulamak ve nesne ölçeklerine uyum sağlamak için sınıflandırma görüntüsünü boyutunun bir kısmına kırparak arka plandaki dikkat dağıtıcı unsurları azaltır. |
Bu ayarlar, veri kümesinin ve eldeki görevin özel gereksinimlerini karşılayacak şekilde ayarlanabilir. Farklı değerlerle denemeler yapmak, en iyi model performansını sağlayan optimum büyütme stratejisini bulmaya yardımcı olabilir.
Günlük Kaydı, Kontrol Noktaları ve Çizim Ayarları
Bir YOLO modelini eğitirken günlük kaydı, kontrol noktaları, çizim ve dosya yönetimi önemli hususlardır.
- Günlük kaydı: Modelin ilerlemesini izlemek ve ortaya çıkabilecek sorunları teşhis etmek için eğitim sırasında çeşitli ölçümleri ve istatistikleri günlüğe kaydetmek genellikle yararlıdır. Bu, TensorBoard gibi bir günlük kütüphanesi kullanılarak veya günlük mesajları bir dosyaya yazılarak yapılabilir.
- Kontrol Noktaları: Eğitim sırasında modelin kontrol noktalarını düzenli aralıklarla kaydetmek iyi bir uygulamadır. Bu, eğitim süreci kesintiye uğradığında veya farklı eğitim konfigürasyonlarını denemek istediğinizde eğitime önceki bir noktadan devam etmenizi sağlar.
- Çizim: Modelin performansını ve eğitim ilerlemesini görselleştirmek, modelin nasıl davrandığını anlamak ve olası sorunları belirlemek için yardımcı olabilir. Bu, matplotlib gibi bir çizim kütüphanesi kullanılarak veya TensorBoard gibi bir günlük kütüphanesi kullanılarak grafikler oluşturularak yapılabilir.
- Dosya yönetimi: Model kontrol noktaları, günlük dosyaları ve grafikler gibi eğitim süreci sırasında oluşturulan çeşitli dosyaların yönetimi zor olabilir. Bu dosyaları takip etmek ve gerektiğinde bunlara erişimi ve analiz etmeyi kolaylaştırmak için açık ve düzenli bir dosya yapısına sahip olmak önemlidir.
Etkili günlük kaydı, kontrol noktası belirleme, çizim ve dosya yönetimi, modelin ilerlemesini takip etmenize yardımcı olabilir ve eğitim sürecinde hata ayıklama ve optimizasyonu kolaylaştırabilir.
Tartışma | Varsayılan | Açıklama |
---|---|---|
project | 'runs' | Eğitim çalıştırmalarını kaydetmek için kök dizini belirtir. Her çalıştırma bu dizin içinde ayrı bir alt dizine kaydedilecektir. |
name | 'exp' | Deneyin adını tanımlar. Belirtilmezse, YOLO her çalıştırma için bu adı otomatik olarak artırır, örn, exp , exp2 vb. önceki deneylerin üzerine yazılmasını önlemek için. |
exist_ok | False | Aynı isimde bir deney dizini zaten mevcutsa, mevcut bir deney dizininin üzerine yazılıp yazılmayacağını belirler. Bunu şu şekilde ayarlayın True üzerine yazmaya izin verirken False engeller. |
plots | False | Eğitim ve doğrulama grafiklerinin oluşturulmasını ve kaydedilmesini kontrol eder. Şuna ayarlayın True kayıp eğrileri gibi grafikler oluşturmak için, hassas-geri çağırma eğrileri ve örnek tahminler. Zaman içinde model performansını görsel olarak izlemek için kullanışlıdır. |
save | False | Eğitim kontrol noktalarının ve nihai model ağırlıklarının kaydedilmesini sağlar. Şuna ayarlayın True Model durumlarını periyodik olarak kaydetmek için, eğitimin bu kontrol noktalarından devam ettirilmesine veya modellerin konuşlandırılmasına izin verir. |
SSS
Eğitim sırasında YOLO modelimin performansını nasıl artırabilirim?
YOLO model performansının iyileştirilmesi, yığın boyutu, öğrenme oranı, momentum ve ağırlık azalması gibi hiperparametrelerin ayarlanmasını içerir. Büyütme ayarlarının yapılması, doğru optimize edicinin seçilmesi ve erken durdurma veya karma hassasiyet gibi tekniklerin kullanılması da yardımcı olabilir. Eğitim ayarları hakkında ayrıntılı rehberlik için Eğitim Kılavuzu'na bakın.
YOLO model doğruluğu için dikkate alınması gereken temel hiperparametreler nelerdir?
YOLO model doğruluğunu etkileyen temel hiperparametreler şunlardır:
- Toplu İş Boyutu (
batch
): Daha büyük parti boyutları eğitimi stabilize edebilir ancak daha fazla bellek gerektirebilir. - Öğrenme Oranı (
lr0
): Ağırlık güncellemeleri için adım boyutunu kontrol eder; daha küçük oranlar ince ayarlamalar sunar ancak yakınsamayı yavaşlatır. - Momentum (
momentum
): Gradyan vektörlerini doğru yönlerde hızlandırmaya yardımcı olarak salınımları azaltır. - Görüntü Boyutu (
imgsz
): Daha büyük görüntü boyutları doğruluğu artırabilir ancak hesaplama yükünü artırır.
Bu değerleri veri setinize ve donanım kapasitenize göre ayarlayın. Tren Ayarları bölümünde daha fazlasını keşfedin.
Bir YOLO modelini eğitmek için öğrenme oranını nasıl ayarlayabilirim?
Öğrenme oranı (lr0
) optimizasyon için çok önemlidir. Yaygın bir başlangıç noktası 0.01
SGD için veya 0.001
Adam için. Eğitim metriklerini izlemek ve gerekirse ayarlamak çok önemlidir. Kosinüs öğrenme oranı zamanlayıcılarını (cos_lr
) veya ısınma teknikleri (warmup_epochs
, warmup_momentum
) eğitim sırasında hızı dinamik olarak değiştirmek için. Daha fazla ayrıntı için Tren Rehberi.
YOLO modelleri için varsayılan çıkarım ayarları nelerdir?
Varsayılan çıkarım ayarları şunları içerir:
- Güven Eşiği (
conf=0.25
): Tespitler için minimum güven. - IoU Eşiği (
iou=0.7
): Maksimum Olmayan Bastırma (NMS) için. - Görüntü Boyutu (
imgsz=640
): Çıkarımdan önce giriş görüntülerini yeniden boyutlandırır. - Cihaz (
device=None
): Çıkarım için CPU veya GPU adreslerini seçer. Kapsamlı bir genel bakış için Ayarları Tahmin Et bölümü ve Tahmin Kılavuzu.
Neden YOLO modelleri ile karma hassas eğitim kullanmalıyım?
Karma hassas eğitim, aşağıdakilerle etkinleştirilmiştir amp=True
bellek kullanımını azaltmaya yardımcı olur ve hem FP16 hem de FP32'nin avantajlarından yararlanarak eğitimi hızlandırabilir. Bu, yerel olarak karışık hassasiyeti destekleyen modern GPU'lar için faydalıdır, daha fazla modelin belleğe sığmasına ve doğrulukta önemli bir kayıp olmadan daha hızlı hesaplamalara olanak tanır. Bu konuda daha fazla bilgi için Tren Rehberi.