Neural Radiance Fields (NeRF)
Sinirsel ışınım alanları (NeRF), poz bilgisi içeren fotoğraflarla eğitilmiş bir sinir ağında 3B sahneyi saklar ve kamera ışınları boyunca hacimsel işleme yaparak yeni görünümler oluşturur.
Sinirsel ışınım alanı (NeRF), bir 3B sahneyi, bilinen kamera konumlarıyla çekilmiş sıradan fotoğraflardan öğrenilen ve herhangi bir 3B konumu ve bakış yönünü yoğunluk ile renge eşleyen bir sinir ağı olarak temsil eder. Bir görünümü işlemek için her pikselden bir ışın geçirilir, ağdan ışın üzerindeki noktalarda sorgu alınır ve sonuçlar hacim işleme yöntemiyle harmanlanır. Böylece eğitilmiş bir NeRF, hiçbir kameranın yakalamadığı bakış açılarından sahneyi gösterir. Ben Mildenhall, Pratul Srinivasan, Matthew Tancik ve UC Berkeley, Google Research ve UC San Diego'daki çalışma arkadaşları, yöntemi ECCV 2020'de NeRF: Sahneleri Görünüm Sentezi için Sinirsel Işınım Alanları Olarak Temsil Etme başlıklı çalışmayla tanıttı. NeRF'ler; yansıma, ince yapılar ve yarı saydam malzemeleri, bunları iyi işleyemeyen ağ tabanlı fotogrametriden daha iyi yeniden üretir ve Gaussian splatting ile sonuçlanan sinirsel işleme araştırmaları dalgasını başlattı.
Neural Radiance Fields Nasıl Çalışır?#
Orijinal NeRF, evrişim içermeyen çok katmanlı bir algılayıcıdır. Kodlanmış bir 3B konumu, 256 kanallı 8 tam bağlantılı katmandan geçirir ve hacim yoğunluğu ile 256 değerli bir özellik vektörü üretir. Özellik vektörü, kodlanmış bakış yönüyle birleştirilir ve RGB renk çıktısı veren 128 kanallı bir katmandan daha geçirilir. Yoğunluk yalnızca konuma bağlıdır; bu, geometrinin görünümler arasında tutarlı kalmasını sağlar. Renk ise yöne de bağlıdır ve kamera hareket ettikçe yer değiştiren parlak yansımaları yakalar:
Bir pikseli işlemek için NeRF, önce kaba bir ağla kamera ışını boyunca 64 nokta örnekler; ardından kaba geçişin yoğunluk bulduğu yerlerde 128 nokta daha örnekler ve tüm noktaları ince bir ağda değerlendirir. Her örnek, opaklığına ve önündeki örneklerden geçen ışık oranı olan geçirgenliğe göre renge katkıda bulunur; ağırlıklı toplam piksel rengini verir. Eğitim, 4.096 ışından oluşan gruplarda işlenen ve fotoğraflanan piksel renkleri arasındaki karesel farkı en aza indirir. Kamera pozları genellikle COLMAP gibi Structure from Motion yazılımlarından elde edilir. Tek bir sahnenin eğitimi, NVIDIA V100 GPU üzerinde 100.000–300.000 iterasyon, yani yaklaşık bir ila iki gün sürdü.
Ham koordinatlarla beslenen yalın bir MLP, düzgün işlevler öğrenir ve ince ayrıntıları bulanıklaştırır. Bu nedenle NeRF, önce her koordinatı, konum için 10 ve yön için 4 olmak üzere, frekansları iki katına çıkan sinüs ve kosinüslere dönüştürür. Aşağıdaki PyTorch kodu, aynı ağı konumsal kodlama uygulanmış ve uygulanmamış hâllerde çizgili bir 1B sinyale uydurur:
import torch
from torch import nn
torch.manual_seed(0)
# Color along one line through a scene, with fine detail such as a striped texture
x = torch.linspace(-1, 1, 512).unsqueeze(1)
target = torch.sin(12 * torch.pi * x) * torch.cos(3 * torch.pi * x)
# NeRF's positional encoding: sines and cosines of the coordinate at 10 doubling frequencies
freqs = 2.0 ** torch.arange(10) * torch.pi
encoded = torch.cat([torch.sin(x * freqs), torch.cos(x * freqs)], dim=1)
for name, inputs in (("raw coordinate", x), ("positional encoding", encoded)):
mlp = nn.Sequential(nn.Linear(inputs.shape[1], 256), nn.ReLU(), nn.Linear(256, 256), nn.ReLU(), nn.Linear(256, 1))
optimizer = torch.optim.Adam(mlp.parameters(), lr=1e-3)
for step in range(1000):
loss = ((mlp(inputs) - target) ** 2).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"{name}: mean squared error {loss.item():.4f}")raw coordinate: mean squared error 0.0870 ve positional encoding: mean squared error 0.0000 çıktılarını verir. Sinyalin ortalama gücü 0,25'tir. Bu nedenle ham koordinatlarla çalışan ağ, ince çizgiler de dâhil sinyalin yaklaşık üçte birini kaçırırken kodlanmış ağ sinyali yeniden üretir.
Daha Hızlı ve Daha Sağlam NeRF'ler#
- Kenar yumuşatma ve sınırsız sahneler: Mip-NeRF, örtüşme kusurlarını gidermek için sonsuz incelikteki ışınlar yerine koniler işler. Mip-NeRF 360 ise bu yaklaşımı sınırlandırılmamış 360° çekimlere genişletir.
- Hız: NVIDIA'nın Instant NGP yöntemi, ağın büyük bölümünü öğrenilmiş özelliklerden oluşan çok çözünürlüklü bir karma tablosuyla değiştirerek eğitimi günlerden saniyelere veya dakikalara, 1920×1080 çözünürlükte işlemeyi ise onlarca milisaniyeye indirir.
- Doğal ortamda çekilmiş fotoğraflar: NeRF in the Wild, her fotoğraf için görünüm gömmeleri ve ayrı bir geçici bileşen ekler. Böylece değişken ışıklandırmaya ve kadrajdan geçen turistlere sahip internet fotoğraf koleksiyonları da temiz biçimde yeniden oluşturulabilir.
- Metinden 3B'ye: DreamFusion, her açıdan alınan işleme sonuçları 2B metinden görüntü üreten bir difüzyon modeline makul görünene kadar bir NeRF'i optimize eder ve 3B eğitim verisi olmadan istemlerden 3B nesneler oluşturur.
NeRF ve İlgili Kavramlar#
- Gaussian splatting: Sahneyi milyonlarca 3B Gauss dağılımı olarak açıkça depolar ve bunları rasterleştirir. Böylece piksel başına ağ değerlendirmesi olmadan gerçek zamanlı işleme sağlar. 2023'te Mip-NeRF 360 kalitesine ulaştı ve daha fazla bellek kullanma pahasına birçok çekim aracında NeRF'in yerini aldı.
- Fotogrametri: Fotoğraflar arasındaki özellikleri eşleştirerek açık bir ağ oluşturur. Ağlar kompakt olup standart 3B yazılımlarda düzenlenebilir; ancak parlak, saydam ve çok ince yüzeylerde zorlanırlar.
- Derinlik tahmini: NeRF, her ışının durduğu beklenen mesafe olan derinlik haritasını yan ürün olarak verir; ancak bunun için tek bir sahnenin pozları belirlenmiş çok sayıda fotoğrafıyla optimizasyon yapılması gerekir. Tek gözlü derinlik modelleri ise tek bir görüntüden tek bir ileri geçişte derinlik tahmin eder.
- Örtük sinirsel temsiller: NeRF; görüntüleri, şekilleri veya sesi sürekli işlevler olarak depolayan ağlarla birlikte, ışınım ve yoğunluk için özelleşmiş örtük bir sinirsel temsildir.
Çekim Gereksinimleri#
NeRF; sabit ışıklandırma altında, doğru kamera pozlarıyla ve birbiriyle örtüşen çok sayıda bakış açısından fotoğraflanmış durağan bir sahne varsayar. Orijinal makalede her sentetik nesne 100 işlenmiş görünümle, öne bakan her gerçek sahne ise 20–62 fotoğrafla eğitildi. Kadrajdan geçen biri veya bir araba gibi çekim sırasında hareket eden herhangi bir şey bazı fotoğraflarda görünürken bazılarında görünmez; optimizasyon da bunu yarı saydam "uçuşan nesneler" olarak açıklar. Ultralytics YOLO26 örnek segmentasyonu modelleri, her fotoğrafta insanları ve araçları maskeler. Böylece bu piksellerden geçen ışınlar eğitim dışında bırakılabilir.
Gerçek Dünya Uygulamaları#
- Film ve sanal prodüksiyon: Çekilen mekânlar yeniden oluşturulur ve fotogerçekçi arka planlar ile set referansları olarak yeni kamera yollarından işlenir.
- Robotik ve sürüş simülasyonu: Kaydedilen ortamlar yeniden oluşturulur; böylece otonom araç ve robotik ekipleri, ilk sürüşte geçilmeyen konumlardan sensör görüntüleri oluşturabilir.
- Ürün görselleştirme: Bir ürünün birkaç düzine fotoğrafı, alışveriş yapanların serbestçe döndürebileceği etkileşimli bir görünüme dönüştürülür.
- Haritalar: Google, Google Haritalar'daki Sürükleyici Görünüm için restoran ve kafe iç mekânlarını, mekân başına yaklaşık bir saatte çekilen DSLR fotoğraflarından NeRF ile yeniden oluşturdu. Mip-NeRF 360'ı, NeRF in the Wild'ın görünüm gömmeleri ve Block-NeRF'in pozlama koşullandırmasıyla geliştirdi; sonuçları, seçilmiş uçuş rotalarında etkileşimli 360° videolar olarak sundu.










