İç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 YOLOv8 : Yapılandırma

Ultralytics komutları aşağıdaki sözdizimini kullanır:

Örnek

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLOv8 model from a pre-trained weights file
model = YOLO('yolov8n.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 nesne algılama için, 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 YOLOv8 modelini eğitmek için.
  • Val: Eğitildikten sonra bir YOLOv8 modelini doğrulamak için.
  • Tahmin Et: Yeni görüntüler veya videolar üzerinde eğitilmiş bir YOLOv8 modeli kullanarak tahminler yapmak için.
  • Dışa aktarma: Bir YOLOv8 modelini dağıtım için kullanılabilecek bir formata dışa aktarmak için.
  • İz: Bir YOLOv8 modeli kullanarak nesneleri gerçek zamanlı olarak izlemek için.
  • Kıyaslama: YOLOv8 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 ve doğrulama verilerine giden yollar, sınıf adları ve sınıf sayısı dahil olmak üzere veri kümesine özgü parametreleri içerir.
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 Eğitim için toplu iş boyutu, modelin dahili parametreleri güncellenmeden önce kaç görüntünün işleneceğini gösterir. AutoBatch (batch=-1) GPU bellek kullanılabilirliğine bağlı olarak yığın boyutunu dinamik olarak ayarlar.
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 silikon için MPS (device=mps).
workers 8 Veri yükleme için işçi iş parçacığı sayısı (her RANK Çoklu GPU eğitimi ise). Veri ön işleme ve modele besleme hızını etkiler, özellikle çoklu GPU 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.
verbose False Eğitim sırasında ayrıntılı çıktıları etkinleştirerek ayrıntılı günlükler ve ilerleme güncellemeleri sağlar. Hata ayıklama ve eğitim sürecini yakından izlemek için kullanışlıdır.
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 edicileri için beta1, geçmiş gradyanların mevcut güncellemeye dahil edilmesini etkiler.
weight_decay 0.0005 L2 düzenleme terimi, aşırı uyumu önlemek için büyük ağırlıkları cezalandırır.
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 Segmentasyon maskelerinin eğitim sırasında üst üste gelip gelmeyeceğini belirler, örnek segmentasyon görevlerinde uygulanabilir.
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.

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 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ılama doğruluğunu ve işlem hızını artırabilir.
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 model yürütme için CPU, belirli bir GPU veya 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şlenirken tüm karelerin arabelleğe alınıp alınmayacağını belirler (True) veya modelin en son kareyi döndürmesi gerekip gerekmediğini (False). Gerçek zamanlı uygulamalar için kullanışlıdır.
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 Modelde mevcutsa yüksek çözünürlüklü segmentasyon maskeleri kullanır. Bu, segmentasyon görevleri için maske kalitesini artırarak daha ince ayrıntılar sağlayabilir.
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.

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 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.
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 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.

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 doğrulama verilerine giden yolları, sınıf adlarını ve sınıf sayısını içerir.
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 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:0vb.). CPU veya GPU kaynaklarının kullanımında esneklik sağlar.
dnn bool False Eğer TrueONNX model çıkarımı için OpenCV DNN modülünü kullanır ve PyTorch çıkarım yöntemlerine bir alternatif sunar.
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 False 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.

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) for specific dimensions.
keras bool False TensorFlow SavedModel için Keras formatına aktarımı etkinleştirerek TensorFlow hizmeti 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 ve TensorRT dışa aktarımları için dinamik giriş boyutlarına izin vererek, farklı görüntü boyutlarının işlenmesinde esnekliği artırır.
simplify bool False ONNX dışa aktarımları için model grafiğini basitleştirerek performansı 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 4.0 Bellek kullanımı ve performansı dengeleyen TensorRT optimizasyonları için maksimum çalışma alanı boyutunu GB cinsinden 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.

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

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.
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, 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, hassasiyet-hatırlama eğrileri ve örnek tahminler gibi grafikler oluşturmak için. 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.


Oluşturuldu 2023-11-12, Güncellendi 2024-04-18
Yazarlar: glenn-jocher (13), fcakyon (2), Laughing-q (2), plashchynski (1), Burhan-Q (1), AyushExel (1), RizwanMunawar (1), tensorturtle (1)

Yorumlar