🌱 Giriş

🤡 Resim Artırma Tekniği Kavramları
  • 💥 Aşırı öğrenmeden kaçınmak için kullanılan bir teknik olan Resim Artırma Temelleri

  • ⭐ Küçük bir veri setine sahip isek, veri setini eğitim için tüm senaryoları açacak ve resim artırmanın çeşitli teknikleriyle çalıştırabilecek temel görüntüleri değiştirmeden manipüle edebiliyoruz.

Not: Resim artırma Hem eğitim hem de test seti için gereklidir 😅

🚩 Resim Artırmanın Temel Kavramları

👩‍🏫 Konsept çok basittir:

Verilerimiz sınırlıysa, gelecekteki olası öngörüleri karşılayacak verilere sahip olma ihtimalimiz de sınırlıdır ve mantıksal olarak ne kadar az veriye sahipsek, modelimizin henüz görmediği veriler için doğru tahminler alma şansımız o kadar azdır.

🙄 Eğer kedileri tespit etmek için bir model eğitiyorsak ve modelimiz bir kedinin uzanırken nasıl göründüğünü hiç görmemişse, gelecekte de tanımayabilir.

  • Büyütme, döndürme gibi dönüşümler kullanarak eğitim yaparken, görüntülerimizi anında değiştirir.

  • Bu nedenle, 'ayakta' olan bir kediyi 90 derece döndürerek uzanmış bir kedinin görüntüsünü 'taklit edebilir'.

  • Bu şekilde, elimizdeki ver seti ucuz ✨ bir şekilde büyütmüş oluyoruz.

🔎 Not: Orijinal veriyi olduğu gibi değiştirmemek adına Image Augmentation'ı bellekte yapmak yerine çalışma zamanında runtime'da yapılması tercih edilir 🤔

🤸‍♀️ Image Augmentation Teknikleri

✅ Yansıtma (Mirroring)

Görüntüyü eksene göre yansıtmak

🚀 Örnek

✂ Rastgele Kesme (Random Cropping)

Bir görüntüyü alıp rastgele kesimler almak

🚀 Örnek

🎨 Renk Kaydırma (Color Shifting)

Renk kanallarına değerler ekleme ve çıkarma

🚀 Örnek

📐 (Açı Dönüştürme) Shearing Transformation

Açı dönüşümü görüntünün açısını kaydırır

🚀 Example

👩‍💻 Kod Örneği

Aşağıdaki kod parçası Image Augmentation yapmak için kullanılır

from tensorflow.keras.preprocessing.image import ImageDataGenerator
train_datagenerator = ImageDataGenerator(
rescale = 1./255,
rotation_range = 40,
width_shift_range = 0.2,
height_shift_range = 0.2,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True,
fill_mode = 'nearest')

Parametre

Açıklama

rescale

Görüntüleri yeniden ölçeklendirme, NN'ler normalleştirilmiş verilerle daha iyi çalışır, bu yüzden görüntüleri yeniden ölçeklendirirsek değerler 0,1 arasında olur

rotation_range

Derece cinsinden bir değer (0-180), içinde resimlerin rasgele döndürülmesi için bir aralık

Height and width shifting

Görüntüleri dikey veya yatay olarak rasgele kaydırır

shear_range

Rastgele açı dönüşümü uygular

zoom_range

Fotoğrafları rasgele yakınlaştırır

horizontal_flip

Rgörüntülerin yarısını yatay olarak rasgele çevirir

fill_mode

Yeni oluşturulan pikselleri doldurmak için kullanılan, bir döndürmeden veya genişlik / yükseklik kaymasından sonra görünebilecek bir stratejidir

Full kod örneği burada 🐾 👈

🌞 Yazının Aslı

🧐 Referanslar