在數(shù)字化時(shí)代,我們經(jīng)常需要將現(xiàn)實(shí)中的3D物體轉(zhuǎn)換成電腦能夠理解和編輯的形式。傳統(tǒng)的方法就像用手工一點(diǎn)點(diǎn)雕刻一樣費(fèi)時(shí)費(fèi)力,而現(xiàn)在,來(lái)自上海人工智能實(shí)驗(yàn)室、清華大學(xué)等機(jī)構(gòu)的研究團(tuán)隊(duì)帶來(lái)了一種全新的解決方案——MeshCoder。這項(xiàng)研究發(fā)表于2025年8月的arXiv預(yù)印本平臺(tái),論文編號(hào)為arXiv:2508.14879v2,有興趣深入了解的讀者可以通過(guò)該編號(hào)在arXiv網(wǎng)站上訪問(wèn)完整論文。
研究團(tuán)隊(duì)由戴炳權(quán)、羅李瑞等多位研究者組成,他們分別來(lái)自上海人工智能實(shí)驗(yàn)室、清華大學(xué)、哈爾濱工業(yè)大學(xué)深圳分校、北京理工大學(xué)和香港科技大學(xué)(廣州)。這個(gè)跨機(jī)構(gòu)的合作團(tuán)隊(duì)致力于解決一個(gè)看似簡(jiǎn)單但實(shí)際極其復(fù)雜的問(wèn)題:如何讓電腦自動(dòng)將3D物體的點(diǎn)云數(shù)據(jù)轉(zhuǎn)換成可編輯的代碼程序。
要理解這項(xiàng)研究的革命性意義,我們可以把傳統(tǒng)的3D建模過(guò)程想象成用泥土捏制陶器。藝術(shù)家需要一點(diǎn)點(diǎn)塑形,修改任何細(xì)節(jié)都需要重新開(kāi)始或進(jìn)行大幅調(diào)整。而MeshCoder的方法就像是給了我們一份詳細(xì)的制作食譜,只要按照食譜操作,就能做出完美的菜肴,更重要的是,想要調(diào)整口味時(shí),只需要修改食譜中的幾個(gè)參數(shù)即可。
這種轉(zhuǎn)變的核心在于將3D物體表示為Blender Python腳本。Blender是一個(gè)廣泛使用的3D建模軟件,就像是數(shù)字世界的萬(wàn)能工具箱。Python則是一種編程語(yǔ)言,以其簡(jiǎn)潔明了而著稱。當(dāng)這兩者結(jié)合時(shí),就產(chǎn)生了一種全新的3D物體表示方法——不再是靜態(tài)的網(wǎng)格數(shù)據(jù),而是動(dòng)態(tài)的、可編輯的代碼。
研究團(tuán)隊(duì)面臨的第一個(gè)挑戰(zhàn)是現(xiàn)有方法的局限性。傳統(tǒng)的形狀程序生成方法就像是只能用積木搭建房子,只能處理簡(jiǎn)單的幾何形狀,無(wú)法應(yīng)對(duì)現(xiàn)實(shí)世界中復(fù)雜物體的精細(xì)結(jié)構(gòu)。此外,訓(xùn)練這樣的模型需要大量的配對(duì)數(shù)據(jù)——即3D物體和對(duì)應(yīng)代碼的配對(duì)組合,但這樣的數(shù)據(jù)集極其稀少,就像試圖學(xué)習(xí)烹飪卻沒(méi)有足夠的食譜一樣困難。
為了解決這些問(wèn)題,研究團(tuán)隊(duì)設(shè)計(jì)了一套全新的Blender Python API(應(yīng)用程序接口)。這些API就像是一套高級(jí)的數(shù)字雕刻工具,不僅能創(chuàng)建基礎(chǔ)的幾何形狀,還能實(shí)現(xiàn)復(fù)雜的操作。比如,它們可以沿著指定路徑拉伸2D截面形狀來(lái)創(chuàng)建3D物體,就像拉面師傅將面團(tuán)拉成細(xì)條一樣。它們還能在不同形狀之間建立橋接,進(jìn)行布爾運(yùn)算(如合并、相交、相減),甚至可以創(chuàng)建重復(fù)的陣列模式。
在構(gòu)建數(shù)據(jù)集方面,研究團(tuán)隊(duì)采用了一種巧妙的分層策略。他們首先創(chuàng)建了一個(gè)包含約1000萬(wàn)個(gè)部件的合成數(shù)據(jù)集,涵蓋了各種基礎(chǔ)幾何形狀和復(fù)雜構(gòu)造。這個(gè)過(guò)程就像是先學(xué)會(huì)制作各種基礎(chǔ)食材,然后才能烹飪復(fù)雜的菜肴。數(shù)據(jù)集包含五大類別:基礎(chǔ)幾何體(立方體、圓柱體、球體等)、平移幾何體(通過(guò)沿路徑移動(dòng)2D形狀創(chuàng)建)、橋接幾何體(連接不同形狀創(chuàng)建)、布爾幾何體(通過(guò)幾何運(yùn)算創(chuàng)建)和陣列幾何體(重復(fù)模式創(chuàng)建)。
接著,研究團(tuán)隊(duì)訓(xùn)練了一個(gè)部件到代碼的推理模型。這個(gè)模型的作用就像是一位經(jīng)驗(yàn)豐富的工匠,能夠觀察任何單個(gè)部件,然后準(zhǔn)確地寫出制作該部件所需的代碼指令。模型使用了一種稱為三平面標(biāo)記器的技術(shù),將3D點(diǎn)云投影到三個(gè)相互垂直的平面上,然后通過(guò)變換器網(wǎng)絡(luò)處理這些投影,最終生成相應(yīng)的代碼。
有了部件級(jí)別的推理能力后,研究團(tuán)隊(duì)開(kāi)始構(gòu)建完整物體的數(shù)據(jù)集。他們使用Infinigen-Indoor框架生成了大約100萬(wàn)個(gè)物體,涵蓋41個(gè)不同類別,從簡(jiǎn)單的椅子到復(fù)雜的洗碗機(jī)都包含在內(nèi)。每個(gè)物體都被分解成若干個(gè)語(yǔ)義部件,然后使用已訓(xùn)練的部件到代碼模型為每個(gè)部件生成代碼,最后將所有部件代碼按照空間順序組合成完整物體的代碼。
這種組合過(guò)程遵循一個(gè)直觀的排序規(guī)則:從下到上、從左到右、從前到后。就像整理房間時(shí)的自然順序一樣,先處理地面的物品,再處理桌面的,最后處理墻上的。這樣的排序不僅符合人類的認(rèn)知習(xí)慣,也有助于模型學(xué)習(xí)物體的結(jié)構(gòu)層次關(guān)系。
最終的物體到代碼推理模型采用了多模態(tài)大語(yǔ)言模型的架構(gòu),使用Llama-3.2-1B作為基礎(chǔ)模型,并通過(guò)LoRA(Low-Rank Adaptation)技術(shù)進(jìn)行微調(diào)。整個(gè)系統(tǒng)的工作流程就像是一個(gè)智能的建筑師:先通過(guò)三平面標(biāo)記器"觀察"輸入的點(diǎn)云數(shù)據(jù),將其轉(zhuǎn)換為固定長(zhǎng)度的標(biāo)記序列,然后將這些標(biāo)記輸入到大語(yǔ)言模型中,模型就像經(jīng)驗(yàn)豐富的程序員一樣,自動(dòng)生成相應(yīng)的Blender Python腳本。
在實(shí)驗(yàn)驗(yàn)證方面,研究團(tuán)隊(duì)將MeshCoder與兩個(gè)代表性的基線方法進(jìn)行了比較:Shape2Prog和PLAD。實(shí)驗(yàn)結(jié)果表明,MeshCoder在重建精度上顯著優(yōu)于現(xiàn)有方法。具體來(lái)說(shuō),在衡量重建質(zhì)量的兩個(gè)關(guān)鍵指標(biāo)上——L2 Chamfer距離和體素IoU——MeshCoder都取得了最佳成績(jī)。L2 Chamfer距離是衡量?jī)蓚€(gè)點(diǎn)云相似程度的指標(biāo),就像比較兩張照片的像素差異一樣,數(shù)值越小表示重建得越準(zhǔn)確。體素IoU則是將3D物體劃分為小立方體網(wǎng)格后,比較預(yù)測(cè)結(jié)果和真實(shí)結(jié)果的重疊程度,就像拼圖游戲中比較完成度一樣。
MeshCoder的一個(gè)重要優(yōu)勢(shì)是其生成的代碼具有極強(qiáng)的可編輯性。傳統(tǒng)方法生成的是靜態(tài)網(wǎng)格數(shù)據(jù),修改起來(lái)就像要重新雕刻整座雕像一樣困難。而MeshCoder生成的代碼就像是一份詳細(xì)的制作說(shuō)明書,想要修改任何部分都可以通過(guò)簡(jiǎn)單地調(diào)整參數(shù)實(shí)現(xiàn)。比如,想要讓桌面從方形變成圓形,只需要修改一行代碼中的形狀參數(shù);想要調(diào)整浴缸的深度,只需要改變一個(gè)數(shù)值。這種靈活性為設(shè)計(jì)師和工程師提供了前所未有的便利。
除了幾何編輯,MeshCoder還支持拓?fù)渚庉嫞凑{(diào)整網(wǎng)格的精細(xì)程度。這就像調(diào)節(jié)相機(jī)的分辨率一樣,可以根據(jù)需要在存儲(chǔ)空間和細(xì)節(jié)程度之間找到平衡。通過(guò)修改代碼中的分辨率參數(shù),用戶可以輕松控制最終3D模型的復(fù)雜程度,這對(duì)于不同應(yīng)用場(chǎng)景下的性能優(yōu)化極其重要。
更令人驚喜的是,MeshCoder生成的代碼還能夠增強(qiáng)大語(yǔ)言模型對(duì)3D形狀的理解能力。研究團(tuán)隊(duì)進(jìn)行了一系列形狀理解實(shí)驗(yàn),將MeshCoder生成的代碼輸入到GPT-4中,然后詢問(wèn)關(guān)于物體結(jié)構(gòu)的問(wèn)題。結(jié)果顯示,GPT-4能夠準(zhǔn)確回答關(guān)于物體部件數(shù)量、形狀特征和空間關(guān)系的問(wèn)題。這就像給了GPT-4一副"透視眼鏡",讓它能夠"看懂"3D物體的內(nèi)部結(jié)構(gòu)和組成關(guān)系。
在技術(shù)實(shí)現(xiàn)細(xì)節(jié)上,研究團(tuán)隊(duì)使用了AdamW優(yōu)化器進(jìn)行模型訓(xùn)練,在64塊NVIDIA A100 GPU上訓(xùn)練了約一周時(shí)間。他們還采用了數(shù)據(jù)增強(qiáng)技術(shù),包括隨機(jī)旋轉(zhuǎn)、縮放和噪聲添加,以提高模型的魯棒性。這些技術(shù)細(xì)節(jié)雖然復(fù)雜,但確保了模型在面對(duì)各種現(xiàn)實(shí)場(chǎng)景時(shí)都能保持穩(wěn)定的性能。
研究團(tuán)隊(duì)對(duì)模型的各個(gè)組件都進(jìn)行了詳細(xì)的消融實(shí)驗(yàn)。他們發(fā)現(xiàn),三平面投影策略比其他點(diǎn)云編碼方法更有效,能夠更好地保留空間信息。同時(shí),分層訓(xùn)練策略(先訓(xùn)練部件級(jí)模型,再訓(xùn)練物體級(jí)模型)比端到端訓(xùn)練更加穩(wěn)定,能夠產(chǎn)生更高質(zhì)量的結(jié)果。
盡管取得了顯著成果,研究團(tuán)隊(duì)也誠(chéng)實(shí)地指出了當(dāng)前方法的局限性。MeshCoder主要針對(duì)人工制造的物體設(shè)計(jì),對(duì)于有機(jī)形狀(如動(dòng)物、植物)的處理能力相對(duì)有限。這是因?yàn)橛袡C(jī)形狀往往缺乏明確的幾何規(guī)律,難以用程序化的方式精確描述。不過(guò),研究團(tuán)隊(duì)表示,這為未來(lái)的研究方向提供了明確的目標(biāo)。
從實(shí)際應(yīng)用角度來(lái)看,MeshCoder的潛在影響是巨大的。在游戲開(kāi)發(fā)領(lǐng)域,它可以大大加速場(chǎng)景建模的過(guò)程,讓設(shè)計(jì)師能夠快速生成可編輯的游戲資產(chǎn)。在建筑設(shè)計(jì)中,它可以幫助建筑師將概念草圖快速轉(zhuǎn)換為可修改的3D模型。在制造業(yè),它可以用于逆向工程,將實(shí)物快速轉(zhuǎn)換為可編輯的CAD模型。
此外,MeshCoder生成的代碼具有很好的版本控制特性。就像軟件代碼可以通過(guò)Git等工具進(jìn)行版本管理一樣,3D模型的代碼表示也可以輕松地進(jìn)行版本控制、協(xié)作編輯和變更追蹤。這對(duì)于需要多人協(xié)作的大型項(xiàng)目來(lái)說(shuō)是極其valuable的功能。
研究團(tuán)隊(duì)還展示了MeshCoder在教育領(lǐng)域的潛在價(jià)值。通過(guò)將復(fù)雜的3D模型轉(zhuǎn)換為可讀的代碼,學(xué)生可以更好地理解3D建模的原理和過(guò)程。這種"代碼即教程"的方式比傳統(tǒng)的鼠標(biāo)點(diǎn)擊式教學(xué)更加直觀和系統(tǒng)。
值得注意的是,MeshCoder生成的代碼還包含了豐富的語(yǔ)義信息。每個(gè)部件都被明確標(biāo)注了其功能和名稱,比如"椅子腿"、"桌面"、"扶手"等。這種語(yǔ)義標(biāo)注不僅有助于人類理解和編輯,也為后續(xù)的智能應(yīng)用提供了基礎(chǔ)。比如,可以基于這些語(yǔ)義信息開(kāi)發(fā)自動(dòng)裝配系統(tǒng),或者進(jìn)行功能性分析。
從技術(shù)演進(jìn)的角度來(lái)看,MeshCoder代表了從"表示學(xué)習(xí)"到"程序合成"的重要轉(zhuǎn)變。傳統(tǒng)的3D深度學(xué)習(xí)方法主要關(guān)注如何更好地表示3D數(shù)據(jù),而MeshCoder則專注于如何生成能夠重現(xiàn)3D數(shù)據(jù)的程序。這種轉(zhuǎn)變不僅提高了結(jié)果的可解釋性,也為后續(xù)的編輯和修改提供了便利。
研究團(tuán)隊(duì)的實(shí)驗(yàn)還揭示了一個(gè)有趣的現(xiàn)象:代碼表示比傳統(tǒng)的幾何表示更容易被大語(yǔ)言模型理解和處理。這可能是因?yàn)榇a本身就是一種結(jié)構(gòu)化的語(yǔ)言,與大語(yǔ)言模型的訓(xùn)練數(shù)據(jù)更加兼容。這一發(fā)現(xiàn)為未來(lái)將大語(yǔ)言模型應(yīng)用于3D建模和設(shè)計(jì)提供了新的思路。
在數(shù)據(jù)效率方面,MeshCoder也展現(xiàn)出了優(yōu)勢(shì)。雖然訓(xùn)練需要大量的數(shù)據(jù),但一旦訓(xùn)練完成,模型就能夠處理各種未見(jiàn)過(guò)的物體類型。這種泛化能力來(lái)自于程序化表示的抽象性——相同的程序結(jié)構(gòu)可以通過(guò)不同的參數(shù)生成完全不同的物體。
展望未來(lái),研究團(tuán)隊(duì)提出了幾個(gè)潛在的發(fā)展方向。首先是擴(kuò)展到更多類型的3D內(nèi)容,包括有機(jī)形狀和復(fù)雜場(chǎng)景。其次是提高代碼的抽象程度,開(kāi)發(fā)更高級(jí)的程序構(gòu)造來(lái)處理更復(fù)雜的幾何關(guān)系。第三是與其他生成式AI技術(shù)的結(jié)合,比如通過(guò)文本描述直接生成3D物體的代碼。
這項(xiàng)研究的成果不僅推進(jìn)了計(jì)算機(jī)圖形學(xué)和人工智能的發(fā)展,也為數(shù)字化制造、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)等應(yīng)用領(lǐng)域帶來(lái)了新的可能性。隨著技術(shù)的進(jìn)一步成熟,我們可能會(huì)看到3D建模工作流程的根本性改變,從傳統(tǒng)的交互式建模轉(zhuǎn)向更加智能化、自動(dòng)化的程序生成方式。
說(shuō)到底,MeshCoder最大的貢獻(xiàn)在于為3D建模帶來(lái)了一種全新的思維方式。它告訴我們,3D物體不僅可以被"看到"和"觸摸",還可以被"閱讀"和"編寫"。這種轉(zhuǎn)變就像從觀看電影到閱讀劇本一樣,雖然最終呈現(xiàn)的內(nèi)容相同,但理解和創(chuàng)作的方式卻完全不同。對(duì)于設(shè)計(jì)師、工程師和研究人員來(lái)說(shuō),這意味著他們有了一種全新的工具來(lái)理解、創(chuàng)造和修改3D世界。
Q&A
Q1:MeshCoder是什么?它與傳統(tǒng)3D建模方法有何不同?
A:MeshCoder是上海人工智能實(shí)驗(yàn)室開(kāi)發(fā)的AI系統(tǒng),能將3D物體的點(diǎn)云數(shù)據(jù)自動(dòng)轉(zhuǎn)換成可編輯的Blender Python代碼。與傳統(tǒng)方法相比,它生成的不是靜態(tài)網(wǎng)格,而是像食譜一樣的代碼指令,可以通過(guò)修改參數(shù)輕松調(diào)整物體的形狀、大小和細(xì)節(jié),就像修改程序代碼一樣簡(jiǎn)單。
Q2:MeshCoder生成的代碼可以用來(lái)做什么?
A:生成的代碼可以直接在Blender軟件中執(zhí)行來(lái)重建3D物體,還支持靈活編輯。比如可以通過(guò)修改幾個(gè)參數(shù)將方桌變成圓桌,調(diào)整浴缸深度,改變網(wǎng)格精細(xì)程度等。這種代碼表示方式特別適合游戲開(kāi)發(fā)、建筑設(shè)計(jì)、制造業(yè)的逆向工程等需要頻繁修改3D模型的應(yīng)用場(chǎng)景。
Q3:MeshCoder的技術(shù)原理是怎樣的?
A:系統(tǒng)采用分層訓(xùn)練策略,先用1000萬(wàn)個(gè)合成部件訓(xùn)練部件識(shí)別模型,再用100萬(wàn)個(gè)完整物體訓(xùn)練整體推理模型。輸入的3D點(diǎn)云通過(guò)三平面投影技術(shù)轉(zhuǎn)換為標(biāo)記序列,然后由基于Llama-3.2-1B的大語(yǔ)言模型生成相應(yīng)的Python代碼,整個(gè)過(guò)程就像智能建筑師觀察物體后寫出制作說(shuō)明書。
關(guān)于我們|版權(quán)聲明| 違法和不良信息舉報(bào)電話:010-84151598 | 網(wǎng)絡(luò)敲詐和有償刪帖舉報(bào)電話:010-84151598
Copyright ? 2008-2024 by {當(dāng)前域名}. all rights reserved