Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Convolution

Evrişim, bir özellik haritası üretmek için küçük bir ağırlık çekirdeğini girdi üzerinde kaydırır ve CNN'lerin temel işlemini oluşturur. Adım boyutunu, dolguyu ve çeşitlerini ele alır.

Evrişim, çekirdek veya filtre adı verilen küçük bir ağırlık ızgarasını girdi üzerinde kaydırıp her konumda ağırlıklı toplam hesaplama işlemidir. Bilgisayarlı görüde (CV) girdi, bir görüntü veya özellik haritaları yığınıdır. Her çekirdek, kendi örüntüsünün göründüğü yerlerde (dikey bir kenar, doku parçası ya da ağın daha derinlerinde bir tekerleğin veya yüzün parçası gibi) yüksek değerli bir çıktı haritası üretir. Elle tasarlanmış çekirdekler, bulanıklaştırma, keskinleştirme ve kenar tespiti için görüntü işlemede uzun süredir kullanılır. Bir evrişimli sinir ağında (CNN) çekirdek değerleri, eğitim sırasında öğrenilen model ağırlıklarıdır; böylece ağ kendi özellik algılayıcılarını keşfeder.

Evrişim Nasıl Çalışır?#

Her konumda çekirdek, girdinin bir parçasının üzerine yerleştirilir; çekirdek ağırlıklarının her biri altındaki girdi değeriyle çarpılır ve çarpımlar bir bias değeriyle birlikte toplanarak tek bir çıktı değeri oluşturur. Çekirdeğin tüm yükseklik ve genişlik boyunca kaydırılması iki boyutlu bir çıktı haritası üretir. Görüntünün kırmızı, yeşil ve mavi kanalları gibi gerçek girdiler birden çok kanala sahiptir; bu nedenle her çekirdek tüm girdi kanallarını kapsar: 64 kanallı bir girdi üzerinde 3×3 çekirdek, 3 × 3 × 64 = 576 ağırlık içerir ve yine de tek bir çıktı kanalı üretir. Bir evrişim katmanı bu tür birçok çekirdek uygular; çekirdek sayısı çıktı kanallarının sayısını belirler. Dolayısıyla 64 kanaldan 128 kanala geçen ve 3×3 çekirdek kullanan bir katmanda 3 × 3 × 64 × 128 = 73,728 ağırlık bulunur.

Aynı çekirdek her konumda yeniden kullanılır; bu nedenle evrişim katmanları tam bağlantılı katmanlardan çok daha az parametre gerektirir ve görüntünün bir köşesinde öğrenilen örüntü başka her yerde tanınır. Girdinin kaydırılması, çıktıyı da aynı miktarda kaydırır; bu özellik öteleme eşdeğişmezliği olarak adlandırılır. Her çıktı değeri girdinin yalnızca küçük bir komşuluğuna bağlıdır ve katmanları üst üste yığmak, derin bir çıktı değerinin özetlediği alıcı alanı birkaç pikselden görüntünün çoğuna kadar genişletir.

Derin öğrenme kütüphaneleri gerçekte çapraz korelasyon hesaplar: matematiksel evrişim, çekirdeği kaydırmadan önce ters çevirir; PyTorch'taki Conv2d ise bunu yapmaz. Çekirdek öğrenildiğinden ağ, ters çevrilmiş ağırlıkları öğrenir ve uygulamada bu iki işlem birbirinin yerine kullanılabilir. cuDNN gibi GPU kütüphaneleri genellikle evrişimi büyük bir matris çarpımı olarak yeniden ifade eder veya aynı sonucu çekirdeği doğrudan kaydırmaktan daha hızlı hesaplayan Winograd ya da FFT tabanlı algoritmalar kullanır.

Adım, Dolgu, Seyreltme ve Gruplar#

Dört hiperparametre, evrişimin çıktısının şeklini ve hesaplama maliyetini belirler:

  • Adım: Çekirdek konumları arasındaki mesafe. 2 adım, her iki konumdan birini atlar ve çıktının yüksekliğiyle genişliğini yarıya indirir; birçok modern CNN bu şekilde alt örnekleme yapar.
  • Dolgu: Girdi sınırlarının çevresine eklenen, genellikle sıfırlardan oluşan ek değerler. 1 dolgusu, 3×3 evrişimin 1 adımda çıktısını girdisiyle aynı boyutta tutar.
  • Seyreltme: Çekirdek elemanları arasına boşluk ekler; böylece 2 seyreltmeli 3×3 çekirdek, aynı dokuz ağırlıkla 5×5 alanı kapsar ve ek maliyet olmadan alıcı alanı genişletir.
  • Gruplar: Kanalları bağımsız gruplara ayırır. Kanal başına bir grup olduğunda derinlikli evrişim her kanalı ayrı ayrı filtreler; ardından gelen 1×1 noktasal evrişim kanalları karıştırır. Derinlik ayrılabilir evrişim adı verilen bu ikiliyi, mobil donanımlarda kullanılmak üzere MobileNets yaygınlaştırdı.

n boyutlu girdi, k çekirdek boyutu, p dolgu, s adım ve d seyreltme için çıktı boyutu ⌊(n + 2p − d(k − 1) − 1) / s⌋ + 1 olur. Aşağıdaki kod parçası, 64 kanallı ve 80×80 boyutundaki bir özellik haritasını 128 kanala dönüştüren dört katman uygular:

import torch
from torch import nn

x = torch.randn(1, 64, 80, 80)  # a 64-channel, 80x80 feature map

# Four ways to map 64 input channels to 128 output channels
layers = {
    "standard 3x3": nn.Conv2d(64, 128, kernel_size=3, padding=1, bias=False),
    "stride 2": nn.Conv2d(64, 128, kernel_size=3, stride=2, padding=1, bias=False),
    "dilation 2": nn.Conv2d(64, 128, kernel_size=3, padding=2, dilation=2, bias=False),
    "depthwise separable": nn.Sequential(
        nn.Conv2d(64, 64, kernel_size=3, padding=1, groups=64, bias=False),  # one 3x3 filter per channel
        nn.Conv2d(64, 128, kernel_size=1, bias=False),  # 1x1 convolution mixes channels
    ),
}
for name, layer in layers.items():
    params = sum(p.numel() for p in layer.parameters())
    print(f"{name}: output {tuple(layer(x).shape)}, {params:,} weights")

Standart katman, 73,728 ağırlıkla (1, 128, 80, 80) çıktısı üretir. 2 adım, aynı ağırlıklarla çıktıyı yarıya indirerek (1, 128, 40, 40) üretir; 2 seyreltme ise 80×80 boyutunu ve 73,728 ağırlığı korurken her çıktının 5×5 alanı görmesini sağlar. Derinlik ayrılabilir ikili, yalnızca 8,768 ağırlıkla aynı (1, 128, 80, 80) çıktısını üretir; bu yaklaşık 8,4 kat daha az ağırlık demektir. YOLO26 her iki yöntemi de kullanır: beş adet 2 adımlı 3×3 evrişim, 640×640 görüntüyü en derin omurga özellik haritasının 20×20 ızgarasına küçültür; algılama başlığının sınıflandırma dalı ise hesaplamayı azaltmak için derinlikli 3×3 ve noktasal 1×1 evrişimleri bir arada kullanır.

Diğer Boyutlarda Evrişim#

  • 1B evrişim: Ses dalga biçimleri, sensör sinyalleri ve zaman serileri için tek bir eksen boyunca kaydırılır.
  • 3B evrişim: Tıbbi görüntü analizinde CT ve MRI gibi hacimsel taramalar ve video klipler için derinlik veya zaman ekseni ekler.
  • Transpoze evrişim: Her girdi değerini daha büyük bir çıktıya yayarak, U-Net gibi bölütleme modellerindeki özellik haritalarını üst örnekler. Kendi öğrenilmiş ağırlıklarını kullanarak, adımlı evrişimin küçülttüğü uzamsal boyutu geri kazandırır.
  • Tam bağlantılı katman: Her girdiyi, kendine ait bir ağırlıkla her çıktıya bağlar. Evrişim, konumlar arasında paylaşılan ağırlıklarla yerel komşuluklara kısıtlanmış bir tam bağlantılı katmandır.
  • Havuzlama: Evrişim gibi bir pencereyi kaydırır, ancak öğrenilmiş ağırlıklar olmadan maksimumu alma gibi sabit bir kural uygular.
  • Öz dikkat: Her konum çifti arasındaki, veriye bağlı ağırlıkları hesaplar; böylece görüntünün uzaktaki kısımları tek bir katmanda ilişkilendirir. Evrişim her yerde aynı sabit çekirdeği uygular ve yalnızca yerel bir pencereyi görür; bu da maliyetinin piksel sayısıyla doğrusal olarak artmasını sağlar.
  • Görüntü filtreleme: Gauss bulanıklaştırma ve Sobel kenar algılayıcısı gibi klasik filtreler, sabit ve elle tasarlanmış çekirdekler kullanan evrişimlerdir. OpenCV'nin filter2D işlemi de derin öğrenme kütüphaneleri gibi korelasyon hesaplar; çekirdeğin ters çevrilmesi bunu gerçek evrişime dönüştürür.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla