Ultralytics YOLO27: Bekleme listesine katıl.
Get Started
Dersbaşlangıç düzeyi

Artırmayı Dikkatli Kullan

Her artırma yöntemini dağıtım kamerasında test et, gerekçelendirilmiş bir profil oluştur, bu profille eğitim yap ve eğitim partilerindeki sonucu kontrol et.

Kırmızı kapsülleri turunculardan ayıran bir ayıklama hattını, varsayılan renk tonu titreşimiyle eğittiğini düşün. Her epoch'ta model, turuncuya dönük kırmızı kapsüller görür; böylece öğrenmesi gereken tek şey olan rengin önemli olmadığını öğrenir. Artırma, ancak her dönüşüm dağıtım kamerasının gerçekten üretebileceği bir görüntüyse modeli daha dayanıklı hâle getirir. Bu derste, hangi dönüşümlerin kullanılacağına karar veren testi öğreneceksin.

Sonuç

Değiştirdiğin her argüman için dağıtım ortamına dayalı tek satırlık bir gerekçe içeren artırma profili seç, bu profille eğitim yap ve sonucu train_batch0.jpg içinde doğrula.

Hızlı Başlangıç
Nasıl ilerleyeceğini zaten biliyorsan, işte kısa sürüm.
  1. Önce varsayılan artırma ayarlarıyla eğitim yap ve temel sonucu kaydet.

  2. Renk tonu kaydırmaları gibi kameranın asla üretemeyeceği dönüşümleri, renk bir sınıfı tanımlıyorsa devre dışı bırak.

  3. Üstten çekimler için flipud gibi, kameranın üretebileceği dönüşümleri etkinleştir.

  4. train_batch0.jpg dosyasını aç ve kutuların nesnelere sıkı oturduğunu, sınıf ipuçlarının korunduğunu doğrula.

Uygulamalı

Artırma ne işe yarar?#

Tek bir ara papağanı fotoğrafına uygulanan artırmalar: yatay çevirme, kırpma, medyan bulanıklığı, kontrast, ton-doygunluk-değer kaydırması ve gama

Veri artırma, eğitim görsellerini anlık olarak dönüştürür; böylece model her epoch'ta her görselin biraz farklı bir sürümünü görür. Doğru uygulandığında ışıklandırma, ölçek ve yön değişikliklerine karşı dayanıklılığı artırır ve aşırı öğrenmeyi azaltır; çünkü sürekli değişen görselleri model ezberleyemez. Yanlış uygulandığında ise fiziksel olarak olanaksız sahneler öğretir ve gidermen gereken veri kümesi eksiklerini gizler.

Yukarıdaki ton paneline bak: kırmızı ara papağan sarıya dönüyor. "Ara papağan mı, değil mi?" ayrımı için bu zararsızdır; ancak sınıflarından ikisini ayıran özellik renkse zararlıdır.

Önemli varsayılanlar#

Bunlar Ultralytics 8.4'ün varsayılanlarıdır; artırma ayarları başvuru kaynağında tüm argümanlar listelenir:

ArgümanVarsayılanNe işe yararNe zaman değiştirilmeli
hsv_h0.015Ton titreşimiRenk bir sınıfı tanımlıyorsa 0 olarak ayarla
hsv_s / hsv_v0.7 / 0.4Doygunluk ve parlaklık titreşimiIşıklandırma sabit ve kontrollüyse azalt
degrees0.0Rastgele döndürme (±derece)Nesneler her açıda görünebiliyorsa artır
translate / scale0.1 / 0.5Kaydırma ve yakınlaştırmaKırpmalar sınıfı tanımlayan parçaları kesebiliyorsa azalt
fliplr0.5Yatay çevirme olasılığıMetinde olduğu gibi sağ ve sol önemliyse 0 olarak ayarla
flipud0.0Dikey çevirme olasılığıÜstten çekim, hava fotoğrafı veya mikroskop görüntüleri için artır
mosaic1.0Dört görseli tek bir görselde birleştirirNadiren; close_mosaic bölümüne bak
close_mosaic10Son N epoch boyunca mozaik artırmayı kapatırÇok kısa eğitimlerde azalt
mixup / cutmix0.0 / 0.0İki görseli harmanlar / birinin parçasını diğerine yapıştırırTemel sonuçtan sonra küçük veri kümelerinde dene
copy_paste0.0Nesne örneklerini görseller arasında yapıştırırNadir sınıflar içeren segmentasyon, anlamsal segmentasyon ve OBB veri kümeleri

