蕭簫 發自 凹非寺
量子位 | 公眾號 QbitAI
【資料圖】
用上擴散模型,3D物體生成紋理 一句話 就能搞定!
像是輸入“一張帶有棕色和黑色幾何圖案的椅子”,擴散模型就能立刻給它復個古,貼上頗具年代感的紋理:
甚至只是丟給它一張看不出桌面長啥樣的“截圖”,AI也能立刻憑借想象力,給桌面加上木質的細節紋理:
要知道, 給3D物體加上紋理 ,可不只是“變變顏色”這么簡單。
它包含粗糙度、反射、透明、漩渦、泛光等大量參數,要想設計好不僅需要了解材質、燈光、渲染等知識,還需要反復測試渲染效果并修改。如果材質有變,更是可能“重頭來過”。
然而,此前用AI設計出來的紋理又“不太能看”,因此設計紋理一直費時費力,成本也比較高。
現在,來自港大、港中文和TCL的研究人員,搞出了一種AI設計3D物體紋理的新方法,不僅完美保留物體之前的形狀,而且設計出來的紋理真實感更強、完美貼合物體表面。
目前這項研究已經被ICCV 2023收錄Oral論文。
這究竟是怎么做到的?我們一起來看看。
此前用AI設計3D紋理,主要存在兩類問題。
一類是生成的紋理不真實,細節有限:
另一類是生成過程中會對3D物體本身的幾何做特殊處理,使得生成的紋理無法和原物體完美貼合,會“冒出”奇怪的形狀:
因此,為了能確保3D物體結構穩定、同時生成細節逼真的紋理,這項研究設計了一個名叫 Point-UV diffusion 的框架。
這個框架包含“粗設計”和“精加工”兩個模塊,都基于 擴散模型 打造,不過二者用到的擴散模型有所不同。
首先在“粗設計”模塊中,訓練一個以形狀特征 (包括表面法線、坐標和遮罩) 為輸入條件的3D擴散模型,用來預測物體形狀中每個點的顏色,從而生成一個粗糙紋理圖像效果:
然后在“精加工”模塊中,又設計了一個2D擴散模型,進一步將之前生成的粗糙紋理圖像和物體形狀作為輸入條件,用來生成更加精細的紋理:
之所以采取這種設計結構,是因為之前的高分辨率點云生成方法,計算成本通常過高。
用這種兩階段生成的方法,不僅節省了計算成本,讓兩個擴散模型“各司其職”,而且相比之前的方法,不僅保留了原來3D物體的結構,生成的紋理也要更加精細。
至于通過輸入文字或圖片控制生成效果,則是 CLIP 的“功勞”。
針對輸入,作者會先用預訓練的CLIP模型提取文本或圖像embeddings,然后將它輸入一個MLP模型中,最終將條件整合進“粗設計”和“精加工”兩階段的網絡中。
這樣一來,就能實現通過文字和圖像控制生成的紋理,從而得到最終輸出結果。
所以,這樣的模型實現效果究竟如何?
先來看看Point-UV diffusion的生成效果。
從效果圖中可見,除了桌椅,Point-UV diffusion同樣還能生成汽車等物體的紋理,種類更豐富:
不僅能根據文字生成紋理:
也能根據一張圖像生成對應物體的紋理效果:
除此之外,作者們還將Point-UV diffusion生成紋理效果與之前的方法做了個對比。
從圖中可見,與Texture Fields、Texturify、PVD-Tex等其他紋理生成模型相比,Point-UV diffusion在結構和精細度上都表現出了更好的效果。
作者還提到,同樣硬件配置下,相比Text2Mesh需要10分鐘的計算,Point-UV diffusion只需要 30秒 。
不過,作者也提到了Point-UV diffusion目前還存在的一些局限之處,例如當UV貼圖存在太多“碎片化”的部分時,它還是無法生成無縫的紋理效果。此外,由于依賴3D數據進行訓練,而3D 數據的精細化質量和數量目前還不能達到2D 數據的水平,生成的效果暫時還無法達到像2D圖像生成那么精細化的效果。
對這項研究感興趣的小伙伴,可以戳下方論文看看~
論文地址: /Point-UV-Diffusion/paper/point_uv_
項目地址(還在施工中): /CVMI-Lab/Point-UV-Diffusion
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態
關鍵詞: