幾張照片即可定制自己的3D化身,還能換裝!南京大學發布AvatarBooth:3D模型的制作門檻被打下來了!
蘋果Vision Pro發布后,再次掀起了一股「元宇宙」熱潮,不過通往元宇宙的大門卻沒那么容易打開。
目前生成3D化身的方法大多依賴于昂貴且復雜的采集設備來重建高保真的化身模型,往往需要多視角的圖像或深度圖,對于消費級別的應用開發來說是負擔不起的。
隨著大規模預訓練的視覺語言模型性能得到飛速提升,一種全新的流派開始興起,即根據文本或圖像來生成3D人類化身模型,廣泛應用于數字人、電影業和虛擬現實等領域。
最近,南京大學的研究人員提出了一種全新的方法AvatarBooth,可以根據文本提示或圖像集合生成高質量和可定制的化身,能夠準確反映特定個體的視覺和文字特征。
論文鏈接:https://arxiv.org/pdf/2306.09864.pdf
項目鏈接:https://zeng-yifei.github.io/avatarbooth_page/
與之前只能基于簡單的文本描述生成化身的方法不同,該方法能夠從任意捕獲的面部或身體圖像生成個性化頭像,并且也支持基于文本的模型生成和編輯。
AvatarBooth學習了一個神經隱含表面來表示人類化身的形狀和外觀,分別由臉部和身體的預訓練或微調的潛擴散模型來監督學習。
并且在外觀定制生成的任務中,文中提出了姿勢一致的約束,以加強擴散模型的微調,可以提供了更準確的多視圖監督,在姿勢空間中具有一致的外觀。
此外,模型中還包括一個多分辨率的SDS方案,可以從粗到細地預測化身的精細結構和外觀。
只需要一個人的幾張照片,模型就可以合成3D化身,不僅具有個性化獨特的外觀,而且還可以符合輸入文本提示中指定的抽象特征,比如「戴眼鏡」或「某種風格的帽子」等屬性,用戶可以很方便地編輯和修改化身的整體視覺形象。
文中提出的生成框架以一組圖像或文字提示作為輸入,并合成一個由神經隱式表面(NeuS,Neural Implicit Surfaces)表征的的三維細節化身。
整個生成pipeline由三個模塊組成:
1. 在化身建模模塊(avatar modeling module)中,將一個簡化的SMPL渲染模型訓練為神經隱式場(neural implicit field),由一個SDF網絡和一個著色網絡(color network)組成。
2. 在渲染模塊(rendering module)中,從位于化身空間周圍的預定義虛擬攝像機中獲得三種類型的渲染結果。
為了同時優化人臉和人體,研究人員采用了兩套渲染參數分別以人臉和整個人體為中心
3. 在評分蒸餾采樣(SDS,Score Distillation Sampling)訓練模塊中,選擇或結合預訓練和微調的潛擴散模型,然后通過渲染來監督NeuS的訓練。
Dual Model Fine-tuning
研究人員提出利用兩個擴散模型來監督整個身體和頭部的訓練,并且對這兩個模型分別進行微調。
雖然之前的工作增加了面部周圍的渲染樣本以改善面部細節,但并沒有利用微調視覺語言模型的潛力,所以不能提高個性化化身生成的性能。
研究人員剛開始只使用一個擴散模型來監督全身的訓練,可以觀察到,單一的SDS損失與DreamBooth3D的微調策略無法在面部外觀和身體衣服的建模之間取得平衡。
具體來說,在早期的訓練步驟中,模型可以學習到身體上衣服的外觀,但面部外觀仍然不清晰;如果進行更多的訓練步驟,面部外觀會變得清晰,但全局特征如衣服的樣式可能會過度適應輸入的圖像,也意味著在混合模式下很難通過文本提示編輯身體。
此外,還可以觀察到,DreamBooth3D的Img2Img階段不能產生忠實于輸入圖像的準確的人物身份,可能是因為面部外觀和身體外觀之間的比例差異較大,導致SDS訓練中收斂率不一致。
為了解決這個問題,研究人員提出了雙模型微調(dual model fine-tunign)策略,當在外觀定制模式或混合模式運行時,將輸入圖像分為全身照(body shot)和頭像(headshot),分別用于微調兩個預訓練的模型。
在SDS訓練階段,框架對臉部和全身周圍的攝像頭進行隨機采樣,然后采用不同的擴散模型來指導臉部和身體的生成,分別采用面向頭部的渲染和全身的渲染。
姿態一致性約束
直接利用DreamBooth和基于SDS的方法無法生成令人滿意的化身結果,因為DreamBooth模型傾向于過度適應微調期間使用的相機視圖。
為了增強由微調擴散模型生成化身的面部細節,研究人員使用ControlNet來提升合成圖像的多視圖一致性,從而消除不受控制的人體姿勢的干擾,并生成高質量的外觀和幾何形狀。
多分辨率SDS
由于直接渲染來自神經隱含場的高分辨率圖像在計算上成本很高,一個常見的解決方案是渲染低分辨率的圖像,然后將其上采樣到更高的分辨率進行SDS訓練;將上采樣的圖像編碼到潛空間后,用于監督神經隱含場的訓練。
不過研究人員觀察到,直接增加上采樣的分辨率會導致訓練崩潰或不一致的外觀,所以文中提出了一個多分辨率的優化策略,逐步提高上采樣的分辨率,使SDS的訓練更加穩定。
從NeuS渲染的圖像開始,通過訓練幾步512×512的上采樣分辨率來初始化網絡,然后逐漸提高監督分辨率到640×640和768×768
在初期的訓練步驟中,較低的分辨率為訓練過程提供了一個粗糙但穩健的起點,而在后面的步驟中較高的分辨率有助于學習詳細的幾何形狀和高質量的外觀。
實驗結果也證明了這個簡單的策略可以有效提高早期訓練階段的穩定性,并提高了外觀質量,最終可以生成一個更準確且視覺上可信的化身。
運行模式
根據預訓練的擴散模型在SDS訓練中的使用方式,Avatarbooth框架可以在三種模式下運行:
1. 提示生成模式(Prompt generative mode)
與AvatarCLIP和AvatarCraft類似,只使用文本提示作為輸入,生成符合描述的化身,并沒有對預訓練的擴散模型進行微調。
由于文本提示只能描述通用的或眾所周知的外表,所以這種模式只適用于合成具有大致匹配的外表或名人的頭像。
2. 外觀定制模式(Appearance customized mode)
研究人員提出定制擴散模型以及學習到化身形象,以匹配給定的一組圖像的外觀,其中圖像可以是從任意視角自由拍攝的全身或面部圖像。
即使輸入的圖片中包含不完整的或稍有矛盾的形象,具體的外觀和服裝的細節也會被傳遞到生成化身模型上。
3. 混合模式(Hybrid mode)
上述兩種模式可以在一個模型生成中同時進行,可以實現較為復雜的化身條件生成,比如在根據輸入圖片合成外觀的前提下,通過文字提示修改主體的衣服、發型、年齡、胡須等。
實驗結果
用戶研究
為了量化化身的生成質量,研究人員招募了30名志愿者,并用對比方法CLIP-Actor、AvatarCLIP和TEXTure從隨機選擇的文本提示中生成10個化身,讓用戶從四個方面(與文本提示的對應性、外觀質量、幾何質量和面部保真度)對結果進行評估,打分范圍從1(最差)到5(最好)。
從結果中可以看到,文中提出的新方法在四個指標上都取得了最高分,證明了該模型有能力生成具有更詳細外觀和幾何形狀的化身。
文本到圖像的度量
目前還沒有可以直接定量評估文本到3D生成模型的指標,所以研究人員將生成的化身模型渲染成圖像,然后使用文本到圖像的指標進行評估。
具體的流程是先將其他方法所生成的化身渲染成25個不同視角的2000張圖像,然后用文本到圖像的度量指標PickScore來對比化身的質量,能夠根據學習的人類偏好來衡量生成內容的真實性。
PickScore結果顯示,文中提出的方法比CLIP-Actor、AvatarCLIP和TEXTure要好很多,即具有更好的主觀質量。
參考資料:https://zeng-yifei.github.io/avatarbooth_page/