AIxiv專欄是機器之心釋出學術、技術內容的欄目。過去數年,機器之心AIxiv專欄接收報導了2000多篇內容,覆蓋全球各大高校與企業的頂級實驗室,有效促進了學術交流與傳播。如果您有優秀的工作想要分享,歡迎投稿或者聯絡報導。投稿郵箱:liyazhou@jiqizhixin.com;zhaoyunfeng@jiqizhixin.com
- 專案主頁:https://tau-yihouxiang.github.io/projects/X-Ray/X-Ray.html
- 論文地址:https://arxiv.org/abs/2404.14329
- 程式碼地址:https://github.com/tau-yihouxiang/X-Ray
- 資料集:https://huggingface.co/datasets/yihouxiang/X-Ray
如今的生成式AI在人工智慧領域迅猛發展,在計算機視覺中,影像和影片生成技術已日漸成熟,如Midjourney、Stable Video Diffusion [1]等模型廣泛應用。然而,三維視覺領域的生成模型仍面臨挑戰。目前的3D模型生成技術通常基於多角度影片生成和重建,如SV3D模型[2],透過生成多角度影片並結合神經輻射場(NeRF)或者3D高斯渲染模型(3D Gaussian Splatting)技術逐步構建3D物體。這種方法主要限制在只能生成簡單的、無自遮擋的三維物體,且無法呈現物體內部結構,使得整個生成過程複雜而且不完美,顯示出該技術的複雜性和侷限性。究其原因,在於目前缺乏靈活高效且容易泛化的3D Representation (3D表示)。X射線能夠穿透並記錄關鍵物體內外表面資訊,受到這個啟發,新加坡國立大學(NUS)胡濤博士帶領研究團隊釋出了一種全新的3D表示—X-Ray,它能夠序列化地表示從相機攝像角度看過去的物體的逐層次的物體表面形狀和紋理,可以充分利用影片生成模型的優勢來生成3D物體,可以同時生成物體的內外3D結構。本文將詳細展示X-Ray技術的原理、優勢及其廣泛的應用前景。X-Ray表示:從相機中心開始朝向物體方向的H×W個矩陣點發射射線。在每條射線方向上,逐個記錄與物體的表面相交點的L個包含深度、法向量和顏色等的三維屬性資料,然後將這些資料組織成L×H×W的形式,實現任意3D模型的張量表示,這就是該團隊提出的X-Ray表示方法。值得注意的是,該表示形式與影片格式一樣,因此可以用影片生成模型做3D生成模型。具體過程如下。給定一個3D模型,通常是三維網格,首先設定一個相機觀測該模型,然後透過光線投影演算法(Ray Casting Algorithm)來記錄每個相機射線與物體相交的所有表面的屬性,包括該表面的深度,法向量,顏色等,為了指示方便,用表示該位置是否存在表面。然後,獲取所有相機射線等相交表面點,即可得到一個完整的X-Ray 3D表達,如下表示式和圖3所示。透過編碼過程,將一個任意的3D模型轉化為X-Ray,它和影片格式是一樣的,並且具有不同的幀數,通常情況下,幀數L=8 足夠表示一個3D物體。給定一個X-Ray,也可以透過解碼過程轉化回3D模型,這樣只需要透過生成X-Ray即可生成3D模型。具體過程包括點雲生成過程和點雲重建表面兩個過程。- X-Ray到點雲:X-Ray很容易轉化為點雲,該點雲中的每個點除了有3D點的位置座標,還具有顏色和法向量資訊。
其中r_0,r_d分別是相機射線的起點和歸一化方向,透過對每個相機射線的處理,就可以獲得一個完整的點雲。- 點雲到三維網格:接下來就是將點雲轉化為三維網格的過程,這是一個被研究了很多年的技術,因為這些點雲具有法向量,所以採用Screened Poisson 演算法直接將點雲轉化為三維網格模型,即最終的3D模型。
為了生成高解析度的多樣3D X-Ray模型,該團隊使用了與影片格式相似的影片擴散模型架構。這個架構可以處理連續的3D資訊,並透過上取樣模組來提高X-Ray的質量,生成高精度的3D輸出。擴散模型負責從噪聲資料逐步生成細節豐富的3D影像,上取樣模組則增強影像解析度和細節,以達到高質量標準。結構具體如圖4所示。擴散模型在X-Ray生成中使用潛在空間,通常需要自定義開發向量量化-變分自編碼器(VQ-VAE)[3] 進行資料壓縮,這一缺少現成模型的過程增加了訓練負擔。為有效訓練高解析度生成器,該團隊採用了級聯合成策略,透過技術如Imagen和Stable Cascaded,從低到高解析度逐步訓練,以適應有限的計算資源並提高X-Ray影像質量。具體而言,使用Stable Video Diffusion中的3D U-Net架構作為擴散模型,生成低解析度X-Ray,並透過時空注意機制從2D幀和1D時間序列中提取特徵,增強處理和解釋X-Ray能力,這對高質量結果至關重要。前一階段的擴散模型僅能從文字或其他影像生成低解析度的X-Ray影像。在隨後的階段,著重提升這些低解析度X-Ray至更高解析度。該團隊探索了兩種主要方法:點雲上取樣和影片上取樣。由於已經獲得了形狀和外觀的粗糙表示,將這些資料編碼成帶有顏色和法線的點雲是一個很直接的過程。然而,點雲表示結構過於鬆散,不適合進行密集預測,傳統的點雲上取樣技術通常只是簡單增加點的數量,這對於提升諸如紋理和顏色等屬性可能不夠有效。為了簡化流程並確保整個管道的一致性,選擇使用影片上取樣模型。這個模型改編自Stable Video Diffusion(SVD)的時空VAE解碼器,專門從頭開始訓練,以4倍的因子上取樣合成的X-Ray幀,同時保持原始的層數。解碼器能夠在幀級和層級上獨立進行注意力操作。這種雙層注意力機制不僅提高了解析度,還顯著改善了影像的整體質量。這些功能使得影片上取樣模型成為在高解析度X-Ray生成中更加協調和有效的解決方案。 圖4:基於X-Ray表示的3D模型生成框架,包括X-Ray擴散模型與X-Ray上取樣模型。實驗使用了Objaverse資料集的一個篩選子集,從中移除了缺少紋理和不充分提示的條目。這個子集包含超過60,000個3D物件。對於每個物件,隨機選擇4個攝像機視角,覆蓋從-180到180度的方位角和從-45到45度的仰角,攝像機到物件中心的距離固定為1.5。然後使用Blender軟體進行渲染,並透過trimesh庫提供的光線投射演算法生成相應的X-Ray。透過這些過程,可以建立超過240,000對影像和X-Ray資料集來訓練生成模型。X-Ray擴散模型基於Stable Video Diffusion (SVD) 中使用的時空UNet架構,進行了輕微調整:模型配置為合成8個通道:1個命中通道,1個深度通道和6個法線通道,與原始網路的4個通道相比。鑑於X-Ray成像與傳統影片之間的顯著差異,從頭開始訓練模型,以彌補X-Ray與影片領域之間的大差距。訓練在8個NVIDIA A100 GPU伺服器上進行了一週。在此期間,學習率保持在0.0001,使用AdamW最佳化器。由於不同的X-Ray具有不同數量的層,將它們填充或裁剪到相同的8層,以便更好地批處理和訓練,每層的幀尺寸為64×64。對於上取樣模型,第L層的輸出仍然是8,但每個幀的解析度提高到256×256,增強了放大X-Ray的細節和清晰度,結果如圖5和圖6所示。隨著機器學習和影像處理技術的不斷進步,X-Ray的應用前景無限廣闊。未來,這種技術可能會與擴增實境(AR)和虛擬現實(VR)技術結合,為使用者創造出完全沉浸式的3D體驗。教育和訓練領域也可以從中受益,例如透過3D重建提供更為直觀的學習材料和模擬實驗。此外,X-Ray技術在醫療影像和生物技術領域的應用,可能改變人們對複雜生物結構的理解和研究方法。期待它如何改變與三維世界的互動方式。 參考文獻:
[1] Andreas Blattmann, Tim Dockhorn, Sumith Kulal, Daniel Mendelevitch, Maciej Kilian, Dominik Lorenz, Yam Levi, Zion English, Vikram Voleti, Adam Letts, Varun Jampani, and Robin Rombach. Stable video diffusion: Scaling latent video diffusion models to large datasets. CoRR, 2023.
[2] Vikram Voleti, Chun-Han Yao, Mark Boss, Adam Letts, David Pankratz, Dmitry Tochilkin, Christian Laforte, Robin Rombach, Varun Jampani. SV3D: Novel Multi-view Synthesis and 3D Generation from a Single Image using Latent Video Diffusion. arXiv preprint arXiv:2403.12008, 2024.
[3] Aaron van den Oord, Oriol Vinyals, Koray Kavukcuoglu. Neural Discrete Representation Learning. NeurIPS-2017.
[4] Tao Hu, Wenhang Ge, Yuyang Zhao, Gim Hee Lee. X-Ray: A Sequential 3D Representation for Generation. arXiv preprint arXiv: 2404.14329v1, 2024.