Neural Rendering
Sinirsel işleme, fotoğraflardan öğrenilen görüntüler ve 3B sahneler oluşturmak için grafik işlem hattının bazı bölümlerini sinir ağlarıyla değiştirir. Yöntemler ve kod.
Sinirsel işleme, geleneksel bilgisayar grafikleri işlem hattının bazı bölümlerini değiştiren veya geliştiren ve kamera bakış açısı, aydınlatma, geometri ve görünüm gibi sahne özellikleri üzerinde kontrolü koruyan sinir ağları ile görüntü ve video üretimidir. Geleneksel işleme, ışık aktarımının fiziğini kullanarak elle oluşturulmuş 3B modellerden, malzemelerden ve ışık kaynaklarından bir görüntü hesaplar. Sinirsel işleme ise bu öğelerin bazılarını fotoğraf ve videolardan öğrenir veya son pikselleri doğrudan üretmeyi öğrenir. Bir alan olarak sinirsel işleme, çoğu zaman eğitim sırasında türevlenebilir işlemeyi ağa dahil ederek üretken makine öğrenmesini bilgisayar grafiklerinden gelen fiziksel bilgilerle birleştirir. Sinirsel işleme; gerçek mekânların fotoğraf gerçekliğinde 3B yakalamalarını, video oyunlarında yapay zekâ ile ölçek büyütmeyi ve kare üretimini, ayrıca robotik ve otonom otomobiller için simülasyonu mümkün kılar.
Sinirsel İşleme Nasıl Çalışır#
En etkili dal, sıradan fotoğraflardan 3B sahne öğrenir. Sinir ağı, öğrenilmiş özelliklerden oluşan bir ızgara veya 3B temel şekiller gibi bir sahne gösterimi, türevlenebilir bir işleyici tarafından eğitim fotoğrafının kamera konumundan bir görüntüye dönüştürülür. İşleyicinin her adımının türevi alınabildiğinden, işlenmiş görüntüyle gerçek fotoğraf arasındaki fark geri yayılım yoluyla sahnenin her parametresine kadar izlenebilir. Bu işlemin çok sayıda görünüm üzerinde tekrarlanması, sahneyi kameraların hiç yakalamadığı bakış açılarını işleyebilecek kadar iyi yeniden oluşturur:
Fotoğrafların kamera pozları genellikle COLMAP gibi Yapıdan Hareket yazılımlarıyla elde edilir. Bu yazılımlar, her fotoğrafın nerede çekildiğini belirlemek için örtüşen fotoğraflar arasındaki özellikleri eşleştirir.
Sinirsel Sahne Gösterimleri#
2020'de tanıtılan sinirsel ışıma alanları (NeRF), sahneyi 3B konumu ve bakış yönünü bir yoğunluk ve renge eşleyen çok katmanlı algılayıcının ağırlıklarında saklar. Bir pikseli işlemek için NeRF, kamera ışını boyunca noktalar örnekler ve hacim işleme yoluyla renklerini harmanlar: Her örnek, opaklığına ve önündeki örneklerden ne kadar ışığın geçtiğine göre katkıda bulunur. Bu PyTorch kodu, tek bir ışın boyunca gözlemlenen tek bir pikseli yeniden oluşturmak için küçük bir alanı eğitir:
import torch
from torch import nn
# A tiny neural field that maps a 3D point to a density and an RGB color
torch.manual_seed(0)
field = nn.Sequential(nn.Linear(3, 64), nn.ReLU(), nn.Linear(64, 4))
optimizer = torch.optim.Adam(field.parameters(), lr=0.01)
# 64 points along one camera ray, and the color a training photo shows for that pixel
depths = torch.linspace(2.0, 6.0, 64)
points = torch.stack([torch.zeros(64), torch.zeros(64), depths], dim=1)
observed = torch.tensor([0.9, 0.4, 0.1])
for step in range(200):
density, color = field(points).split([1, 3], dim=1)
# Volume rendering: each sample's opacity times the light that reaches it through the samples in front
alpha = 1 - torch.exp(-nn.functional.softplus(density.squeeze(1)) * (depths[1] - depths[0]))
transmittance = torch.cumprod(torch.cat([torch.ones(1), 1 - alpha[:-1]]), dim=0)
pixel = (transmittance * alpha) @ torch.sigmoid(color)
loss = ((pixel - observed) ** 2).sum()
optimizer.zero_grad()
loss.backward()
optimizer.step()
if step in (0, 199):
print(f"step {step}: rendered {pixel.detach().numpy().round(2)}, loss {loss.item():.4f}")step 0: rendered [0.71 0.37 0.56], loss 0.2496 ve step 199: rendered [0.9 0.4 0.1], loss 0.0000 ifadelerini yazdırır. Eğitilmemiş ağ rastgele bir renk işler; işleme denkleminden geriye doğru yayılan gradyanlar, işlenen piksel fotoğrafla eşleşene kadar ağın ağırlıklarını ayarlar. Gerçek bir NeRF, onlarca ila yüzlerce fotoğraftan milyonlarca ışın için aynı işlemi yapar.
Özgün NeRF, sahne başına bir NVIDIA V100 GPU üzerinde bir ila iki gün eğitim gerektiriyordu. İşlenen her görüntü için ağda 150 ila 200 milyon sorgu yapılıyor, her kare yaklaşık 30 saniyede işleniyordu. NVIDIA'nın Instant NGP yöntemi, ağın çoğunu öğrenilmiş özelliklerden oluşan çok çözünürlüklü bir karma tablosuyla değiştirdi; böylece eğitim saniyelere veya dakikalara, 1920×1080 çözünürlükte işleme ise onlarca milisaniyeye indi. Gauss sıçratma 2023'te bunu bir adım ileri götürerek sahneleri, işleme sırasında ağ çalıştırmadan gerçek zamanlı rasterleştirilen milyonlarca açık 3B Gauss ile temsil etti; aynı şekilde optimize edildiği için genellikle sinirsel işleme kapsamında değerlendirilir.
Görüntü Uzayında Sinirsel İşleme#
İkinci bir dal, geleneksel bir işleyiciyi korur ve çıktısını tamamlamak veya genişletmek için ağları kullanır. NVIDIA'nın DLSS teknolojisi oyunları düşük çözünürlükte işler, dönüştürücü modellerle çözünürlüklerini yükseltir ve GeForce RTX 50 Serisi GPU'larda oyunun işlediği her kare için beş kareye kadar üretir. Işın izlemeli görüntülerde, piksel başına az sayıda ışık örneğinden temiz görüntüler üretmek için öğrenilmiş gürültü gidericiler kullanılır. Diğer modeller sahne düzenlerinden görüntüler sentezler: NVIDIA'nın GauGAN modeli, gökyüzü, su ve ağaçları gösteren bir anlamsal haritayı fotoğraf gerçekliğinde bir manzaraya dönüştürür; sinirsel avatar sistemleri ise kişinin yüzünü yeni açılardan veya yeni aydınlatma koşullarında işler.
Sinirsel İşleme ve İlgili Kavramlar#
- Türevlenebilir işleme: Girdilerine göre çıktısının türevi alınabilen işleyicidir. Sinirsel işlemenin görüntülerden öğrenmesini sağlayan mekanizmadır; örneğin bir ağı kullanmadan bir ağı fotoğraflara uydurmak için de kullanılır.
- Tersine işleme: Düzenlenip yeniden işlenebilmeleri için geometriyi, malzemeleri ve aydınlatmayı çoğu zaman türevlenebilir işleme kullanarak görüntülerden elde etme.
- Yeni bakış açısı sentezi: Görüntüleri görülmemiş bakış açılarından üretme görevidir. NeRF ve Gauss sıçratma bu görevi yerine getirir; sinirsel işleme ise daha geniş bir teknikler kümesidir.
- Üretken yapay zekâ: Metinden görüntü ve video üretimi modelleri, genellikle seçilen bir kamera konumundan görüntülenebilecek açık bir sahne olmadan istemlerden içerik oluşturur.
Gerçek Dünya Uygulamaları#
- Film ve sanal yapım: Yakalanan mekânlar, görsel efektler ve ön görselleştirme için ışıma alanları veya sıçratmalar olarak yeniden oluşturulur ve yeni kamera yollarından işlenir.
- Dijital ikizler ve e-ticaret: Odaların, binaların ve ürünlerin telefonla çekilmiş görüntüleri, müşterilerin ve planlamacıların tarayıcıda veya AR başlığında inceleyebileceği 3B görünümlere dönüştürülür.
- Robotik ve otonom araçlar: Kaydedilen sürüşler yeniden oluşturulur ve farklı bakış açılarından tekrar işlenerek algı sistemlerini test etmek için sentetik veriler üretilir. Çekim sırasında hareket eden insanlar ve otomobiller yarı saydam izler bıraktığından, işlem hatları bunları eğitim fotoğraflarından maskeler; YOLO26 örnek segmentasyonu modelleri bu maskeleri her kare için otomatik olarak oluşturur. Waymo'nun Block-NeRF'i, ayrı ayrı eğitilmiş NeRF'lerden oluşan bir ızgarayı birleştirerek San Francisco'daki koca bir mahalleyi 2,8 milyon görüntüden yeniden oluşturdu.










