Albumentations Kullanarak YOLO26 Eğitimi İçin Veri Setini Geliştir

Bilgisayarlı görü modelleri oluştururken, eğitim verilerinizin kalitesi ve çeşitliliği modelinizin başarısında büyük bir rol oynayabilir. Albumentations, modelinizin gerçek dünya senaryolarına uyum sağlama becerisini geliştirebilecek çok çeşitli görüntü dönüştürme tekniklerini uygulamak için hızlı, esnek ve verimli bir yol sunar. Ultralytics YOLO26 ile kolayca entegre olur ve nesne algılama, bölütleme ve sınıflandırma görevleri için sağlam veri setleri oluşturmana yardımcı olabilir.

Albumentations kullanarak, geometrik dönüşümler ve renk ayarları gibi tekniklerle YOLO26 eğitim verilerini güçlendirebilirsin. Bu makalede, Albumentations'ın veri artırma sürecini nasıl iyileştirebileceğini ve YOLO26 projelerini nasıl daha etkili hale getirebileceğini göreceğiz. Hadi başlayalım!

Görüntü Artırma İçin Albumentations

Albumentations, Haziran 2018 tarihinde oluşturulmuş açık kaynaklı bir görüntü artırma kütüphanesidir. Bilgisayarlı görü alanındaki görüntü artırma sürecini basitleştirmek ve hızlandırmak için tasarlanmıştır. Performans ve esneklik odaklı oluşturulduğundan, döndürme ve çevirme gibi basit dönüşümlerden parlaklık ve kontrast değişiklikleri gibi daha karmaşık ayarlara kadar birçok farklı artırma tekniğini destekler. Albumentations, geliştiricilerin görüntü sınıflandırma, nesne algılama ve bölütleme gibi görevler için zengin ve çeşitli veri setleri oluşturmasına yardımcı olur.

Albumentations'ı görüntülerinize, bölütleme maskelerine, sınırlayıcı kutulara ve anahtar noktalara kolayca artırma uygulamak ve veri setinizin tüm öğelerinin birlikte dönüştürüldüğünden emin olmak için kullanabilirsin. PyTorch ve TensorFlow gibi popüler derin öğrenme çerçeveleriyle sorunsuz çalıştığı için çok çeşitli projeler için erişilebilirdir.

Ayrıca Albumentations, ister küçük veri setleri ister büyük ölçekli bilgisayarlı görü görevleri ile uğraşıyor ol, artırma için harika bir seçenektir. Veri hazırlığı için harcanan zamanı azaltarak hızlı ve verimli bir işleme sağlar. Aynı zamanda model performansını artırmaya yardımcı olarak modellerini gerçek dünya uygulamalarında daha etkili hale getirir.

Albumentations'ın Temel Özellikleri

Albumentations, çok çeşitli bilgisayarlı görü uygulamaları için karmaşık görüntü artırmalarını basitleştiren birçok yararlı özellik sunar. İşte temel özelliklerden bazıları:

  • Geniş Dönüşüm Yelpazesi: Albumentations, geometrik değişiklikler (örneğin döndürme, çevirme), renk ayarlamaları (örneğin parlaklık, kontrast) ve gürültü ekleme (örneğin Gaussian gürültüsü) dahil olmak üzere 70'ten fazla farklı dönüşüm sunar. Birçok seçeneğe sahip olmak, son derece çeşitli ve sağlam eğitim veri setlerinin oluşturulmasını sağlar.

Albumentations augmentation examples

  • Yüksek Performans Optimizasyonu: OpenCV ve NumPy üzerine kurulu olan Albumentations, işleme hızını artırmak için birden fazla veri noktasını aynı anda işleyen SIMD (Tek Komut, Çoklu Veri) gibi gelişmiş optimizasyon teknikleri kullanır. Büyük veri setlerini hızlı bir şekilde işler, bu da onu görüntü artırma için mevcut en hızlı seçeneklerden biri yapar.

  • Üç Seviyeli Artırma: Albumentations üç seviyeli artırmayı destekler: piksel seviyesinde dönüşümler, uzamsal seviyede dönüşümler ve karıştırma seviyesinde dönüşümler. Piksel seviyesindeki dönüşümler, maskeleri, sınırlayıcı kutuları veya anahtar noktaları değiştirmeden yalnızca giriş görüntülerini etkiler. Bu arada, hem görüntü hem de maskeler ve sınırlayıcı kutular gibi öğeleri uzamsal seviyedeki dönüşümler kullanılarak dönüştürülür. Ayrıca, karıştırma seviyesindeki dönüşümler, birden fazla görüntüyü bir araya getirdiği için veriyi artırmanın benzersiz bir yoludur.

