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

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

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

萬萬沒想到,把照片變 3D 這件事,離了神經(jīng)網(wǎng)絡(luò)也是這般絲滑。

而在此之前,新視角合成這方面的“大牛”,是近兩年大火的 NeRF (神經(jīng)輻射場)。它是一個簡單的全連接神經(jīng)網(wǎng)絡(luò),使用 2D 圖像的信息作為訓(xùn)練數(shù)據(jù),還原擁有體積的 3D 場景。

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

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

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

NeRF 模型與 NeRF 模型

原理圖

要準(zhǔn)備 NeRF 的數(shù)據(jù),我們首先需要一部相機(jī)。

拍了很多張各個角度的照片后,沿相機(jī)射線將每一張 2D 圖片的坐標(biāo)與視圖方向構(gòu)成一個 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)練起來就會發(fā)現(xiàn)訓(xùn)練時間十分漫長,通常要 1-4 天。這個速度與 Plenoxels 的 11 分鐘相比確實(shí)是無法接受的。

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

Plenoxels

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

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

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

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

原理圖

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

重建一個稀疏的體素表格

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

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

進(jìn)行 3D 渲染

函數(shù)

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

效果圖

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

提速 100 倍,僅需 11 分鐘

我們用最直觀的方法對比一下兩個模型速度上的差距。

兩個模型速度對比

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

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

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

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

數(shù)據(jù)

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

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

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

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

模型對比

正因?yàn)?Plenoxels 速度上的大幅提升,使得一些目前處于瓶頸的下游應(yīng)用變得可能,例如多次反射照明 (multi-bounce lighting)和大型場景的 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é)里,他不僅同時學(xué)習(xí)計算機(jī)和應(yīng)用數(shù)學(xué)兩門專業(yè),還在伯克利的 BAIR ( Berkeley Artificial Intelligence Research)實(shí)驗(yàn)室進(jìn)行 3D 計算機(jī)視覺的相關(guān)研究。

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

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

GitHub 代碼開源

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

GitHub頁面

小伙伴們要注意的是,拍攝照片的時候要盡可能環(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)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

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

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