設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

本科生新開源算法打敗 NeRF,不用神經(jīng)網(wǎng)絡(luò)照片也能動(dòng)起來,提速 100 倍

量子位 2021/12/24 14:01:28 責(zé)編:長(zhǎng)河

萬萬沒想到,把照片變 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)景。

但最近,來自伯克利大學(xué)的研究人員提出了一個(gè)叫做 Plenoxels 的方法。不需要神經(jīng)網(wǎng)絡(luò),僅僅通過梯度下降和正則化便實(shí)現(xiàn)了同樣的效果,而且速度還快了 100 倍!那么他們是如何做到這點(diǎn)的呢?

由 NeRF 到 Plenoxels 的進(jìn)化

為了幫助大家理解 Plenoxels,我們先來簡(jiǎn)單介紹一下 NeRF 模型。

NeRF 模型與 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)練起來就會(huì)發(fā)現(xiàn)訓(xùn)練時(shí)間十分漫長(zhǎng),通常要 1-4 天。這個(gè)速度與 Plenoxels 的 11 分鐘相比確實(shí)是無法接受的。

2D 圖片變 3D,聽起來不是個(gè)小工程,Plenoxels 不用神經(jīng)網(wǎng)絡(luò)是如何實(shí)現(xiàn)的呢?其實(shí)并不復(fù)雜。

Plenoxels

Plenoxels 發(fā)現(xiàn) NeRF 成功的秘訣其實(shí)是它的體積渲染方程,與其最耗時(shí)的神經(jīng)網(wǎng)絡(luò)關(guān)系不大。那么你一定會(huì)好奇這個(gè)體積渲染方程究竟是何方神圣,我們就先來看一下。

相關(guān)函數(shù)

σi 代表不透明度,ci 代表顏色,δi 代表距離。Ti 代表有多少光經(jīng)過射線上的點(diǎn) i,是通過密度和距離計(jì)算的。這個(gè)體積渲染方程其實(shí)就是將射線上每個(gè)點(diǎn)的顏色,不透明度,光,還有距離進(jìn)行了一個(gè)整合處理。

體積渲染方程介紹過了,那么不需要神經(jīng)網(wǎng)絡(luò)的 Plenoxels 是如何表示圖片的呢?

原理圖

Plenoxels 首先重建了一個(gè)稀疏的體素表格,每個(gè)被占用的體素都帶有不透明度和球諧系數(shù)。

重建一個(gè)稀疏的體素表格

我們的顏色信息就存儲(chǔ)在這些球諧系數(shù)中,每個(gè)顏色通道需要 9 個(gè)系數(shù)表示,一共有三個(gè)顏色,那么每個(gè)體素就需要 27 個(gè)球諧系數(shù)來表示它的顏色。

相機(jī)射線經(jīng)過的每個(gè)點(diǎn)的顏色和不透明度,就是通過其最近處的 8 個(gè)體素的三線性插值計(jì)算的。接著與 NeRF 一樣,使用體積渲染技術(shù)將得到的顏色與不透明度進(jìn)行 3D 渲染。

進(jìn)行 3D 渲染

函數(shù)

Plenoxels 通過對(duì)渲染的像素的平均平方誤差 (MSE)進(jìn)行最小化,來優(yōu)化體素的不透明度和球諧系數(shù),并且使用 TV 正則化幫助消除噪聲。

效果圖

我們可以看出,是否使用 TV 正則化的效果區(qū)別還是很大的!

提速 100 倍,僅需 11 分鐘

我們用最直觀的方法對(duì)比一下兩個(gè)模型速度上的差距。

兩個(gè)模型速度對(duì)比

看到了嗎,只用幾秒 Plenoxels 就可以達(dá)到一個(gè)比較清晰的效果,而 NeRF 只有一個(gè)模糊的影子。

同樣是單個(gè)場(chǎng)景,NeRF 使用型號(hào)為 v100 的單個(gè) GPU 訓(xùn)練需要耗時(shí) 1-2 天,而 Plenoxels 使用單個(gè) GPU 通常只需要 11 分鐘。

這時(shí)有一個(gè)問題一定縈繞在你的腦海里,速度提升了這么多,效果真的不會(huì)受影響嗎?

空口無憑,我們還是要用數(shù)據(jù)說話。

數(shù)據(jù)

PSNR (峰值信噪比):是最普遍,最廣泛使用的評(píng)鑒畫質(zhì)的客觀量測(cè)法,PSNR 值越大,就代表失真越少。

SSIM (結(jié)構(gòu)相似性):衡量實(shí)際圖像和合成圖像的相似度,當(dāng)兩張圖像一模一樣時(shí),SSIM 的值等于 1。

LPIPS (學(xué)習(xí)感知圖像塊相似度):用于度量實(shí)際圖像和合成圖像之間的差別,值越低代表圖片越相似。

可以看到 Plenoxels 對(duì)比其他模型的表現(xiàn)不說樣樣最好,但也絕不落后他人,關(guān)鍵在于它的速度整整快了兩個(gè)數(shù)量級(jí)!

模型對(duì)比

正因?yàn)?Plenoxels 速度上的大幅提升,使得一些目前處于瓶頸的下游應(yīng)用變得可能,例如多次反射照明 (multi-bounce lighting)和大型場(chǎng)景的 3D 建模 (3D generative models)。

如果能在相機(jī)和體素散列上進(jìn)行有效優(yōu)化,模型甚至可以讓端到端三維重建成為擁有 pipeline 的實(shí)際應(yīng)用。

相信 Plenoxels 的潛力不僅于此,讓我們一起期待它落地后的成果吧!

UC 伯克利本科生一作

效果強(qiáng)勁的 Plenoxels 來自 UC 伯克利的學(xué)生團(tuán)隊(duì),一作 Alex Yu 還是一名本科生。在大學(xué)里,他不僅同時(shí)學(xué)習(xí)計(jì)算機(jī)和應(yīng)用數(shù)學(xué)兩門專業(yè),還在伯克利的 BAIR ( Berkeley Artificial Intelligence Research)實(shí)驗(yàn)室進(jìn)行 3D 計(jì)算機(jī)視覺的相關(guān)研究。

Plenoxels作者團(tuán)隊(duì)

Alex 計(jì)劃在 2022 的秋季開始他的 PhD 旅程,讓人不禁感嘆 AI 界真是人才輩出。在未來經(jīng)過 PhD 的學(xué)習(xí)后,他又會(huì)迸發(fā)出怎樣的能量呢,讓我們一起拭目以待吧!

GitHub 代碼開源

目前,Plenoxels 項(xiàng)目的代碼已經(jīng)在 GitHub 上開源。

GitHub頁面

小伙伴們要注意的是,拍攝照片的時(shí)候要盡可能環(huán)繞物體,并且嘗試不同的高度哦。

快來試試效果如何吧!

參考鏈接:

[1]https://alexyu.net/plenoxels/?s=09

[2]https://github.com/sxyu/svox2

[3]https://www.casualganpapers.com/eccv-3d-novel-view-synthesis-differentiable-rendering-implicit-representation/NeRF-explained.html

[4]https://www.casualganpapers.com/nerf-3d-voxels-without-neural-networks/Plenoxels-explained.html

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:算法,神經(jīng)網(wǎng)絡(luò)

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知