Farklı Artırma Seviyelerine Genel Bakış

  • Kıyaslama Sonuçları: Kıyaslama söz konusu olduğunda, Albumentations özellikle büyük veri setleriyle diğer kütüphanelerden sürekli olarak daha iyi performans gösterir.

Vizyon Yapay Zeka Projelerin İçin Neden Albumentations Kullanmalısın?

Görüntü artırma konusunda, Albumentations bilgisayarlı görü görevleri için güvenilir bir araç olarak öne çıkar. İşte Vizyon Yapay Zeka projelerin için onu kullanmayı düşünmen gereken birkaç temel neden:

  • Kullanımı Kolay API: Albumentations, görüntülere, maskelere, sınırlayıcı kutulara ve anahtar noktalara çok çeşitli artırmalar uygulamak için tek ve basit bir API sağlar. Farklı veri setlerine kolayca uyum sağlayacak şekilde tasarlanmıştır, bu da veri hazırlığını daha basit ve daha verimli hale getirir.

  • Sıkı Hata Testi: Artırma hattındaki hatalar, giriş verilerini sessizce bozabilir, genellikle fark edilmez ancak nihayetinde model performansını düşürür. Albumentations, hataları geliştirmenin erken aşamalarında yakalamaya yardımcı olan kapsamlı bir test paketi ile bunu ele alır.

  • Genişletilebilirlik: Albumentations, yeni artırmalar eklemek ve bunları yerleşik dönüşümlerle birlikte tek bir arayüz aracılığıyla bilgisayarlı görü hatlarında kullanmak için kolayca kullanılabilir.

YOLO26 Eğitimi İçin Veriyi Artırmak Amacıyla Albumentations Nasıl Kullanılır

Artık Albumentations'ın ne olduğunu ve neler yapabileceğini ele aldığımıza göre, onu YOLO26 model eğitimi için verilerini artırmak amacıyla nasıl kullanacağına bakalım. Kurulumu kolaydır çünkü doğrudan Ultralytics'in eğitim moduna entegre olur ve Albumentations paketi yüklüyse otomatik olarak uygulanır.

Kurulum

YOLO26 ile Albumentations'ı kullanmak için gerekli paketlerin yüklü olduğundan emin olarak başla. Albumentations yüklü değilse, eğitim sırasında artırmalar uygulanmayacaktır. Kurulum tamamlandığında, Albumentations'ın modelini otomatik olarak geliştirmek için entegre edildiği, eğitim için artırılmış bir veri seti oluşturmaya hazır olacaksın.

Kurulum
# Install the required packages
pip install albumentations ultralytics

Kurulum süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz at. YOLO26 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza danış.

Kullanım

Gerekli paketleri yükledikten sonra, Albumentations'ı YOLO26 ile kullanmaya başlamaya hazırsın. YOLO26'yı eğittiğinde, Albumentations ile entegrasyonu sayesinde bir dizi artırma otomatik olarak uygulanır, böylece modelinin performansını artırmak kolaylaşır.

Kullanım
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model with default augmentations
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Şimdi, eğitim sırasında uygulanan belirli artırmalara daha yakından bakalım.

Bulanıklaştırma

Albumentations'daki Blur dönüşümü, küçük bir kare alan veya çekirdek içindeki piksel değerlerini ortalayarak görüntüye basit bir bulanıklık efekti uygular. Bu, görüntüdeki gürültüyü azaltmaya yardımcı olan, ancak görüntü detaylarını da biraz azaltan OpenCV cv2.blur işlevi kullanılarak yapılır.

İşte bu entegrasyonda kullanılan parametreler ve değerler:

  • blur_limit: Bulanıklık efektinin boyut aralığını kontrol eder. Varsayılan aralık (3, 7)'dir, bu da bulanıklık için çekirdek boyutunun 3 ile 7 piksel arasında değişebileceği anlamına gelir ve bulanıklığı ortalanmış tutmak için yalnızca tek sayılara izin verilir.

  • p: Bulanıklığı uygulama olasılığı. Entegrasyonda p=0.01 olduğundan, bu bulanıklığın her görüntüye uygulanma şansı %1'dir. Düşük olasılık, ara sıra bulanıklık efektlerine izin vererek, modelin görüntüleri aşırı bulanıklaştırmadan genellemesine yardımcı olmak için biraz çeşitlilik sunar.

