360度無死角!UC伯克利華人發布3DHM框架:一張圖片即可模仿任意視頻動作
輸入一張任意姿勢的照片,想讓照片里的人跟隨「指定視頻」來進行動作模仿并不簡單,除了肢體動作的模仿外,模型還需要對運動過程中衣服、人物外觀的變化進行建模。
圖片
如果輸入圖像是正面的,而模仿的視頻動作包括轉身的話,模型還需要「想象」出衣服的背面樣子,以及衣服在轉動過程中飄起的樣子。
為了解決這個問題,來自加州大學伯克利分校的研究人員提出了一個兩階段的、基于擴散模型的框架3DHM,通過從單個圖像完成紋理圖來合成3D人體運動,然后渲染3D人體以模仿視頻中actor的動作。
圖片
論文地址:https://arxiv.org/abs/2401.10889
3DHM模型中包含兩個核心組件:
1. 學習人體和服裝中不可見部分的先驗知識。
研究人員使用填充擴散(in-filling diffusion)模型,在給定的單張圖像中想象(hallucinate)出不可見部分,然后在紋理圖空間(texture map space)上訓練該模型,在姿勢和視點不變的條件下提升采樣效率。
2. 使用適當的服裝和紋理渲染出不同的身體姿勢。
研究人員開發了一個基于擴散模型的渲染pipeline,由3D人體姿勢控制,從而可以生成目標人物在不同姿勢下的逼真渲染,包括衣服、頭發和看不見區域下的合理填充。
該方法可以生成一系列忠實于目標運動的3D姿態、在視覺上與輸入更相似的圖像;3D控件還能夠使用各種合成相機軌跡來渲染人物。
實驗結果表明,相比以前的方法,該方法在生成長時間運動和各種高難度的姿勢上更有彈性(resilient)。
合成運動中的人物
圖片
紋理貼圖涂色(Texture map Inpainting)
第一階段模型的目標是通過涂色模仿者的不可見區域,生成可信的完整紋理貼圖。
研究人員首先將三維網格渲染到輸入圖像上,然后按照4DHumans的方法對每個可見三角形進行顏色采樣,從而提取部分可見的紋理圖。
輸入(input)
先利用一種常用的方法來推斷像素到表面的對應關系,從而建立一個不完整的UV紋理圖,用于從單張RGB圖像中提取三維網格紋理。同時計算可見性掩碼,以顯示哪些像素在3D中可見,哪些不可見。
目標(target)
由于建模的目的是生成完整的紋理貼圖,因此使用視頻數據生成偽完整紋理貼圖。
由于4DHumans可以隨著時間的推移追蹤人物,因此會不斷更新其內部紋理圖,將其表示為可見區域的移動平均值。
但為了生成更清晰的圖像,研究人員發現中值濾波比移動平均法更適合生成任務;雖然該技術可以應用于任何視頻中,但在本階段使用的是2,205個人類視頻,對于每段人類視頻,首先從每幀視頻中提取部分紋理圖。
由于每段視頻都包含360度的人類視角,因此從整段視頻中計算出一個偽完整紋理圖,并將其設置為第1階段的目標輸出,具體來說是提取視頻紋理圖可見部分的整體中值。
模型(Model)
研究人員直接在Stable Diffusion Inpainting模型上進行微調,該模型在圖像補全任務中表現出色。
圖片
輸入部分紋理貼圖和相應的可見度掩碼,然后得到復原的人類預測貼圖;鎖定文本編碼器分支,并始終將「真人」(real human)作為固定穩定擴散模型的輸入文本。訓練好的模型稱為 Inpainting Diffusion
人體渲染(Human Rendering)
第二階段的目標是獲得一個模仿actor動作的人的逼真渲染效果。
雖然中間渲染(根據演員的姿勢和階段1中的紋理貼圖渲染)可以反映人體的各種動作,但這些SMPL網格渲染是緊貼人體的,無法表現出服裝、發型和體形的逼真渲染效果。
例如,如果輸入一個女孩穿著裙子跳舞的場景,中間的渲染可能是「跳舞」,但SMPL網格渲染卻無法將裙子做成動畫。
為了以完全自監督的方式訓練模型,研究人員假定actor就是模仿者,畢竟一個好的actor應該是一個好的模仿者;然后就可以從4DHumans中獲取任意視頻和姿勢序列,再獲取任意單幀,并從階段1中獲取完整的紋理貼圖,通過在三維姿勢上渲染紋理貼圖來獲取中間渲染圖。
有了中間渲染圖和真實RGB圖像的配對數據后,就可以收集大量的配對數據作為條件來訓練第二階段擴散模型。
輸入(Input)
首先將第1階段生成的紋理貼圖(完全完整)應用到actor的三維身體網格序列中,并對模仿者執行演員動作的過程進行中間渲染。
需要注意的是,此時的中間渲染只能反映與三維網格相匹配的服裝(貼身衣物),而無法反映SMPL身體以外的紋理,如裙子、冬季夾克或帽子的膨脹區域。
為了獲得具有完整服裝紋理的人體,研究人員將獲得的中間渲染圖和人體原始圖像輸入到渲染擴散中,以渲染出具有逼真外觀的人體新姿勢。
目標(Target)
由于在收集數據時假定actor是模仿者,所以基于中間渲染圖和真實RGB圖像的配對數據,可以在大量數據上訓練該模型,而不需要任何直接的3D監督信號。
模型(Model)
與ControlNet類似,研究人員直接克隆穩定擴散模型編碼器的權重作為可控分支(可訓練副本)來處理3D條件。
凍結預先訓練好的穩定擴散模型,并輸入噪聲潛點(64×64),同時將時間t的紋理映射三維人體和原始人體照片輸入到固定的VAE編碼器中,得到紋理映射三維人體潛碼(64 × 64)和外觀潛碼(64 × 64)作為條件潛碼(conditioning latents)。
然后將這兩個條件潛碼輸入渲染擴散可控分支,該分支的主要設計原則是從人類輸入中學習紋理,并在訓練過程中通過去噪處理將其應用于紋理映射的三維人類。
目標是從第1階段生成(紋理映射)的三維人體中渲染出具有生動紋理的真人。
圖片
通過擴散步驟程序和固定VAE解碼器獲得輸出潛像,并將其處理為像素空間。
與第1階段相同,鎖定了文本編碼器分支,并始終將「真人正在表演」(a real human is acting)作為固定穩定擴散模型的輸入文本。
將訓練好的模型稱為渲染擴散(Rendering Diffusion)模型,逐幀預測輸出。
實驗結果
對比基線
用于對比的sota模型包括DreamPose、DisCo和ControlNet(姿勢準確性比較)。
公平起見,所有方法的推理步驟都設為50步。
幀生成質量(Frame-wise Generation Quality)
研究人員在2K2K測試數據集上對比了3DHM和其他方法,該數據集由50個未見過的人體視頻組成,分辨率為256×256。
每個人物視頻拍攝30幀,代表每個未見者的不同視角,角度范圍涵蓋0度到360度,每12度取一幀,可以更好地評估每個模型的預測和泛化能力。
圖片
從結果中可以看到,3DHM在不同指標上都優于其他基線方法。
視頻級生成質量(Video-level Generation Quality)
為了驗證3DHM的時間一致性,研究人員還報告了與圖像級評估相同的測試集和基線實施的結果。
與圖像級對比不同的是,將每連續的16個幀串聯起來,形成每個未見過的人在具有挑戰性的視角上的樣本。
角度范圍從150度到195度,每3度取一幀,可以更好地評估每個模型的預測和泛化能力。
根據50個視頻的總體平均得分結果中可以看到,盡管3DHM是按每幀進行訓練和測試的,但與之前的方法相比仍具有顯著優勢,也表明3DHM在保持三維控制的時間一致性方面表現出色。
姿勢準確率(Pose Accuracy)
為了進一步評估模型的有效性,研究人員首先通過先進的三維姿勢估計模型 4DHumans從不同方法生成的人類視頻中估計三維姿勢,然后使用相同的數據集設置,并將提取的姿勢與目標視頻中的三維姿勢進行比較。
由于ControlNet不輸入圖像,所以研究人員選擇輸入了相同的提示「真人正在活動」(a real human is acting)和相應的openpose作為條件。
圖片
從結果中可以看到,3DHM能夠按照所提供的三維姿勢非常準確地合成出活動的人;同時,以前的方法可能無法通過直接預測姿勢到像素的映射達到同樣的性能。
還可以注意到,即使DisCO和ControlNet由Openpose控制,DreamPose由DensePose控制,3DHM也能在2D指標和3D指標上取得優異的結果。
參考資料: