有望取代Deepfake?揭秘今年最火的NeRF技術(shù)有多牛
什么,你還不知道NeRF?
作為今年計(jì)算機(jī)視覺領(lǐng)域最火的AI技術(shù),NeRF可謂是應(yīng)用廣泛,前景一片大好。
B站上的小伙伴可算是把這項(xiàng)技術(shù)玩出了新花樣。
拋磚引玉
那么,究竟NeRF是什么?
NeRF(Neural Radiance Fields)是最早在2020年ECCV會(huì)議上的最佳論文中提出的概念,其將隱式表達(dá)推上了一個(gè)新的高度,僅用2D的posed images作為監(jiān)督,即可表示復(fù)雜的三維場(chǎng)景。
一石激起千層浪,自此之后NeRF迅速發(fā)展起來被應(yīng)用到多個(gè)技術(shù)方向,如「新視點(diǎn)合成、三維重建」等。
NeRF其輸入稀疏的多角度帶pose的圖像訓(xùn)練得到一個(gè)神經(jīng)輻射場(chǎng)模型,根據(jù)這個(gè)模型可以渲染出任意視角下的清晰的照片,如下圖所示。也可以簡要概括為用一個(gè)MLP去隱式地學(xué)習(xí)一個(gè)三維場(chǎng)景。
網(wǎng)友自然而然地也會(huì)將NeRF與同樣大受追捧的Deepfake做個(gè)比較。
最近MetaPhysics發(fā)布的一篇文章就盤點(diǎn)了NeRF的進(jìn)化史、面臨的挑戰(zhàn)和優(yōu)勢(shì),并預(yù)測(cè)NeRF最終將取代Deepfake。
大部分有關(guān)deepfake技術(shù)引人注目的話題,是指自17年deepfakes進(jìn)入大眾視野后開始流行的兩個(gè)開源軟件包:DeepFaceLab (DFL) 和FaceSwap。
盡管這兩個(gè)軟件包都擁有廣泛的用戶群和活躍的開發(fā)者社區(qū),但這兩個(gè)項(xiàng)目與GitHub代碼都沒有明顯的偏離。
當(dāng)然,DFL和FaceSwap的開發(fā)人員并沒有閑著:現(xiàn)在可以使用更大的輸入圖像來訓(xùn)練deepfake模型,盡管這需要更昂貴的GPU。
但其實(shí)在過去的三年里,媒體鼓吹的deepfake圖像質(zhì)量提升主要還是得歸功于終端用戶。
他們?cè)跀?shù)據(jù)收集方面積累了「省時(shí)而難得」的經(jīng)驗(yàn),以及訓(xùn)練模型的最佳方法(有時(shí)單次實(shí)驗(yàn)就需要幾周時(shí)間),并且學(xué)會(huì)如何利用和擴(kuò)展原始2017代碼的最外層限制。
VFX和ML研究社區(qū)中的一些人正試圖通過擴(kuò)展架構(gòu)來突破流行的deepfake包的「硬限制」,以便機(jī)器學(xué)習(xí)模型可以在高達(dá)1024×1024的圖像上進(jìn)行訓(xùn)練。
其像素是DeepFaceLab或FaceSwap當(dāng)前實(shí)際范圍的兩倍,更接近于電影和電視制作中有用的分辨率。
接下來讓我們一起了解一下NeRF吧~
揭開面紗
NeRF(Neural Radiance Fields),它出現(xiàn)于2020年,是一種通過在神經(jīng)網(wǎng)絡(luò)內(nèi)拼接多個(gè)視點(diǎn)照片實(shí)現(xiàn)重建物體和環(huán)境的方法。
它通過使用稀疏的輸入視圖集優(yōu)化底層連續(xù)的體積場(chǎng)景函數(shù),實(shí)現(xiàn)了綜合復(fù)雜場(chǎng)景視圖的最好結(jié)果。
該算法還使用全連接深度網(wǎng)絡(luò)表示一個(gè)場(chǎng)景,其輸入是單個(gè)連續(xù)的5D坐標(biāo)(空間位置(x, y, z)和觀看方向(θ, φ)),其輸出是該空間位置的體積密度和相關(guān)的發(fā)射幅亮度。
通過沿著相機(jī)光線查詢5D坐標(biāo)來合成視圖,并使用經(jīng)典的體繪制技術(shù)(volume rendering)將輸出的顏色和密度投影到圖像中。
實(shí)現(xiàn)過程:
首先將一個(gè)連續(xù)的場(chǎng)景表示為一個(gè)5D向量值函數(shù),其輸入是一個(gè)3D位置和2D觀看方向,對(duì)應(yīng)的輸出是一個(gè)發(fā)射顏色c和體積密度σ。
在實(shí)踐中,采用3D笛卡爾單位向量d表示方向。利用用MLP網(wǎng)絡(luò)近似這個(gè)連續(xù)的5D場(chǎng)景表示,并優(yōu)化其權(quán)重。
此外,通過限制網(wǎng)絡(luò)來預(yù)測(cè)體積密度σ作為位置x的函數(shù),同時(shí)還允許RGB顏色c作為位置和觀看方向的函數(shù)進(jìn)行預(yù)測(cè),從而鼓勵(lì)表示多視圖一致。
為了實(shí)現(xiàn)這一點(diǎn),MLP首先處理輸入的具有8個(gè)全連接層的3D坐標(biāo)x(使用ReLU激活和每層256個(gè)通道),并輸出σ和256維特征向量。
這個(gè)特征向量隨后與相機(jī)射線的觀看方向連接,并傳遞給一個(gè)額外的全連接層,輸出與視圖相關(guān)的RGB顏色。
此外,NeRF還引入了兩個(gè)改進(jìn)來實(shí)現(xiàn)高分辨率復(fù)雜場(chǎng)景的表示。第一個(gè)是位置編碼,以幫助MLP表示高頻函數(shù),第二個(gè)是分層抽樣過程,使其能夠有效地對(duì)高頻表示進(jìn)行抽樣。
眾所周知,Transformer架構(gòu)中的位置編碼可以提供序列中標(biāo)記的離散位置,作為整個(gè)架構(gòu)的輸入。而NeRF使用位置編碼是將連續(xù)的輸入坐標(biāo)映射到更高的維度空間,使MLP更容易逼近更高頻率的函數(shù)。
從圖中可以觀察到,去除位置編碼會(huì)大大降低模型表示高頻幾何和紋理的能力,最終導(dǎo)致外觀過度平滑。
由于沿著每條相機(jī)射線在N個(gè)查詢點(diǎn)密集評(píng)估神經(jīng)輻射場(chǎng)網(wǎng)絡(luò)的渲染策略十分低效,所以NeRF最后采用了一種分層表示,通過按最終渲染的預(yù)期效果比例分配樣本來提高渲染效率。
簡而言之,NeRF不再只使用一個(gè)網(wǎng)絡(luò)來表示場(chǎng)景,而是同時(shí)優(yōu)化兩個(gè)網(wǎng)絡(luò),一個(gè)「粗粒度」網(wǎng)絡(luò)和一個(gè)「細(xì)粒度」網(wǎng)絡(luò)。
未來可期
NeRF解決了過去的不足,即使用MLP將對(duì)象和場(chǎng)景表示為連續(xù)函數(shù)。相比于過往的方法,NeRF可以產(chǎn)生更好的渲染效果。
但是,NeRF同樣也面臨許多技術(shù)瓶頸,比如NeRF的加速器會(huì)犧牲其他相對(duì)有用的功能(比如靈活性),以實(shí)現(xiàn)低延遲、更多交互環(huán)境以及較少訓(xùn)練時(shí)間的目的。
所以,NeRF雖是一個(gè)關(guān)鍵性的突破,但是想要達(dá)到完美的效果,還是需要一定的時(shí)間。
技術(shù)在進(jìn)步,未來依舊可期!?