NeRF基于線稿生成逼真三維人臉,細(xì)節(jié)風(fēng)格隨意改,論文已上SIGGRAPH(1)
這個(gè)方法可以高效構(gòu)建三維模型,精細(xì)程度很高。
高真實(shí)感且精確可控的三維人臉建模是數(shù)字人構(gòu)建中的重要問題之一。目前,使用現(xiàn)有的基于網(wǎng)格的人臉建模方法需要專業(yè)的人員使用復(fù)雜的軟件并投入大量的時(shí)間和精力,且實(shí)現(xiàn)逼真的人臉渲染結(jié)果較為困難。
雖然神經(jīng)輻射場(chǎng)作為一種新的三維表示可以合成出逼真的結(jié)果,但如何對(duì)生成結(jié)果進(jìn)行精確控制和修改,以實(shí)現(xiàn)高質(zhì)量的三維人臉合成仍然是一個(gè)待解決的問題。
近期,研究人員提出了基于線稿的三維人臉神經(jīng)輻射場(chǎng)生成和編輯方法 SketchFaceNeRF [1],相關(guān)技術(shù)論文發(fā)表在計(jì)算機(jī)圖形學(xué)頂會(huì) SIGGRAPH 2023,并被收錄于圖形學(xué)頂級(jí)期刊 ACM Transactions on Graphics。使用該系統(tǒng),即使用戶不會(huì)使用復(fù)雜的三維軟件,也可以基于線稿自由創(chuàng)作三維人臉。先來看看使用 SketchFaceNeRF 創(chuàng)作的人臉效果:
圖 1:使用線稿生成高真實(shí)感的三維人臉。
進(jìn)一步,在給定三維人臉后,用戶在任意角度添加編輯操作:
圖 2 使用線稿在任意視角編輯三維人臉。
Part 1 背景
最近,AI 繪畫非?;鸨?,基于 Stable Diffusion [2] 和 ControlNet [3] 等方法,通過指定文本可以生成高真實(shí)感的二維圖像。但是,上述工作無法生成高質(zhì)量的三維模型。同時(shí),僅使用文本難以控制生成細(xì)節(jié),盡管 ControlNet 已經(jīng)支持線稿的控制,但如何對(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ī)采樣,而無法對(duì)生成結(jié)果進(jìn)行控制。IDE-3D [7] 和 NeRFFaceEditing [8] 使用語義標(biāo)記圖編輯三維人臉,但是,該類方法難以實(shí)現(xiàn)更細(xì)節(jié)的控制,例如頭發(fā)的結(jié)構(gòu)細(xì)節(jié)和皺紋等。同時(shí),用戶很難從頭繪制復(fù)雜的語義圖,無法憑空生成三維人臉模型。
線稿作為一種更加友好的交互方式,一直被用于二維人臉圖像的生成 [9] 和編輯 [10]。然而,將線稿用于三維人臉的生成存在下述的問題:首先,線稿風(fēng)格多樣且過于稀疏,生成二維圖像已經(jīng)不易,生成三維模型則更加困難;其次,針對(duì)三維人臉,用戶往往會(huì)在任意視角添加編輯,如何生成有效的編輯結(jié)果,同時(shí)保持三維一致性,是需要解決的問題。
針對(duì)上述挑戰(zhàn),SketchFaceNeRF 利用了三平面的表示方法,基于線稿直接預(yù)測(cè)人臉三平面特征,投影至生成模型的隱空間,得到高質(zhì)量的人臉 NeRF。多視角的三維人臉編輯問題則被建模為優(yōu)化問題,通過三平面的局部融合及投影方法預(yù)測(cè)初值,并基于線稿約束和圖像約束反向優(yōu)化隱碼,得到高質(zhì)量的人臉 NeRF 編輯效果。
Part 2 SketchFaceNeRF 算法原理
圖 3 SketchFaceNeRF 的網(wǎng)絡(luò)架構(gòu)圖,生成流程。
人臉 NeRF 可控生成
給定單視角的手繪線稿后,直接投影到生成模型隱空間,合成的人臉存在對(duì)應(yīng)性差、生成質(zhì)量低等問題。這是因?yàn)槎S稀疏線稿與三維人臉的差異過大,并且手繪的線稿風(fēng)格多樣。為解決上述問題,提出一種逐級(jí)升維的映射方法:由于輸入線稿僅包含稀疏幾何信息,但三維人臉具有不同的外觀,所以首先使用自適應(yīng)實(shí)例歸一化 (AdaIN [11]),將輸入的線稿轉(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)練過程分為兩步:首先,使用 EG3D 構(gòu)建多視角的訓(xùn)練數(shù)據(jù)。輸入線稿預(yù)測(cè)三平面后,基于原本 EG3D 的渲染網(wǎng)絡(luò)生成其他視角的圖像,并使用真值作監(jiān)督,完成線稿三平面預(yù)測(cè)網(wǎng)絡(luò)的訓(xùn)練。然后,固定線稿三平面預(yù)測(cè)網(wǎng)絡(luò)的權(quán)重,訓(xùn)練投影網(wǎng)絡(luò),將三平面特征投影至 EG3D 的隱空間。
圖 4 SketchFaceNeRF 的網(wǎng)絡(luò)架構(gòu)圖,編輯流程。
人臉 NeRF 精確編輯
為了支持任意視角的線稿人臉編輯,該工作提出一種三維一致的人臉線稿渲染方法,為 EG3D 添加額外的線稿生成分支,與圖像生成分支共享相同的 StyleGAN 主干網(wǎng)絡(luò),但具有不同的****和超分辨率模塊。訓(xùn)練過程則使用線稿真值作監(jiān)督,并添加正則化項(xiàng)約束線稿視角一致性。
在生成的三維線稿基礎(chǔ)上,用戶對(duì)局部區(qū)域進(jìn)行修改,繪制出新的線稿。由于單視角的線稿輸入存在遮擋等問題,無法表示完整原本的三維信息,因此直接推理難以保持編輯前后的非編輯區(qū)域一致性。
為此,將人臉的 NeRF 的精細(xì)化編輯問題建模為優(yōu)化問題。該工作先提出一種初值預(yù)測(cè)方法:使用與生成過程共享的線稿三平面預(yù)測(cè)網(wǎng)絡(luò),先直接預(yù)測(cè)得到線稿對(duì)應(yīng)的三平面特征。為了保持非編輯區(qū)域的不變,進(jìn)一步將線稿生成的三平面與原始的三平面特征進(jìn)行融合,并使用與生成過程共享的編碼網(wǎng)絡(luò),將三平面反投影至生成模型的隱空間,得到人臉的編輯的初值。
進(jìn)一步,提出反向優(yōu)化方法實(shí)現(xiàn)三維人臉的精細(xì)化編輯。具體而言,算法通過線稿生成分支渲染出合成線稿,在編輯區(qū)域與手繪線稿計(jì)算相似度。同時(shí),在非編輯區(qū)域,圖像生成分支渲染出人臉圖像,與原始圖像計(jì)算相似度。為了保證編輯前后的空間一致性,進(jìn)一步約束非編輯區(qū)域的光線采樣點(diǎn)特征相同?;谏鲜黾s束,反向優(yōu)化隱碼,實(shí)現(xiàn)人臉的精細(xì)化編輯。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。