Link to this sectionAlbumentations Kullanarak YOLO26 Eğitimi İçin Veri Setini Geliştir#
Bilgisayarlı görü modelleri oluştururken, eğitim verilerinizin kalitesi ve çeşitliliği, modelinizin performansında büyük bir rol oynayabilir. Albumentations, modelinizin gerçek dünya senaryolarına uyum sağlama yeteneğini geliştirebilecek çok çeşitli görüntü dönüştürme işlemleri uygulamak için hızlı, esnek ve verimli bir yol sunar. Ultralytics YOLO26 ile kolayca entegre olur ve nesne algılama, segmentasyon 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 ayarlamaları gibi tekniklerle YOLO26 eğitim verilerini güçlendirebilirsin. Bu makalede, Albumentations'ın veri artırma sürecini nasıl geliştirebileceğini ve YOLO26 projelerini nasıl daha etkili hale getirebileceğini göreceğiz. Hadi başlayalım!
Link to this sectionGörüntü Artırma İç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öz önünde bulundurularak oluşturulmuş olup, 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 çeşitli 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 setleri oluşturmasına yardımcı olur.
Albumentations'ı görüntülerinize, segmentasyon maskelerine, sınırlayıcı kutulara ve anahtar noktalara kolayca artırmalar 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ışır ve bu da onu çok çeşitli projeler için erişilebilir kılar.
Ayrıca Albumentations, ister küçük veri setleriyle ister büyük ölçekli bilgisayarlı görü görevleriyle uğraşın, artırma için harika bir seçenektir. Hızlı ve verimli işleme sağlar, veri hazırlığına harcanan süreyi azaltır. Aynı zamanda model performansını artırmaya yardımcı olarak modellerini gerçek dünya uygulamalarında daha etkili hale getirir.
Link to this sectionAlbumentations'ı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.
-
Yüksek Performans Optimizasyonu: OpenCV ve NumPy üzerine kurulu olan Albumentations, işlemeyi hızlandı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 ve 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 düzeyinde dönüşümler, uzamsal düzeyde dönüşümler ve karma düzeyde dönüşümler. Piksel düzeyindeki dönüşümler sadece giriş görüntülerini etkiler, maskeleri, sınırlayıcı kutuları veya anahtar noktaları değiştirmez. Bu arada, hem görüntü hem de maskeler ve sınırlayıcı kutular gibi unsurları, uzamsal düzeydeki dönüşümler kullanılarak dönüştürülür. Ayrıca, karma düzeydeki dönüşümler, birden fazla görüntüyü birleştirdikleri için verileri artırmanın benzersiz bir yoludur.

- 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.
Link to this sectionVision AI Projeleriniz İç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 çıkıyor. Vision AI projelerin için onu kullanmayı düşünmen gereken birkaç temel neden şunlardır:
-
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 verimli hale getirir.
-
Titiz Hata Testi: Artırma işlem hattındaki hatalar giriş verilerini sessizce bozabilir, genellikle fark edilmez ancak nihayetinde model performansını düşürür. Albumentations, hataları geliştirme sürecinin başlarında yakalamaya yardımcı olan kapsamlı bir test paketiyle bunu ele alır.
-
Genişletilebilirlik: Albumentations, yerleşik dönüşümlerle birlikte tek bir arayüz aracılığıyla kolayca yeni artırmalar eklemek ve bunları bilgisayarlı görü işlem hatlarında kullanmak için kullanılabilir.
Link to this sectionYOLO26 Eğitimi İçin Verileri Artırmak İçin Albumentations Nasıl Kullanılır?#
Artık Albumentations'ın ne olduğunu ve neler yapabildiğ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ü Ultralytics'in eğitim moduna doğrudan entegre olur ve Albumentations paketi yüklüyse otomatik olarak uygulanır.
Link to this sectionKurulum#
Albumentations'ı YOLO26 ile 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, modelini otomatik olarak geliştirmek için Albumentations entegre edilmiş şekilde eğitim için artırılmış bir veri seti oluşturmaya hazır olacaksın.
# Install the required packages
pip install albumentations ultralyticsKurulum süreci ile ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza göz at. YOLO26 için gerekli paketleri kurarken herhangi bir zorlukla karşılaşırsan, çözümler ve ipuçları için Yaygın Sorunlar kılavuzumuza başvur.
Link to this sectionKullanı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 ve bu da modelinin performansını artırmanı kolaylaştırı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)Sırada, eğitim sırasında uygulanan belirli artırmalara daha yakından bakalım.
Link to this sectionBulanıklaştır#
Albumentations'daki Bulanıklaştırma (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ıklık efekti uygular. Bu, görüntüdeki gürültüyü azaltmaya yardımcı olan OpenCV cv2.blur işlevi kullanılarak yapılır, ancak görüntü detaylarını da hafifçe azaltır.
Bu entegrasyonda kullanılan parametreler ve değerler şunlardır:
-
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ığı merkezde tutmak için sadece tek sayılara izin verilir.
-
p: Bulanıklığı uygulama olasılığıdır. Entegrasyonda p=0.01'dir, bu nedenle her görüntüye bu bulanıklığın uygulanma şansı %1'dir. Düşük olasılık, ara sıra bulanıklık efektlerine izin vererek, görüntüleri aşırı bulanıklaştırmadan modelin genelleme yapmasına yardımcı olmak için biraz çeşitlilik sağlar.
Link to this sectionMedyan Bulanıklaştırma#
Albumentations'daki MedianBlur dönüşümü, görüntüye medyan bulanıklık efekti uygular, bu özellikle kenarları korurken gürültüyü azaltmak için kullanışlıdır. Tipik bulanıklaştırma yöntemlerinin aksine, MedianBlur, özellikle tuz-biber gürültüsünü gidermede etkili olan ve aynı zamanda kenarların çevresindeki keskinliği koruyan bir medyan filtre 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 olarak (3, 7) aralığındadır, yani bulanıklık için çekirdek boyutu, doğru hizalamayı sağlamak için yalnızca tek değerlere izin verilerek 3 ile 7 piksel arasında rastgele seçilir.
-
p: Medyan bulanıklığı uygulama olasılığını ayarlar. Burada p=0.01'dir, bu nedenle 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ğlar ve modelin ara sıra azaltılmış gürültüye ve korunmuş kenarlara sahip görüntüleri 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.
Link to this sectionGri Tonlama#
Albumentations'daki ToGray dönüşümü, bir görüntüyü gri tonlamaya dönüştürerek 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 nasıl hesaplandığını ayarlamak için, basit ortalamadan kontrast ve parlaklığın gerçekçi algısı için daha gelişmiş tekniklere kadar çeşitli 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ı ayarlar. Bu değer 1'den büyükse, tek gri tonlama kanalı çok kanallı bir gri tonlama görüntüsü oluşturmak için çoğaltılır. Varsayılan olarak 3 olarak ayarlanmıştır, bu da üç özdeş kanala sahip bir gri tonlama görüntüsü verir.
-
method: Gri tonlama dönüştürme yöntemini tanımlar. Varsayılan yöntem olan "weighted_average", insan algısıyla yakından hizalanan bir formül (0.299R + 0.587G + 0.114B) uygular ve doğal görünen bir gri tonlama efekti sağlar. "from_lab", "desaturation", "average", "max" ve "pca" gibi diğer seçenekler, hız, parlaklık vurgusu veya detay koruma gibi ç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 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ın mümkün olmasını sağlar.
Aşağıdaki görüntü, uygulanan bu gri tonlama dönüşümünün bir örneğini göstermektedir.
Link to this sectionKontrast Sınırlı Uyarlanabilir Histogram Eşitleme (CLAHE)#
Albumentations'daki CLAHE dönüşümü, tüm görüntü genelinde değil, yerelleştirilmiş bölgelerdeki (kareler) histogramı eşitleyerek görüntü kontrastını artıran bir teknik olan Kontrast Sınırlı Uyarlanabilir Histogram Eşitlemeyi (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ış kontrastı önler.
Bu entegrasyonda kullanılan parametreler ve değerler şunlardır:
-
clip_limit: Kontrast iyileştirme aralığını kontrol eder. Varsayılan (1, 4) aralığına ayarlandığında, her kareda izin verilen maksimum kontrastı belirler. Daha yüksek değerler daha fazla kontrast için kullanılır ancak gürültüye de yol açabilir.
-
tile_grid_size: Tipik olarak (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 yerelleştirilmiş ayarlamalar sağlarken, daha büyük olanlar küresel eşitlemeye daha yakın efektler yaratır.
-
p: CLAHE'yi uygulama olasılığıdır. Burada p=0.01, iyileştirme efektini yalnızca %1 oranında sunar ve eğitim görüntülerinde ara sıra çeşitlilik sağlamak 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.
Link to this sectionÖzel Albumentations Dönüşümlerini Kullanma#
Varsayılan Albumentations entegrasyonu sağlam bir artırma seti sağlasa da, dönüşümleri özel kullanım durumun için özelleştirmek isteyebilirsin. Ultralytics YOLO26 ile, augmentations parametresini kullanarak Python API aracılığıyla özel Albumentations dönüşümlerini kolayca geçirebilirsin.
Link to this sectionÖzel Dönüşümler Nasıl Tanımlanır#
Kendi Albumentations dönüşüm listeni tanımlayabilir ve bunları eğitim işlevine geçirebilirsin. Bu, diğer tüm YOLO artırmalarını (örneğin hsv_h, degrees, mosaic vb.) aktif tutarken varsayılan Albumentations dönüşümlerinin yerini alır.
İşte daha gelişmiş dönüşümlerle 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,
)Link to this sectionÖnemli Hususlar#
Özel Albumentations dönüşümlerini kullanırken şu noktaları aklında bulundur:
- Yalnızca 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 yerini tamamen 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 gerçekleştirir, 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 segmentasyon görevleriyle çalışır, ancak (farklı bir artırma işlem hattı kullanan) sınıflandırma ile çalışmaz.
Link to this sectionÖ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 adına 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.
Link to this sectionAlbumentations Hakkında Öğrenmeye Devam Et#
Albumentations hakkında daha fazla bilgi edinmek istersen, daha derinlemesine talimatlar ve örnekler için aşağıdaki kaynaklara göz at:
-
Albumentations Belgeleri: Resmi belgeler, desteklenen dönüşümlerin tam bir yelpazesini ve gelişmiş kullanım tekniklerini sağlar.
-
Ultralytics Albumentations Kılavuzu: Bu entegrasyonu kolaylaştıran işlevin ayrıntılarına daha yakından bak.
-
Albumentations GitHub Deposu: Depo, artırmaları özelleştirmeye başlamana yardımcı olacak örnekler, kıyaslamalar ve tartışmalar içerir.
Link to this sectionÖnemli Çıkarımlar#
Bu kılavuzda, görüntü artırma için harika 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 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.
Link to this sectionSSS#
Link to this sectionGelişmiş 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 ş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ı artırmak için dikkatlice ayarlanmış olasılıklara sahip bulanıklaştırma, medyan bulanıklaştırma, gri tonlamaya dönüştürme ve CLAHE gibi optimize edilmiş artırmaları içerir.
Link to this sectionAlbumentations kullanmanın diğer artırma kütüphanelerine göre temel faydaları nelerdir?#
Albumentations çeşitli nedenlerle öne çıkıyor:
- Performans: Üstün hız için SIMD optimizasyonu ile OpenCV ve NumPy üzerine kurulu
- Esneklik: Piksel düzeyi, uzamsal düzey ve karma düzey artırmalar genelinde 70'ten fazla dönüşümü destekler
- Uyumluluk: PyTorch ve TensorFlow gibi popüler çerçevelerle sorunsuz çalışır
- Güvenilirlik: Kapsamlı test paketi sessiz veri bozulmasını önler
- Kullanım kolaylığı: Tüm artırma türleri için tek bir birleşik API
Link to this sectionHangi tür bilgisayarlı görü görevleri Albumentations artırmasından yararlanabilir?#
Albumentations, aşağıdakiler dahil olmak üzere çeşitli bilgisayarlı görü görevlerini geliştirir:
- Nesne Algılama: Aydınlatma, ölçek ve yönelim değişimlerine karşı model sağlamlığını artırır
- Örnek Segmentasyonu: Ç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 her türlü görü görevi için onu değerli kılar.