Albumentations Blur augmentation result

Median Blur

Albumentations'daki MedianBlur dönüşümü, görüntüye kenarları korurken gürültüyü azaltmak için özellikle yararlı olan bir medyan bulanıklık efekti uygular. Tipik bulanıklaştırma yöntemlerinin aksine, MedianBlur, kenarlardaki keskinliği korurken tuz-biber gürültüsünü gidermede özellikle etkili olan bir medyan filtresi kullanır.

İşte bu entegrasyonda kullanılan parametreler ve değerler:

  • blur_limit: Bu parametre, bulanıklaştırma çekirdeğinin maksimum boyutunu kontrol eder. Bu entegrasyonda, varsayılan olarak (3, 7) aralığına sahiptir, bu da bulanıklık için çekirdek boyutunun 3 ile 7 piksel arasında rastgele seçildiği ve doğru hizalamayı sağlamak için yalnızca tek değerlere izin verildiği anlamına gelir.

  • p: Medyan bulanıklığı uygulama olasılığını belirler. Burada, p=0.01'dir, dolayısıyla dönüşümün her görüntüye uygulanma şansı %1'dir. Bu düşük olasılık, medyan bulanıklığın idareli kullanılmasını sağlayarak modelin azaltılmış gürültüye sahip ve kenarları korunmuş görüntüleri ara sıra görerek genelleme yapmasına yardımcı olur.

Aşağıdaki görüntü, bir görüntüye uygulanan bu artırmanın bir örneğini göstermektedir.

Albumentations MedianBlur augmentation

Grayscale

Albumentations'daki ToGray dönüşümü, bir görüntüyü gri tonlamaya dönüştürerek tek kanallı bir formata indirger ve isteğe bağlı olarak bu kanalı belirtilen sayıda çıkış kanalıyla eşleşecek şekilde çoğaltır. Gri tonlama parlaklığının nasıl hesaplanacağını ayarlamak için basit ortalamadan gerçekçi kontrast ve parlaklık algısı için daha gelişmiş tekniklere kadar farklı yöntemler kullanılabilir.

İşte bu entegrasyonda kullanılan parametreler ve değerler:

  • num_output_channels: Çıkış görüntüsündeki kanal sayısını belirler. Bu değer 1'den fazlaysa, tek gri tonlamalı kanal çok kanallı bir gri tonlamalı görüntü oluşturmak için çoğaltılacaktır. Varsayılan olarak 3'e ayarlanmıştır, bu da üç özdeş kanala sahip gri tonlamalı bir görüntü verir.

  • method: Gri tonlamaya dönüştürme yöntemini tanımlar. Varsayılan yöntem olan "weighted_average", insan algısıyla yakından uyumlu olan ve doğal görünen bir gri tonlama efekti sağlayan bir formül (0.299R + 0.587G + 0.114B) uygular. "from_lab", "desaturation", "average", "max" ve "pca" gibi diğer seçenekler, hız, parlaklık vurgusu veya ayrıntı koruma gibi çeşitli ihtiyaçlara göre gri tonlamalı görüntüler oluşturmak için alternatif yollar sunar.

  • p: Gri tonlama dönüşümünün ne sıklıkla uygulandığını kontrol eder. p=0.01 ile, her görüntüyü gri tonlamaya dönüştürme şansı %1'dir, bu da modelin daha iyi genelleme yapmasına yardımcı olmak için renkli ve gri tonlamalı görüntülerin bir karışımını mümkün kılar.

Aşağıdaki görüntü, uygulanan bu gri tonlama dönüşümünün bir örneğini göstermektedir.

Albumentations grayscale conversion

Contrast Limited Adaptive Histogram Equalization (CLAHE)

Albumentations'daki CLAHE dönüşümü, kontrastı tüm görüntü yerine yerel bölgelerdeki (kareler) histogramı eşitleyerek artıran bir teknik olan Contrast Limited Adaptive Histogram Equalization (CLAHE) uygular. CLAHE, dengeli bir iyileştirme efekti üretir ve özellikle başlangıçta düşük kontrastlı alanlarda standart histogram eşitlemesinden kaynaklanabilecek aşırı artırılmış kontrasttan kaçınır.

