Albumentations Kullanarak YOLO26 Eğitimi için Veri Kümeni Geliştir#
bilgisayarlı görü modelleri oluştururken eğitim verilerinin kalitesi ve çeşitliliği, modelinin ne kadar iyi performans göstereceğinde büyük rol oynayabilir. Albumentations, modelinin gerçek dünya senaryolarına uyum sağlama yeteneğini geliştirebilecek çok çeşitli görüntü dönüşümlerini uygulamak için hızlı, esnek ve verimli bir yöntem sunar. Ultralytics YOLO26 ile kolayca entegre olur ve nesne algılama, segmentasyon ve sınıflandırma görevleri için sağlam veri kümeleri oluşturmana yardımcı olabilir.
Albumentations kullanarak YOLO26 eğitim verilerini geometrik dönüşümler ve renk ayarlamaları gibi tekniklerle geliştirebilirsin. Bu makalede Albumentations'ın veri artırma sürecini nasıl iyileştirebileceğini ve YOLO26 projelerini nasıl daha etkili hâle getirebileceğini göreceğiz. Hadi başlayalım!
Görüntü Artırma için Albumentations#
Albumentations, Haziran 2018'de 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 gözetilerek oluşturulan kütüphane, döndürme ve çevirme gibi basit dönüşümlerden parlaklık ve kontrast değişiklikleri gibi daha karmaşık ayarlamalara kadar birçok farklı artırma tekniğini destekler. Albumentations, geliştiricilerin görüntü sınıflandırma, nesne algılama ve segmentasyon gibi görevler için zengin ve çeşitli veri kümeleri oluşturmasına yardımcı olur.
Görüntülere, segmentasyon maskelerine, sınırlayıcı kutulara ve noktalara kolayca veri artırımı uygulamak ve veri setinin tüm öğelerinin birlikte dönüştürüldüğünden emin olmak için Albumentations kullanabilirsin. PyTorch ve TensorFlow gibi popüler derin öğrenme çatıları ile sorunsuz bir şekilde çalışır ve bu da bunu çok çeşitli projeler için erişilebilir kılar.
Ayrıca Albumentations, ister küçük veri kümeleri ister büyük ölçekli bilgisayarlı görü görevleri üzerinde çalışıyor ol, artırma için harika bir seçenektir. Hızlı ve verimli işleme sağlayarak veri hazırlama için harcanan süreyi azaltır. Aynı zamanda model performansını geliştirmeye yardımcı olarak modellerini gerçek dünya uygulamalarında daha etkili hâle getirir.
Albumentations'ın Temel Özellikleri#
Albumentations, çok çeşitli bilgisayarlı görü uygulamaları için karmaşık görüntü artırma işlemlerini basitleştiren birçok kullanışlı özellik sunar. Önemli özelliklerden bazıları şunlardır:
- Geniş Dönüşüm Yelpazesi: Albumentations; geometrik değişiklikler (ör. döndürme, çevirme), renk ayarlamaları (ör. parlaklık, kontrast) ve gürültü ekleme (ör. Gauss gürültüsü) dahil olmak üzere 70'in üzerinde farklı dönüşüm sunar. Birden fazla seçeneğin bulunması, son derece çeşitli ve sağlam eğitim veri kümeleri oluşturulmasını sağlar.
-
Yüksek Performanslı Optimizasyon: OpenCV ve NumPy üzerine kurulan Albumentations, işlemeyi hızlandırmak için SIMD (Tek Komut, Çoklu Veri) gibi gelişmiş optimizasyon tekniklerini kullanır ve birden fazla veri noktasını eş zamanlı olarak işler. Büyük veri kümelerini hızlı bir şekilde işleyerek görüntü artırma için mevcut en hızlı seçeneklerden biri hâline gelir.
-
Üç Artırma Düzeyi: Albumentations üç artırma düzeyini destekler: piksel düzeyi dönüşümler, uzamsal düzey dönüşümler ve karıştırma düzeyi dönüşümler. Piksel düzeyi dönüşümler, maskeleri, sınırlayıcı kutuları veya kilit noktaları değiştirmeden yalnızca giriş görüntülerini etkiler. Uzamsal düzey dönüşümlerde ise hem görüntü hem de maskeler ve sınırlayıcı kutular gibi öğeleri dönüştürülür. Ayrıca karıştırma düzeyi dönüşümler, birden fazla görüntüyü tek bir görüntüde birleştirdikleri için verileri artırmanın benzersiz bir yoludur.

