NeRF基于線稿生成逼真三維人臉,細節風格隨意改,論文已上SIGGRAPH
高真實感且精確可控的三維人臉建模是數字人構建中的重要問題之一。目前,使用現有的基于網格的人臉建模方法需要專業的人員使用復雜的軟件并投入大量的時間和精力,且實現逼真的人臉渲染結果較為困難。
雖然神經輻射場作為一種新的三維表示可以合成出逼真的結果,但如何對生成結果進行精確控制和修改,以實現高質量的三維人臉合成仍然是一個待解決的問題。
近期,研究人員提出了基于線稿的三維人臉神經輻射場生成和編輯方法 SketchFaceNeRF [1],相關技術論文發表在計算機圖形學頂會 SIGGRAPH 2023,并被收錄于圖形學頂級期刊 ACM Transactions on Graphics。使用該系統,即使用戶不會使用復雜的三維軟件,也可以基于線稿自由創作三維人臉。先來看看使用 SketchFaceNeRF 創作的人臉效果:
進一步,在給定三維人臉后,用戶在任意角度添加編輯操作:
圖 2 使用線稿在任意視角編輯三維人臉。
Part 1 背景
最近,AI 繪畫非常火爆,基于 Stable Diffusion [2] 和 ControlNet [3] 等方法,通過指定文本可以生成高真實感的二維圖像。但是,上述工作無法生成高質量的三維模型。同時,僅使用文本難以控制生成細節,盡管 ControlNet 已經支持線稿的控制,但如何對生成的結果的局部區域進行精準的修改仍然十分困難。
隨著神經輻射場 [4] 和對抗式生成網絡 [5] 的發展,已有方法,例如 EG3D [6],已經實現了三維人臉模型的高質量的生成和快速的渲染。但是,這些生成模型只支持人臉隨機采樣,而無法對生成結果進行控制。IDE-3D [7] 和 NeRFFaceEditing [8] 使用語義標記圖編輯三維人臉,但是,該類方法難以實現更細節的控制,例如頭發的結構細節和皺紋等。同時,用戶很難從頭繪制復雜的語義圖,無法憑空生成三維人臉模型。
線稿作為一種更加友好的交互方式,一直被用于二維人臉圖像的生成 [9] 和編輯 [10]。然而,將線稿用于三維人臉的生成存在下述的問題:首先,線稿風格多樣且過于稀疏,生成二維圖像已經不易,生成三維模型則更加困難;其次,針對三維人臉,用戶往往會在任意視角添加編輯,如何生成有效的編輯結果,同時保持三維一致性,是需要解決的問題。
針對上述挑戰,SketchFaceNeRF 利用了三平面的表示方法,基于線稿直接預測人臉三平面特征,投影至生成模型的隱空間,得到高質量的人臉 NeRF。多視角的三維人臉編輯問題則被建模為優化問題,通過三平面的局部融合及投影方法預測初值,并基于線稿約束和圖像約束反向優化隱碼,得到高質量的人臉 NeRF 編輯效果。
Part 2 SketchFaceNeRF 算法原理
圖 3 SketchFaceNeRF 的網絡架構圖,生成流程。
人臉 NeRF 可控生成
給定單視角的手繪線稿后,直接投影到生成模型隱空間,合成的人臉存在對應性差、生成質量低等問題。這是因為二維稀疏線稿與三維人臉的差異過大,并且手繪的線稿風格多樣。為解決上述問題,提出一種逐級升維的映射方法:由于輸入線稿僅包含稀疏幾何信息,但三維人臉具有不同的外觀,所以首先使用自適應實例歸一化 (AdaIN [11]),將輸入的線稿轉換到彩色特征圖以注入顏色、光照和紋理信息。
進一步,由于二維輸入缺乏 3D 信息,算法在體渲染的立體空間中構建 3D 特征體素,空間中的三維點被投影到 2D 特征圖,檢索得到對應的特征。最后,在 x,y,z 三個軸對三維體素進行形狀變換,再基于 2D 卷積網絡得到三平面特征圖。為了生成高質量的人臉 NeRF,三平面被反投影到生成模型的隱空間,得到隱碼表示的人臉 NeRF 模型。
訓練過程分為兩步:首先,使用 EG3D 構建多視角的訓練數據。輸入線稿預測三平面后,基于原本 EG3D 的渲染網絡生成其他視角的圖像,并使用真值作監督,完成線稿三平面預測網絡的訓練。然后,固定線稿三平面預測網絡的權重,訓練投影網絡,將三平面特征投影至 EG3D 的隱空間。
圖 4 SketchFaceNeRF 的網絡架構圖,編輯流程。
人臉 NeRF 精確編輯
為了支持任意視角的線稿人臉編輯,該工作提出一種三維一致的人臉線稿渲染方法,為 EG3D 添加額外的線稿生成分支,與圖像生成分支共享相同的 StyleGAN 主干網絡,但具有不同的解碼器和超分辨率模塊。訓練過程則使用線稿真值作監督,并添加正則化項約束線稿視角一致性。
在生成的三維線稿基礎上,用戶對局部區域進行修改,繪制出新的線稿。由于單視角的線稿輸入存在遮擋等問題,無法表示完整原本的三維信息,因此直接推理難以保持編輯前后的非編輯區域一致性。
為此,將人臉的 NeRF 的精細化編輯問題建模為優化問題。該工作先提出一種初值預測方法:使用與生成過程共享的線稿三平面預測網絡,先直接預測得到線稿對應的三平面特征。為了保持非編輯區域的不變,進一步將線稿生成的三平面與原始的三平面特征進行融合,并使用與生成過程共享的編碼網絡,將三平面反投影至生成模型的隱空間,得到人臉的編輯的初值。
進一步,提出反向優化方法實現三維人臉的精細化編輯。具體而言,算法通過線稿生成分支渲染出合成線稿,在編輯區域與手繪線稿計算相似度。同時,在非編輯區域,圖像生成分支渲染出人臉圖像,與原始圖像計算相似度。為了保證編輯前后的空間一致性,進一步約束非編輯區域的光線采樣點特征相同。基于上述約束,反向優化隱碼,實現人臉的精細化編輯。
Part 3 效果展示
如圖 5 所示,給定手繪線稿,基于該方法可以生成高質量的人臉神經輻射場。通過選擇不同的外觀參考圖像,可以指定生成人臉的外觀。用戶可以自由變換視角,都能得到高質量的渲染結果。
圖 5 基于線稿生成的三維人臉。
如圖 6 所示,給定三維人臉,用戶可以選擇任意的視角,對渲染出的線稿進行修改,從而編輯人臉 NeRF。左側展示了對隨機生成的人臉進行編輯的效果。右側則展示給定人臉圖像后,使用人臉生成模型進行反投影,并進一步添加編輯的結果。
圖 6 基于線稿的三維人臉編輯結果。
如圖 7 所示,針對一個人臉 NeRF,用戶可以在不同視角對人臉添加連續的編輯操作,使用該方法都能得到較好的編輯結果,同時,非編輯的立體區域的特征也被完美保持。
圖 7 基于線稿對人臉進行連續的編輯操作。
如圖 8 所示,得益于生成模型隱空間的良好性質,對特定人添加的編輯操作后,計算前后的隱碼差異得到編輯向量,一些情況下可以直接作用于其他人,得到類似的編輯效果。
圖 8 編輯傳播結果,左側的編輯操作的效果,可以傳播至右側人臉。
Part 4 結語
隨著人工智能的迅速發展,AI 繪畫也涌現出許多的新的方法。與生成二維圖像不同,如何生成三維數字內容是更具挑戰性的問題。SketchFaceNeRF 提供了一種可行的解決方案,基于手繪線稿,用戶可以生成高質量的人臉模型,并支持任意視角的精細化的編輯。
基于該系統,我們無需安裝繁雜的三維建模軟件并學習復雜的技能,也不需要花費數個小時時間精力,僅僅通過勾勒簡單的線條,普通用戶也能輕松構建心中完美的人臉模型,并得到高質量的渲染結果。
SketchFaceNeRF 已經被 ACM SIGGRAPH 2023 接收,并將刊登在期刊 ACM Transactions on Graphics 上。
目前,SketchFaceNeRF 已經提供在線服務供大家使用。在線系統由中科院計算所信息高鐵訓練推理平臺 MLOps 提供智算算力支持,由中科南京信息高鐵研究院提供上線工程服務保障。
在線服務鏈接:http://geometrylearning.com/SketchFaceNeRF/interface
有關論文的更多細節,及論文、視頻、代碼的下載,請瀏覽項目主頁:
http://www.geometrylearning.com/SketchFaceNeRF/
開源代碼見:
https://github.com/IGLICT/SketchFaceNeRF