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