- Karşılaştırma Sonuçları: Karşılaştırma söz konusu olduğunda Albumentations, özellikle büyük veri kümelerinde diğer kütüphanelerden sürekli olarak daha iyi performans gösterir.
Vision AI Projelerinde Neden Albumentations Kullanmalısın?#
Görüntü artırma açısından Albumentations, bilgisayarlı görü görevleri için güvenilir bir araç olarak öne çıkar. Vision AI projelerinde kullanmayı düşünmen için birkaç önemli neden şunlardır:
-
Kullanımı Kolay API: Albumentations; görüntülere, maskelere, sınırlayıcı kutulara ve kilit noktalarına çok çeşitli artırmaları uygulamak için tek ve anlaşılır bir API sunar. Farklı veri kümelerine kolayca uyum sağlayacak şekilde tasarlanmıştır; bu da veri hazırlamayı daha basit ve verimli hâle getirir.
-
Titiz Hata Testi: Artırma işlem hattındaki hatalar, giriş verilerini sessizce bozabilir; bu hatalar genellikle fark edilmez, ancak sonunda model performansını düşürür. Albumentations, geliştirme sürecinin başlarında hataları yakalamaya yardımcı olan kapsamlı bir test paketiyle bu sorunu ele alır.
-
Genişletilebilirlik: Albumentations, yerleşik dönüşümlerin yanı sıra tek bir arayüz üzerinden yeni artırmalar eklemek ve bunları bilgisayarlı görü işlem hatlarında kullanmak için kolayca kullanılabilir.
YOLO26 Eğitimi için Verileri Albumentations ile Artırma#
Albumentations'ın ne olduğunu ve neler yapabildiğini ele aldığımıza göre, şimdi YOLO26 model eğitimi için verilerini nasıl artırabileceğine bakalım. Doğrudan Ultralytics'in eğitim moduna entegre olduğu ve Albumentations paketi yüklüyse otomatik olarak uygulandığı için kurulumu kolaydır.
Kurulum#
Albumentations'ı YOLO26 ile kullanmak için öncelikle gerekli paketlerin yüklü olduğundan emin ol. Albumentations yüklü değilse artırmalar eğitim sırasında uygulanmaz. Kurulum tamamlandığında, modelini otomatik olarak geliştirmek üzere Albumentations entegre edilmiş artırılmış bir veri kümesi oluşturmaya hazır olursun.
# Install the required packages
pip install albumentations ultralyticsKurulum 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üm ve ipuçları için Yaygın Sorunlar kılavuzumuza başvur.
Bu sayfadaki özel dönüşüm örnekleri için Albumentations 1.4.22 veya daha yeni bir sürüm ve dolayısıyla Python 3.9 veya daha yeni bir sürüm gerekir.
Kullanım#
Gerekli paketleri yükledikten sonra Albumentations'ı YOLO26 ile kullanmaya başlayabilirsin. YOLO26'yı eğittiğinde, Albumentations entegrasyonu aracılığıyla bir dizi artırma otomatik olarak uygulanır ve modelinin performansını geliştirmek kolaylaşır.
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'taki Blur dönüşümü, küçük bir kare alan veya çekirdek içindeki piksel değerlerinin ortalamasını alarak görüntüye basit bir bulanıklaştırma efekti uygular. Bu işlem, görüntüdeki gürültüyü azaltmaya yardımcı olan OpenCV cv2.blur işlevi kullanılarak gerçekleştirilir; ancak görüntü ayrıntılarını da bir miktar azaltır.
Bu entegrasyonda kullanılan parametreler ve değerler şunlardır:
-
blur_limit: Bu parametre bulanıklaştırma efektinin boyut aralığını kontrol eder. Varsayılan aralık (3, 7) şeklindedir; yani bulanıklaştırma için çekirdek boyutu 3 ile 7 piksel arasında değişebilir ve bulanıklığı merkezde tutmak için yalnızca tek sayılara izin verilir.
-
p: Bulanıklaştırmanın uygulanma olasılığıdır. Entegrasyonda p=0.01 olduğundan, her görüntüye bu bulanıklaştırmanın uygulanma olasılığı %1'dir. Düşük olasılık, bulanıklaştırma efektlerinin ara sıra uygulanmasını sağlayarak görüntüleri aşırı bulanıklaştırmadan modelin genelleme yapmasına yardımcı olacak bir miktar çeşitlilik sunar.
Medyan Bulanıklaştırma#
Albumentations'taki MedianBlur dönüşümü, kenarları korurken gürültüyü azaltmak için özellikle yararlı olan bir medyan bulanıklaştırma efekti uygular. Tipik bulanıklaştırma yöntemlerinden farklı olarak MedianBlur, kenarların keskinliğini korurken tuz ve biber gürültüsünü gidermede özellikle etkili olan bir medyan filtresi kullanır.
Bu entegrasyonda kullanılan parametreler ve değerler şunlardır:
-
blur_limit: Bu parametre bulanıklaştırma çekirdeğinin maksimum boyutunu kontrol eder. Bu entegrasyonda varsayılan değer (3, 7) aralığıdır; yani bulanıklaştırma çekirdeğinin boyutu 3 ile 7 piksel arasında rastgele seçilir ve doğru hizalamayı sağlamak için yalnızca tek değerlere izin verilir.
-
p: Medyan bulanıklaştırmanın uygulanma olasılığını belirler. Burada p=0.01 olduğundan dönüşümün her görüntüye uygulanma olasılığı %1'dir. Bu düşük olasılık, medyan bulanıklaştırmanın seyrek kullanılmasını sağlayarak modelin zaman zaman gürültüsü azaltılmış ve kenarları korunmuş görüntüler görmesi yoluyla genelleme yapmasına yardımcı olur.
Aşağıdaki görüntü, bu artırmanın bir görüntüye uygulanmış örneğini gösterir.
Gri Tonlama#
Albumentations'taki ToGray dönüşümü, görüntüyü gri tonlamaya dönüştürür; görüntüyü tek kanallı bir biçime 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 hesaplanma biçimini ayarlamak için basit ortalamadan kontrast ve parlaklığın gerçekçi algılanmasına yönelik daha gelişmiş tekniklere kadar farklı yöntemler kullanılabilir.
Bu entegrasyonda kullanılan parametreler ve değerler şunlardır:
-
num_output_channels: Çıkış görüntüsündeki kanal sayısını belirler. Bu değer 1'den büyükse tek gri tonlama kanalı çoğaltılarak çok kanallı bir gri tonlama görüntüsü oluşturulur. Varsayılan olarak 3 değerine ayarlanır ve üç özdeş kanala sahip bir gri tonlama görüntüsü elde edilir.
-
method: Gri tonlamaya dönüştürme yöntemini tanımlar. Varsayılan yöntem olan "weighted_average", insan algısıyla yakından örtüşen (0.299R + 0.587G + 0.114B) formülünü uygular ve doğal görünümlü bir gri tonlama efekti sağlar. "from_lab", "desaturation", "average", "max" ve "pca" gibi diğer seçenekler; hız, parlaklık vurgusu veya ayrıntıların korunmasına yönelik çeşitli ihtiyaçlara göre gri tonlama görüntüleri oluşturmak için alternatif yollar sunar.
-
p: Gri tonlama dönüşümünün ne sıklıkta uygulanacağını kontrol eder. p=0.01 olduğunda her görüntünün gri tonlamaya dönüştürülme olasılığı %1'dir; böylece renkli ve gri tonlamalı görüntülerin bir arada bulunması modelin daha iyi genelleme yapmasına yardımcı olabilir.
Aşağıdaki görüntü, bu gri tonlama dönüşümünün uygulanmış bir örneğini gösterir.
Kontrast Sınırlı Uyarlamalı Histogram Eşitleme (CLAHE)#
Albumentations'taki CLAHE dönüşümü, görüntünün tamamı yerine yerel bölgelerdeki (kutucuklardaki) histogramı eşitleyerek görüntü kontrastını geliştiren bir teknik olan Kontrast Sınırlı Uyarlamalı Histogram Eşitleme (CLAHE) uygular. CLAHE, özellikle başlangıçta düşük kontrasta sahip bölgelerde standart histogram eşitlemenin yol açabileceği aşırı artırılmış kontrasttan kaçınarak dengeli bir iyileştirme efekti oluşturur.
Bu entegrasyonda kullanılan parametreler ve değerler şunlardır:
-
clip_limit: Kontrast iyileştirme aralığını kontrol eder. Varsayılan aralık (1, 4) olarak ayarlanır ve her kutucukta izin verilen maksimum kontrastı belirler. Daha yüksek değerler daha fazla kontrast için kullanılır, ancak gürültü de oluşturabilir.
-
tile_grid_size: Genellikle (satır, sütun) biçiminde ifade edilen kutucuk ızgarasının boyutunu tanımlar. Varsayılan değer (8, 8) şeklindedir; yani görüntü 8x8'lik bir ızgaraya bölünür. Daha küçük kutucuk boyutları daha yerel ayarlamalar sağlarken daha büyük kutucuklar küresel eşitlemeye daha yakın efektler oluşturur.
-
p: CLAHE uygulanma olasılığıdır. Burada p=0.01, iyileştirme efektinin yalnızca %1 oranında uygulanmasını sağlar; böylece eğitim görüntülerindeki kontrast ayarlamaları seyrek olarak gerçekleştirilerek ara sıra çeşitlilik oluşturulur.
Aşağıdaki görüntü, CLAHE dönüşümünün uygulanmış bir örneğini gösterir.
Özel Albumentations Dönüşümlerini Kullanma#
Varsayılan Albumentations entegrasyonu sağlam bir artırma seti sunsa da kendi kullanım alanına özel dönüşümleri özelleştirmek isteyebilirsin. Ultralytics YOLO26 ile özel Albumentations dönüşümlerini Python API üzerinden augmentations parametresini kullanarak kolayca aktarabilirsin. Bu bölümdeki örnekler için Albumentations 1.4.22 veya daha yeni bir sürüm gerekir.
Özel Dönüşümler Nasıl Tanımlanır?#
Kendi Albumentations dönüşüm listeni tanımlayabilir ve bunu eğitim işlevine aktarabilirsin. Bu işlem, diğer tüm YOLO artırmalarını (hsv_h, degrees, mosaic vb.) etkin tutarken varsayılan Albumentations dönüşümlerinin yerini alır.
İşte daha gelişmiş dönüşümlerin kullanıldığı 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(std_range=(0.0124, 0.0277), 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(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=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 bulundur:
- Konfigürasyon: Python API aracılığıyla özel dönüşüm nesneleri oluştur. Serileştirilmiş dönüşümler, eğitimi devam ettirirken de dahil olmak üzere CLI veya YAML konfigürasyon dosyaları üzerinden geçirilebilir.
- Varsayılanların Yerini Alır: Özel dönüşümlerin varsayılan Albumentations dönüşümlerinin tamamen yerini alır. Diğer YOLO artırmaları etkin kalır.
- Etiket İşleme:
A.OneOfveyaA.Composeiçinde iç içe geçmiş olanlar dahil uzamsal dönüşümler; sınırlayıcı kutuları, çokgenleri, anahtar noktaları, derinlik veya semantik maskeleri görüntüyle birlikte hareket ettirir.A.RandomGridShuffle, çokgen veya anahtar nokta topolojisini koruyamaz ve segmentasyon, poz ile OBB örneklerinde hata verir. - Performans: Bazı dönüşümler hesaplama açısından maliyetlidir. Eğitim hızını izle ve gerektiği şekilde ayarla.
- Görev Uyumluluğu: Özel Albumentations dönüşümleri; algılama, segmentasyon, semantik segmentasyon, derinlik, poz ve OBB eğitimi ile çalışır ancak (farklı bir artırma boru hattı kullanan) sınıflandırma ile çalışmaz.
Özel Dönüşümlerin Kullanım Alanları#
Farklı uygulamalar, farklı artırma stratejilerinden yararlanır:
- Tıbbi Görüntüleme: Kalite kontrol uygulamaları için elastik deformasyonlar, ızgara bozulmaları ve özelleştirilmiş gürültü desenleri ekle
- Hava/Uydu Görüntüleri: Farklı yükseklikleri, hava koşullarını ve aydınlatma açılarını simüle eden dönüşümler uygula
- Düşük Işık Senaryoları: Zorlu aydınlatma koşulları için sağlam modeller eğitmek üzere gürültü eklemeyi ve parlaklık ayarlamalarını vurgula
- Endüstriyel Denetim: Kalite kontrol uygulamaları için doku çeşitlilikleri ve simüle edilmiş kusurlar ekle
Kullanılabilir dönüşümlerin ve parametrelerinin tam listesi için Albumentations belgelerini ziyaret et.
Özel Albumentations dönüşümlerini YOLO26 ile kullanmaya ilişkin daha ayrıntılı örnekler ve en iyi uygulamalar için YOLO Veri Artırma kılavuzuna göz at.
Albumentations Hakkında Öğrenmeye Devam Et#
Albumentations hakkında daha fazla bilgi edinmek istiyorsan daha ayrıntılı talimatlar ve örnekler için aşağıdaki kaynaklara göz at:
-
Albumentations Belgeleri: Resmî belgeler, desteklenen dönüşümlerin tamamını ve gelişmiş kullanım tekniklerini sunar.
-
Ultralytics Albumentations Kılavuzu: Bu entegrasyonu kolaylaştıran işlevin ayrıntılarını daha yakından incele.
-
Albumentations GitHub Deposu: Depoda, artırmaları özelleştirmeye başlamana yardımcı olacak örnekler, karşılaştırmalar ve tartışmalar bulunur.
Önemli Çıkarımlar#
Bu kılavuzda, görüntü artırma için kullanılan güçlü bir Python kütüphanesi olan Albumentations'ın temel yönlerini inceledik. Geniş dönüşüm yelpazesini, optimize edilmiş performansını ve onu bir sonraki YOLO26 projenizde nasıl kullanabileceğinizi ele aldık.
Ayrıca diğer Ultralytics YOLO26 entegrasyonları hakkında daha fazla bilgi edinmek istersen entegrasyon kılavuzu sayfamızı ziyaret et. Burada değerli kaynaklar ve bilgiler bulacaksın.
SSS#
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 şu adımları izle:
# 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ı geliştirmek için dikkatle ayarlanmış olasılıklarla bulanıklaştırma, medyan bulanıklaştırma, gri tonlamaya dönüştürme ve CLAHE gibi optimize edilmiş artırmaları içerir.
Albumentations birkaç nedenle öne çıkar:
- Performans: Üstün hız için SIMD optimizasyonuyla OpenCV ve NumPy üzerine kuruludur
- Esneklik: Piksel düzeyi, uzamsal düzey ve karıştırma düzeyi artırmalar genelinde 70'in üzerinde dönüşümü destekler
- Uyumluluk: PyTorch ve TensorFlow gibi popüler çerçevelerle sorunsuz çalışır
- Güvenilirlik: Kapsamlı test paketi sessiz veri bozulmalarını önler
- Kullanım kolaylığı: Tüm artırma türleri için tek ve birleşik bir API sunar
Albumentations, aşağıdakiler dahil çeşitli bilgisayarlı görü görevlerini geliştirir:
- Nesne Algılama: Modelin aydınlatma, ölçek ve yönelim farklılıklarına karşı sağlamlığını geliştirir
- Örnek Segmentasyonu: Çeşitli dönüşümler aracılığıyla maske tahmin doğruluğunu artırır
- Sınıflandırma: Renk ve geometrik artırmalarla modelin genelleme yeteneğini 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 her türlü görü görevi için onu değerli kılar.