- MeshGPT त्रिकोणीय mesh को token sequence के रूप में generate करता है, और इंसान द्वारा बनाए गए model जैसे sharp edges व संक्षिप्त triangulation वाले mesh बनाने का लक्ष्य रखता है
- dense iso-surfacing परिणामों के विपरीत, यह सीखी गई geometric vocabulary को sample करके सीधे अधिक compact mesh structure बनाता है
- graph convolution और vector quantization आधारित encoder-decoder पहले local geometry और topology को समेटने वाली embedding vocabulary सीखता है
- decoder-only Transformer पिछले embeddings के आधार पर अगला index predict करता है, और training के बाद vocabulary से sequence sample करके नया mesh generate करता है
- विभिन्न categories में shape coverage में 9% वृद्धि, FID score में 30 points सुधार दिखा, और इसे partial mesh completion व scenes के लिए 3D asset generation में भी इस्तेमाल किया जा सकता है
MeshGPT का mesh generation तरीका
- MeshGPT त्रिकोणीय mesh को triangle sequence के रूप में देखता है, सीखी गई geometric vocabulary से tokens generate करता है और फिर उन्हें triangle faces में decode करता है
- output clean, coherent, compact mesh की ओर लक्षित होता है, जिसमें sharp edges और high fidelity मुख्य विशेषताएँ हैं
- मौजूदा baselines से तुलना करने पर यह sharp geometric details बनाए रखते हुए भी अधिक संक्षिप्त mesh generate करता है
- baseline कभी-कभी details छोड़ देता है, अत्यधिक triangulated mesh बनाता है, या बहुत सरल shape output करता है
- विभिन्न categories में quantitative comparison में यह नवीनतम mesh generation methods से बेहतर परिणाम दिखाता है
- shape coverage में 9% वृद्धि
- FID score में 30 points सुधार
Training pipeline और उपयोग
- पहले बड़े shape collection से त्रिकोणीय mesh के लिए geometric embedding vocabulary सीखी जाती है
- encoder-decoder network का उपयोग किया जाता है
- bottleneck में vector quantization शामिल होता है
- graph convolution से embeddings में local mesh geometry और topology की जानकारी समाहित होती है
- सीखी गई vocabulary sequence के रूप में संरचित होती है, और decoder इसे फिर से triangles में reconstruct कर सकता है
- Transformer सीखी गई vocabulary की token sequence prediction के लिए जिम्मेदार है
- पिछले embeddings को input के रूप में लेकर अगला embedding index predict करता है
- training पूरी होने के बाद vocabulary से सीधे sequence sample करके mesh generate करता है
- partial mesh दिए जाने पर यह कई संभावित shape completion results infer कर सकता है
- user द्वारा partial input mesh edit करने की प्रक्रिया में भी completion examples दिखाए जा सकते हैं
- इसे scenes के लिए 3D asset generation में भी इस्तेमाल किया जा सकता है, और MeshGPT से बनाए गए assets से कमरे को भरने का उदाहरण मौजूद है
Resources और संबंधित कार्य
- संबंधित resources
- साथ में उल्लेखित संबंधित कार्य
- PolyGen: An Autoregressive Generative Model of 3D Meshes: point generation के लिए Transformer और pointer network का उपयोग करने वाले face generation Transformer से mesh generate करता है
- BSP-Net: binary space partitioning से compact mesh generate करने वाला network
- AtlasNet: A Papier-Mâché Approach to Learning 3D Surface Generation: 3D shape को parametric surface elements के set के रूप में represent करता है
- Mesh Diffusion: deformable marching tetrahedra से parameterized 3D mesh generation के लिए 3D diffusion model का उपयोग करता है
1 टिप्पणियां
Hacker News की राय
मुझे लगता है असली क्रांतिकारी आइडिया ऐसा ही दिखता है। पेपर में सचमुच बहुत सारी डिटेल है, और हमें पहले से पता है कि transformer scale कर सकते हैं
लगता है कई कंपनियां general-purpose 3D asset generation pipeline को train करने के लिए इस आइडिया का इस्तेमाल करेंगी। “पहले graph convolution का इस्तेमाल करके latent quantization embedding की vocabulary सीखना, और इस embedding को local mesh geometry और topology की जानकारी दिलाना। फिर इस embedding को order करके decoder से उसे triangles में restore कराना ताकि mesh को प्रभावी तरीके से reconstruct किया जा सके” — पीछे मुड़कर देखें तो यह सोच बहुत सुंदर और स्वाभाविक लगती है
और “autoregressive generation के लिए mesh M को represent करने के practical approach के तौर पर, generate किए जाने वाले tokens को triangles की sequence के रूप में define करना” वाला हिस्सा भी सचमुच शानदार है
इस field में जो चीज सच में आकर्षित करती है, वह single image से 3D mesh बनाने वाला और लाखों diverse 3D models पर trained large 3D reconstruction model है: https://yiconghong.me/LRM/
convolutional ResNet भी vision और language में scale होते दिखते हैं: (cv) https://arxiv.org/abs/2301.00808, (cv) https://arxiv.org/abs/2110.00476, (nlp) https://github.com/HazyResearch/safari
multi-layer perceptron भी scale होते लगते हैं: (cv) https://arxiv.org/abs/2105.01601, (cv) https://arxiv.org/abs/2105.03404
बेशक attention छोड़ने की कोई मजबूत वजह भी नहीं है, लेकिन मुझे लगता है कि बहुत कम लोगों ने किसी problem पर 1 अरब parameters scale के multi-layer perceptron या convolutional model आजमाए हैं। attention, transformer और उनकी scaling पर इतनी भारी मेहनत हुई है कि हर साल हजारों papers आते हैं, जबकि दूसरे architectures में ऐसा स्तर मुश्किल से दिखता है
The ResNet Strikes Back paper की अच्छी बातों में से एक यह है कि यह याद दिलाता है कि hype में बहने के बजाय progress आपस में जुड़ी होती है। original ResNet के दौर के बाद हमने training techniques के बारे में बहुत कुछ सीखा है, और उन्हें ResNet पर लागू करने से performance काफी बेहतर होती है और gap बहुत कम हो जाता है। कम-से-कम vision field में, जहां मैं research करता हूं, ऐसा है; और papers publish करके ही टिकने वाले माहौल और trend-driven review के कारण research आसानी से एक दिशा में सिमट जाती है
machine learning engineer होने और थोड़ा Blender व hobby game development करने के नाते यह काफी प्रभावशाली है, लेकिन सीमित furniture examples देखकर यह अभी practical level पर नहीं है
skilled modeler ऐसा mesh 5 मिनट से कम में बना सकता है, और generation को अभी भी polygons से seed करना पड़ता है
अगला step शायद यह होगा कि LLM seed generation को control करे, और structure के autoregressive हिस्से में image model जोड़ा जाए। तब शायद हमें सच में mobile game assets देखने को मिलें
कई मामलों में, अगर realistic alternative कुछ भी नहीं होना है, तो ऐसा tool बेहतर है, भले ही expert से ज्यादा समय लगे और quality खराब हो
अगर मैं model के लिए सिर्फ 1–2 dollar देकर उसे अपने game में तुरंत custom तरीके से डाल सकूं, तो सचमुच अच्छा होगा
असली मुद्दा non-experts को tools देना है, और साथ ही skilled modelers को future AAA games के लिए chair की 10,000 variants जैसे काम से मुक्त करना है ताकि वे ज्यादा दिलचस्प चीजों पर focus कर सकें। वे unique characters बना सकते हैं, या ऐसे नए futuristic models बना सकते हैं जो training data में नहीं हैं और जिनके लिए असली imagination और expertise चाहिए
Blender Geometry Nodes जैसे procedural systems भी पहले से ऐसे models की endless variations निकाल सकते हैं। फिर भी progress की speed हैरान करने वाली है
मेरा मानना है कि किसी specific use case में आपका experience जितना ज्यादा होगा, machine learning model से आपको उतनी ज्यादा utility मिलेगी
दुर्भाग्य से अक्सर वही लोग adoption का सबसे ज्यादा विरोध करते हैं, बिना इसे सचमुच उपयोगी स्तर तक अभ्यास करके देखे। शायद समस्या का एक हिस्सा यह है कि वे इसे magic wand मानकर चलते हैं। असल में यह बस नया PhotoShop, Blender, Microsoft Word, PowerPoint जैसा tool है
ज्यादातर लोग ऐसी apps खोलते हैं, थोड़ी देर बेमतलब click करते हैं, फिर जल्द ही छोड़ देते हैं और वापस नहीं आते। “AI” भी ऐसा ही है
मेरा चुना हुआ पेशा, 3D/फिल्म प्रोडक्शन, इन दिनों किसी युद्ध की खाई में होने जैसा लगता है। रोमांचक भी है और डरावना भी।
एक और बड़ा फायदा composability है। अगर model कप और टेबल बना सकता है, तो वह टेबल पर रखा कप बनाना भी जानता है।
सोचिए, प्रोजेक्ट के हिसाब से जटिल gears और machine parts पलक झपकते बना सकें, और उन्हें मनचाही position और rotation में सटीकता से रख सकें। यह GitHub Copilot के काम करने के तरीके से काफी मिलता-जुलता है।
फिलहाल हम सुरक्षित हैं, लेकिन नई technology का इस्तेमाल करना सीखना होगा।
input क्या है? क्या यह “chair” जैसी text query को mesh में बदलता है?
देखने से लगता है कि यह कोई साधारण add-on नहीं, बल्कि mesh completion ही मुख्य input/output तरीका है।
input खुद 3D mesh जैसा दिखता है। इसलिए model शायद “shape completion” कर रहा है। जैसे सिर्फ कुछ legs देखकर chair generate करना। या जब input shape ज़्यादा complete हो, तो “variations” generate करना भी हो सकता है।
फिर भी शुरुआत के तौर पर ठीक लगता है। quality कम है, लेकिन text-to-mesh बनाने वाले दूसरे models के output को input में देकर, इस model से ज़्यादा sharp और consistent results मिल सकते हैं।
ऐसा लगता है कि 90s के बाद से जिन बचे हुए कठिन problems में ज्यादा progress नहीं हुई थी, वे सब किसी न किसी तरह transformer से हल होने की अपनी बारी का इंतज़ार कर रहे हैं। सचमुच कमाल का दौर है।
अगला breakthrough ऐसे model के सामने VR में 3D scene बनाने वाला UX होगा। जिस environment के लिए training data है, वहाँ असल में स्थायी और arbitrary 3D environments generate किए जा सकेंगे।
texture generation के लिए diffusion models इस्तेमाल हो सकते हैं।
Mark सही था, बस सच में बहुत जल्दी move कर गया।
ओह, वो Mark? lol, समझ गया।
बेहतर होगा कि credit Lecun जैसे किसी को दिया जाए, नहीं? Mark ने metaverse पर all-in इसलिए नहीं किया था कि उसने किसी तरह predict कर लिया था कि deep learning उछलेगी। शुरुआती models train करने वाले लोग भी पक्के नहीं थे कि यह कितना अच्छा काम करेगा।
भले ही यह “सिर्फ” mesh autocomplete हो, 3D artists के लिए यह बेहद उपयोगी है। अभी character sculpt करने के तरीके और animate करने के तरीके के बीच disconnect है। आम तौर पर model को retopology करने का time-consuming step चाहिए होता है।
अगर कोई transformer-based retopology rough mesh लेकर clean topology दे सके, तो बहुत समय बचेगा।
एक और application Gaussian splatting या diffusion model के output को MeshGPT में डालना है। text से सीधे clean topology वाला usable asset मिल सकता है।
यहाँ लोग शायद अच्छी तरह महसूस नहीं कर रहे कि हम automation को ही automate करने की दिशा में धीरे-धीरे बढ़ रहे हैं। और इससे रोज़ी कमा पाने वाले programmers, आज रोज़ी कमा पाने वाले लोगों में बहुत छोटा हिस्सा होंगे।
यह field मुझे पसंद है। paper में शानदार website, examples और videos शामिल हैं।
घने abstract, introduction और results-केंद्रित paper style से कहीं ज्यादा fresh है।
सच में शानदार लग रहा है। indie game developers को assets का बड़ा pool generate करने में बहुत मदद मिलेगी।
इसके बजाय बड़ी companies “अपना game बनाओ” वाले games बनाएंगी।
आजकल indie games भी पहले से काफी derivative लगते हैं। medium term में लगता है कि बड़ी companies इस technology का इस्तेमाल करके indie games को खत्म कर देंगी।
वाह, यह सच में बेहतर होता जा रहा है। अजीब edges की वजह से अभी रास्ता बाकी है, लेकिन इस point पर यह कोई algorithmic या जटिल problem नहीं, बल्कि iterative improvements जैसा लगता है।
अगर हर mesh को ऐसी procedural generation library में डालने की जरूरत न रहे जिसमें ढेर सारे छोटे mesh modifiers drivers से जुड़े हों, तो मेरा pipeline सच में तेज़ हो जाएगा। इसके बजाय सारी meshes को folder में डालकर network train कर दें, और फिर उसी style की दूसरी चीजें मांग लें। जब तक ज़्यादा creative तरीके से छेड़छाड़ नहीं करनी हो, retopo या दूसरा manual work करने की जरूरत नहीं होगी।
बेशक, उस level तक पूरी तरह पहुँचने से पहले procedural generation अभी भी बेहतर है, लेकिन यह इतनी तेजी से mature हो रहा है कि सच में उत्साह है। उम्मीद है अगले साल Unreal showcase तक वे नई Asset Generator feature की बात कर रहे होंगे।