Devrim Yaratan Teknoloji: 3D Gaussian Splatting Nedir?

Inria (Université Côte d’Azur) ve Max Planck Enstitüsü’ndeki araştırmacılar tarafından yakın zamanda yayınlanan ve çığır açan bir makale (SIGGRAPH 2023’te Kerbl, Kopanas, Leimkühler, Drettakis tarafından “3D Gaussian Splatting for Real-Time Radiance Field Rendering” makalesi), bir dizi görüntüden 3D Gaussian Splatting için gereken verileri oluşturmaya yönelik bir sürecin ana hatlarını çizdi. Ayrıca Move One: iPhone ile Anında 3D Hareket Yakalama Deneyimi ile ilgili oluşturduğumuz yazımıza bakmayı unutmayın.

Önerilen Video:

3D Gaussian Splatting nedir?

3D Gaussian Splatting, küçük görüntü örneklerinden öğrenilen fotogerçekçi sahnelerin gerçek zamanlı olarak oluşturulmasını sağlayan bir rasterleştirme tekniğidir. Bu şu anlama gelir:

  1. Sahneyi tanımlayan verilere sahip olmak.
  2. Verileri ekrana çizmek.

Bu, ekranda çok sayıda üçgen çizmek için kullanılan bilgisayar grafiklerindeki üçgen rasterleştirmeye benzer.

3D Gauss Splatting nedir?

Ancak üçgenler yerine gausslar kullanılır. İşte netlik için bir kenarlık çizilmiş tek bir rasterleştirilmiş gaussian.

3D Gauss Splatting nedir?

3D Gauss Splatting aşağıdaki parametrelerle tanımlanır:

  • Konum: Bulunduğu yer (XYZ)
  • Kovaryans: Nasıl uzatıldığı/ölçeklendirildiği (3×3 matris)
  • Renk: Hangi renk olduğu (RGB)
  • Alfa: Ne kadar şeffaf olduğu (α)

Pratikte, aynı anda birden fazla gaussian çizilir.

3D Gauss Splatting nedir?

Yukarıda gördüğünüz üç gaussian. Peki ya 7 milyon gaussian’a ne dersiniz?

Devrim Yaratan Yeni Teknoloji: 3D Gaussian Splatting Nedir?

İşte her gaussian tamamen opak olarak rasterleştirildiğinde nasıl göründüğü:

Devrim Yaratan Yeni Teknoloji: 3D Gaussian Splatting Nedir?

Bu, 3D Gaussian Splatting ‘in ne olduğuna dair çok kısa bir genel bakıştı. Konu ile ilgili makalede açıklanan prosedürün biraz içerisine dalalım.

3D Gauss Splatting Nasıl çalışır?

LiDAR veya fotogrametri ile oluşturulan Polycam çekimleri, 3D verileri karşılık gelen görüntü dokuları ile poligonal kafesler olarak temsil eder. 3D Gaussian Splatting, bir 3D sahneyi milyonlarca parçacıklı 3D Gaussian olarak temsil eder. Her bir 3D Gaussian, bir konum, yönelim, ölçek, opaklık ve görünüme bağlı renk ile birlikte gelir.

Bu parçacıkları verimli bir şekilde işlemek için bunlar 2D uzaya dönüştürülür (“sıçratılır”) ve ardından performanslı işleme için düzenlenir veya sıralanır. İşte detayları:

1. Adım: Hareketten Yapıya Dönüştürme (Structure from Motion)

İlk adım, bir dizi görüntüden bir nokta bulutunu tahmin etmek için Hareketten Yapı (SfM) yöntemini kullanmaktır. Bu, bir dizi 2D görüntüden 3D nokta bulutunu tahmin etmeye yönelik bir yöntemdir. Bu COLMAP kütüphanesi ile yapılabilir.

Gaussian points colmap

2. Adım: Gaussian’lara Dönüştürme

Daha sonra her nokta bir Gaussian’a dönüştürülür. Bu zaten rasterleştirme için yeterli ancak Hareketten Yapıya çekilen (SfM) verilerinden yalnızca konum ve renk çıkarılabilir. Yüksek kaliteli sonuçlar veren bir gösterimi öğrenmek için onu eğitmemiz gerekir.

3. Adım: Eğitim

Eğitim prosedürü, sinir ağına benzer, ancak katmanlar içermeyen Stokastik Gradyan İnişini kullanır. Eğitim adımları şunlardır:

  1. Diferansiyellenebilir Gaussian rasterleştirmesini kullanarak Gaussianları bir görüntüye rasterleştirin. (bu konuya daha sonra değineceğiz)
  2. Rasterleştirilmiş görüntü ile gerçek görüntü arasındaki farka dayalı olarak kaybı hesaplayın.
  3. Gaussian parametrelerini kayba göre ayarlayın.
  4. Otomatik yoğunlaştırma ve budama uygulayın.

1-3 arasındaki adımlar kavramsal olarak oldukça basittir. Adım 4 aşağıdakileri içerir:

  • Belirli bir Gaussian için degrade büyükse (yani çok yanlışsa), bölün yada klonlayın.
    • Gaussian küçükse klonlayın.
    • Gaussian büyükse bölün.
  • Gaussian’ın alfa değeri çok düşükse onu kaldırın.

