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