函擎 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào)
萬(wàn)萬(wàn)沒想到,把照片變3D這件事,離了神經(jīng)網(wǎng)絡(luò)也是這般絲滑。
而在此之前,新視角合成這方面的“大牛”,是近兩年大火的NeRF (神經(jīng)輻射場(chǎng))。
它是一個(gè)簡(jiǎn)單的全連接神經(jīng)網(wǎng)絡(luò),使用2D圖像的信息作為訓(xùn)練數(shù)據(jù),還原擁有體積的3D場(chǎng)景。
但最近,來(lái)自伯克利大學(xué)的研究人員提出了一個(gè)叫做的方法。
不需要神經(jīng)網(wǎng)絡(luò),僅僅通過(guò)梯度下降和正則化便實(shí)現(xiàn)了同樣的效果,而且速度還快了100倍!
那么他們是如何做到這點(diǎn)的呢?
由NeRF到的進(jìn)化
為了幫助大家理解,我們先來(lái)簡(jiǎn)單介紹一下NeRF模型。
要準(zhǔn)備NeRF的數(shù)據(jù),我們首先需要一部相機(jī)。
拍了很多張各個(gè)角度的照片后,沿相機(jī)射線將每一張2D圖片的坐標(biāo)與視圖方向構(gòu)成一個(gè)5D向量 (x, y, z, θ, φ)作為mlp (多層全連接神經(jīng)網(wǎng)絡(luò))的輸入。
我們從圖(b)上可以看到,射線上的點(diǎn)有了顏色,每點(diǎn)的顏色c = (r, g, b)和密度(σ)就是輸出向量。
接著NeRF使用體積渲染技術(shù)將得到的顏色與密度進(jìn)行3D渲染。
由于渲染函數(shù)是可導(dǎo)的,我們可以最小化合成效果與實(shí)際效果的誤差,從而進(jìn)行神經(jīng)網(wǎng)絡(luò)參數(shù)的優(yōu)化。
其中mlp使用的參數(shù)多可達(dá)到5MB,實(shí)際訓(xùn)練起來(lái)就會(huì)發(fā)現(xiàn)訓(xùn)練時(shí)間十分漫長(zhǎng),通常要1-4天。
這個(gè)速度與的11分鐘相比確實(shí)是無(wú)法接受的。
2D圖片變3D,聽起來(lái)不是個(gè)小工程,不用神經(jīng)網(wǎng)絡(luò)是如何實(shí)現(xiàn)的呢?其實(shí)并不復(fù)雜。
發(fā)現(xiàn)NeRF成功的秘訣其實(shí)是它的體積渲染方程,與其最耗時(shí)的神經(jīng)網(wǎng)絡(luò)關(guān)系不大。
那么你一定會(huì)好奇這個(gè)體積渲染方程究竟是何方神圣點(diǎn)密度專題圖算法,我們就先來(lái)看一下。
σi代表不透明度,ci代表顏色,δi代表距離。Ti代表有多少光經(jīng)過(guò)射線上的點(diǎn)i,是通過(guò)密度和距離計(jì)算的。
這個(gè)體積渲染方程其實(shí)就是將射線上每個(gè)點(diǎn)的顏色,不透明度,光,還有距離進(jìn)行了一個(gè)整合處理。
體積渲染方程介紹過(guò)了,那么不需要神經(jīng)網(wǎng)絡(luò)的是如何表示圖片的呢?
首先重建了一個(gè)稀疏的體素表格,每個(gè)被占用的體素都帶有不透明度和球諧系數(shù)。
我們的顏色信息就存儲(chǔ)在這些球諧系數(shù)中,每個(gè)顏色通道需要9個(gè)系數(shù)表示,一共有三個(gè)顏色,那么每個(gè)體素就需要27個(gè)球諧系數(shù)來(lái)表示它的顏色。
相機(jī)射線經(jīng)過(guò)的每個(gè)點(diǎn)的顏色和不透明度,就是通過(guò)其最近處的8個(gè)體素的三線性插值計(jì)算的。
接著與NeRF一樣,使用體積渲染技術(shù)將得到的顏色與不透明度進(jìn)行3D渲染。
通過(guò)對(duì)渲染的像素的平均平方誤差 (MSE)進(jìn)行最小化,來(lái)優(yōu)化體素的不透明度和球諧系數(shù),并且使用TV正則化幫助消除噪聲。
我們可以看出,是否使用TV正則化的效果區(qū)別還是很大的!
提速100倍,僅需11分鐘
我們用最直觀的方法對(duì)比一下兩個(gè)模型速度上的差距。
看到了嗎,只用幾秒就可以達(dá)到一個(gè)比較清晰的效果,而NeRF只有一個(gè)模糊的影子。
同樣是單個(gè)場(chǎng)景,NeRF使用型號(hào)為v100的單個(gè)GPU訓(xùn)練需要耗時(shí)1-2天,而使用單個(gè)GPU通常只需要11分鐘。
這時(shí)有一個(gè)問(wèn)題一定縈繞在你的腦海里,速度提升了這么多,效果真的不會(huì)受影響嗎?
空口無(wú)憑,我們還是要用數(shù)據(jù)說(shuō)話。
PSNR (峰值信噪比):是最普遍,最廣泛使用的評(píng)鑒畫質(zhì)的客觀量測(cè)法,PSNR值越大,就代表失真越少。
SSIM (結(jié)構(gòu)相似性):衡量實(shí)際圖像和合成圖像的相似度,當(dāng)兩張圖像一模一樣時(shí),SSIM的值等于1。
LPIPS (學(xué)習(xí)感知圖像塊相似度):用于度量實(shí)際圖像和合成圖像之間的差別點(diǎn)密度專題圖算法,值越低代表圖片越相似。
可以看到對(duì)比其他模型的表現(xiàn)不說(shuō)樣樣最好,但也絕不落后他人,關(guān)鍵在于它的速度整整快了兩個(gè)數(shù)量級(jí)!
正因?yàn)樗俣壬系拇蠓嵘沟靡恍┠壳疤幱谄款i的下游應(yīng)用變得可能,例如多次反射照明 (multi- )和大型場(chǎng)景的3D建模 (3D )。
如果能在相機(jī)和體素散列上進(jìn)行有效優(yōu)化,模型甚至可以讓端到端三維重建成為擁有的實(shí)際應(yīng)用。
相信的潛力不僅于此,讓我們一起期待它落地后的成果吧!
UC伯克利本科生一作
效果強(qiáng)勁的來(lái)自UC伯克利的學(xué)生團(tuán)隊(duì),一作Alex Yu還是一名本科生。
在大學(xué)里,他不僅同時(shí)學(xué)習(xí)計(jì)算機(jī)和應(yīng)用數(shù)學(xué)兩門專業(yè),還在伯克利的BAIR ( )實(shí)驗(yàn)室進(jìn)行3D計(jì)算機(jī)視覺的相關(guān)研究。
Alex計(jì)劃在2022的秋季開始他的PhD旅程,讓人不禁感嘆AI界真是人才輩出。
在未來(lái)經(jīng)過(guò)PhD的學(xué)習(xí)后,他又會(huì)迸發(fā)出怎樣的能量呢,讓我們一起拭目以待吧!
代碼開源
目前,項(xiàng)目的代碼已經(jīng)在上開源。
小伙伴們要注意的是,拍攝照片的時(shí)候要盡可能環(huán)繞物體,并且嘗試不同的高度哦。
快來(lái)試試效果如何吧!
參考鏈接:
[1]
[2]
[3]
[4]
— 完 —
量子位 · 頭條號(hào)簽約