【新智元導讀】無需標注數據,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)。
合成運動中的人物第一階段模型的目標是通過涂色模仿者的不可見區域,生成可信的完整紋理貼圖。
研究人員首先將三維網格渲染到輸入圖像上,然后按照 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 指標上取得優異的結果。
參考資料:
https://arxiv.org/abs/2401.10889
本文來自微信公眾號:新智元 (ID:AI_era)
本文鏈接:http://www.tebozhan.com/showinfo-45-3454-0.html360 度無死角!UC 伯克利華人發布 3DHM 框架:一張圖片即可模仿任意視頻動作
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com