İçeriğe geç

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

yolo TASK MODE ARGS
from ultralytics import YOLO

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

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

Nerede?

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.

Görevler Kılavuzu

Modlar

YOLO modeller, çözmeye çalıştığınız özel soruna bağlı olarak farklı modlarda kullanılabilir. Bu modlar şunları içerir:

  • Eğitmek: Özel bir veri kümesi üzerinde bir YOLO11 modelini 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 dışa aktarma (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.

Modlar Kılavuzu

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 oranı ile otomatik mod (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 faydalı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.
classes None Üzerinde eğitilecek sınıf kimliklerinin bir listesini belirtir. Eğitim sırasında filtreleme yapmak ve yalnızca belirli sınıflara odaklanmak için 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 edicileri 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ğitimini stabilize etmeye 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.
nbs 64 Kaybın normalleştirilmesi için nominal parti büyüklüğü.
overlap_mask True Nesne maskelerinin eğitim için tek bir maske halinde mi birleştirileceğini yoksa her nesne için ayrı mı tutulacağı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 metriklerinin 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 argümanı üç şekilde yapılandırılabilir:

  • Sabit Parti Boyutu: Bir tamsayı değeri ayarlayın (örn, batch=16), yığın başına görüntü sayısını doğrudan belirterek.
  • Otomatik Mod (%60 GPU Bellek): Kullanım 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.

Tren Rehberi

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 en iyi 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.
batch int 1 Çıkarım için yığın boyutunu belirtir (yalnızca kaynak bir dizin, video dosyası veya .txt dosya). Daha büyük bir yığın boyutu daha yüksek verim sağlayarak çıkarım için gereken toplam süreyi kısaltabilir.
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 Falseise, 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 Aşağıdaki durumlarda 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.

Tahmin Kılavuzu

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 Truedaha fazla analiz veya diğer araçlarla entegrasyon için sonuçları bir JSON dosyasına kaydeder.
save_hybrid bool False Eğer Trueorijinal 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 sağlayarak 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:0vb.). 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 Truemodelin 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 Truegruplama 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, testveya 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.

Val Rehberi

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 ile ONNX ihracatları için model grafiğini basitleştirir. onnxslimperformans ve uyumluluğu potansiyel olarak iyileştirir.
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 veya None None TensorRT optimizasyonları için GiB cinsinden maksimum çalışma alanı boyutunu ayarlar, bellek kullanımı ve performansı dengeler; use None TensorRT tarafından cihaz maksimum değerine kadar otomatik tahsis için.
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ışa aktarılan model toplu çıkarım boyutunu veya dışa 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.

İhracat Kılavuzu

Çözüm Ayarları

Ultralytics Solutions için yapılandırma ayarları nesne sayımı, ısı haritası oluşturma, egzersiz takibi, veri analizi, bölge takibi, kuyruk yönetimi ve bölge bazlı sayım gibi çeşitli görevler için modeli özelleştirmenin esnek bir yolunu sunar. Bu seçenekler, özel ihtiyaçlara göre uyarlanmış doğru ve faydalı sonuçlar için kurulumu ayarlamayı kolaylaştırır.

Tartışma Tip Varsayılan Açıklama
region list [(20, 400), (1080, 400), (1080, 360), (20, 360)] Nesne sayımı, kuyruk izleme, iz bölgesi veya hız tahmini için bölge noktalarını tanımlar. Noktalar, analiz için poligonal bir alan oluşturan koordinatlar olarak tanımlanır.
show_in bool True Tanımlanan bölgeye girdiği sayılan nesnelerin görüntülenip görüntülenmeyeceğini belirtir. Giriş eğilimlerinin izlenmesi gibi gerçek dünya analizleri için gereklidir.
show_out bool True Tanımlanan bölgeden çıkış olarak sayılan nesnelerin görüntülenip görüntülenmeyeceğini belirtir. Çıkış takibi ve analizi gerektiren uygulamalar için kullanışlıdır.
colormap int or tuple COLORMAP_PARULA Isı haritası görselleştirmesi için OpenCV destekli renk haritasını belirtir. Varsayılan değer COLORMAP_PARULAAncak farklı görselleştirme tercihleri için başka renk haritaları da kullanılabilir.
up_angle float 145.0 Egzersiz izlemede "yukarı" konumunu tespit etmek için açı eşiği. Farklı egzersizler için anahtar noktaların konumuna göre ayarlanabilir.
down_angle float 90.0 Egzersiz izlemede "aşağı" konumunu tespit etmek için açı eşiği. Bunu, belirli egzersizler için anahtar nokta konumlarına göre ayarlayın.
kpts list [6, 8, 10] Antrenmanları izlemek için kullanılan anahtar noktaların listesi. Bu anahtar noktalar, şınav, barfiks, squat, ab-egzersizleri gibi egzersizler için omuzlar, dirsekler ve bilekler gibi vücut eklemlerine veya parçalarına karşılık gelir.
analytics_type str line Oluşturulacak analiz görselleştirmesinin türünü belirtir. Seçenekler şunları içerir "line", "pie", "bar"veya "area". Varsayılan değer "line" trend görselleştirme için.
json_file str None Park sistemleri veya benzer uygulamalar için bölgeleri tanımlayan JSON dosyasının yolu. Analiz alanlarının esnek bir şekilde yapılandırılmasını sağlar.

Çözüm Kılavuzu

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 görüntüler arasında kopyalar ve yapıştırır, nesne örneklerini artırmak ve nesne tıkanıklığını öğrenmek için kullanışlıdır. Segmentasyon etiketleri gerektirir.
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şmeyi 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, exp2vb. ö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ılavuzuna 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 Predict Ayarları bölümünü ve Predict Kılavuzunu ziyaret edin.

Neden YOLO modelleri ile karma hassas eğitim kullanmalıyım?

Karma hassas eğitim, aşağıdakilerle etkinleştirilmiştir amp=Truebellek 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.

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

Yorumlar