Albumentations Kullanarak YOLO11'i Eğitmek İçin Veri Kümenizi Geliştirin
Bilgisayarlı görü modelleri oluştururken, eğitim verilerinizin kalitesi ve çeşitliliği, modelinizin ne kadar iyi performans göstereceğinde büyük 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üşümlerini uygulamak için hızlı, esnek ve verimli bir yol sunar. Ultralytics YOLO11 ile kolayca entegre olur ve nesne algılama, segmentasyon ve sınıflandırma görevleri için sağlam veri kümeleri oluşturmanıza yardımcı olabilir.
Albumentations kullanarak, geometrik dönüşümler ve renk ayarlamaları gibi tekniklerle YOLO11 eğitim verilerinizi güçlendirebilirsiniz. Bu makalede, Albumentations'ın veri artırma sürecinizi nasıl iyileştirebileceğini ve YOLO11 projelerinizi nasıl daha etkili hale 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ü zenginleştirme kütüphanesidir. Bilgisayar görüşünde görüntü zenginleştirme sürecini basitleştirmek ve hızlandırmak için tasarlanmıştır. Performans ve esneklik göz önünde bulundurularak oluşturulmuştur ve döndürmeler ve çevirmeler gibi basit dönüşümlerden parlaklık ve kontrast değişiklikleri gibi daha karmaşık ayarlamalara kadar birçok farklı zenginleştirme tekniğini destekler. Albumentations, geliştiricilerin görüntü sınıflandırması, nesne algılama ve segmentasyon gibi görevler için zengin, çeşitli veri kümeleri oluşturmasına yardımcı olur.
Görüntülere, segmentasyon maskelerine, sınırlayıcı kutulara ve anahtar noktalara kolayca artırmalar uygulamak ve veri kümenizin tüm öğelerinin birlikte dönüştürüldüğünden emin olmak için Albumentations'ı kullanabilirsiniz. PyTorch ve TensorFlow gibi popüler derin öğrenme çerçeveleriyle sorunsuz bir şekilde çalışır ve çok çeşitli projeler için erişilebilir hale getirir.
Ayrıca, Albumentations, ister küçük veri kümeleri ister büyük ölçekli bilgisayar görüşü görevleri ile uğraşıyor olun, artırma için harika bir seçenektir. Hızlı ve verimli işlemeyi sağlayarak veri hazırlığına harcanan süreyi kısaltır. Aynı zamanda, model performansını iyileştirmeye yardımcı olarak modellerinizi gerçek dünya uygulamalarında daha etkili hale getirir.
Albumentations'ın Temel Özellikleri
Albumentations, çok çeşitli bilgisayar görüşü uygulamaları için karmaşık görüntü artırmalarını basitleştiren birçok kullanışlı özellik sunar. İşte temel özelliklerden bazıları:
- Geniş Dönüşüm Yelpazesi: Albumentations, geometrik değişiklikler (örn. döndürme, çevirme), renk ayarlamaları (örn. parlaklık, kontrast) ve gürültü ekleme (örn. Gaussian gürültüsü) dahil olmak üzere 70'den fazla farklı dönüşüm sunar. Birden çok seçeneğe sahip olmak, oldukça çeşitli ve sağlam eğitim veri kümeleri oluşturulmasını sağlar.
-
Yüksek Performans Optimizasyonu: OpenCV ve NumPy üzerine kurulu olan Albumentations, işlemeyi hızlandırmak için birden çok veri noktasını aynı anda işleyen SIMD (Tek Talimat, Çoklu Veri) gibi gelişmiş optimizasyon tekniklerini kullanır. Büyük veri kümelerini hızla işler ve görüntü zenginleştirme için mevcut en hızlı seçeneklerden biridir.
-
Üç Artırma Düzeyi: Albumentations üç artırma düzeyini destekler: piksel düzeyi dönüşümleri, uzamsal düzey dönüşümleri ve karıştırma düzeyi dönüşümü. Piksel düzeyi dönüşümleri, maskeleri, sınırlayıcı kutuları veya anahtar noktaları değiştirmeden yalnızca girdi görüntülerini etkiler. Bu arada, hem görüntü hem de maskeler ve sınırlayıcı kutular gibi öğeleri, uzamsal düzey dönüşümleri kullanılarak dönüştürülür. Ayrıca, karıştırma düzeyi dönüşümleri, birden çok görüntüyü tek bir görüntüde birleştirdiği 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 kümeleriyle diğer kütüphanelerden sürekli olarak daha iyi performans gösterir.
Neden Vizyon Yapay Zeka Projeleriniz için Albumentations Kullanmalısınız?
Görüntü zenginleştirme açısından Albumentations, bilgisayar görüşü görevleri için güvenilir bir araç olarak öne çıkıyor. Vizyon Yapay Zeka projeleriniz için onu kullanmayı düşünmeniz için birkaç önemli 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 kümelerine kolayca uyum sağlayacak şekilde tasarlanmıştır, bu da veri hazırlığını daha basit ve daha verimli hale getirir.
-
Titiz Hata Testi: Artırma hattındaki hatalar, genellikle fark edilmeden giriş verilerini sessizce bozabilir, ancak sonuçta model performansını düşürür. Albumentations, geliştirmede hataları erken yakalamaya yardımcı olan kapsamlı bir test paketiyle bu sorunu ele alır.
-
Genişletilebilirlik: Albumentations, tek bir arayüz aracılığıyla yeni artırmalar eklemek ve bunları yerleşik dönüşümlerle birlikte bilgisayarlı görü ardışık düzenlerinde kullanmak için kolayca kullanılabilir.
YOLO11 Eğitimi için Verileri Artırmak için Albumentations Nasıl Kullanılır
Albumentations'ın ne olduğunu ve neler yapabileceğini ele aldığımıza göre, YOLO11 model eğitimi için verilerinizi artırmak için nasıl kullanabileceğinize 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
YOLO11 ile Albumentations kullanmak için, gerekli paketlerin yüklü olduğundan emin olarak başlayın. Albumentations yüklü değilse, eğitim sırasında artırmalar uygulanmaz. Kurulduktan sonra, modelinizi otomatik olarak geliştirmek için Albumentations entegre edilmiş, eğitim için artırılmış bir veri kümesi oluşturmaya hazır olacaksınız.
Kurulum
# Install the required packages
pip install albumentations ultralytics
Yükleme süreciyle ilgili ayrıntılı talimatlar ve en iyi uygulamalar için Ultralytics Kurulum kılavuzumuza bakın. YOLO11 için gerekli paketleri yüklerken herhangi bir zorlukla karşılaşırsanız, çözümler ve ipuçları için Sık Karşılaşılan Sorunlar kılavuzumuza başvurun.
Kullanım
Gerekli paketleri yükledikten sonra, Albumentations'ı YOLO11 ile kullanmaya başlamaya hazırsınız. YOLO11'i eğittiğinizde, Albumentations ile entegrasyonu sayesinde bir dizi artırma otomatik olarak uygulanır ve bu da modelinizin performansını artırmayı kolaylaştırır.
Kullanım
from ultralytics import YOLO
# Load a pre-trained model
model = YOLO("yolo11n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
Ardından, eğitim sırasında uygulanan belirli artırmalara daha yakından bakalım.
Bulanıklık
Albumentations'daki Bulanıklık (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 işlem OpenCV kullanılarak yapılır. cv2.blur
fonksiyonu, görüntudeki gürültüyü azaltmaya yardımcı olur, ancak aynı zamanda görüntü ayrıntılarını da biraz azaltır.
İşte bu entegrasyonda kullanılan parametreler ve değerler:
-
blur_limit: Bu, bulanıklık efektinin boyut aralığını kontrol eder. Varsayılan aralık (3, 7)'dir, yani bulanıklık için çekirdek boyutu 3 ile 7 piksel arasında değişebilir ve bulanıklığı ortada tutmak için yalnızca tek sayılara izin verilir.
-
p: Bulanıklığı uygulama olasılığı. Entegrasyonda p=0.01, bu nedenle bu bulanıklığın her görüntüye uygulanma olasılığı %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 genelleşmesine yardımcı olmak için biraz değişiklik sunar.
Medyan Bulanıklığı
Albumentations'daki MedianBlur dönüşümü, görüntüye bir 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öntemlerinden farklı olarak, MedianBlur, özellikle kenarlar etrafındaki keskinliği korurken tuz ve biber gürültüsünü gidermede 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ığındadır, yani bulanıklık için çekirdek boyutu rastgele olarak 3 ile 7 piksel arasında seçilir ve uygun hizalamayı sağlamak için yalnızca tek değerlere izin verilir.
-
p: Medyan bulanıklığını uygulama olasılığını ayarlar. Burada, p=0.01, bu nedenle dönüşümün her görüntüye uygulanma olasılığı %1'dir. Bu düşük olasılık, medyan bulanıklığının seyrek kullanılmasını sağlayarak modelin gürültüsü azaltılmış ve kenarları korunmuş görüntüler görerek genelleşmesine yardımcı olur.
Aşağıdaki resim, bir görüntüye uygulanan bu artırmanın bir örneğini göstermektedir.
Gri tonlama
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 çıktı kanalıyla eşleşecek şekilde çoğaltır. Gri tonlama parlaklığının nasıl hesaplanacağını ayarlamak için, basit ortalamadan kontrast ve parlaklığın gerçekçi algılanması için daha gelişmiş tekniklere kadar farklı yöntemler kullanılabilir.
İşte bu entegrasyonda kullanılan parametreler ve değerler:
-
num_output_channels: Çıktı görüntüsündeki kanal sayısını ayarlar. Bu değer 1'den büyükse, tek gri tonlamalı kanal, çok kanallı bir gri tonlamalı görüntü oluşturmak için çoğaltılır. Varsayılan olarak 3'e ayarlanmıştır ve üç özdeş kanala sahip bir gri tonlamalı 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, doğal görünümlü 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 detay koruma gibi çeşitli ihtiyaçlara göre gri tonlamalı görüntüler oluşturmanın alternatif yollarını sunar.
-
p: Gri tonlamalı dönüşümün ne sıklıkta uygulanacağını kontrol eder. p=0.01 ile, her görüntüyü gri tonlamalıya dönüştürme olasılığı %1'dir ve modelin daha iyi genelleşmesine 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 resim, uygulanan bu gri tonlamalı dönüşümün bir örneğini göstermektedir.
Kontrast Sınırlı Uyarlanabilir Histogram Eşitleme (CLAHE)
Albumentations'daki CLAHE dönüşümü, tüm görüntü boyunca değil, yerel bölgelerdeki (döşemeler) histogramı eşitleyerek görüntü kontrastını artıran bir teknik olan Kontrast Sınırlı Uyarlanabilir Histogram Eşitleme (CLAHE) uygular. CLAHE, özellikle başlangıçta düşük kontrasta sahip alanlarda, standart histogram eşitlemesinden kaynaklanabilecek aşırı güçlendirilmiş kontrastı önleyerek dengeli bir iyileştirme efekti üretir.
İşte bu entegrasyonda kullanılan parametreler ve değerler:
-
clip_limit: Kontrast geliştirme aralığını kontrol eder. Varsayılan (1, 4) aralığına ayarlandığında, her bir döşemede izin verilen maksimum kontrastı belirler. Daha yüksek değerler daha fazla kontrast için kullanılır, ancak gürültüyü de artırabilir.
-
tile_grid_size: Döşeme ızgarasının boyutunu, tipik olarak (satırlar, sütunlar) olarak tanımlar. Varsayılan değer (8, 8)'dir, yani görüntü 8x8'lik bir ızgaraya bölünür. Daha küçük döşeme boyutları daha lokalize ayarlamalar sağlarken, daha büyük olanlar küresel eşitlemeye daha yakın efektler oluşturur.
-
p: CLAHE uygulama olasılığı. Burada, p=0.01, geliştirme efektini yalnızca %1 oranında sunarak, eğitim görüntülerinde ara sıra değişiklik olması için kontrast ayarlamalarının seyrek uygulanmasını sağlar.
Aşağıdaki resim, uygulanan CLAHE dönüşümünün bir örneğini göstermektedir.
Albumentations Hakkında Daha Fazla Bilgi Edinin
Albumentations hakkında daha fazla bilgi edinmek isterseniz, daha ayrıntılı talimatlar ve örnekler için aşağıdaki kaynaklara göz atın:
-
Albumentations Dokümantasyonu: Resmi dokümantasyon, desteklenen dönüşümlerin ve gelişmiş kullanım tekniklerinin tamamını sunar.
-
Ultralytics Albumentations Kılavuzu: Bu entegrasyonu kolaylaştıran fonksiyonun ayrıntılarına daha yakından bakın.
-
Albumentations GitHub Deposu: Depo, artırmaları özelleştirmeye başlamanıza yardımcı olacak örnekler, kıyaslamalar ve tartışmalar içerir.
Temel Çıkarımlar
Bu kılavuzda, görüntü artırma için harika bir python kütüphanesi olan Albumentations'ın temel özelliklerini inceledik. Geniş dönüşüm yelpazesini, optimize edilmiş performansını ve bunu bir sonraki YOLO11 projenizde nasıl kullanabileceğinizi tartıştık.
Ayrıca, diğer Ultralytics YOLO11 entegrasyonları hakkında daha fazla bilgi edinmek isterseniz, entegrasyon kılavuzu sayfamızı ziyaret edin. Orada değerli kaynaklar ve bilgiler bulacaksınız.
SSS
Gelişmiş veri artırma için Albumentations'ı YOLO11 ile nasıl entegre edebilirim?
Albumentations, YOLO11 ile sorunsuz bir şekilde entegre olur ve paketi kurduysanız eğitim sırasında otomatik olarak uygulanır. Başlamak için:
# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO
# Load and train model with automatic augmentations
model = YOLO("yolo11n.pt")
model.train(data="coco8.yaml", epochs=100)
Entegrasyon, model performansını artırmak için dikkatlice ayarlanmış olasılıklarla bulanıklık, ortanca 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 faydaları nelerdir?
Albumentations çeşitli nedenlerle öne çıkıyor:
- Performans: Üstün hız için OpenCV ve NumPy üzerine SIMD optimizasyonu ile inşa edilmiştir
- Esneklik: Piksel düzeyi, uzamsal düzey ve karıştırma düzeyi 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 birleşik API
Hangi bilgisayar görüşü görevleri Albumentations artırmasından faydalanabilir?
Albumentations, aşağıdakiler dahil çeşitli bilgisayar görüşü görevlerini geliştirir:
- Nesne Tespiti: Modelin aydınlatma, ölçek ve yönlendirme değişikliklerine karşı dayanıklılığı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örme görevi için onu değerli kılar.