MeshGPT: Yalnızca Decoder Kullanan Transformer ile Üçgen Mesh Üretimi
(nihalsid.github.io)- MeshGPT, üçgen meshleri token dizileri olarak üreterek insan yapımı modellerdekine benzer keskin kenarlara ve sade üçgenlemeye sahip meshler üretmeyi hedefler
- Yoğun iso-surfacing sonuçlarının aksine, öğrenilmiş geometrik sözlükten örnekleme yaparak daha compact mesh yapısını doğrudan üretir
- Grafik konvolüsyon ve vektör niceleme tabanlı encoder-decoder, önce yerel geometri ve topolojiyi içeren bir gömme sözlüğü öğrenir
- Yalnızca decoder kullanan transformer, önceki gömmelere dayanarak bir sonraki indeksi tahmin eder; eğitimden sonra ise sözlükten dizi örnekleyerek yeni meshler üretir
- Farklı kategorilerde shape coverage %9 artış ve FID skorunda 30 puan iyileşme göstermiştir; ayrıca kısmi mesh tamamlama ve sahne için 3D asset üretiminde de kullanılabilir
MeshGPT'nin mesh üretim yöntemi
- MeshGPT, üçgen meshleri üçgen dizileri olarak ele alır; öğrenilmiş geometrik sözlükten tokenlar üretir ve bunları üçgen yüzlere decode eder
- Ortaya çıkan çıktı clean, coherent, compact meshleri hedefler ve sharp edges ile yüksek doğruluk temel özelliklerdir
- Mevcut baseline'larla karşılaştırıldığında, keskin geometrik detayları korurken daha sade meshler üretir
- baseline'lar bazı durumlarda detayları kaçırabilir, aşırı üçgenlenmiş meshler oluşturabilir veya gereğinden fazla basit şekiller üretebilir
- Farklı kategorilerde yapılan nicel karşılaştırmalarda, en güncel mesh üretim yöntemlerinden daha iyi sonuçlar gösterir
- shape coverage %9 artış
- FID skoru 30 puan iyileşme
Eğitim pipeline'ı ve kullanım alanları
- Önce büyük ölçekli bir shape collection üzerinde üçgen meshler için geometrik gömme sözlüğü öğrenilir
- encoder-decoder ağı kullanılır
- darboğaz bölümünde vektör niceleme bulunur
- grafik konvolüsyon ile gömmelerin yerel mesh geometrisi ve topolojisi bilgisini taşıması sağlanır
- Öğrenilen sözlük dizilerden oluşur ve decoder bunları yeniden üçgenlere dönüştürebilir
- Transformer, öğrenilmiş sözlüğün token dizisi tahmini görevini üstlenir
- önceki gömmeleri girdi olarak alıp bir sonraki gömme indeksini tahmin eder
- eğitim tamamlandıktan sonra sözlükten doğrudan dizi örnekleyerek mesh üretir
- Kısmi bir mesh verildiğinde birden fazla olası shape completion sonucu çıkarılabilir
- kullanıcı partial input mesh'i düzenlerken completion örnekleri de gösterilebilir
- Sahne için 3D asset üretiminde de kullanılabilir; MeshGPT ile üretilen asset'lerle bir odayı doldurma örneği bulunur
Materyaller ve ilgili çalışmalar
- İlgili materyaller
- Birlikte anılan ilgili çalışmalar
- PolyGen: An Autoregressive Generative Model of 3D Meshes: nokta üretimi için transformer ve face üretimi için pointer network kullanan transformer ile mesh üretir
- BSP-Net: binary space partitioning ile compact mesh üreten bir ağ
- AtlasNet: A Papier-Mâché Approach to Learning 3D Surface Generation: 3D shape'leri parametrik yüzey öğelerinin bir kümesi olarak ifade eder
- Mesh Diffusion: deformable marching tetrahedra ile parametrize edilen 3D mesh üretimi için 3D diffusion modeli kullanır
1 yorum
Hacker News yorumları
Bence gerçek anlamda devrimsel bir fikir böyle görünür. Makalede gerçekten çok fazla ayrıntı var ve transformer'ların ölçeklenebilir olduğunu zaten biliyoruz.
Birçok şirketin, genel amaçlı 3D varlık üretim hattı eğitmek için bu fikri kullanacağını düşünüyorum. “Önce grafik evrişimlerini kullanarak gizil nicemlenmiş gömmelerden oluşan bir sözlük öğrenmek ve bu gömmelerin yerel mesh geometrisi ile topoloji bilgisini öğrenmesini sağlamak. Bu gömmeleri sıralamak ve decoder'ın bunları üçgenlere geri dönüştürerek mesh'i etkili biçimde yeniden kurmasını sağlamak” fikri, geriye dönüp bakınca çok güzel ve bariz görünüyor.
Ayrıca “otoregresif üretim için mesh M'yi temsil etmeye yönelik pratik bir yaklaşım olarak, üretilecek token'ları üçgenlerden oluşan bir dizi olarak tanımlarız” kısmı da gerçekten harika.
Bu alanda beni asıl cezbeden şey, tek bir görüntüden 3D mesh üreten ve milyonlarca çeşitli 3D modelle eğitilmiş büyük bir 3D yeniden yapılandırma modeli olan https://yiconghong.me/LRM/ tarafı.
Evrişimli ResNet de görüntü ve dilde ölçekleniyor gibi görünüyor: (cv) https://arxiv.org/abs/2301.00808, (cv) https://arxiv.org/abs/2110.00476, (nlp) https://github.com/HazyResearch/safari
Çok katmanlı algılayıcılar da ölçekleniyor gibi: (cv) https://arxiv.org/abs/2105.01601, (cv) https://arxiv.org/abs/2105.03404
Elbette attention'ı bırakmak için güçlü bir neden de yok, ama milyar parametre ölçeğinde çok katmanlı algılayıcı ya da evrişimli modelleri bu probleme uygulayan neredeyse kimse olmadığını düşünüyorum. Attention, transformer'lar ve bunların ölçeklenmesi için her yıl binlerce makale çıkacak kadar muazzam bir emek harcandı; diğer mimarilerde böyle bir seviye görmek zor.
The ResNet Strikes Back makalesini iyi yapan şeylerden biri, abartı rüzgârına kapılmadan gelişmelerin birbirine eklemlendiğini hatırlatması. İlk ResNet döneminden bu yana eğitim teknikleri hakkında çok şey öğrendik; bunları ResNet'e uygulayınca performans çok daha iyi hale geliyor ve fark ciddi ölçüde kapanıyor. En azından benim çalıştığım görüntü alanında durum böyle; makale yayımlamadan ayakta kalınamayan ortam ve moda odaklı değerlendirmeler yüzünden araştırma tek bir yöne yığılmaya çok yatkın.
Bir makine öğrenimi mühendisi olup biraz Blender ve hobi amaçlı oyun geliştirme yapan biri olarak oldukça etkileyici buldum, ama sınırlı mobilya örneklerine bakınca henüz pratik seviyede değil.
Deneyimli bir modelleyici böyle bir mesh'i 5 dakikadan kısa sürede yapabilir ve üretimin hâlâ poligonlarla başlatılması gerekiyor.
Bir sonraki adımın, seed üretimini bir LLM'in kontrol etmesi ve yapının otoregresif kısmına görüntü modellerinin eklenmesi olacağını düşünüyorum. O zaman gerçekten mobil oyun varlıkları görebiliriz.
Birçok durumda uzmandan daha uzun sürse ve kalite daha kötü olsa bile, gerçekçi alternatif hiçbir şey olmaması ise bu tür araçlar daha iyidir.
Model başına sadece 1-2 dolar ödeyip oyunum için özelleştirilmiş şekilde hemen kullanabilsem gerçekten harika olurdu.
Asıl mesele uzman olmayanlara araç vermek ve aynı zamanda deneyimli modelleyicileri gelecekteki AAA oyunların ihtiyaç duyacağı 10 bin sandalye varyasyonu gibi işlerden kurtarıp daha ilginç işlere odaklanmalarını sağlamak. Onlar benzersiz karakterler ya da eğitim verisinde bulunmayan, gerçek hayal gücü ve uzmanlık gerektiren yeni fütüristik modeller yapabilir.
Blender Geometry Nodes gibi prosedürel sistemler de zaten bu tür modellerin sonsuz varyasyonlarını üretebiliyor. Yine de gelişme hızı şaşırtıcı derecede yüksek.
Belirli bir kullanım senaryosunda ne kadar deneyimliyseniz, makine öğrenimi modelinden o kadar fazla fayda elde edebileceğinize inanıyorum.
Ne yazık ki tam da bu kişiler, gerçekten işe yarar seviyeye gelene kadar denemeden benimsemeye en çok direnç gösterenler oluyor. Sorunun bir kısmı muhtemelen bunu sihirli değnek gibi beklemeleri. Oysa aslında yeni bir PhotoShop, Blender, Microsoft Word, PowerPoint gibi bir araçtan ibaret.
Çoğu kişi bu uygulamaları açıp kısa süre anlamsızca tıklar, sonra ayrılır ve bir daha dönmez. “AI” için de aynı şey geçerli.
Seçtiğim meslek olan 3D/film prodüksiyonu bugünlerde kendini bir savaş siperinde gibi hissettiriyor. Hem heyecan verici hem de korkutucu.
Bir diğer büyük avantaj da birleştirilebilirlik. Model bir bardak ve bir masa üretebiliyorsa, masanın üzerindeki bardağı üretmeyi de biliyor demektir.
Projeye uygun karmaşık dişlileri ve makine parçalarını göz açıp kapayıncaya kadar oluşturup, istediğiniz konum ve dönüşle tam olarak yerleştirebildiğinizi düşünün. GitHub Copilot’ın çalışma biçimine çok benziyor.
Şimdilik güvendeyiz, ama yeni teknolojiden yararlanmayı öğrenmek gerekiyor.
Girdi ne? “chair” gibi bir metin sorgusunu mesh’e mi dönüştürüyor?
Görünüşe göre basit bir ek özellik değil, mesh tamamlama temel giriş-çıkış biçimi gibi.
Girdinin kendisi 3D mesh gibi görünüyor. Bu yüzden model “şekil tamamlama” yapıyor gibi. Örneğin yalnızca birkaç bacağı görüp bir sandalye üretmesi gibi. Ya da girdi şekli daha eksiksiz olduğunda “varyasyon” üretiyor olabilir.
Yine de başlangıç noktası olarak iyi görünüyor. Kalite düşük olsa da metinden mesh üreten başka bir modelin çıktısını girdi olarak verip, bu modelle daha net ve tutarlı bir sonuç elde etmek mümkün olabilir.
90’lardan beri pek ilerleme kaydedilmemiş geriye kalan zor problemlerin hepsi, bir şekilde Transformer ile çözülme sırasını bekliyormuş gibi hissettiriyor. Gerçekten muazzam bir dönem.
Bir sonraki atılım, bu tür modellerin önünde VR ile 3D sahne oluşturma UX’i olacak. Eğitim verisi olan ortamlarda fiilen kalıcı ve keyfi 3D ortamlar üretmek mümkün hale gelecek.
Doku üretimi için difüzyon modelleri kullanılabilir.
Mark haklıydı ve gerçekten çok erken davrandı.
Ha, o Mark mı? haha, anladım.
Bence payı Lecun gibi birine vermek daha doğru olmaz mı? Mark’ın metaverse’e her şeyi yatırmasının nedeni, derin öğrenmenin patlayacağını bir şekilde öngörmesi kesinlikle değildi. İlk modelleri eğiten insanlar bile bunun ne kadar iyi çalışacağından emin değildi.
Bu “sadece” mesh otomatik tamamlama olsa bile 3D sanatçılar için inanılmaz derecede faydalı. Şu anda karakterleri heykelleme biçimi ile animasyonlama biçimi arasında bir kopukluk var. Genellikle modeli retopology’den geçirmek gibi çok zaman alan bir adım gerekiyor.
Kaba bir mesh alıp temiz topoloji çıkaran Transformer tabanlı retopology büyük zaman kazandırırdı.
Başka bir uygulama da Gaussian splatting veya difüzyon modellerinin çıktısını MeshGPT’ye vermek. Metinden doğrudan temiz topolojiye sahip, kullanılabilir asset’ler elde edilebilir.
Burada, otomasyonun kendisini otomatikleştirme yönüne doğru yavaş yavaş gidildiği pek hissedilmiyor gibi. Ve bununla geçimini sağlayabilecek programcılar, bugün geçimini sağlayabilenlerin çok küçük bir kısmı olacak.
Bu alanı seviyorum. Makalede güzel bir web sitesi, örnekler ve videolar var.
Yoğun bir özet, giriş ve sonuç odaklı makale tarzından çok daha ferahlatıcı.
Gerçekten harika görünüyor. Bağımsız oyun geliştiricilerin büyük asset havuzları oluşturmasına inanılmaz yardımcı olacak gibi.
Onun yerine büyük şirketler “kendi oyununu yap” oyunları yapacak.
Günümüzde bağımsız oyunlar bile zaten oldukça türevsel hissettiriyor. Orta vadede büyük şirketlerin bu teknolojiyi kullanarak bağımsız oyunları öldüreceğini düşünüyorum.
Vay, gerçekten iyileşiyor. Tuhaf kenarlar yüzünden hâlâ gidilecek yol var, ama bu noktada algoritmik ya da karmaşık bir problemden ziyade iteratif iyileştirme gibi hissettiriyor.
Tüm mesh’leri, çok sayıda küçük mesh değiştiricisini sürücülere bağlamış bir prosedürel üretim kütüphanesinden geçirmek zorunda kalmazsam pipeline’ım gerçekten hızlanacak. Bunun yerine tüm mesh’leri bir klasöre koyup ağı eğitir, sonra aynı stilde başka şeyler isterim. Daha yaratıcı bir şekilde müdahale etmek istemediğim sürece retopology ya da başka el işlerine gerek olmadığını görebiliyorum.
Elbette o seviyeye tamamen ulaşana kadar prosedürel üretim hâlâ daha iyi, ama bu kadar hızlı tamamlanıyor olması gerçekten heyecan verici. Umarım gelecek yılki Unreal showcase civarında yeni Asset Generator özelliğinden bahsediyor oluruz.