Veri artırma, mevcut görüntülere çeşitli dönüşümler uygulayarak eğitim veri kümenizi yapay olarak genişleten, bilgisayarlı görüde çok önemli bir tekniktir. Ultralytics YOLO gibi derin öğrenme modellerini eğitirken, veri artırma modelin sağlamlığını artırmaya, aşırı öğrenmeyi azaltmaya ve gerçek dünya senaryolarına genellemesini geliştirmeye yardımcı olur.
Veri Artırma Neden Önemlidir?
Veri artırma, bilgisayar görüşü modellerinin eğitiminde birden fazla kritik amaca hizmet eder:
Genişletilmiş Veri Kümesi: Mevcut görüntülerin varyasyonlarını oluşturarak, yeni veri toplamadan eğitim veri kümesi boyutunuzu etkili bir şekilde artırabilirsiniz.
Gelişmiş Genelleme: Modeller, çeşitli koşullar altında nesneleri tanımayı öğrenir ve bu da onları gerçek dünya uygulamalarında daha sağlam hale getirir.
Azaltılmış Aşırı Uyum (Overfitting): Eğitim verilerindeki değişkenliği artırarak, modellerin belirli görüntü özelliklerini ezberleme olasılığı azalır.
Gelişmiş Performans: Uygun artırma ile eğitilmiş modeller genellikle doğrulama ve test kümelerinde daha iyi doğruluk elde eder.
Ultralytics YOLO'nun uygulaması, her biri belirli amaçlara hizmet eden ve modelin performansına farklı şekillerde katkıda bulunan kapsamlı bir artırma teknikleri paketi sunar. Bu kılavuz, her bir artırma parametresini ayrıntılı olarak inceleyerek, projelerinizde bunları ne zaman ve nasıl etkili bir şekilde kullanacağınızı anlamanıza yardımcı olacaktır.
Örnek Yapılandırmalar
Python API'sini, komut satırı arayüzünü (CLI) veya bir yapılandırma dosyasını kullanarak her parametreyi özelleştirebilirsiniz. Aşağıda, her yöntemde veri artırmanın nasıl ayarlanacağına dair örnekler verilmiştir.
Yapılandırma Örnekleri
fromultralyticsimportYOLO# Load a modelmodel=YOLO("yolo11n.pt")# Training with custom augmentation parametersmodel.train(data="coco.yaml",epochs=100,hsv_h=0.03,hsv_s=0.6,hsv_v=0.5)# Training without any augmentations (disabled values omitted for clarity)model.train(data="coco.yaml",epochs=100,hsv_h=0.0,hsv_s=0.0,hsv_v=0.0,translate=0.0,scale=0.0,fliplr=0.0,mosaic=0.0,erasing=0.0,auto_augment=None,)
# Training with custom augmentation parameters
yolodetecttraindata=coco8.yamlmodel=yolo11n.ptepochs=100hsv_h=0.03hsv_s=0.6hsv_v=0.5
Bir yapılandırma dosyası kullanılıyor
Artırmalar dahil tüm eğitim parametrelerini bir YAML yapılandırma dosyasında tanımlayabilirsiniz (örneğin, train_custom.yaml). Şunu mode parametresi yalnızca CLI kullanılırken gereklidir. Bu yeni YAML dosyası daha sonra geçersiz kılacaktır varsayılan olanı içinde bulunur ultralytics paketi.
# train_custom.yaml# 'mode' is required only for CLI usagemode:traindata:coco8.yamlmodel:yolo11n.ptepochs:100hsv_h:0.03hsv_s:0.6hsv_v:0.5
Ardından, Python API'si ile eğitime başlayın:
Eğitim Örneği
fromultralyticsimportYOLO# Load a COCO-pretrained YOLO11n modelmodel=YOLO("yolo11n.pt")# Train the model with custom configurationmodel.train(cfg="train_custom.yaml")
# Train the model with custom configuration
yolodetecttrainmodel="yolo11n.pt"cfg=train_custom.yaml
Renk Uzayı Artırmaları
Ton Ayarı (hsv_h)
Aralık: 0.0 - 1.0
Varsayılan: 0.015
Kullanım: Görüntü renklerini ilişkilerini koruyarak kaydırır. hsv_h hiperparametresi, kaydırma büyüklüğünü tanımlar ve nihai ayarlama rastgele olarak arasında seçilir -hsv_h ve hsv_h. Örneğin, hsv_h=0.3, kaydırma rastgele olarak içinde seçilir-0.3 için 0.3. Üzerindeki değerler için 0.5, renk tonu kayması renk çemberi etrafında döner, bu nedenle artırmalar arasında aynı görünür 0.5 ve -0.5.
Amaç: Özellikle aydınlatma koşullarının nesne görünümünü önemli ölçüde etkileyebileceği dış mekan senaryoları için kullanışlıdır. Örneğin, bir muz parlak güneş ışığında daha sarı görünebilir, ancak iç mekanlarda daha yeşilimsi görünebilir.
Kullanım: Görüntüdeki renklerin yoğunluğunu değiştirir. hsv_h hiperparametresi, kaydırma büyüklüğünü tanımlar ve nihai ayarlama rastgele olarak arasında seçilir -hsv_s ve hsv_s. Örneğin, hsv_s=0.7, yoğunluk rastgele olarak içinde seçilir-0.7 için 0.7.
Amaç: Modellerin değişen hava koşullarını ve kamera ayarlarını işlemesine yardımcı olur. Örneğin, kırmızı bir trafik işareti güneşli bir günde çok canlı görünebilir, ancak sisli koşullarda donuk ve soluk görünebilir.
Kullanım: Görüntünün parlaklığını değiştirir. hsv_v hiperparametresi, kaydırma büyüklüğünü tanımlar ve nihai ayarlama rastgele olarak arasında seçilir -hsv_v ve hsv_v. Örneğin, hsv_v=0.4, yoğunluk rastgele olarak içinde seçilir-0.4 için 0.4.
Amaç: Farklı aydınlatma koşullarında performans göstermesi gereken modelleri eğitmek için gereklidir. Örneğin, kırmızı bir elma güneş ışığında parlak görünebilir, ancak gölgede çok daha koyu görünebilir.
Kullanım: Görüntüleri belirtilen aralıkta rastgele döndürür. degrees hiperparametresi, dönüş açısını tanımlar ve son ayarlama rastgele olarak şu aralıktan seçilir: -degrees ve degrees. Örneğin, degrees=10.0, döndürme rastgele olarak içinde seçilir-10.0 için 10.0.
Amaç: Nesnelerin farklı yönlerde görünebileceği uygulamalar için çok önemlidir. Örneğin, havadan çekilen drone görüntülerinde, araçlar herhangi bir yönde yönlendirilebilir ve modellerin nesneleri dönüşlerinden bağımsız olarak tanıması gerekir.
Kullanım: Görüntüleri yatay ve dikey olarak, görüntü boyutunun rastgele bir kesri kadar kaydırır. translate hiperparametresi, kaydırma büyüklüğünü tanımlar ve nihai ayarlama, aralık içinde iki kez (her eksen için bir kez) rastgele seçilir -translate ve translate. Örneğin, translate=0.5, öteleme rastgele olarak içinde seçilir-0.5 için 0.5 x ekseninde ve aynı aralıkta y ekseninde başka bir bağımsız rastgele değer seçilir.
Amaç: Modellerin kısmen görünür nesneleri algılamayı öğrenmesine yardımcı olur ve nesne konumuna karşı sağlamlığı artırır. Örneğin, araç hasar tespiti uygulamalarında, araba parçaları fotoğrafçının konumuna ve mesafesine bağlı olarak tamamen veya kısmen çerçevede görünebilir, öteleme artırması modele bu özellikleri eksiksizliğinden veya konumundan bağımsız olarak tanımayı öğretir.
Not: Basitlik için, aşağıda uygulanan çeviriler her ikisi için de aynıdır x ve y eksenler. Değerler -1.0 ve 1.0görüntüyü tamamen çerçevenin dışına taşıyacakları için gösterilmez.
-0.5
-0.25
0.0
0.25
0.5
Ölçek (scale)
Aralık: ≥0.0
Varsayılan: 0.5
Kullanım: Görüntüleri belirtilen aralıkta rastgele bir faktörle yeniden boyutlandırır. scale hiperparametresi, ölçekleme faktörünü tanımlar ve son ayarlama rastgele olarak şu aralıktan seçilir: 1-scale ve 1+scale. Örneğin, scale=0.5, ölçekleme rastgele olarak içinde seçilir0.5 için 1.5.
Amaç: Modellerin farklı mesafelerdeki ve boyutlardaki nesneleri işlemesini sağlar. Örneğin, otonom sürüş uygulamalarında, araçlar kameradan çeşitli mesafelerde görünebilir ve modelin bunları boyutlarından bağımsız olarak tanıması gerekir.
Değer -1.0 görüntünün kaybolmasına neden olacağından gösterilmezken, 1.0 sadece 2 kat yakınlaştırmaya neden olur.
Aşağıdaki tabloda görüntülenen değerler, hiperparametre aracılığıyla uygulananlardır. scale, nihai ölçek faktörü değil.
Eğer scale büyüktür 1.0, ölçekleme faktörü rastgele seçildiğinden görüntü çok küçük veya ters çevrilmiş olabilir 1-scale ve 1+scale. Örneğin, scale=3.0, ölçekleme rastgele olarak içinde seçilir-2.0 için 4.0. Negatif bir değer seçilirse, görüntü ters çevrilir.
-0.5
-0.25
0.0
0.25
0.5
Kırma (shear)
Aralık: -180 için +180
Varsayılan: 0.0
Kullanım: Görüntüyü hem x ekseni hem de y ekseni boyunca eğen, görüntünün bölümlerini bir yönde kaydırırken paralel çizgileri koruyan geometrik bir dönüşüm uygular. shear hiperparametresi, kayma açısını tanımlar ve son ayarlama rastgele olarak şu aralıktan seçilir: -shear ve shear. Örneğin, shear=10.0, kayma rastgele olarak içinde seçilir-10 için 10 x ekseninde ve aynı aralıkta y ekseninde başka bir bağımsız rastgele değer seçilir.
Amaç: Modellerin hafif eğimlerden veya eğik bakış açılarından kaynaklanan görüş açılarındaki değişikliklere genelleme yapmasına yardımcı olur. Örneğin, trafik izlemede, arabalar ve yol işaretleri gibi nesneler, dik olmayan kamera yerleşimleri nedeniyle eğimli görünebilir. Kayma artırması uygulamak, modelin bu tür çarpık bozulmalara rağmen nesneleri tanımasını sağlar.
shear değerleri görüntüyü hızla bozabilir, bu nedenle küçük değerlerle başlamak ve kademeli olarak artırmak önerilir.
Perspektif dönüşümlerinden farklı olarak, eğme derinlik veya kaybolma noktaları oluşturmaz, bunun yerine karşı tarafları paralel tutarken açılarını değiştirerek nesnelerin şeklini bozar.
-10
-5
0.0
5
10
Perspektif (perspective)
Aralık: 0.0 - 0.001
Varsayılan: 0.0
Kullanım: Nesnelerin farklı derinliklerden veya açılardan görüntülendiğinde nasıl göründüğünü simüle ederek hem x ekseni hem de y ekseni boyunca tam bir perspektif dönüşümü uygular. perspective hiperparametresi, perspektif büyüklüğünü tanımlar ve son ayarlama rastgele olarak şu aralıktan seçilir: -perspective ve perspective. Örneğin, perspective=0.001, perspektif rastgele olarak içinde seçilir-0.001 için 0.001 x ekseninde ve aynı aralıkta y ekseninde başka bir bağımsız rastgele değer seçilir.
Amaç: Perspektif artırma, özellikle nesnelerin perspektif kaymaları nedeniyle kısaltılmış veya bozulmuş göründüğü senaryolarda, aşırı görüş açısı değişikliklerini ele almak için çok önemlidir. Örneğin, drone tabanlı nesne algılamada, binalar, yollar ve araçlar drone'un eğimine ve yüksekliğine bağlı olarak gerilmiş veya sıkıştırılmış görünebilir. Perspektif dönüşümleri uygulayarak, modeller bu perspektif kaynaklı bozulmalara rağmen nesneleri tanımayı öğrenir ve gerçek dünya uygulamalarındaki sağlamlıklarını artırır.
Kullanım: Görüntüyü y ekseni boyunca ters çevirerek dikey bir çevirme gerçekleştirir. Bu dönüşüm, tüm görüntüyü baş aşağı aynalar, ancak nesneler arasındaki tüm uzamsal ilişkileri korur. flipud hiperparametresi, dönüşümün uygulanma olasılığını tanımlar ve değeri flipud=1.0 tüm görüntülerin çevrilmesini sağlayarak ve bir değerin flipud=0.0 dönüşümü tamamen devre dışı bırakarak. Örneğin, flipud=0.5, her görüntünün baş aşağı çevrilme olasılığı %50'dir.
Amaç: Nesnelerin baş aşağı görünebileceği senaryolar için kullanışlıdır. Örneğin, robotik görme sistemlerinde, taşıyıcı bantlar veya robot kolları üzerindeki nesneler çeşitli yönlerde alınabilir ve yerleştirilebilir. Dikey çevirme, modelin nesneleri yukarıdan aşağıya konumlarından bağımsız olarak tanımasına yardımcı olur.
Kullanım: Görüntüyü x ekseni boyunca yansıtarak yatay bir çevirme gerçekleştirir. Bu dönüşüm, sol ve sağ tarafları değiştirirken uzamsal tutarlılığı korur, bu da modelin aynalanmış yönlerde görünen nesnelere genellemesine yardımcı olur. fliplr hiperparametresi, dönüşümün uygulanma olasılığını tanımlar ve değeri şudur: fliplr=1.0 tüm görüntülerin çevrilmesini sağlayarak ve bir değerin fliplr=0.0 dönüşümü tamamen devre dışı bırakarak. Örneğin, fliplr=0.5, her görüntünün soldan sağa çevrilme olasılığı %50'dir.
Amaç: Yatay çevirme, sol-sağ varyasyonlarına karşı sağlamlığı artırmak için nesne algılama, poz tahmini ve yüz tanımada yaygın olarak kullanılır. Örneğin, otonom sürüşte, araçlar ve yayalar yolun her iki tarafında da görünebilir ve yatay çevirme, modelin bunları her iki yönde de eşit derecede iyi tanımasına yardımcı olur.
Kullanım: Bir görüntünün renk kanallarını RGB'den BGR'ye değiştirerek renklerin temsil edilme sırasını değiştirir. bgr hiperparametresi, dönüşümü uygulama olasılığını tanımlar ve bgr=1.0 tüm görüntülerin kanal değişimine uğramasını sağlayarak ve bgr=0.0 devre dışı bırakarak. Örneğin, bgr=0.5, her görüntünün RGB'den BGR'ye dönüştürülme olasılığı %50'dir.
Amaç: Farklı renk kanalı sıralamalarına karşı sağlamlığı artırır. Örneğin, RGB ve BGR formatlarının tutarsız bir şekilde kullanılabileceği çeşitli kamera sistemlerinde ve görüntüleme kitaplıklarında çalışması gereken modelleri eğitirken veya giriş renk formatının eğitim verilerinden farklı olabileceği ortamlara modelleri dağıtırken.
Kullanım: Dört eğitim görüntüsünü bir araya getirir. mosaic hiperparametresi, dönüşümü uygulama olasılığını tanımlar ve mosaic=1.0 tüm görüntülerin birleştirilmesini sağlayarak ve mosaic=0.0 dönüşümü devre dışı bırakarak. Örneğin, mosaic=0.5, her görüntünün diğer üç görüntüyle birleştirilme olasılığı %50'dir.
Amaç: Küçük nesne algılama ve bağlam anlayışını geliştirmek için oldukça etkilidir. Örneğin, hayvanların çeşitli mesafelerde ve ölçeklerde görünebileceği yaban hayatı koruma projelerinde, mozaik artırma, modelin sınırlı veriden çeşitli eğitim örnekleri oluşturarak aynı türü farklı boyutlarda, kısmi tıkanıklıklarda ve çevresel bağlamlarda tanımasını öğrenmesine yardımcı olur.
Hatta eğer mosaic artırma modeli daha sağlam hale getirirken, eğitim sürecini de daha zorlu hale getirebilir.
mosaic artırma, ayarlanarak eğitimin sonuna doğru devre dışı bırakılabilir close_mosaic kapanması gerektiğinde tamamlanmadan önceki epoch sayısına. Örneğin, eğer epochs olarak ayarlanmıştır 200 ve close_mosaic olarak ayarlanmıştır 20, 'in mosaic artırma işleminden sonra devre dışı bırakılacaktır 180 epoklar. Eğer close_mosaic olarak ayarlanmıştır 0, 'in mosaic artırma tüm eğitim süreci boyunca etkinleştirilecektir.
Oluşturulan mozaiğin merkezi rastgele değerler kullanılarak belirlenir ve görüntünün içinde veya dışında olabilir.
'nin mevcut uygulaması mosaic artırma, veri kümesinden rastgele seçilen 4 görüntüyü birleştirir. Veri kümesi küçükse, aynı görüntü aynı mozaikte birden çok kez kullanılabilir.
mosaic kapalı
mosaic açık
Mixup (mixup)
Aralık: 0.0 - 1.0
Varsayılan: 0.0
Kullanım: Belirli bir olasılıkla iki görüntüyü ve etiketlerini karıştırır. mixup hiperparametresi, dönüşümü uygulama olasılığını tanımlar ve mixup=1.0 tüm görüntülerin karıştırılmasını sağlayarak ve mixup=0.0 dönüşümü devre dışı bırakarak. Örneğin, mixup=0.5, her görüntünün başka bir görüntüyle karıştırılma olasılığı %50'dir.
Amaç: Modelin sağlamlığını artırır ve aşırı öğrenmeyi azaltır. Örneğin, perakende ürün tanıma sistemlerinde, mixup, modelin farklı ürünlerin görüntülerini karıştırarak daha sağlam özellikler öğrenmesine yardımcı olarak, kalabalık mağaza raflarında kısmen görünür veya diğer ürünler tarafından gizlenmiş olsa bile öğeleri tanımlamayı öğretir.
mixup oranı, içinden seçilen rastgele bir değerdir np.random.beta(32.0, 32.0) beta dağılımı, yani her görüntü yaklaşık %50 katkıda bulunur ve küçük farklılıklar gösterir.
İlk resim, mixup kapalı
İkinci resim, mixup kapalı
mixup açık
CutMix (cutmix)
Aralık: 0.0 - 1.0
Varsayılan: 0.0
Kullanım: Bir görüntüden dikdörtgen bir bölge keser ve belirli bir olasılıkla başka bir görüntüye yapıştırır. cutmix hiperparametresi, dönüşümü uygulama olasılığını tanımlar ve cutmix=1.0 tüm görüntülerin bu dönüşüme uğramasını sağlayarak ve cutmix=0.0 tamamen devre dışı bırakarak. Örneğin, cutmix=0.5, her görüntünün bir bölgesinin başka bir görüntüden bir yama ile değiştirilme olasılığı %50'dir.
Amaç: Yerel özellik bütünlüğünü korurken gerçekçi tıkanma senaryoları oluşturarak model performansını artırır. Örneğin, otonom sürüş sistemlerinde, cutmix, modelin araçları veya yayaları diğer nesneler tarafından kısmen kapatıldıklarında bile tanımasına yardımcı olarak, karmaşık gerçek dünya ortamlarında örtüşen nesnelerle algılama doğruluğunu artırır.
Kesilen bölgenin boyutu ve konumu her uygulama için rastgele belirlenir.
Piksel değerlerini global olarak karıştıran mixup'tan farklı olarak, cutmix kesilmiş bölgelerdeki orijinal piksel yoğunluklarını korur, yerel özellikleri muhafaza eder.
Bir bölge, yalnızca mevcut herhangi bir sınırlayıcı kutuyla çakışmıyorsa hedef görüntüye yapıştırılır. Ek olarak, yalnızca en az koruyan sınırlayıcı kutular 0.1 Yapıştırılan bölge içindeki orijinal alanlarının (%10)'u korunur.
Bu minimum sınırlayıcı kutu alanı eşiği, mevcut uygulamayla değiştirilemez ve şu değere ayarlanmıştır: 0.1 varsayılan olarak.
İlk resim, cutmix kapalı
İkinci resim, cutmix kapalı
cutmix açık
Segmentasyona Özgü Artırmalar
Kopyala-Yapıştır (copy_paste)
Aralık: 0.0 - 1.0
Varsayılan: 0.0
Kullanım: Yalnızca segmentasyon görevleri için çalışır, bu artırma, belirtilen bir olasılığa göre ( tarafından kontrol edilir) görüntüler içindeki veya arasındaki nesneleri kopyalar. copy_paste_mode. Şunu copy_paste hiperparametresi, dönüşümü uygulama olasılığını tanımlar ve copy_paste=1.0 tüm görüntülerin kopyalanmasını sağlayarak ve copy_paste=0.0 dönüşümü devre dışı bırakarak. Örneğin, copy_paste=0.5, her görüntünün başka bir görüntüden nesnelerin kopyalanma olasılığı %50'dir.
Amaç: Özellikle örnek segmentasyonu görevleri ve nadir nesne sınıfları için kullanışlıdır. Örneğin, belirli kusur türlerinin nadiren göründüğü endüstriyel kusur tespitinde, kopyala-yapıştır artırması, bu nadir kusurların bir görüntüden diğerine kopyalanarak oluşumunu yapay olarak artırabilir ve modelin ek kusurlu örneklere ihtiyaç duymadan bu az temsil edilen durumları daha iyi öğrenmesine yardımcı olur.
Aşağıdaki gifte resmedildiği gibi, copy_paste artırma, nesneleri bir görüntüden diğerine kopyalamak için kullanılabilir.
Bir nesne kopyalandıktan sonra, copy_paste_mode, Alan Üzerindeki Kesişimi (IoA), kaynak görüntünün tüm nesneleriyle hesaplanır. Tüm IoA değerleri aşağıda ise 0.3 (%30) ise, nesne hedef görüntüye yapıştırılır. Yalnızca bir IoA değeri yukarıdaysa 0.3, nesne hedef görüntüye yapıştırılmaz.
IoA eşiği mevcut uygulamayla değiştirilemez ve şu değere ayarlanmıştır: 0.3 varsayılan olarak.
copy_paste kapalı
copy_paste ile devam copy_paste_mode=flip
Şunu görselleştir: copy_paste işlem
Kopyala-Yapıştır Modu (copy_paste_mode)
Seçenekler: 'flip', 'mixup'
Varsayılan: 'flip'
Kullanım: için kullanılan yöntemi belirler. kopyala-yapıştır artırma. Eğer ayarlanırsa 'flip', nesneler aynı görüntüden gelirken 'mixup' nesnelerin farklı görüntülerden kopyalanmasına olanak tanır.
Amaç: Kopyalanan nesnelerin hedef görüntülere nasıl entegre edileceği konusunda esneklik sağlar.
Kullanım: Sınıflandırma için otomatik artırma ilkeleri uygular. 'randaugment' seçeneği RandAugment'i kullanır, 'autoaugment' AutoAugment kullanır ve 'augmix' AugMix kullanır. Şuna ayarlanıyor: None otomatik artırmayı devre dışı bırakır.
Amaç: Sınıflandırma görevleri için artırma stratejilerini otomatik olarak optimize eder. Farklılıklar şunlardır:
AutoAugment: Bu mod, ImageNet, CIFAR10 ve SVHN gibi veri kümelerinden öğrenilen önceden tanımlanmış artırma politikalarını uygular. Kullanıcılar bu mevcut politikaları seçebilir, ancak Torchvision içinde yenilerini eğitemez. Belirli veri kümeleri için en uygun artırma stratejilerini keşfetmek için harici kitaplıklar veya özel uygulamalar gerekli olacaktır. AutoAugment makalesine bakın.
RandAugment: Düzgün büyüklükte rastgele bir dönüşüm seçimi uygular. Bu yaklaşım, kapsamlı bir arama aşamasına olan ihtiyacı azaltır ve modelin sağlamlığını artırırken hesaplama açısından daha verimli olmasını sağlar. RandAugment makalesine bakın.
AugMix: AugMix, basit dönüşümlerin rastgele kombinasyonları yoluyla çeşitli görüntü varyasyonları oluşturarak modelin sağlamlığını artıran bir veri artırma yöntemidir. AugMix makalesine bakın.
Esasen, üç yöntem arasındaki temel fark, artırma politikalarının tanımlanma ve uygulanma şeklidir.
Üç yöntemi ayrıntılı olarak karşılaştıran bu makaleye başvurabilirsiniz.
Rastgele Silme (erasing)
Aralık: 0.0 - 0.9
Varsayılan: 0.4
Kullanım: Sınıflandırma eğitimi sırasında görüntünün bölümlerini rastgele siler. erasing hiperparametresi, dönüşümü uygulama olasılığını tanımlar ve erasing=0.9 neredeyse tüm görüntülerin silinmesini sağlayarak ve erasing=0.0 dönüşümü devre dışı bırakarak. Örneğin, erasing=0.5, her görüntünün bir kısmının silinme olasılığı %50'dir.
Amaç: Modellerin sağlam özellikler öğrenmesine yardımcı olur ve belirli görüntü bölgelerine aşırı bağımlılığı önler. Örneğin, yüz tanıma sistemlerinde, rastgele silme, modellerin güneş gözlüğü, yüz maskesi veya yüz özelliklerini kısmen kapatabilecek diğer nesneler gibi kısmi tıkanıklıklara karşı daha sağlam hale gelmesine yardımcı olur. Bu, modelin bireyleri yalnızca belirgin özelliklere bağlı kalmak yerine birden fazla yüz özelliğini kullanarak tanımlamasını sağlayarak gerçek dünya performansını artırır.
erasing artırma ile birlikte gelir scale, ratiove value ile değiştirilemeyen hiperparametreler mevcut uygulama. Varsayılan değerleri şunlardır: (0.02, 0.33), (0.3, 3.3)ve 0, sırasıyla, PyTorch'de belirtildiği gibi belgeleme.
Üst sınır erasing hiperparametresi şu değere ayarlanır: 0.9 dönüşümün tüm görüntülere uygulanmasını önlemek için.
erasing kapalı
erasing (örnek 1)
erasing (örnek 2)
erasing (örnek 3)
SSS
Seçilebilecek çok fazla artırma var. Hangilerini kullanacağımı nasıl bileceğim?
Doğru artırmaları seçmek, özel kullanım durumunuza ve veri kümenize bağlıdır. Karar vermenize yardımcı olacak birkaç genel kılavuz aşağıda verilmiştir:
Çoğu durumda, renkteki ve parlaklıktaki hafif farklılıklar faydalıdır. için varsayılan değerler hsv_h, hsv_sve hsv_v sağlam bir başlangıç noktasıdır.
Kameranın bakış açısı tutarlıysa ve model dağıtıldıktan sonra değişmeyecekse, geometrik dönüşümleri atlayabilirsiniz, örneğin rotation, translation, scale, shear, veya perspective. Ancak, kamera açısı değişebiliyorsa ve modelin daha sağlam olmasını istiyorsanız, bu artırmaları tutmak daha iyidir.
Şunu kullanın: mosaic Kısmen örtüşen nesneler veya görüntü başına birden fazla nesne kabul edilebilir durumdaysa ve etiket değerini değiştirmiyorsa, artırma uygulayın. Alternatif olarak, şunu koruyabilirsiniz: mosaic aktif ancak şunu artır close_mosaic eğitim sürecinde daha erken devre dışı bırakmak için değer.
Kısacası: basit tutun. Küçük bir artırma kümesiyle başlayın ve gerektiğinde kademeli olarak daha fazlasını ekleyin. Amaç, modelin genellemesini ve sağlamlığını iyileştirmek, eğitim sürecini aşırı karmaşık hale getirmek değildir. Ayrıca, uyguladığınız artırmaların, modelinizin üretimde karşılaşacağı veri dağılımını yansıttığından emin olun.
Bir eğitime başlarken, şunu görüyorum: albumentations: Blur[...] referans. Bu, Ultralytics YOLO'nun bulanıklaştırma gibi ek artırma uyguladığı anlamına mı geliyor?
Eğer albumentations paketi yüklendiğinde, Ultralytics otomatik olarak onu kullanarak bir dizi ekstra görüntü artırması uygular. Bu artırmalar dahili olarak işlenir ve ek bir yapılandırma gerektirmez.
Uygulanan dönüşümlerin tam listesini şurada bulabilirsiniz: teknik dokümantasyon, ayrıca şurada da Albumentations entegrasyon kılavuzu. Yalnızca olasılığı olan artırmaların olduğunu unutmayın p büyüktür 0 etkindir. Bunlar, bulanıklık veya gri tonlama efektleri gibi gerçek dünya görsel yapıtlarını taklit etmek için kasıtlı olarak düşük frekanslarda uygulanır.
Bir eğitime başlarken, albumentations'a herhangi bir referans göremiyorum. Neden?
Şunu kontrol edin: albumentations paketi yüklüdür. Değilse, şunu çalıştırarak yükleyebilirsiniz: pip install albumentations. Kurulduktan sonra, paket otomatik olarak algılanmalı ve Ultralytics tarafından kullanılmalıdır.
Artırmalarımı nasıl özelleştirebilirim?
Özel bir veri kümesi sınıfı ve eğitici oluşturarak artırmaları özelleştirebilirsiniz. Örneğin, varsayılan Ultralytics sınıflandırma artırmalarını PyTorch'un torchvision.transforms.Resize veya diğer dönüşümleriyle değiştirebilirsiniz. Uygulama ayrıntıları için sınıflandırma belgelerindeki özel eğitim örneğine bakın.
📅 3 ay önce oluşturuldu
✏️ 23 gün önce güncellendi