Derinlik veri kümeleri istisnadır: mosaic, mixup, cutmix ve copy_paste eşleştirilmiş derinlik haritalarını geçersiz kılacağından, derinlik yükleyicisi bunları otomatik olarak 0'a ayarlar.

Dağıtım testi#

Etkinleştirilen her dönüşüm önce bir soruyu, ardından ikinci bir soruyu geçmeli:

DönüşümGerçekçi mi?Karar
Dış mekân kamerasında ±%30 parlaklık değişimiEvet: günün farklı saatleriKullan
Güvenlik kamerasında yatay çevirmeEvet: insanlar her iki yönde de yürürKullan
Duvara monte kamerada dikey çevirmeHayır: zemin hep altta kalırDevre dışı bırak
Üstten bakan konveyör kamerasında dikey çevirmeEvet: karede "yukarı" yokEtkinleştir
Sabit yol kamerasında 90° döndürmeHayır: kamera hiç dönmüyorDevre dışı bırak
Kırmızı ve yeşil parçalar farklı sınıflar olduğunda ton kaydırmaHayır: sinyali yok ederDevre dışı bırak

180 derece döndürme artırımı: baş aşağı duran bir ara papağan; sabit ve dikey duran kameranın asla üretmeyeceği bir görüntü

Baş aşağı duran bir ara papağan, doğrudan aşağıya bakan bir drone için iyi bir eğitim görüntüsüdür; duvara sabitlenmiş bir kamera içinse boşa harcanmış olur. Bu testi geçemeyen dönüşümler olumsuz eğitim sinyali üretir: model, kapasitesini asla görmeyeceği görüntüleri tanımaya harcarken göreceği görüntüler için daha az kapasiteye sahip olur.

Örnek bir profil#

Konveyörün üzerindeki üstten bakan bir kamera, sınıfları yalnızca renkleriyle ayrılan parçaları ayırıyor. Ton jitter'ı kaldırılmalı; dikey çevirmeler ve küçük döndürmeler ise gerçekçi hâle geliyor. Bu, COCO8 demo kümesinde gösterildiği gibi çalışır; kendi veri YAML dosyanı ve gerçek bir epoch sayısını kullan:

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.train(
    data="coco8.yaml",
    epochs=1,
    imgsz=320,
    hsv_h=0.0,  # renk sınıfı belirtir: tonları olduğu gibi koru
    flipud=0.5,  # tepeden görünüm: karede "yukarı" yok
    degrees=10.0,  # parçalar her küçük açıda yer alabilir
)

Çalıştırma klasöründeki train_batch0.jpg dosyasını aç ve üç şeyi kontrol et: dönüşümden sonra kutular sıkı biçimde nesneleri çevreliyor mu, sınıfı belirleyen ipuçları (renk, şekil, metin) korunuyor mu ve fiziksel olarak imkânsız görünen bir şey var mı. Bunlardan birini bozan her dönüşümün etkisini azalt. İlk Modelini Eğit, eğitim çalıştırmasının kendisini ele alıyor.

Mozaik ve close_mosaic#

Dört papağan fotoğrafını tek bir eğitim görüntüsünde birleştiren mozaik artırımı

Mozaik, dört görüntüyü tek bir görüntüde birleştirir ve varsayılan olarak açıktır. Nesne tespiti için en etkili artırımdır: her eğitim görüntüsü birden fazla sahne, ölçek ve nesne bağlamı içerir. Ancak mozaik görüntüler dağıtım sırasındaki karelere benzemez; bu nedenle close_mosaic=10 mozaik özelliğini son 10 epoch boyunca kapatır ve modelin eğitimini gerçekçi girdilerle tamamlamasını sağlar. Mozaik kapatıldığında mixup, cutmix ve copy_paste da kapanır; çevirmeler, HSV ve geometrik dönüşümler ise çalışmaya devam eder.