İşte bu entegrasyonda kullanılan parametreler ve değerler:

  • clip_limit: Kontrast iyileştirme aralığını kontrol eder. Varsayılan (1, 4) aralığına ayarlandığında, her karede izin verilen maksimum kontrastı belirler. Daha yüksek değerler daha fazla kontrast için kullanılır ancak gürültü de getirebilir.

  • tile_grid_size: Genellikle (satırlar, sütunlar) olarak kare ızgarasının boyutunu tanımlar. Varsayılan değer (8, 8)'dir, bu da görüntünün 8x8'lik bir ızgaraya bölündüğü anlamına gelir. Daha küçük kare boyutları daha yerel ayarlamalar sağlarken, daha büyük olanlar küresel eşitlemeye daha yakın efektler yaratır.

  • p: CLAHE uygulama olasılığı. Burada, p=0.01, iyileştirme efektini zamanın sadece %1'inde devreye sokar ve eğitim görüntülerinde ara sıra çeşitlilik için kontrast ayarlamalarının idareli uygulanmasını sağlar.

Aşağıdaki görüntü, uygulanan CLAHE dönüşümünün bir örneğini göstermektedir.

Albumentations CLAHE contrast enhancement

Özel Albumentations Dönüşümlerini Kullanma

Varsayılan Albumentations entegrasyonu sağlam bir artırma seti sağlasa da, belirli kullanım durumun için dönüşümleri özelleştirmek isteyebilirsin. Ultralytics YOLO26 ile, augmentations parametresini kullanarak Python API aracılığıyla özel Albumentations dönüşümlerini kolayca geçebilirsin.

Özel Dönüşümler Nasıl Tanımlanır

Kendi Albumentations dönüşümleri listeni tanımlayabilir ve bunları eğitim fonksiyonuna geçirebilirsin. Bu, diğer tüm YOLO artırmalarını ( hsv_h, degrees, mosaic vb.) aktif tutarken varsayılan Albumentations dönüşümlerinin yerini alır.

İşte daha gelişmiş dönüşümler içeren bir örnek:

import albumentations as A

from ultralytics import YOLO

# Load model
model = YOLO("yolo26n.pt")

# Define custom transforms with various augmentation techniques
custom_transforms = [
    # Blur variations
    A.OneOf(
        [
            A.MotionBlur(blur_limit=7, p=1.0),
            A.MedianBlur(blur_limit=7, p=1.0),
            A.GaussianBlur(blur_limit=7, p=1.0),
        ],
        p=0.3,
    ),
    # Noise variations
    A.OneOf(
        [
            A.GaussNoise(var_limit=(10.0, 50.0), p=1.0),
            A.ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=1.0),
        ],
        p=0.2,
    ),
    # Color and contrast adjustments
    A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), p=0.5),
    A.RandomBrightnessContrast(brightness_limit=0.3, contrast_limit=0.3, p=0.5),
    A.HueSaturationValue(hue_shift_limit=20, sat_shift_limit=30, val_shift_limit=20, p=0.5),
    # Simulate occlusions
    A.CoarseDropout(
        max_holes=8, max_height=32, max_width=32, min_holes=1, min_height=8, min_width=8, fill_value=0, p=0.2
    ),
]

# Train with custom transforms
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
    augmentations=custom_transforms,
)

Önemli Hususlar

Özel Albumentations dönüşümlerini kullanırken şu noktaları aklında tut:

  • Sadece Python API: Özel dönüşümler CLI veya YAML yapılandırma dosyaları aracılığıyla değil, yalnızca Python API aracılığıyla iletilebilir.
  • Varsayılanların Yerini Alır: Özel dönüşümlerin, varsayılan Albumentations dönüşümlerinin tamamen yerini alacaktır. Diğer YOLO artırmaları aktif kalır.
  • Sınırlayıcı Kutu İşleme: Ultralytics çoğu dönüşüm için sınırlayıcı kutu ayarlamalarını otomatik olarak işler, ancak karmaşık uzamsal dönüşümler ek test gerektirebilir.
  • Performans: Bazı dönüşümler hesaplama açısından maliyetlidir. Eğitim hızını izle ve buna göre ayarla.
  • Görev Uyumluluğu: Özel Albumentations dönüşümleri algılama ve bölütleme görevleriyle çalışır ancak sınıflandırma ile çalışmaz (farklı bir artırma hattı kullanır).

