Differentiable Rendering
Türevlenebilir işleme, sahnenin şekli, malzemeleri ve kamerası değiştiğinde işlenmiş her pikselin nasıl değiştiğini hesaplar; böylece 3B sahneler fotoğraflara göre ayarlanabilir.
Farklılaştırılabilir işleme, 3B sahnenin geometrisini, malzemelerini, aydınlatmasını ve kamerasını tanımlayan bilgileri bir görüntüye dönüştüren işlemenin, her çıktı pikselinin bu sahne parametrelerine göre türevi hesaplanabilecek biçimde uygulanmasıdır. İşlenmiş görüntüyü bir fotoğrafla karşılaştıran bir kayıp işlevi daha sonra gradyan inişi ile en aza indirilebilir; geri yayılım, işleyiciden geçerek 3B sahneye ulaşır. Bu özellik, görüntülerinden bir sahneyi elde etme görevi olan ters işlemenin ve sahne modellerini işleyerek eğiten nöral ışıma alanları (NeRF) ile Gauss sıçratma gibi nöral işleme yöntemlerinin motoru olmasını sağlar; bu görev bilgisayarlı görü alanına girer.
İşleme Neden Özel İşlem Gerektirir?#
Standart bir rasterleştirici, önemli olduğu yerlerde farklılaştırılabilir değildir. Bir pikselin üçgen tarafından kaplanıp kaplanmaması, köşe konumlarının basamak fonksiyonudur; dolayısıyla köşeyi biraz oynatmak, bir kenar piksel merkezini geçene kadar hiçbir pikseli değiştirmez ve geometriye göre gradyan hemen her yerde sıfırdır. Örtülme, bir yüzeyin diğerini gizlediği yerlerde ek süreksizlikler oluşturur. Farklılaştırılabilir işleyiciler bu kenarları çeşitli biçimlerde ele alır:
- Yaklaşık gradyanlar: OpenDR (2014) ve Neural 3D Mesh Renderer (2018), ileri geçişte standart bir rasterleştirici kullanır ve geri geçişte gradyanları yaklaşık olarak hesaplar.
- Yumuşak rasterleştirme: SoftRas (2019), her pikselin kesin kaplanma değerini üçgen kenarına olan mesafeyle düzgünce azalan bir olasılıkla değiştirir ve üst üste binen yüzleri harmanlar; böylece kenara yakın her piksel geometriye gradyan aktarır.
- Fizik tabanlı farklılaştırılabilir işleme: redner (2018) ve Mitsuba 3 (2022) gibi ışın izleyiciler silüet kenarlarını örnekler veya işleme integralini yeniden parametreleştirerek gölgeler, yansımalar ve dolaylı ışık için gradyanlar sağlar.
- Hacim ve sıçratma işleme: NeRF'in her ışın boyunca yoğunlukları alfa birleştirmesi ve Gauss sıçratmanın rasterleştirilmiş 3B Gauss'ları, tasarımları gereği parametrelerinin düzgün fonksiyonlarıdır.
Tek bir disk için yumuşak rasterleştirici, PyTorch ile fikri gösterir: kaplanma, diskin kenarına olan işaretli mesafenin sigmoid fonksiyonudur; böylece sınıra yakın her pikselden merkeze ve yarıçapa gradyan ulaşır.
import torch
# Pixel coordinates of a 64x64 image
ys, xs = torch.meshgrid(torch.arange(64.0), torch.arange(64.0), indexing="ij")
def render(center, radius):
"""Soft-rasterize a disk: pixel coverage is a sigmoid of the signed distance to its edge."""
distance = torch.sqrt((xs - center[0]) ** 2 + (ys - center[1]) ** 2 + 1e-6)
return torch.sigmoid(radius - distance)
# Target image: a disk at (40, 24) with radius 12
target = render(torch.tensor([40.0, 24.0]), torch.tensor(12.0))
# Recover the scene from a wrong guess by backpropagating the pixel loss
center = torch.tensor([20.0, 40.0], requires_grad=True)
radius = torch.tensor(6.0, requires_grad=True)
optimizer = torch.optim.Adam([center, radius], lr=0.5)
for _ in range(300):
loss = ((render(center, radius) - target) ** 2).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"center {center.detach().round(decimals=1).tolist()}, radius {radius.item():.1f}")center [40.0, 24.0], radius 12.0 çıktısını verir: yarıçapın yarısı kadar ve yaklaşık 26 piksel uzaktan başlarken Adam optimize edicisi, diski yalnızca piksel farklarından geri elde eder. Kesin kaplanma kullanılsaydı (distance < radius).float() kaybı iki parametreye de gradyan aktaramazdı.
Gerçek Dünya Uygulamaları#
Kodda kullanılan gibi silüet kayıpları, işlenmiş bir nesne maskesini gözlemlenen maskeyle karşılaştırır; açıklama içermeyen fotoğraflarda ise YOLO26 gibi bir örnek bölümleme modeli (yolo26n-seg.pt), görüntüdeki her nesne için maske sağlar.
- 3B yeniden yapılandırma: NeRF (2020) ve 3B Gauss sıçratma (2023), bilinen kamera pozlarına sahip onlarca fotoğrafa göre bir sahne uyarlar; Gauss sıçratma daha sonra yeni görünümleri gerçek zamanlı olarak, 1080p'de saniyede 30 kare veya daha yüksek hızda işler.
- İnsan vücudu uydurma: Vücut modeli yöntemleri, SMPL gibi parametrik bir ağı görüntüye uydururken işlenmiş silüeti ve yansıtılan eklemleri kişinin maskesi ve anahtar noktalarıyla eşleştirir.
- Metinden 3B üretim: DreamFusion (2022), rastgele bakış noktalarından alınan görüntüleri bir metinden görüntüye difüzyon modelinde yüksek puan alacak şekilde bir NeRF'i optimize eder ve hiçbir 3B eğitim verisi olmadan 3B nesneler oluşturur.










