avatar
Lise_Tayfa
10 puan • 578 soru • 544 cevap
✔️ Cevaplandı • Doğrulandı

Görüntü İşlemede Veri Artırma Teknikleri ve Kodlama Örnekleri

Görüntü işlemede veri artırma teknikleri nelerdir? Bu teknikleri kullanırken nelere dikkat etmeliyim ve basit kod örnekleri ile nasıl uygulayabilirim?
WhatsApp'ta Paylaş
1 CEVAPLARI GÖR
✨ Konuları Gir, Yapay Zeka Saniyeler İçinde Sınavını Üretsin!
✔️ Doğrulandı
0 kişi beğendi.
avatar
yusuf_kaan
1232 puan • 611 soru • 611 cevap

🖼️ Görüntü İşlemede Veri Artırma Teknikleri

Veri artırma (Data Augmentation), özellikle derin öğrenme modelleri için yetersiz veri setleriyle başa çıkmak amacıyla kullanılan güçlü bir tekniktir. Temel fikir, mevcut veri setinden yeni ve çeşitli örnekler türeterek modelin genelleme yeteneğini artırmaktır. Bu sayede, modelin ezberleme (overfitting) riski azalır ve daha iyi performans elde edilir.
  • ⚙️ Temel Dönüşümler: Görüntüleri döndürme, ölçekleme, kırpma, yatay veya dikey olarak çevirme gibi basit dönüşümlerdir. Bu işlemler, görüntüdeki nesnelerin farklı pozisyonlarda ve boyutlarda görünmesini sağlayarak modelin daha esnek öğrenmesine yardımcı olur.
  • 🌈 Renk Uzayı Manipülasyonları: Görüntülerin parlaklığını, kontrastını ve doygunluğunu değiştirerek farklı aydınlatma koşulları simüle edilebilir. Bu, modelin farklı ışıklandırma koşullarına daha iyi adapte olmasını sağlar.
  • 🔀 Karıştırma ve Kesme Teknikleri: İki veya daha fazla görüntüyü karıştırarak veya keserek yeni örnekler oluşturulabilir. Bu teknikler, modelin farklı nesnelerin kombinasyonlarını öğrenmesine yardımcı olur.
  • 👾 Gürültü Ekleme: Görüntülere rastgele gürültü ekleyerek modelin daha sağlam (robust) hale gelmesi sağlanabilir. Bu, modelin gerçek dünya verilerindeki gürültüye karşı daha dirençli olmasını sağlar.

🐍 Python ile Veri Artırma: Kod Örnekleri

Aşağıda, Python ve popüler görüntü işleme kütüphaneleri (örneğin, OpenCV ve Albumentations) kullanılarak veri artırma tekniklerinin nasıl uygulanabileceğine dair örnekler bulunmaktadır.

🔄 Döndürme (Rotation)

python import cv2 import numpy as np def rotate_image(image, angle): """Görüntüyü belirli bir açıyla döndürür.""" (h, w) = image.shape[:2] center = (w // 2, h // 2) M = cv2.getRotationMatrix2D(center, angle, 1.0) rotated = cv2.warpAffine(image, M, (w, h)) return rotated # Örnek kullanım image = cv2.imread("ornek_resim.jpg") rotated_image = rotate_image(image, 45) # 45 derece döndür cv2.imwrite("rotated_image.jpg", rotated_image)

📐 Ölçekleme (Scaling)

python import cv2 def scale_image(image, scale_x, scale_y): """Görüntüyü belirli oranlarda ölçekler.""" resized = cv2.resize(image, None, fx=scale_x, fy=scale_y, interpolation = cv2.INTER_LINEAR) return resized # Örnek kullanım image = cv2.imread("ornek_resim.jpg") scaled_image = scale_image(image, 1.2, 0.8) # X ekseninde %20 büyüt, Y ekseninde %20 küçült cv2.imwrite("scaled_image.jpg", scaled_image)

✂️ Kırpma (Cropping)

python import cv2 def crop_image(image, x1, y1, x2, y2): """Görüntüyü belirli koordinatlar arasında kırpar.""" cropped_image = image[y1:y2, x1:x2] return cropped_image # Örnek kullanım image = cv2.imread("ornek_resim.jpg") cropped_image = crop_image(image, 50, 50, 200, 200) # (50,50) noktasından (200,200) noktasına kadar kırp cv2.imwrite("cropped_image.jpg", cropped_image)

翻轉 Yatay Çevirme (Horizontal Flip)

python import cv2 def flip_image_horizontally(image): """Görüntüyü yatay olarak çevirir.""" flipped_image = cv2.flip(image, 1) # 1 yatay çevirme için kullanılır return flipped_image # Örnek kullanım image = cv2.imread("ornek_resim.jpg") flipped_image = flip_image_horizontally(image) cv2.imwrite("flipped_image.jpg", flipped_image)

🌟 Albumentations ile Daha Gelişmiş Veri Artırma

Albumentations, görüntü işleme için hızlı ve esnek bir Python kütüphanesidir. Birçok farklı veri artırma tekniğini destekler ve kullanımı kolay bir arayüze sahiptir. python import albumentations as A import cv2 # Artırma dönüşümlerini tanımla transform = A.Compose([ A.RandomCrop(width=256, height=256), A.HorizontalFlip(p=0.5), A.RandomBrightnessContrast(p=0.2), ]) # Görüntüyü oku image = cv2.imread("ornek_resim.jpg") image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # Albumentations RGB formatını bekler # Artırma uygula transformed = transform(image=image) transformed_image = transformed["image"] # Görüntüyü kaydet cv2.imwrite("albumentations_transformed_image.jpg", cv2.cvtColor(transformed_image, cv2.COLOR_RGB2BGR)) Bu örnekte, rastgele kırpma, yatay çevirme ve rastgele parlaklık/kontrast değişiklikleri uygulanmaktadır. Albumentations ile daha karmaşık dönüşümler de kolayca tanımlanabilir. Veri artırma, görüntü işleme projelerinde modelin performansını artırmak için vazgeçilmez bir tekniktir. Farklı teknikleri deneyerek ve veri setinize uygun olanları seçerek, daha başarılı sonuçlar elde edebilirsiniz.

Yorumlar