Yapılandırma
YOLO ayarları ve hiperparametreleri, modelin performansı, hızı ve doğruluğunda kritik bir rol oynar. Bu ayarlar, modelin eğitim, doğrulama ve tahmin dahil olmak üzere çeşitli aşamalardaki davranışını etkileyebilir.
İzle: Ultralytics YOLO'da Uzmanlaşma: Yapılandırma
İzle: Ultralytics YOLO'da Uzmanlaşmak: Yapılandırma
Ultralytics komutları aşağıdaki sözdizimini kullanır:
Örnek
yolo TASK MODE ARGS
from ultralytics import YOLO
# Load a YOLO 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:
TASK
(isteğe bağlı), şunlardan biridir (detect, segment, classify, pose, obb)MODE
(gerekli), şunlardan biridir (train, val, predict, export, track, benchmark)ARGS
(isteğe bağlı) varsayılanları geçersiz kılanarg=value
gibi çiftlerdir.imgsz=640
değerleri geçersiz kılar.
Varsayılan ARG
değerler bu sayfada tanımlanmıştır ve şuradan gelir: cfg/defaults.yaml
dosyası.
Görevler
Ultralytics YOLO modelleri, aşağıdakiler de dahil olmak üzere çeşitli bilgisayarla görme görevlerini gerçekleştirebilir:
- Tespit Et: Nesne tespiti bir görüntü veya video içindeki nesneleri tanımlar ve konumlandırır.
- Segment: Örnek segmentasyonu, bir resim veya videoyu farklı nesnelere veya sınıflara karşılık gelen bölgelere ayırır.
- Sınıflandır: Görüntü sınıflandırması, bir giriş görüntüsünün sınıf etiketini tahmin eder.
- Poz: Poz tahmini nesneleri tanımlar ve bir resim veya videodaki anahtar noktalarını tahmin eder.
- OBB: Yönlendirilmiş Sınırlayıcı Kutular, uydu veya tıbbi görüntüleme için uygun olan döndürülmüş sınırlayıcı kutular kullanır.
Argüman | Varsayılan | Açıklama |
---|---|---|
task |
'detect' |
YOLO görevini belirtir: detect için nesne tespiti, 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ılara ve sorunlara göre uyarlanmıştır. |
Modlar
Ultralytics YOLO modelleri, model yaşam döngüsünün belirli bir aşaması için tasarlanmış farklı modlarda çalışır:
- Eğitim: Özel bir veri kümesinde bir YOLO modeli eğitin.
- Val: Eğitilmiş bir YOLO modelini doğrulayın.
- Tahmin Et: Yeni resimler veya videolar üzerinde tahminler yapmak için eğitilmiş bir YOLO modelini kullanın.
- Dışa Aktar: Bir YOLO modelini dağıtım için dışa aktarın.
- İzle: Bir YOLO modeli kullanarak nesneleri gerçek zamanlı olarak izleyin.
- Kıyaslama: YOLO dışa aktarımlarının (ONNX, TensorRT, vb.) hızını ve doğruluğunu kıyaslayın.
Argüman | Varsayılan | Açıklama |
---|---|---|
mode |
'train' |
YOLO modelinin çalışma modunu belirtir: train model eğitimi için, val doğrulama için, predict çıkarım için, export dağıtım formatlarına dönüştürmek için, track nesne takibi için ve benchmark performans değerlendirmesi için. Her mod, geliştirmeden dağıtıma kadar farklı aşamaları destekler. |
Eğitim Ayarları
YOLO modelleri için eğitim ayarları, modelin performansını, hızını ve doğruluğunu etkileyen hiperparametreleri ve yapılandırmaları içerir. Temel ayarlar arasında batch boyutu, öğrenme oranı, momentum ve ağırlık azalması bulunur. Optimizasyon algoritması, kayıp fonksiyonu ve veri kümesi kompozisyonu da eğitimi etkiler. Optimum performans için ince ayar ve deneme yapmak çok önemlidir. Daha fazla ayrıntı için Ultralytics giriş noktası fonksiyonuna bakın.
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
model |
str |
None |
Eğitim için model dosyasını belirtir. Önceden eğitilmiş bir modelin veya bir .pt modelin veya bir .yaml yapılandırma dosyasının yolunu kabul eder. Model yapısını tanımlamak veya ağırlıkları başlatmak için gereklidir. |
data |
str |
None |
Veri kümesi yapılandırma dosyasının yolu (örn. coco8.yaml '). Bu dosya, eğitim ve doğrulama verilerinin yolları, sınıf adları ve sınıf sayısı dahil olmak üzere veri kümesine özgü parametreleri içerir. |
epochs |
int |
100 |
Toplam eğitim epoch sayısı. Her epoch, tüm veri kümesi üzerinde tam bir geçişi temsil eder. Bu değeri ayarlamak, eğitim süresini ve model performansını etkileyebilir. |
time |
float |
None |
Saat cinsinden maksimum eğitim süresi. Ayarlanırsa, epochs argümanını geçersiz kılar ve eğitimin belirtilen süre sonra otomatik olarak durmasını sağlar. Zaman kısıtlı eğitim senaryoları için kullanışlıdır. |
patience |
int |
100 |
Eğitimi erken durdurmadan önce doğrulama metriklerinde iyileşme olmadan beklenecek epoch sayısı. Performansın plato çizdiği durumlarda eğitimi durdurarak aşırı öğrenmeyi önlemeye yardımcı olur. |
batch |
int veya float |
16 |
Batch boyutu, üç 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ıyla otomatik mod (batch=0.70 ). |
imgsz |
int veya list |
640 |
Eğitim için hedef resim boyutu. Tüm resimler, modele verilmeden önce bu boyuta yeniden boyutlandırılır. Model doğruluğunu ve hesaplama karmaşıklığını etkiler. |
save |
bool |
True |
Eğitim kontrol noktalarının ve nihai model ağırlıklarının kaydedilmesini sağlar. Eğitime devam etmek veya model dağıtımı için kullanışlıdır. |
save_period |
int |
-1 |
Model kontrol noktalarını kaydetme sıklığı, epoch olarak 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 |
bool |
False |
Veri kümesi resimlerinin bellekte (True /ram ), diskte (disk ), veya devre dışı bırakılarak (False ) önbelleğe alınmasını sağlar. Artan bellek kullanımı pahasına disk G/Ç'sini azaltarak eğitim hızını artırır. |
device |
int veya str veya list |
None |
Eğitim için işlem cihaz(lar)ını belirtir: tek bir GPU (device=0 ), birden çok GPU (device=[0,1] ), CPU (device=cpu ), Apple silikon için MPS (device=mps ), veya en boşta olan GPU'nun otomatik seçimi (device=-1 ) veya birden fazla boşta GPU (device=[-1,-1] ) |
workers |
int |
8 |
Veri yükleme için çalışan iş parçacığı sayısı (her RANK Multi-GPU eğitimi için). Veri ön işleme ve modele besleme hızını etkiler, özellikle çoklu GPU kurulumlarında kullanışlıdır. |
project |
str |
None |
Eğitim çıktılarının kaydedildiği proje dizininin adı. Farklı deneylerin düzenli bir şekilde saklanmasını sağlar. |
name |
str |
None |
Eğitim çalıştırmasının adı. Eğitim günlüklerinin ve çıktılarının saklandığı proje klasörü içinde bir alt dizin oluşturmak için kullanılır. |
exist_ok |
bool |
False |
Doğru ise, mevcut bir proje/ad dizininin üzerine yazılmasına izin verir. Önceki çıktıları manuel olarak temizlemeye gerek kalmadan yinelemeli deneyler için kullanışlıdır. |
pretrained |
bool veya str |
True |
Eğitime önceden eğitilmiş bir modelden başlayıp başlamayacağını belirler. Ağırlıkların yükleneceği belirli bir modelin boolean değeri veya dize yolu olabilir. Eğitim verimliliğini ve model performansını artırır. |
optimizer |
str |
'auto' |
Eğitim için optimize edici seçimi. Seçenekler arasında SGD , Adam , AdamW , NAdam , RAdam , RMSProp vb. veya model yapılandırmasına göre otomatik seçim için auto bulunur. Yakınsama hızını ve kararlılığını etkiler. |
seed |
int |
0 |
Eğitim için rastgele tohumu ayarlar, aynı yapılandırmalara sahip çalıştırmalarda sonuçların tekrarlanabilirliğini sağlar. |
deterministic |
bool |
True |
Deterministik algoritma kullanımını zorlar, tekrarlanabilirliği sağlar ancak deterministik olmayan algoritmalardaki kısıtlama nedeniyle performansı ve hızı etkileyebilir. |
single_cls |
bool |
False |
Çok sınıflı veri kümelerindeki tüm sınıfları eğitim sırasında 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 |
list[int] |
None |
Üzerinde eğitim yapılacak sınıf kimliklerinin bir listesini belirtir. Eğitim sırasında yalnızca belirli sınıflara odaklanmak ve bunları filtrelemek için kullanışlıdır. |
rect |
bool |
False |
Dikdörtgen eğitimini etkinleştirir, minimum dolgu için toplu iş bileşimini optimize eder. Verimliliği ve hızı artırabilir ancak model doğruluğunu etkileyebilir. |
multi_scale |
bool |
False |
Artırarak/azaltarak çok ölçekli eğitimi etkinleştirir. imgsz ...faktörüne kadar 0.5 eğitim sırasında. Modeli birden fazla ile daha doğru olacak şekilde eğitir imgsz çıkarım sırasında. |
cos_lr |
bool |
False |
Dönemler boyunca bir kosinüs eğrisini izleyerek öğ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 |
int |
10 |
Tamamlanmadan önce eğitimi stabilize etmek için son N dönemde mozaik veri artırmayı devre dışı bırakır. 0'a ayarlamak bu özelliği devre dışı bırakır. |
resume |
bool |
False |
Son kaydedilen kontrol noktasından eğitime devam eder. Model ağırlıklarını, optimize edici durumunu ve dönem sayısını otomatik olarak yükler ve eğitime sorunsuz bir şekilde devam eder. |
amp |
bool |
True |
Otomatik Karışık Duyarlıklı (AMP) eğitimini etkinleştirir, bellek kullanımını azaltır ve doğruluğu en az etkileyerek eğitimi hızlandırabilir. |
fraction |
float |
1.0 |
Eğitim için kullanılacak veri kümesinin oranını belirtir. Tam veri kümesinin bir alt kümesi üzerinde eğitime olanak tanır; deneyler için veya kaynaklar sınırlı olduğunda kullanışlıdır. |
profile |
bool |
False |
Model dağıtımını optimize etmek için kullanışlı olan eğitim sırasında ONNX ve TensorRT hızlarının profilini çıkarmayı sağlar. |
freeze |
int veya list |
None |
Modelin ilk N katmanını veya belirtilen katmanlarını indeksine göre dondurarak eğitilebilir parametrelerin sayısını azaltır. İnce ayar veya transfer öğrenimi için kullanışlıdır. |
lr0 |
float |
0.01 |
Başlangıç öğrenme oranı (yani SGD=1E-2 , Adam=1E-3 ). Bu değeri ayarlamak, model ağırlıklarının ne kadar hızlı güncellendiğini etkileyerek optimizasyon süreci için çok önemlidir. |
lrf |
float |
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 |
float |
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 |
float |
0.0005 |
Aşırı öğrenmeyi önlemek için büyük ağırlıkları cezalandıran L2 düzenlileştirme terimi. |
warmup_epochs |
float |
3.0 |
Öğrenme oranı ısınması için dönem sayısı, eğitimi erken aşamada stabilize etmek için öğrenme oranını düşük bir değerden başlangıç öğrenme oranına kademeli olarak artırır. |
warmup_momentum |
float |
0.8 |
Isınma aşaması için başlangıç momentumu, ısınma süresi boyunca ayarlanan momentuma kademeli olarak ayarlanır. |
warmup_bias_lr |
float |
0.1 |
Isınma aşamasında bias parametreleri için öğrenme oranı, ilk dönemlerde model eğitimini stabilize etmeye yardımcı olur. |
box |
float |
7.5 |
Kayıp fonksiyonundaki kutu kaybı bileşeninin ağırlığı, sınırlayıcı kutu koordinatlarını doğru bir şekilde tahmin etmeye ne kadar önem verildiğini etkiler. |
cls |
float |
0.5 |
Toplam kayıp fonksiyonunda sınıflandırma kaybının ağırlığı, diğer bileşenlere göre doğru sınıf tahmininin önemini etkiler. |
dfl |
float |
1.5 |
Dağıtım odaklı kaybın ağırlığı, ince taneli sınıflandırma için belirli YOLO sürümlerinde kullanılır. |
pose |
float |
12.0 |
Poz tahmini için eğitilmiş modellerde poz kaybının ağırlığı, poz anahtar noktalarını doğru bir şekilde tahmin etmeye verilen önemi etkiler. |
kobj |
float |
2.0 |
Poz tahmini modellerinde anahtar nokta nesnelliği kaybının ağırlığı, algılama güvenini poz doğruluğu ile dengeler. |
nbs |
int |
64 |
Kayıp normalleştirme için nominal toplu iş boyutu. |
overlap_mask |
bool |
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. Çakışma durumunda, birleştirme sırasında daha küçük maske daha büyük maskenin üzerine yerleştirilir. |
mask_ratio |
int |
4 |
Eğitim sırasında kullanılan maskelerin çözünürlüğünü etkileyen segmentasyon maskeleri için alt örnekleme oranı. |
dropout |
float |
0.0 |
Sınıflandırma görevlerinde düzenlileştirme için bırakma oranı (dropout rate), eğitim sırasında birimleri rastgele çıkararak aşırı öğrenmeyi önler. |
val |
bool |
True |
Eğitim sırasında doğrulamayı etkinleştirir ve modelin performansının ayrı bir veri kümesi üzerinde periyodik olarak değerlendirilmesine olanak tanır. |
plots |
bool |
False |
Model performansı ve öğrenme ilerlemesi hakkında görsel bilgiler sağlayan eğitim ve doğrulama metriklerinin yanı sıra tahmin örneklerinin grafiklerini oluşturur ve kaydeder. |
Yığın Boyutu Ayarları Hakkında Not
batch
argümanı üç yapılandırma seçeneği sunar:
- Sabit Toplu Boyutu: Her bir toplu işlemdeki görüntü sayısını bir tamsayı ile belirtin (örneğin,
batch=16
). - Otomatik Mod (%60 GPU Belleği): Kullanın
batch=-1
yaklaşık %60 CUDA bellek kullanımına otomatik ayarlama için. - Kullanım Oranı ile Otomatik Mod: Bir kesir ayarlayın (örneğin,
batch=0.70
) belirtilen bir GPU bellek kullanımına göre ayarlamak için.
Tahmin Ayarları
YOLO modelleri için tahmin ayarları, çıkarım sırasında performansı, hızı ve doğruluğu etkileyen hiperparametreleri ve yapılandırmaları içerir. Temel ayarlar arasında güven eşiği, Non-Maximum Suppression (NMS) (Maksimum Olmayan Baskılama) eşiği ve sınıf sayısı bulunur. Girdi verisi boyutu, biçimi ve maskeler gibi ek özellikler de tahminleri etkiler. Optimum performans için bu ayarları yapmak çok önemlidir.
Çıkarım argümanları:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
source |
str |
'ultralytics/assets' |
Çıkarım için veri kaynağını belirtir. Bir resim yolu, video dosyası, dizin, URL veya canlı yayınlar için cihaz kimliği olabilir. Farklı türde girdilerde esnek uygulamaya olanak tanıyan çok çeşitli formatları ve kaynakları destekler. |
conf |
float |
0.25 |
Algılamalar için minimum güven eşiğini ayarlar. Bu eşiğin altında güvenle algılanan nesneler dikkate alınmaz. Bu değeri ayarlamak, yanlış pozitifleri azaltmaya yardımcı olabilir. |
iou |
float |
0.7 |
Non-Maximum Suppression (NMS) için Kesişim Üzerinden Birleşim (IoU) eşiği. Daha düşük değerler, örtüşen kutuları ortadan kaldırarak daha az algılama ile sonuçlanır ve bu da yinelenenleri azaltmak için kullanışlıdır. |
imgsz |
int veya tuple |
640 |
Çıkarım için resim boyutunu tanımlar. Tek bir tamsayı olabilir 640 kare yeniden boyutlandırma veya (yükseklik, genişlik) demeti için. Doğru boyutlandırma, algılamayı iyileştirebilir doğruluğu ve işleme hızı. |
rect |
bool |
True |
Etkinleştirilirse, çıkarım hızını artırmak için görüntünün kısa kenarını stride ile bölünebilir olana kadar minimum düzeyde doldurur. Devre dışı bırakılırsa, çıkarım sırasında görüntüyü kare olacak şekilde doldurur. |
half |
bool |
False |
Yarı-duyarlıklı (FP16) çıkarımını etkinleştirir; bu, desteklenen GPU'larda model çıkarımını doğruluk üzerinde minimum etkiyle hızlandırabilir. |
device |
str |
None |
Çıkarım için cihazı belirtir (örn. cpu , cuda:0 veya 0 ). Kullanıcıların model yürütme için CPU, belirli bir GPU veya diğer işlem cihazları arasında seçim yapmasına olanak tanır. |
batch |
int |
1 |
Çıkarım için toplu iş boyutunu belirtir (yalnızca kaynak olduğunda çalışır) bir dizin, video dosyası veya .txt dosyası). Daha büyük bir toplu iş 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 algılayabileceği toplam nesne sayısını sınırlar ve yoğun sahnelerde aşırı çıktıları önler. |
vid_stride |
int |
1 |
Video girişleri için çerçeve adımı. Zamansal çözünürlük pahasına işlemeyi hızlandırmak için videolardaki karelerin atlanmasına olanak tanır. 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 , eski çerçeveler yeni çerçevelere yer açmak için bırakılır (gerçek zamanlı uygulamalar için optimize edilmiştir). Eğer True , hiçbir çerçevenin atlanmamasını sağlamak için yeni çerçeveleri bir arabelleğe alır, ancak çıkarım FPS'si akış FPS'sinden düşükse gecikmeye neden olur. |
visualize |
bool |
False |
Modelin ne "gördüğüne" dair içgörüler sağlayarak, çıkarım sırasında model özelliklerinin görselleştirilmesini etkinleştirir. Hata ayıklama ve model yorumlama için kullanışlıdır. |
augment |
bool |
False |
Tahminler için test zamanı artırmayı (TTA) etkinleştirir, bu da çıkarım hızı pahasına algılama sağlamlığını potansiyel olarak artırır. |
agnostic_nms |
bool |
False |
Sınıf-agnostik Non-Maximum Suppression'ı (NMS) etkinleştirir, bu da farklı sınıfların örtüşen kutularını birleştirir. Sınıf örtüşmesinin 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 filtreler. Yalnızca belirtilen sınıflara ait algılamalar 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ştirilirse orijinal görüntü boyutuna 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 |
Öznitelik vektörlerini veya gömme (embedding) işlemlerini çıkarmak için katmanları belirtir. Kümeleme veya benzerlik araması gibi sonraki görevler için kullanışlıdır. |
project |
str |
None |
Tahmin çıktıları kaydedilirse proje dizininin adı save etkinleştirildi. |
name |
str |
None |
Tahmin çalıştırmasının adı. Proje klasörü içinde bir alt dizin oluşturmak için kullanılır; tahmin çıktıları burada saklanırsa save etkinleştirildi. |
stream |
bool |
False |
Tüm çerçeveleri aynı anda belleğe yüklemek yerine, Sonuç nesnelerinin bir üretecinin döndürülmesiyle uzun videolar veya çok sayıda görüntü için bellek açısından verimli işlemeyi etkinleştirir. |
verbose |
bool |
True |
Tahmin süreci hakkında gerçek zamanlı geri bildirim sağlayarak, terminalde ayrıntılı çıkarım günlüklerinin görüntülenip görüntülenmeyeceğini kontrol eder. |
Görselleştirme argümanları:
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
show |
bool |
False |
Eğer True , ek 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 or True |
Açıklamalı resimlerin veya videoların dosyaya kaydedilmesini sağlar. Belgeleme, daha fazla analiz veya sonuçları paylaşmak için kullanışlıdır. CLI kullanılırken True ve python'da kullanılırken False olarak ayarlanmıştır. |
save_frames |
bool |
False |
Videoları işlerken, tek tek kareleri görüntü olarak kaydeder. Belirli kareleri çıkarmak veya ayrıntılı kare kare analizi için kullanışlıdır. |
save_txt |
bool |
False |
Algılama sonuçlarını şu formatta 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üvenilirlik skorlarını dahil eder. İşlem sonrası ve analiz için mevcut ayrıntıları geliştirir. |
save_crop |
bool |
False |
Algılamaların kırpılmış görüntülerini kaydeder. Veri kümesi artırma, analiz 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 algılama için güvenilirlik puanını görüntüler. Modelin her algılama için 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 önemlidir. |
line_width |
None or 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 doğrulama ayarları, bir doğrulama veri kümesi üzerinde performansı değerlendirmek için hiperparametreleri ve yapılandırmaları içerir. Bu ayarlar performansı, hızı ve doğruluğu etkiler. Yaygın ayarlar arasında yığın boyutu, doğrulama sıklığı ve performans metrikleri bulunur. Doğrulama veri kümesinin boyutu ve bileşimi, belirli görevle birlikte süreci de etkiler.
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
data |
str |
None |
Veri kümesi yapılandırma dosyasının yolunu belirtir (örn. coco8.yaml ). Bu dosya, şunlara giden yolları içerir: doğrulama verilerinin yolları, sınıf adları ve sınıf sayısı dahil olmak üzere veri kümesine özgü parametreleri içerir. |
imgsz |
int |
640 |
Giriş görüntülerinin boyutunu tanımlar. Tüm görüntüler işlenmeden önce bu boyuta yeniden boyutlandırılır. Daha büyük boyutlar küçük nesneler için doğruluğu artırabilir ancak hesaplama süresini artırır. |
batch |
int |
16 |
Her bir toplu işte bulunan görüntü sayısını ayarlar. Daha yüksek değerler GPU belleğini daha verimli kullanır ancak daha fazla VRAM gerektirir. Mevcut donanım kaynaklarına göre ayarlayın. |
save_json |
bool |
False |
Eğer True , sonuçları daha fazla analiz, diğer araçlarla entegrasyon veya COCO gibi değerlendirme sunucularına gönderme için bir JSON dosyasına kaydeder. |
conf |
float |
0.001 |
Algılamalar için minimum güven eşiğini ayarlar. Daha düşük değerler hatırlamayı artırır ancak daha fazla yanlış pozitif sonuç verebilir. Kesinlik-hatırlama eğrilerini hesaplamak için doğrulama sırasında kullanılır. |
iou |
float |
0.7 |
Non-Maximum Suppression için Intersection Over Union eşiğini ayarlar. Kopya algılama elemesini kontrol eder. |
max_det |
int |
300 |
Görüntü başına maksimum tespit sayısını sınırlar. Aşırı tespitleri önlemek ve işlem kaynaklarını yönetmek için yoğun sahnelerde kullanışlıdır. |
half |
bool |
True |
Yarı-duyarlıklı (FP16) hesaplamayı etkinleştirir, 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.). Ne zaman None , otomatik olarak mevcut en iyi cihazı seçer. Birden çok CUDA cihazı virgülle ayrılarak belirtilebilir. |
dnn |
bool |
False |
Eğer True , şunu kullanır OpenCV ONNX model çıkarımı için DNN modülü, şuna bir alternatif sunar: PyTorch çıkarım yöntemleri. |
plots |
bool |
False |
Şu şekilde ayarlandığında True , model performansının görsel olarak değerlendirilmesi için tahminlere karşı gerçek değerlerin, karışıklık matrislerinin ve PR eğrilerinin grafiklerini oluşturur ve kaydeder. |
classes |
list[int] |
None |
Üzerinde eğitim yapılacak sınıf kimliklerinin bir listesini belirtir. Değerlendirme sırasında yalnızca belirli sınıflara odaklanmak ve bunları filtrelemek için kullanışlıdır. |
rect |
bool |
True |
Eğer True , toplu işlem için dikdörtgen çıkarım kullanır, dolguyu azaltır ve görüntüleri orijinal en boy oranlarında işleyerek hızı ve verimliliği potansiyel olarak artırır. |
split |
str |
'val' |
Doğrulama için kullanılacak veri kümesi bölümünü belirler (val , test , veya train ). Performans değerlendirmesi için veri bölümünü seçmede esneklik sağlar. |
project |
str |
None |
Doğrulama çıktılarının kaydedildiği proje dizininin adı. Farklı deneylerden veya modellerden elde edilen sonuçları düzenlemeye yardımcı olur. |
name |
str |
None |
Doğrulama çalıştırmasının adı. Doğrulama günlüklerinin ve çıktılarının saklandığı proje klasörü içinde bir alt dizin oluşturmak için kullanılır. |
verbose |
bool |
False |
Eğer True , sınıf başına metrikler, toplu iş ilerlemesi ve ek hata ayıklama bilgileri dahil olmak üzere doğrulama işlemi sırasında ayrıntılı bilgi görüntüler. |
save_txt |
bool |
False |
Eğer True , algılama sonuçlarını, görüntü başına bir dosya olacak şekilde metin dosyalarına kaydeder; bu, daha fazla analiz, özel işlem sonrası veya diğer sistemlerle entegrasyon için kullanışlıdır. |
save_conf |
bool |
False |
Eğer True , ne zaman kaydedilen metin dosyalarında güven değerlerini içerir save_txt etkinleştirildi, analiz ve filtreleme için daha ayrıntılı çıktı sağlıyor. |
workers |
int |
8 |
Veri yükleme için çalışan iş parçacığı sayısı. Daha yüksek değerler veri ön işlemeyi hızlandırabilir ancak CPU kullanımını artırabilir. 0'a ayarlamak ana iş parçacığını kullanır, bu da bazı ortamlarda daha kararlı olabilir. |
augment |
bool |
False |
Girişin dönüştürülmüş sürümlerinde çıkarım çalıştırarak çıkarım hızı pahasına algılama doğruluğunu potansiyel olarak artıran, doğrulama sırasında test zamanı artırmayı (TTA) etkinleştirir. |
agnostic_nms |
bool |
False |
Tahmin edilen sınıflarından bağımsız olarak örtüşen kutuları birleştiren, sınıftan bağımsız Non-Maximum Suppression özelliğini etkinleştirir. Örnek odaklı uygulamalar için kullanışlıdır. |
single_cls |
bool |
False |
Doğrulama sırasında tüm sınıfları tek bir sınıf olarak ele alır. İkili algılama görevlerinde veya sınıf ayrımlarının önemli olmadığı durumlarda model performansını değerlendirmek için kullanışlıdır. |
Optimum performansı sağlamak ve aşırı öğrenmeyi tespit edip önlemek için dikkatli ayarlama ve deney yapılması çok önemlidir.
Dışa Aktarma Ayarları
YOLO modelleri için dışa aktarma ayarları, modelin farklı ortamlarda kullanılmak üzere kaydedilmesi veya dışa aktarılmasına yönelik yapılandırmaları içerir. Bu ayarlar performansı, boyutu ve uyumluluğu etkiler. Temel ayarlar arasında dışa aktarılan dosya biçimi (örn. ONNX, TensorFlow SavedModel), hedef cihaz (örn. CPU, GPU) ve maskeler gibi özellikler bulunur. Modelin görevi ve hedef ortamın kısıtlamaları da dışa aktarma sürecini etkiler.
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
format |
str |
'torchscript' |
Dışa aktarılan model için hedef biçim, örneğin 'onnx' , 'torchscript' , 'engine' (TensorRT) veya diğerleri. Her format, farklı ile uyumluluk sağlar dağıtım ortamları. |
imgsz |
int veya tuple |
640 |
Model girişi için istenen görüntü boyutu. Kare görüntüler için bir tamsayı olabilir (örn. 640 640×640 için) veya bir demet (height, width) belirli boyutlar için. |
keras |
bool |
False |
TensorFlow SavedModel için Keras formatına dışa aktarmayı etkinleştirir ve TensorFlow serving ve API'lerle uyumluluk sağlar. |
optimize |
bool |
False |
TorchScript'e aktarılırken mobil cihazlar için optimizasyon uygular, bu da model boyutunu potansiyel olarak küçültür ve çıkarım performansını artırır. NCNN formatı veya CUDA cihazlarıyla uyumlu değildir. |
half |
bool |
False |
Model boyutunu küçülten ve desteklenen donanımda çıkarımı potansiyel olarak hızlandıran FP16 (yarım duyarlıklı) nicelemeyi etkinleştirir. ONNX için INT8 niceleme veya yalnızca CPU dışa aktarmalarıyla uyumlu değildir. |
int8 |
bool |
False |
Öncelikle uç cihazlar için olmak üzere, INT8 nicelemesini etkinleştirir, modeli daha da sıkıştırır ve minimum doğruluk kaybıyla çıkarımı hızlandırır. TensorRT ile kullanıldığında, eğitim sonrası niceleme (PTQ) gerçekleştirir. |
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ı işlemede esnekliği artırır. Otomatik olarak şu şekilde ayarlanır: True INT8 ile TensorRT kullanırken. |
simplify |
bool |
True |
ONNX dışa aktarımları için model grafiğini basitleştirir onnxslim , performansı ve çıkarım motorlarıyla uyumluluğu potansiyel olarak artırır. |
opset |
int |
None |
Farklı ONNX ayrıştırıcıları ve çalışma zamanlarıyla uyumluluk için ONNX opset sürümünü belirtir. Ayarlanmazsa, desteklenen en son sürüm kullanılır. |
workspace |
float veya None |
None |
için maksimum çalışma alanı boyutunu GiB cinsinden ayarlar TensorRT optimizasyonları, bellek kullanımını ve performansı dengeleme. Şunu kullanın: None TensorRT tarafından cihazın maksimumuna kadar otomatik tahsis için. |
nms |
bool |
False |
Desteklendiğinde (bkz. Dışa Aktarma Biçimleri), dışa aktarılan modele Non-Maximum Suppression (NMS) ekleyerek algılama sonrası işleme verimliliğini artırır. Uçtan uca modeller için mevcut değildir. |
batch |
int |
1 |
Dışa aktarma modelinin 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 modu. Edge TPU dışa aktarımları için bu, otomatik olarak 1 olarak ayarlanır. |
device |
str |
None |
Dışa aktarma için cihazı belirtir: GPU (device=0 ), CPU (device=cpu ), Apple silikon için MPS (device=mps ) veya NVIDIA Jetson için DLA (device=dla:0 veya device=dla:1 ). TensorRT dışa aktarımları otomatik olarak GPU'yu kullanır. |
data |
str |
'coco8.yaml' |
Şuraya giden yol: veri kümesi yapılandırma dosyası (varsayılan: coco8.yaml ), INT8 nicelemesi kalibrasyonu için önemlidir. INT8 etkinleştirilmişken belirtilmezse, varsayılan bir veri kümesi atanır. |
fraction |
float |
1.0 |
Veri kümesinin INT8 niceleme kalibrasyonu için kullanılacak kısmını belirtir. Tam veri kümesinin bir alt kümesi üzerinde kalibrasyon yapılmasına olanak tanır, bu da deneyler için veya kaynaklar sınırlı olduğunda kullanışlıdır. INT8 etkinleştirilmişse belirtilmezse, tam veri kümesi kullanılır. |
Düşünceli yapılandırma, dışa aktarılan modelin kullanım durumu için optimize edilmesini ve hedef ortamda etkili bir şekilde çalışmasını sağlar.
Çözümler Ayarları
Ultralytics Solutions yapılandırma ayarları, nesne sayma, ısı haritası oluşturma, egzersiz takibi, veri analizi, bölge takibi, sıra yönetimi ve bölge tabanlı sayma gibi görevler için modelleri özelleştirme esnekliği sunar. Bu seçenekler, belirli ihtiyaçlara göre uyarlanmış doğru ve kullanışlı sonuçlar için kolay ayarlamalar sağlar.
Argüman | Tür | Varsayılan | Açıklama |
---|---|---|---|
model |
str |
None |
Ultralytics YOLO Model Dosyasına Giden Yol. |
region |
list |
'[(20, 400), (1260, 400)]' |
Sayma bölgesini tanımlayan nokta listesi. |
show_in |
bool |
True |
Video akışında giriş sayılarının görüntülenip görüntülenmeyeceğini kontrol etme işareti. |
show_out |
bool |
True |
Video akışında çıkış sayılarının görüntülenip görüntülenmeyeceğini kontrol etme işareti. |
analytics_type |
str |
line |
Grafik türü, örneğin, line , bar , area , veya pie . |
colormap |
int |
cv2.COLORMAP_JET |
Isı haritası için kullanılacak renk haritası. |
json_file |
str |
None |
Tüm otopark koordinat verilerini içeren JSON dosyasına giden yol. |
up_angle |
float |
145.0 |
'Yukarı' pozu için açı eşiği. |
kpts |
list[int, int, int] |
'[6, 8, 10]' |
Egzersizleri izlemek için kullanılan anahtar noktaların listesi. Bu anahtar noktalar, şınav, barfiks, squat, karın egzersizleri gibi egzersizler için omuzlar, dirsekler ve bilekler gibi vücut eklemlerine veya parçalarına karşılık gelir. |
down_angle |
float |
90.0 |
'Aşağı' pozu için açı eşiği. |
blur_ratio |
float |
0.5 |
Bulanıklık yoğunluğunun yüzdesini ayarlar, aralıktaki değerlerle 0.1 - 1.0 . |
crop_dir |
str |
'cropped-detections' |
Kırpılmış algılamaların saklanacağı dizin adı. |
records |
int |
5 |
Güvenlik alarm sistemiyle bir e-posta tetiklemek için toplam tespit sayısı. |
vision_point |
tuple[int, int] |
(20, 20) |
VisionEye Solution kullanılarak nesnelerin izleneceği ve yolların çizileceği nokta. |
source |
str |
None |
Giriş kaynağının yolu (video, RTSP, vb.). Yalnızca Solutions komut satırı arayüzü (CLI) ile kullanılabilir. |
figsize |
tuple[int, int] |
(12.8, 7.2) |
Isı haritaları veya grafikler gibi analiz çizelgeleri için şekil boyutu. |
fps |
float |
30.0 |
Hız hesaplamaları için kullanılan saniye başına kare sayısı. |
max_hist |
int |
5 |
Hız/yön hesaplamaları için nesne başına izlenecek maksimum geçmiş nokta sayısı. |
meter_per_pixel |
float |
0.05 |
Piksel mesafesini gerçek dünya birimlerine dönüştürmek için kullanılan ölçekleme faktörü. |
max_speed |
int |
120 |
Görsel katmanlarda maksimum hız sınırı (uyarılarda kullanılır). |
data |
str |
'images' |
Benzerlik araması için kullanılan resim dizininin yolu. |
Artırma Ayarları
Veri artırma teknikleri, eğitim verilerine değişkenlik katarak YOLO modelinin sağlamlığını ve performansını artırmak için gereklidir ve modelin görülmemiş verilere daha iyi genellemesine yardımcı olur. Aşağıdaki tablo, her bir artırma argümanının amacını ve etkisini özetlemektedir:
Argüman | Tür | Varsayılan | Aralık | Açıklama |
---|---|---|---|---|
hsv_h |
float |
0.015 |
0.0 - 1.0 |
Görüntünün renk tonunu, renk tekerleğinin bir bölümü kadar ayarlar ve renk değişkenliği sağlar. Modelin farklı aydınlatma koşullarında genelleme yapmasına yardımcı olur. |
hsv_s |
float |
0.7 |
0.0 - 1.0 |
Görüntünün doygunluğunu bir kesir oranında 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 |
Modelin çeşitli aydınlatma koşullarında iyi performans göstermesine yardımcı olarak, görüntünün değerini (parlaklığını) bir kesir oranında değiştirir. |
degrees |
float |
0.0 |
0.0 - 180 |
Görüntüyü belirtilen derece aralığında rastgele döndürerek, modelin nesneleri çeşitli yönlerde 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 kaydırır, bu da kısmen görünen nesneleri algılamayı öğrenmeye yardımcı olur. |
scale |
float |
0.5 |
>=0.0 |
Görüntüyü bir kazanç faktörüyle ölçeklendirerek, nesneleri kameradan farklı mesafelerdeymiş gibi simüle eder. |
shear |
float |
0.0 |
-180 - +180 |
Görüntüyü belirtilen bir dereceye kadar kaydırır ve nesnelerin farklı açılardan görüntülenmesi etkisini taklit eder. |
perspective |
float |
0.0 |
0.0 - 0.001 |
Modelin nesneleri 3B uzayda anlama yeteneğini geliştirmek için görüntüye rastgele bir perspektif dönüşümü uygular. |
flipud |
float |
0.0 |
0.0 - 1.0 |
Nesnenin özelliklerini etkilemeden veri değişkenliğini artırarak görüntüyü belirtilen olasılıkla baş aşağı çevirir. |
fliplr |
float |
0.5 |
0.0 - 1.0 |
Simetrik nesneleri öğrenmek ve veri kümesi çeşitliliğini artırmak için görüntüyü belirtilen olasılıkla soldan sağa çevirir. |
bgr |
float |
0.0 |
0.0 - 1.0 |
Yanlış kanal sıralamasına karşı sağlamlığı artırmak için belirtilen olasılıkla görüntü kanallarını RGB'den BGR'ye çevirir. |
mosaic |
float |
1.0 |
0.0 - 1.0 |
Dört eğitim görüntüsünü bir araya getirerek farklı sahne kompozisyonlarını ve nesne etkileşimlerini simüle eder. Karmaşık sahne anlayışı için oldukça etkilidir. |
mixup |
float |
0.0 |
0.0 - 1.0 |
İki görüntüyü ve etiketlerini harmanlayarak kompozit bir görüntü oluşturur. Etiket gürültüsü ve görsel değişkenlik sağlayarak modelin genelleme yeteneğini geliştirir. |
cutmix |
float |
0.0 |
0.0 - 1.0 |
İki görüntünün bölümlerini birleştirerek, belirgin bölgeleri korurken kısmi bir karışım oluşturur. Oklüzyon senaryoları oluşturarak modelin sağlamlığını artırır. |
copy_paste |
float |
0.0 |
0.0 - 1.0 |
Yalnızca segmentasyon. Nesne örneklerini artırmak için nesneleri görüntüler arasında kopyalar ve yapıştırır. |
copy_paste_mode |
str |
flip |
- | Yalnızca Segmentasyon. Şunu belirtir: copy-paste kullanılacak strateji. Seçenekler şunları içerir: 'flip' ve 'mixup' . |
auto_augment |
str |
randaugment |
- | Yalnızca sınıflandırma. Önceden tanımlanmış bir artırma ilkesi uygular ('randaugment' , 'autoaugment' , veya 'augmix' ) görsel çeşitliliği artırarak model performansını iyileştirmek için. |
erasing |
float |
0.4 |
0.0 - 0.9 |
Yalnızca sınıflandırma. Modelin daha az belirgin özelliklere odaklanmasını teşvik etmek için eğitim sırasında görüntünün bölgelerini rastgele siler. |
Bu ayarları, veri kümesi ve görev gereksinimlerini karşılayacak şekilde düzenleyin. Farklı değerlerle denemeler yapmak, en iyi model performansı için optimum artırma stratejisini bulmanıza yardımcı olabilir.
Günlüğe Kaydetme, Kontrol Noktaları ve Çizim Ayarları
Bir YOLO modeli eğitilirken günlüğe kaydetme, kontrol noktaları, çizim ve dosya yönetimi önemlidir:
- Günlüğe Kaydetme: TensorBoard gibi kitaplıkları kullanarak veya bir dosyaya yazarak modelin ilerlemesini izleyin ve sorunları teşhis edin.
- Kontrol Noktaları: Eğitime devam etmek veya farklı yapılandırmalarla denemeler yapmak için modeli düzenli aralıklarla kaydedin.
- Çizim: Matplotlib veya TensorBoard gibi kitaplıkları kullanarak performansı ve eğitim ilerlemesini görselleştirin.
- Dosya yönetimi: Kontrol noktaları, günlük dosyaları ve çizimler gibi eğitim sırasında oluşturulan dosyaları kolay erişim ve analiz için düzenleyin.
Bu unsurların etkili yönetimi, ilerlemeyi izlemeye yardımcı olur ve hata ayıklama ve optimizasyonu kolaylaştırır.
Argüman | Varsayılan | Açıklama |
---|---|---|
project |
'runs' |
Eğitim çalıştırmalarını kaydetmek için kök dizini belirtir. Her çalıştırma ayrı bir alt dizine kaydedilir. |
name |
'exp' |
Deney adını tanımlar. Belirtilmemişse, YOLO her çalıştırma için bu adı artırır (örneğin, exp , exp2 ) üzerine yazmaktan kaçınmak için. |
exist_ok |
False |
Mevcut bir deneme dizininin üzerine yazılıp yazılmayacağını belirler. True üzerine yazmaya izin verir; False bunu engeller. |
plots |
False |
Eğitim ve doğrulama grafiklerinin oluşturulmasını ve kaydedilmesini kontrol eder. Şuna ayarlanır: True kayıp eğrileri gibi grafikler oluşturmak için, kesinlik-duyarlılık (recall) eğriler ve performansın görsel takibi için örnek tahminler. |
save |
False |
Eğitim kontrol noktalarının ve son model ağırlıklarının kaydedilmesini sağlar. Şu şekilde ayarlayın: True model durumlarını periyodik olarak kaydetmek, eğitime devam etmeyi veya model dağıtımını sağlamak için. |
SSS
YOLO modelimin eğitim sırasındaki performansını nasıl artırabilirim?
Yığın boyutu, öğrenme oranı, momentum ve ağırlık azalması gibi hiperparametreleri ayarlayarak performansı artırın. Veri artırma ayarlarını düzenleyin, doğru optimize ediciyi seçin ve erken durdurma veya karışık duyarlılık gibi teknikler kullanın. Ayrıntılar için Eğitim Kılavuzu'na bakın.
YOLO model doğruluğu için temel hiperparametreler nelerdir?
Doğruluğu etkileyen temel hiperparametreler şunlardır:
- Yığın Boyutu (
batch
): Daha büyük boyutlar eğitimi dengeleyebilir ancak daha fazla bellek gerekir. - Öğrenme Oranı (
lr0
): Daha küçük oranlar ince ayarlar sunar ancak daha yavaş yakınsama sağlar. - Momentum (
momentum
): Gradyan vektörlerini hızlandırır, salınımları azaltır. - Görüntü Boyutu (
imgsz
): Daha büyük boyutlar doğruluğu artırır ancak hesaplama yükünü artırır.
Bunları veri kümenize ve donanımınıza göre ayarlayın. Eğitim Ayarları bölümünde daha fazla bilgi edinin.
Bir YOLO modeli eğitmek için öğrenme oranını nasıl ayarlarım?
Öğrenme oranı (lr0
) çok önemlidir; şununla başlayın: 0.01
SGD veya 0.001
için Adam optimize edici. Metrikleri izleyin ve gerektiğinde ayarlayın. Cosine öğrenme oranı zamanlayıcılarını kullanın (cos_lr
) veya ısınma (warmup_epochs
, warmup_momentum
). Ayrıntılar şurada: Eğitim Kılavuzu.
YOLO modelleri için varsayılan çıkarım ayarları nelerdir?
Varsayılan ayarlar şunları içerir:
- Güven Eşiği (
conf=0.25
): Algılamalar için minimum güven düzeyi. - IoU Eşiği (
iou=0.7
): Şunun için Non-Maximum Suppression (NMS) (Maksimum Olmayan Bastırma). - Görüntü Boyutu (
imgsz=640
): Giriş görüntülerini yeniden boyutlandırır. - Cihaz (
device=None
): CPU veya GPU'yu seçer.
Tam bir genel bakış için Tahmin Ayarları ve Tahmin Kılavuzu'na bakın.
YOLO modelleriyle karma duyarlıklı eğitim neden kullanılır?
Karışık duyarlılık eğitim (amp=True
) bellek kullanımını azaltır ve FP16 ve FP32 kullanarak eğitimi hızlandırır. Daha büyük modeller ve önemli bir doğruluk kaybı olmadan daha hızlı hesaplamalar sağlayarak modern GPU'lar için faydalıdır. Daha fazla bilgiyi şurada bulabilirsiniz: Eğitim Kılavuzu.