Özel Dönüşümler İçin Kullanım Durumları

Farklı uygulamalar farklı artırma stratejilerinden yararlanır:

  • Tıbbi Görüntüleme: Elastik deformasyonlar, ızgara bozulmaları ve özel gürültü desenleri kullan
  • Hava/Uydu Görüntüleri: Farklı irtifaları, hava koşullarını ve aydınlatma açılarını simüle eden dönüşümler uygula
  • Düşük Işıklı Senaryolar: Zorlu aydınlatma için sağlam modeller eğitmek amacıyla gürültü eklemeyi ve parlaklık ayarlamalarını vurgula
  • Endüstriyel Denetim: Kalite kontrol uygulamaları için doku varyasyonları ve simüle edilmiş kusurlar ekle

Mevcut dönüşümlerin ve parametrelerinin tam listesi için Albumentations belgelerini ziyaret et.

YOLO26 ile özel Albumentations dönüşümlerini kullanma konusunda daha ayrıntılı örnekler ve en iyi uygulamalar için YOLO Veri Artırma kılavuzuna bak.

Albumentations Hakkında Öğrenmeye Devam Et

Albumentations hakkında daha fazla bilgi edinmek istiyorsan, daha derinlemesine talimatlar ve örnekler için aşağıdaki kaynaklara göz at:

Temel Çıkarımlar

Bu kılavuzda, görüntü artırma için harika bir Python kütüphanesi olan Albumentations'ın temel yönlerini keşfettik. Geniş dönüşüm yelpazesini, optimize edilmiş performansını ve onu bir sonraki YOLO26 projende nasıl kullanabileceğini tartıştık.

Ayrıca, diğer Ultralytics YOLO26 entegrasyonları hakkında daha fazla bilgi edinmek istersen, entegrasyon kılavuzu sayfamızı ziyaret et. Orada değerli kaynaklar ve içgörüler bulacaksın.

SSS

Daha iyi veri artırma için Albumentations'ı YOLO26 ile nasıl entegre edebilirim?

Albumentations, YOLO26 ile sorunsuz bir şekilde entegre olur ve paket yüklüyse eğitim sırasında otomatik olarak uygulanır. Başlamak için yapman gerekenler:

# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO

# Load and train model with automatic augmentations
model = YOLO("yolo26n.pt")
model.train(data="coco8.yaml", epochs=100)

Entegrasyon, model performansını artırmak için özenle ayarlanmış olasılıklara sahip bulanıklık, medyan bulanıklık, gri tonlamaya dönüştürme ve CLAHE gibi optimize edilmiş artırmaları içerir.

Albumentations'ı diğer artırma kütüphanelerine göre kullanmanın temel avantajları nelerdir?

Albumentations birkaç nedenden dolayı öne çıkıyor:

  1. Performans: Üstün hız için SIMD optimizasyonu ile OpenCV ve NumPy üzerine kurulu
  2. Esneklik: Piksel seviyesinde, uzamsal seviyede ve karıştırma seviyesindeki artırmalar genelinde 70'ten fazla dönüşümü destekler
  3. Uyumluluk: PyTorch ve TensorFlow gibi popüler çerçevelerle sorunsuz çalışır
  4. Güvenilirlik: Kapsamlı test paketi sessiz veri bozulmasını önler
  5. Kullanım kolaylığı: Tüm artırma türleri için tek bir birleşik API

Albumentations artırmasından hangi tür bilgisayarlı görü görevleri yararlanabilir?

Albumentations aşağıdakiler dahil çeşitli bilgisayarlı görü görevlerini geliştirir:

  • Nesne Algılama: Aydınlatma, ölçek ve yönelim varyasyonlarına karşı model sağlamlığını artırır
  • Örnek Bölütleme: Çeşitli dönüşümler yoluyla maske tahmin doğruluğunu artırır
  • Sınıflandırma: Renk ve geometrik artırmalarla model genellemesini artırır
  • Poz Tahmini: Modellerin farklı bakış açılarına ve aydınlatma koşullarına uyum sağlamasına yardımcı olur

Kütüphanenin çeşitli artırma seçenekleri, sağlam model performansı gerektiren herhangi bir görü görevi için onu değerli kılar.

Yorumlar