Bu prosedür, gereksiz Gaussian’ları budayarak Gaussian’ların ince taneli ayrıntılara daha iyi uyum sağlamasına yardımcı olur.

4. Adım: Türevlenebilir Gaussian Rasterleştirmesi

Daha önce de belirtildiği gibi 3D Gaussian Splatting, verileri ekrana çeken bir rasterleştirme yaklaşımıdır. Ancak bazı önemli unsurlar da şunlardır:

  1. Hızlı
  2. Türevlenebilir

Rasterleştiricinin orijinal uygulamasını burada bulabilirsiniz. Rasterleştirme şunları içerir:

  1. Her Gaussian’ı kamera perspektifinden 2 boyutlu olarak yansıtın.
  2. Gaussianları derinliğe göre sıralayın.
  3. Her piksel için, her Gaussian’ı önden arkaya doğru yineleyerek bunları bir araya getirin.

Ek optimizasyonlar makalede açıklanmıştır.

Ayrıca rasterleştiricinin türevlenebilir olması da önemlidir, böylece stokastik gradyan inişiyle eğitilebilir. Ancak bu yalnızca eğitimle ilgilidir; eğitimli Gaussian’lar aynı zamanda türevlenemeyen bir yaklaşımla da oluşturulabilir.

Peki Bu Kimin Umurunda?

3D Gauss Splatting neden bu kadar ilgi gördü? Bunun bariz yanıtı, sonuçların kendini ifade etmesidir yani gerçek zamanlı, yüksek kaliteli sahnelerdir. Ancak hikayenin daha fazlası olabilir.

Gaussian Splatting ile başka neler yapılabileceğine dair pek çok bilinmeyen var. Animasyonlu hale getirilebilirler mi? Yakında çıkacak olan Dinamik 3D Gaussianlar: Kalıcı Dinamik Görünüm Sentezi ile izleme, yapılabileceği öne sürülüyor. Ancak daha birçok bilinmeyen de var. Yansımalar yapabiliyorlar mı? Referans görselleri üzerinde eğitim alınmadan modellenebilirler mi?

Son olarak, Bedenlenmiş Yapay Zeka’ya yönelik araştırma ilgisi artıyor. Bu, en gelişmiş performansın hala insan performansının çok altında olduğu bir yapay zeka araştırma alanıdır ve zorluğun büyük kısmı 3 boyutlu alanı temsil etmede yatmaktadır. 3D Gauss Splatting ‘in 3D alanın çok yoğun bir temsilini sağladığı göz önüne alındığında, Bedenlenmiş Yapay Zeka araştırmasının sonuçları neler olabilir?

Bu sorular yönteme dikkat çekiyor. Gerçek etkinin ne olacağı henüz bilinmiyor.

Grafiklerin Geleceği

Peki bu grafiklerin geleceği açısından ne anlama geliyor? Hadi bunu artılara ve eksilere ayıralım:

Artıları:

  • Yüksek kaliteli, fotogerçekçi sahneler
  • Hızlı, gerçek zamanlı rasterleştirme
  • Eğitilmesi nispeten daha hızlı

Eksileri:

  • Yüksek VRAM kullanımı (görüntülemek için 4 GB, eğitmek için 12 GB)
  • Büyük disk boyutu (bir sahne için 1 GB+)
  • Mevcut işleme ardışık düzenleriyle uyumsuz
  • Statik (şimdilik)

Şu ana kadar orijinal CUDA uygulaması Vulkan, DirectX, WebGPU vb. gibi üretim işleme hatlarına uyarlanmadı, dolayısıyla etkisinin ne olacağı henüz görülmedi.

Aşağıdaki uyarlamalara zaten yapılmıştır:

Bunlar ya uzaktan akışa (1) ya da geleneksel dörtlü tabanlı rasterleştirme yaklaşımına (2-5’e) dayanır. Dörtlü tabanlı yaklaşım onlarca yıllık grafik teknolojileriyle uyumlu olsa da, daha düşük kalite ve performansla sonuçlanabilir. Ancak 5 numaralı izleyici, dörtlü yaklaşıma rağmen optimizasyon hilelerinin yüksek kalite ve performansla sonuçlanabileceğini gösteriyor.

Peki 3D Gaussian Splatting ‘in üretim ortamında tamamen yeniden uygulandığını görecek miyiz? Cevap muhtemelen evet. Birincil darboğaz, yalnızca CUDA’da mevcut olan yüksek düzeyde optimize edilmiş bir sıralama olan CUB cihaz radix sıralaması kullanılarak orijinal uygulamada verimli bir şekilde yapılan milyonlarca gaussian’ı sıralamaktır. Ancak yeterli çabayla, diğer işleme hatlarında bu düzeyde bir performansa ulaşmak kesinlikle mümkündür.

Daha fazla oku:

İsmail Akar

Sitemizde, sanatçıların ilham veren çalışmalarını ve profesyonel kariyer tavsiyelerini paylaşıyoruz. Dünyada olup biten teknoloji, sanat ve tasarım hakkındaki son gelişmelerden haberdar olabilmek için sitemizi ve 3DMADMAX YouTube kanalımızı takip etmeyi unutmayın.

Benzer Yazılar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir