• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

Görüntü işlemede konvolüsyon ne işe yarar?

  • Konuyu Başlatan Konuyu Başlatan Garfield
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 0

Garfield

Yönetici
YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
488
Mesajlar
501
AI Seviyesi
Yeni
Konvolüsyon, görüntüdeki her pikselin çevresindeki komşu pikselleri bir çekirdek matrisiyle ağırlıklı olarak birleştirerek yeni bir görüntü üretir. Bu işlemle kenarları belirginleştirebilir, gürültüyü azaltabilir, görüntüyü bulanıklaştırabilir veya belirli yönlerdeki çizgileri ortaya çıkarabilirsiniz. Sonuç, seçtiğiniz çekirdeğe ve uygulama biçimine bağlıdır; konvolüsyon tek başına görüntünün ne içerdiğini anlamaz, yalnızca sayısal piksel değerlerini dönüştürür.

Konvolüsyon nasıl çalışır?​


Bir görüntü matrisi üzerinde küçük bir matris, yani çekirdek (kernel) veya filtre gezdirilir. Çekirdeğin görüntüyle kapladığı bölgedeki karşılıklı değerler çarpılır, bu çarpımlar toplanır ve elde edilen değer çıktı görüntüsündeki ilgili piksele yazılır. Çekirdek her konuma uygulandığında yeni bir görüntü oluşur.

Örneğin yatay kenarları belirginleştirmek için şu varsayımsal 3×3 çekirdek kullanılabilir:

Kod:
[[-1, -1, -1],
 [ 0,  0,  0],
 [ 1,  1,  1]]

Görüntünün üst ve alt bölgeleri arasında büyük parlaklık farkı varsa çarpımların toplamı yüksek çıkar. Böylece yatay yönde güçlü değişim bulunan yerler açık veya koyu piksellerle öne çıkar. Düz ve benzer renkli bölgelerde ise toplam genellikle sıfıra yakın olur.

Konvolüsyonda kenar davranışı da önemlidir. Çekirdeğin görüntü sınırına geldiğinde dışarıdaki pikseller mevcut değildir. Uygulamaya göre görüntü sıfırlarla doldurulabilir, kenardaki piksel tekrarlanabilir veya yalnızca çekirdeğin tamamen sığdığı bölgeler hesaplanabilir. Bu seçim, çıktı boyutunu ve görüntünün kenarlarındaki sonucu değiştirir.

Yaygın çekirdekler ve kullanım amaçları​


Aşağıdaki çekirdekler, konvolüsyonun farklı sonuçlar üretebildiğini gösterir. Değerlerin ölçeklenmesi ve çekirdeğin işaretleri, oluşan etkinin yönünü belirler.
Çekirdek türüTipik amaçÇıktıda görülen etki
Ortalama veya kutu filtresiYumuşatma ve basit gürültü azaltmaKeskin ayrıntılar azalır
Gauss filtresiDaha doğal bulanıklaştırmaGürültü yumuşar, geçişler daha dengeli olur
Sobel yatay/dikeyKenar ve yön bilgisi çıkarmaBelirli yöndeki parlaklık değişimleri öne çıkar
Keskinleştirme filtresiYerel kontrastı artırmaKenarlar daha belirgin görünür, gürültü de artabilir
Bu filtreler aynı görüntü üzerinde aynı sonucu vermez. Gürültü azaltma amacıyla kenar çıkarma çekirdeği kullanılırsa gürültü de kenar gibi güçlenebilir. Buna karşılık kenar tespitinden önce hafif bir yumuşatma uygulamak, küçük rastgele değişimlerin etkisini azaltabilir.

Küçük bir Python örneği​


Aşağıdaki örnek, tek kanallı küçük bir görüntü üzerinde yatay kenar çekirdeğinin nasıl uygulandığını gösterir. Örnek, görüntü dosyası okumaz; işlem mantığını doğrudan görünür kılmak için varsayımsal bir piksel matrisi kullanır.

Python:
image = [
    [0, 0, 0, 0, 0],
    [0, 0, 0, 0, 0],
    [255, 255, 255, 255, 255],
    [255, 255, 255, 255, 255],
    [255, 255, 255, 255, 255, 255]
]

kernel = [
    [-1, -1, -1],
    [ 0,  0,  0],
    [ 1,  1,  1]
]

result = []
for row in range(1, len(image) - 1):
    output_row = []
    for col in range(1, len(image[0]) - 1):
        value = 0
        for kr in range(3):
            for kc in range(3):
                value += image[row - 1 + kr][col - 1 + kc] * kernel[kr][kc]
        output_row.append(value)
    result.append(output_row)

print(result)

Bu matriste üst bölüm koyu, alt bölüm parlaktır. Çekirdek, bu geçişi yüksek değerlerle öne çıkarır; sonuç görüntüsünde yatay sınır belirginleşir. Gerçek bir uygulamada negatif değerler görüntü formatının izin verdiği aralığa dönüştürülür veya mutlak değerleri alınır. Aksi hâlde negatif sonuçlar doğrudan 8 bitlik piksel değerine yazılamaz.

Konvolüsyonun sınırları​


Konvolüsyon bir nesnenin ne olduğunu kendiliğinden belirlemez. Yalnızca yerel piksel ilişkilerini işler. Kenar filtresi bir insanı, aracı veya metni tanımaz; bu nesnelerin sınırına benzeyen parlaklık değişimlerini üretir. Nesne tanıma gibi daha yüksek düzeyli görevlerde konvolüsyon katmanları genellikle başka işlemlerle ve çoğu zaman öğrenilmiş çekirdeklerle birlikte kullanılır.

Ayrıca çekirdek boyutu büyüdükçe hesaplama maliyeti ve komşuluk alanı artar. Büyük bir bulanıklaştırma çekirdeği daha geniş bölgeyi etkilerken küçük ayrıntıları kaybettirebilir. Bu nedenle çekirdek seçerken hedefi belirleyin: gürültü azaltma için yumuşatma, sınır bulma için yönlü kenar filtresi, ayrıntıyı öne çıkarma için keskinleştirme kullanılır. Sonucu değerlendirirken yalnız görüntünün daha belirgin görünmesine değil, istenmeyen gürültü ve yapay kenarların oluşup oluşmadığına da bakın.
 

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Geri
Üst