史上最快3D數字人生成器:半小時完成訓練,渲染僅需16毫秒,蘋果出品

克雷西 發自 凹非寺

之前要兩天才能訓練好的數字人,現在只用半小時就能完成了!

到了推理階段,更是隻要16毫秒,就能得到動作流暢、細節到位的場景視訊。

而且無需複雜的取樣和建模,只要隨便拍一段50-100幀的視訊就足夠了,換算成時間不過幾秒鐘。

這正是由蘋果聯合德國馬普所推出的,基於高斯函數的3D數字人合成工具HUGS

它可以從一段簡單的視訊當中提取出人物骨骼,從而合成數字分身並驅動它做出任意動作。

這個數字人可以絲滑地融合到其他場景,甚至幀率還能超越原始素材,達到60FPS。

,達到60FPS

Hugging Face的「首席羊駝官」Omar Sanseviero看到後,也給HUGS送上了hug。

那麼,HUGS可以實現怎樣的效果呢?

那麼,HUGS可以實現怎樣的效果呢?

100倍速生成60FPS視訊

從下面這張動圖可以看出,新生成的數字人可以在不同於訓練素材的場景中做出不同的動作。

而新合成的畫面也比原始素材更加流暢——儘管原素材只有24FPS,但HUGS合成的視訊幀率達到了60FPS。

同時,HUGS也支持把多個人物融合進同一個場景。

細節刻畫上,HUGS也比Neuman和Vid2Avatar這兩個前SOTA更清晰細膩,也更加真實。

如果放到規範空間中,Neuman和HUGS的細節對比將變得更加明顯。

測試資料上看,HUGS在NeuMan資料集的五個場景中的PSNR和SSIM評分都達到了SOTA水平,LPIPS誤差則處於最低位。

在ZJU Mocap資料集上,針對5個不同受試者,HUGS也都超越了NerualBody、HumanNeRF等Baseline方法。

速度方面,HUGS的訓練只需半小時就能完成,而此前最快的VidAvtar也要48小時,速度提升了近百倍。

渲染速度也是如此,用Baseline方法進行渲染需要2-4分鐘,但HUGS只用16.6毫秒就能完成,比人眨眼的速度還快。(下圖為對數座標系)

那麼,HUGS是如何實現既迅速又細膩地生成3D數字人的呢?

像搭積木一樣渲染

HUGS首先將人物和場景分別轉化為3D高斯斑點

其中,人物部分的高斯斑點由三個多層感知機(MLP)來預測,並通過SMPL(一種人體形狀模型)進行初始化。

SMPL可以用極少的參數建立實體人物到三維網格的對映,只需要10個主要參數就可以表示99%的人體形狀變化。

同時,為了刻畫頭髮和衣服等細節,HUGS也允許高斯函數在一定程度上偏離SMPL。

場景的高斯斑點通過特徵三平面提供的位置編碼,由多個MLP預測得到。

得到人體和場景模型的高斯斑點後,研究者對它們進行了聯合最佳化

得到的高斯斑點還會被進行克隆和拆分,從而增大斑點密度,不斷接近真實的目標幾何表面,這一過程稱為Densify

此外,研究人員還引入了線性混合動畫(LBS)技術,在運動過程中對高斯斑點進行驅動。

轉換為高斯斑點形式後,研究人員訓練了神經網路對高斯函數的屬性進行預測,形成真實的人體形狀。

同時,神經網路還定義了高斯函數與人體骨骼的綁定關係,從而實現人物的運動。

這樣,HUGS的渲染過程就像搭積木一樣,不需要重新調用神經網路,從而實現了高速渲染。

消融實驗結果表明,LBS、Densify和三平面MLP都是HUGS中的重要環節,缺少任何一個都會對合成效果造成影響。

而人物與場景的聯合最佳化,同樣是實現剛好融合效果的關鍵因素。

One More Thing

蘋果產生研究數字人的想法已經有一段時間了。

在蘋果MR頭顯Apple Vision Pro中,就出現過高細節版本的數字分身概念——

在FaceTime通話時,頭顯可以創建一個「數字人」,並用它來代表使用者。

那麼,對蘋果的這個「數字人生成器」,你怎麼看呢?

論文地址:

https://arxiv.org/abs/2311.17910

參考連結:

[1]https://appleinsider.com/articles/23/12/19/apple-isnt-standing-still-on-generative-ai-and-making-human-models-dance-is-proof

[2]https://twitter.com/anuragranj/status/1737173861756485875/

Source

Visited 6 times, 1 visit(s) today
Subscribe
Notify of
guest
0 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x