Kısa koşularda mozaik hiç kullanılmaz

Yukarıdaki tek epoch'luk profil de dahil olmak üzere, close_mosaic epoch veya daha kısa koşularda mozaik ilk epoch'tan itibaren kapalıdır. Mozaiği, kısa bir testte değil, tam uzunluktaki koşunun train_batch0.jpg değerinden değerlendir.

Artırımın düzeltemeyeceği şeyler#

Artırım, mevcut olanı çoğaltan bir etkendir. Veri kümesinde gece görüntüleri yoksa hiçbir ayar gece görüntüsü üretemez; yalnızca gündüz görüntülerinin daha aydınlık ve daha karanlık sürümlerini üretir. Bir sınıf yalnızca yoğun artırımla işe yarıyorsa o sınıftan yeterince örneğin yoktur. Yüksek Kaliteli ve Temsili Veri Topla adımına geri dön.

Her ayarı sonuna kadar zorlamak asıl sorunu gizler

Her veri artırma ayarı en üst düzeyde olan küçük bir veri kümesi, dağıtım koşullarından giderek uzaklaşan görüntülerle eğitilir ve doğrulama mAP'si çoğu zaman düşer. Gerekçesiyle birlikte, her seferinde tek bir argümanı değiştir ve aynı bölmede varsayılan başlangıç değerleriyle karşılaştır.

Kırpmalar sınıfı yok ettiğinde

Bir sınıf oyun kartının köşesindeki simge gibi nesnenin küçük bir bölümüyle tanımlanıyorsa mosaic, translate ve scale bu bölümü kırparak kaldırabilir ve başka bir sınıfla tamamen aynı görünen bir eğitim görüntüsü oluşturabilir. Bu veri kümesi için bu değerleri düşür ve düzeltmeyi train_batch0.jpg içinde doğrula.

Dene

Varsayılanlar tablosundaki her argümanı dağıtımın için koru, değiştir veya devre dışı bırak şeklinde işaretle; her değişiklik için bir satırlık gerekçe yaz. Aynı veri bölmesinde bir kez varsayılan profille, bir kez de kendi profilinle eğitim yap ve her ikisi için val mAP50-95 değerini kaydet. Teslim edilecekler: açıklama eklenmiş tablo, iki skor ve özel çalıştırmadan alınmış bir train_batch0.jpg.

Tamamlanma ölçütü
Aşağıdakilerin tümü doğru olduğunda dersi tamamlamış olursun.
  • Değiştirilen her argüman için dağıtımla ilgili tek satırlık gerekçe bulunuyor.

  • Varsayılan ve özel profiller aynı val veri bölmesinde karşılaştırılıyor.

  • Özel çalıştırmadan alınan train_batch0.jpg, kutuların sıkı olduğunu ve sınıf ipuçlarının korunduğunu gösteriyor.

Çözümü göster

Bir drone limanı tam tepeden tarıyor ve gemileri yönelimli kutularla tespit ediyor. Bu bakış açısından "yukarı" diye bir yön yoktur, gemiler her yöne bakabilir ve sınıfı renk belirlemez:

ArgümanSeçimGerekçe
flipud0.5Üstten görünüm dikey çevrildiğinde de aynı görünür
degrees180Gemiler her yönde görünebilir
hsv_hvarsayılanGövde rengi değişkendir ve sınıfı belirlemez
mosaicvarsayılanHer görüntüde çok sayıda küçük nesne var; mozaik yardımcı olur

DOTA8 hava görüntüleri demo kümesinde:

yolo obb train data=dota8.yaml model=yolo26n-obb.pt epochs=1 imgsz=320 flipud=0.5 degrees=180

Sabit bir sokak kamerasında aynı iki değişiklik dağıtım testini geçemez: duvara monte edilmiş bir görüntü akışında arabalar asla baş aşağı görünmez.

Sırada ne var

Veri kümesi, bölmeler ve artırımlar hazır; bir sonraki derste veri kümesinin eğitime hazır olup olmadığı nesnel biçimde belirlenecek.

İlerlemeni kaydetmek için giriş yap