One-shot Compositional 3D Head Avatars with Deformable Hair
單圖生成 3D 數位人新突破!結合臉髮解耦架構與 500 頂點輕量網格,成功實現逼真毛髮動態。
- 首創單圖 3D 頭部生成中的臉髮解耦架構,獨立處理面部表情與頭髮變形。
- 利用不到 500 個頂點的輕量網格結合 PBD 物理引擎,模擬真實重力與慣性。
- 創新提出代理碰撞約束機制,有效解決 3D 髮絲動態時與臉部穿模的技術痛點。
僅憑一張靜態照片,就能生成具備真實毛髮動態的 3D 數位人?西安交通大學團隊提出全新單樣本重建技術,首創「頭臉與毛髮解耦」架構,利用不到 500 個頂點的輕量網格與實時物理引擎,徹底解決過往 3D 模型「髮臉沾黏」的僵硬破綻。
突破單圖生成 3D 數位人瓶頸:臉髮沾黏難題
建立具備高保真度且可動畫控制的 3D 頭部數位人,在虛擬試穿、遊戲與虛擬實境等沉浸式應用中扮演著關鍵角色。過往的主流技術高度依賴實驗室環境下拍攝的多視角影片來進行個人化建模,這大幅限制了技術在現實世界中的普及性。近期,許多研究開始轉向僅需單張或少量日常照片的重建方法,利用大規模預訓練模型提供的先驗知識,直接回歸出具備表現力的 3D 表徵。
這類基於先驗知識的單圖方法雖然提升了便利性,卻往往在個人專屬細節上做出妥協,難以重現每個人獨特的面部幾何與紋理特徵。更嚴重的是,多數現有模型將臉部與毛髮視為一個不可分割的整體來進行聯合建模。這種忽略人體頭部可拆解特性的做法,導致在進行動畫驅動或生成新視角時,頭髮無法產生獨立的物理動態,甚至會隨著眉毛或下巴的動作出現不自然的扭曲與渲染瑕疵。
為解決上述痛點,研究團隊提出了一套完全複合式、可控且可動畫化的 3D 頭部重建流程。該方法不僅能從單一正面圖像重建高解析度細節,更透過明確分離臉部與毛髮組件,讓這兩個部分在動畫中受控於不同的變形機制。這使得生成的虛擬人在執行大幅度頭部運動或複雜表情時,毛髮依然能維持符合物理直覺的自然狀態。
雙重 3DGS 重建與 FLAME 臉部綁定技術
整個重建流程始於對單張正面肖像照的預處理操作。系統首先呼叫 2D 影像編輯模型,將原始照片轉換為一張去除了頭髮的「光頭」版本影像。接著,原始影像與光頭影像會同時輸入名為 FaceLift 的演算法,分別被提升為緻密且細節豐富的靜態 3DGS(基於高斯橢球的 3D 渲染技術) 表徵。這種從圖像直接提升為 3D 結構的策略,能最大程度保留原始照片中的幾何與高頻紋理細節。
取得光頭版本的 3DGS 後,團隊利用一個基於大規模資料集預訓練的先驗模型來提供綁定資訊。透過聯合重建與非剛性配準技術,靜態的光頭高斯點雲被精準綁定到 FLAME(通用 3D 人臉參數化模型) 網格上。綁定完成後,光頭部分的 3D 高斯橢球便能自然地跟隨 FLAME 網格表面的三角形面片進行變形。
在配準過程中,系統也順勢補齊了單張照片無法捕捉到的內部結構。每個處於全域空間中的光頭高斯原語,會被轉換到其最近鄰先驗高斯點所屬的三角形局部座標系中。隨後,利用 FLAME 面片索引,系統從先驗模型中提取對應的牙齒與眼球部位,替換掉光頭 3DGS 中缺失的區塊,藉此拼湊出完整無缺且可受表情參數驅動的頭部基礎。
結合 SAM2 的邊界感知毛髮分離與提取
處理完臉部基礎後,下一個挑戰是如何從帶有頭髮的原始 3DGS 場景中,乾淨地分離出毛髮點雲。為此,團隊採用了語意標籤監督機制。他們首先在虛擬球體上均勻採樣多個視角,渲染出多張初始頭部影像,並運用 SAM2(新一代通用圖像分割模型) 取得這些視角下的頭髮與非頭髮二元語意遮罩。
每個 3D 高斯橢球都被賦予了一個可學習的低維度屬性向量。透過可微分特徵渲染,模型將這個向量投影到 2D 畫面上,並與 SAM2 產生的標籤進行比對與損失計算。經過少數幾次最佳化迭代後,系統只要對學習到的特徵套用分類運算,就能順利解耦出專屬於毛髮的 3D 高斯集合。
由於 2D 語意標籤在像素邊緣難免存在誤差,初步提取的毛髮高斯集合中,經常混雜著殘留的皮膚高斯點。團隊對此提出了一套邊界感知重新分配策略。該策略結合 2D 邊界與深度資訊,將毛髮高斯劃分為邊界與非邊界兩個子集;接著以非邊界毛髮與光頭高斯作為兩個基準中心,根據每個高斯原語的顏色與縮放特徵重新分類,徹底清除誤判的皮膚原語。
輕量網格與 PBD 物理引擎驅動的髮絲動態
對於短髮造型的目標人物而言,只要將毛髮高斯定義在最近的頭皮網格局部座標中,使其隨頭部剛性移動,就已經能構成完整的 3D 頭部數位人。但對於長髮角色來說,單純的剛性變形絕對無法呈現出真實效果。因此,團隊針對長髮設計了一套純粹由物理模擬驅動的變形控制框架,完全不需依賴龐大的機器學習訓練。
系統首先針對密集的毛髮點雲進行體素化操作,建構出一個頂點數不到 500 個的防水粗糙控制網格。接著,運用 MVC(用於網格變形的空間插值算法) 計算出每個毛髮高斯點對應於網格頂點的權重。這種輕量化設計帶來極高的運算效率,由於毛髮高斯點通常呈現細長橢球狀,變形時只需調整其主軸的端點位置並更新長度比例,就能快速重塑形態。
為了讓網格產生符合真實物理法則的動態,團隊導入了 PBD(遊戲引擎常用的即時物理模擬) 技術。靠近頭皮的頂點被設定為受頭部運動控制的運動學粒子;其餘懸空的頂點則作為自由粒子,受到重力拉扯並透過幾何約束投影來更新最終狀態,完美重現了髮根帶動髮梢、因慣性甩動並自然回彈的物理現象。
代理碰撞約束:解決 3D 髮絲穿模的關鍵設計
在模擬物理動態時,防範毛髮穿透臉部或頭皮是維持視覺合理性的關鍵。然而,團隊構建的粗糙控制網格並未緊密貼合底層的 3D 高斯點雲,兩者之間無可避免存在間隙。如果直接套用傳統碰撞偵測,讓網格頂點與 FLAME 網格表面進行判定,往往會產生不準確的推擠結果。
若直接使用預測的網格頂點位置來計算碰撞,頂點會被沿著 FLAME 表面的法線方向向外強推。因為網格與高斯點雲之間本來就有空隙,這種強推會導致渲染出來的髮絲與皮膚之間出現過大的懸空距離。為解決這項工程難題,團隊創新引入了「代理碰撞約束」機制。
在網格初始化階段,系統會為每個網格頂點分配一個針對高斯點的 MVC 權重。進行位置預測後,系統不直接用網格頂點算碰撞,而是利用權重計算出對應的「代理粒子」位置。這個代理粒子能更準確地代表 3D 高斯橢球的真實預期位置。只有當代理粒子真正陷入 FLAME 網格內部時,碰撞修正才會介入,忠實保留了頭髮貼合皮膚時應有的自然緊密度。
透過分離臉皮與毛髮並導入輕量物理網格,單圖 3D 數位人不僅保留極致靜態細節,更首度實現低算力下的真實髮絲飄逸。