NeRF

最近神經(jīng)網(wǎng)絡(luò)界最火爆的兩個(gè)技術(shù),一個(gè)是 NeRF(NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis)笆凌,另一個(gè)是 deep diffussion model乞而,這里對(duì) NeRF 進(jìn)行調(diào)研之后進(jìn)行一些總結(jié)。

感知的核心任務(wù)其實(shí)是對(duì)于周圍環(huán)境的理解晦闰,對(duì)于機(jī)器人來說跪妥,只有理解了環(huán)境,然后才能做出一系列的決策声滥。在環(huán)境理解中眉撵,三維環(huán)境重建是重要的任務(wù)之一。目前三維重建的手段是通過一系列的傳感器在時(shí)空上對(duì)周圍環(huán)境進(jìn)行采樣落塑,而采樣的結(jié)果將會(huì)作為三維重建的約束纽疟。一般來說當(dāng)前的傳感器有攝像頭、激光雷達(dá)憾赁、毫米波雷達(dá)污朽、超聲波雷達(dá)等。而 NeRF 提出了一種如何通過一系列二維圖片(攝像頭)對(duì)三維重建進(jìn)行約束的方法蟆肆,其核心思想是建立可微的渲染方程。

1. 渲染方程(Rendering equation)

如果當(dāng)前有一種對(duì)于三維環(huán)境的空間描述方法赁温,并且清楚知道三維環(huán)境是如何在攝像頭上進(jìn)行成像的床玻,則可以用圖像對(duì)其進(jìn)行約束待牵,這種從三維環(huán)境到二維圖像的過程被稱為渲染,其核心問題是如何更好地描述真實(shí)世界的光照蛤袒。

Nerf 認(rèn)為整個(gè)空間由一系列的粒子構(gòu)成珍德,這些粒子一方面自身會(huì)發(fā)出光泵琳,另一方面這些粒子會(huì)吸收入射到它們的光,前者對(duì)應(yīng)漫反射溯壶,后者對(duì)應(yīng)遮擋。假設(shè)已知攝像頭的內(nèi)參\boldsymbol K、外參\boldsymbol R, \boldsymbol t端幼,那么對(duì)于像素(u, v)^T來說,深度為z的位置在世界坐標(biāo)系的位置\boldsymbol r和方向\boldsymbol d
\begin{aligned} \boldsymbol r &= \boldsymbol R^T \bigg( \boldsymbol K^{-1} \begin{bmatrix} zu \\ zv \\ z \end{bmatrix} - \boldsymbol t \bigg) \\ \quad \boldsymbol d &= \boldsymbol R^T \boldsymbol K^{-1} \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} \end{aligned}

在位置\boldsymbol r = r(z)處阴汇,取一個(gè)母線方向和\boldsymbol d相同的扁圓柱地来,其底面面積為E币绩,長(zhǎng)為\Delta z,粒子密度為\rho(\boldsymbol r),那么圓柱中的粒子個(gè)數(shù)為
n = E \Delta z \rho(\boldsymbol r)

當(dāng)\Delta z \to 0時(shí)艘刚,可以認(rèn)為粒子幾乎全部平鋪在圓柱底部云稚,如果粒子的截面積為A,那么所有粒子占據(jù)的總面積是nA,根據(jù)假設(shè)粒子會(huì)吸收入射到它們上面的光捏浊,因此光束打到圓柱上后被吸收的比例和面積占比一致為
\frac{nA}{E} = \Delta z \rho(\boldsymbol r)A

這里假設(shè)光是從外向內(nèi)(攝像頭光心)發(fā)射的,因此有
I(\boldsymbol r - \Delta \boldsymbol r) = (1 - \Delta z \rho(\boldsymbol r) A) I(\boldsymbol r)

取極限后可以得到微分方程
\frac{dI(\boldsymbol r)}{dz} = \lim_{\Delta z \to 0} \frac{\Delta I(\boldsymbol r)}{\Delta z} = \lim_{\Delta z \to 0} \frac{I(\boldsymbol r) - I(\boldsymbol r - \Delta \boldsymbol r)}{\Delta z} = \rho(\boldsymbol r) A I(\boldsymbol r) = \sigma(\boldsymbol r) I(\boldsymbol r)

如果考慮到粒子自身也會(huì)發(fā)光,發(fā)光量為 g(\boldsymbol r),那么有
I(\boldsymbol r - \Delta \boldsymbol r) = (1 - \Delta z \sigma(\boldsymbol r)) I(\boldsymbol r) + g(\boldsymbol r)

方程變成
\frac{dI(\boldsymbol r)}{dz} = \sigma(\boldsymbol r) I(\boldsymbol r) - g(\boldsymbol r)

該微分方程求解如下
\begin{aligned} \frac{dI(\boldsymbol r)}{dz} - \sigma(\boldsymbol r) I(\boldsymbol r) &= -g(\boldsymbol r) \\ &\Downarrow \\ \bigg[ \frac{dI(\boldsymbol r)}{dz} - \sigma(\boldsymbol r) I(\boldsymbol r) \bigg] e^{-\int_0^z\sigma(\boldsymbol r)dx} &= -g(\boldsymbol r) e^{-\int_0^z\sigma(\boldsymbol r)dx} \\ &\Downarrow \\ \fracqjgcy7z{dz} I(\boldsymbol r) e^{-\int_0^z\sigma(\boldsymbol r)dx} &= -g(\boldsymbol r) e^{-\int_0^z\sigma(\boldsymbol r)dx} \\ &\Downarrow \\ I(\boldsymbol r_f) e^{-\int_0^{z_f}\sigma(\boldsymbol r)dx} - I(\boldsymbol r_n) e^{-\int_0^{z_n}\sigma(\boldsymbol r)dx} &= -\int_{z_n}^{z_f} g(\boldsymbol r) e^{-\int_0^z\sigma(\boldsymbol r)dx} dz \\ &\Downarrow \\ I(\boldsymbol r_n) e^{-\int_0^{z_n}\sigma(\boldsymbol r)dx} &= I(\boldsymbol r_f) e^{-\int_0^{z_f}\sigma(\boldsymbol r)dx} + \int_{z_n}^{z_f} g(\boldsymbol r) e^{-\int_0^z\sigma(\boldsymbol r)dx} dz \\ &\Downarrow \\ I(\boldsymbol r_n) &= I(\boldsymbol r_f) e^{-\int_{z_n}^{z_f}\sigma(\boldsymbol r)dx} + \int_{z_n}^{z_f} g(\boldsymbol r) e^{-\int_{z_n}^z\sigma(\boldsymbol r)dx}dz \end{aligned}

正常積分的范圍應(yīng)該為 0 \to \infty,但是工程上是不可實(shí)現(xiàn)的嗤栓,因此采用 \boldsymbol r_n 表示采樣的最近距離,\boldsymbol r_f 表示采樣的最遠(yuǎn)距離,在這樣的假設(shè)下土匀,I(\boldsymbol r_n) 表示攝像頭看到的顏色镇饺,也就是需要求解的值,I(\boldsymbol r_f) 表示背景光的顏色扣癣,這個(gè)是 Nerf 原始論文中沒有考慮到的項(xiàng),后來在一些論文中被添加進(jìn)去膳殷。在 NeRF 中認(rèn)為 g(\boldsymbol r) = \sigma(\boldsymbol r) c(\boldsymbol r, \boldsymbol d)虑鼎,因此有了論文中的公式如下所示
I(\boldsymbol r_n) = \int_{z_n}^{z_f} \sigma(\boldsymbol r) c(\boldsymbol r, \boldsymbol d) e^{-\int_{z_n}^z\sigma(\boldsymbol r)dx}dz

注意到 NeRF 對(duì)于渲染模型的建立只考慮了遮擋和漫反射,對(duì)于其他比如多次散射等并沒有考慮拢驾,如果想要考慮這些因素嵌洼,可以閱讀論文Optical models for direct volume rendering许昨。為了方便編寫程序,需要對(duì)上述的連續(xù)方程進(jìn)行離散化,首先進(jìn)行變形得到
\begin{aligned} I(\boldsymbol r_n) &= \int_{z_n}^{z_f} \sigma(\boldsymbol r) c(\boldsymbol r, \boldsymbol d) e^{-\int_{z_n}^z\sigma(\boldsymbol r)dx}dz \\ &= \int_{z_n}^{z_f} -c(\boldsymbol r, \boldsymbol d) d e^{-\int_{z_n}^z\sigma(\boldsymbol r)dx} \\ &= \sum_{z = z_n}^{z_f} -c(\boldsymbol r, \boldsymbol d)(e^{-\sum_{z_n}^z \sigma(\boldsymbol r)\Delta z} - e^{-\sum_{z_n}^{z - \Delta z}\sigma(\boldsymbol r) \Delta z}) \end{aligned}

如果在 [z_n, z_f] 上進(jìn)行采樣市袖,得到一系列采樣點(diǎn) z_1, \cdots, z_N蜓肆,因此最終的離散表達(dá)式可以寫成
\begin{aligned} I(\boldsymbol r_n) = \sum_{i = 1}^{N} c(\boldsymbol r_i, \boldsymbol d_i)(e^{-\sum_{j = 1}^{i - 1}\sigma(\boldsymbol r_j) \Delta z_j} - e^{-\sum_{j = 1}^{i}\sigma(\boldsymbol r_j) \Delta z_j}) \end{aligned}

讀完可能會(huì)很奇怪调炬,這個(gè)哥們是怎么想到這種奇奇怪怪的方法的照棋,很多人懷疑他曾經(jīng)搞過射線追蹤拱绑,事實(shí)上也確實(shí)是如此吧恃,在他的主頁 Ben Mildenhall 上可以看到筷凤,他在校時(shí)期完成過一些和渲染、射線追蹤相關(guān)的課程大作業(yè),這也很好地解釋了為什么他可以很自然地想到用神經(jīng)網(wǎng)絡(luò)來完成這項(xiàng)任務(wù)外盯。

2. 三維空間描述方法

當(dāng)前對(duì)三維空間描述的方法主要有以下四種:柵格、點(diǎn)云、隱式表達(dá)赤炒、面元


3d_model.png

3. 球諧函數(shù)(Spherical Harmonics,SH)

在采用類似 Plenoxels 思路完成三維重建過程中尘执,一個(gè)繞不開的坎是球諧函數(shù)丧靡,其就是在球坐標(biāo)系下的傅里葉展開纬黎,可以表示球坐標(biāo)系下的各種函數(shù),最開始用在游戲渲染行業(yè)逛艰。這里用它來表示空間三維點(diǎn)顏色(像素顏色)隨著觀察角度(相機(jī)移動(dòng))的不同而產(chǎn)生的微小變化躏碳。

在一般的論文中提到球諧函數(shù),往往采用復(fù)球諧函數(shù)的形式散怖,如下所示
Y_l^m(\theta, \phi) = \sqrt{\frac{(l - m)!}{(l + m)!}\frac{2l + 1}{4\pi}}P_l^m(\cos\theta)e^{im\phi}

其中 \theta, \phi 定義如下
\begin{aligned} x &= r\sin\theta \cos\phi \\ y &= r\sin\theta \sin\phi \\ z &= r\cos\theta \end{aligned}

P_l^m(x) 是伴隨勒讓德多項(xiàng)式菇绵,可以通過如下的遞推公式得到結(jié)果
\begin{aligned} P_m^m(x) &= (-1)^m(2m - 1)!!(1 - x^2)^{\frac{m}{2}} \\ P_{m + 1}^m(x) &= x(2m + 1)P_m^m(x) \\ (l - m)P_l^m(x) &= x(2l - 1)P_{l - 1}^m - (l + m - 1)P_{l - 2}^m \\ \end{aligned}

這里列出最開始的幾個(gè)伴隨勒讓德多項(xiàng)式的結(jié)果
\begin{aligned} P_0^0 &= 1 \\ P_1^0 &= x & P_1^1 &= -\sqrt{1 - x^2} \\ P_2^0 &= \frac{1}{2}(3x^2 - 1) & P_2^1 &= -3x\sqrt{1 - x^2} & P_2^2 &= 3(1 - x^2) \\ P_3^0 &= \frac{1}{2}(5x^3 - 3x) & P_3^1 &= \frac{3}{2}(1 - 5x^2)\sqrt{1 - x^2} & P_3^2 &= 15x(1 - x^2) & P_3^3 &= -15(1 - x^2)^{\frac{3}{2}}\\ \cdots \end{aligned}

但是在工程中,采用的一般是實(shí)球諧函數(shù)(Real Spherical Harmonics)镇眷,如下所示
Y_l^m(\theta, \phi) = \begin{cases} (-1)^{|m|}\sqrt{\frac{(l - |m|)!}{(l + |m|)!}\frac{2l + 1}{2\pi}}P_l^{|m|}(\cos\theta)\cos(|m|\phi) & m > 0 \\ (-1)^{|m|}\sqrt{\frac{(l - |m|)!}{(l + |m|)!}\frac{2l + 1}{2\pi}}P_l^{|m|}(\cos\theta)\sin(|m|\phi) & m < 0 \\ \sqrt{\frac{2l + 1}{4\pi}}P_l^0(\cos\theta) & m = 0 \end{cases}
這里列出了最開始的幾個(gè)實(shí)球諧函數(shù)
\begin{aligned} Y_0^0 &= \frac{1}{2}\sqrt{\frac{1}{\pi}} \\ Y_1^{-1} &= \sqrt{\frac{3}{4\pi}} \sin\theta \sin\phi \\ Y_1^{0} &= \sqrt{\frac{3}{4\pi}} \cos\theta \\ Y_1^{1} &= \sqrt{\frac{3}{4\pi}} \sin\theta \cos\phi \\ Y_2^{-2} &= \frac{1}{4}\sqrt{\frac{15}{\pi}} \sin^2\theta \sin2\phi \\ Y_2^{-1} &= \frac{1}{2}\sqrt{\frac{15}{\pi}} \sin\theta \cos\theta \sin\phi \\ Y_2^{0} &= \frac{1}{4}\sqrt{\frac{5}{\pi}} (3\cos^2\theta - 1) \\ Y_2^{1} &= \frac{1}{2}\sqrt{\frac{15}{\pi}} \sin\theta \cos\theta \cos\phi \\ Y_2^{2} &= \frac{1}{4}\sqrt{\frac{15}{\pi}}\sin^2\theta \cos2\phi \\ \cdots \end{aligned}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末咬最,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子欠动,更是在濱河造成了極大的恐慌永乌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件具伍,死亡現(xiàn)場(chǎng)離奇詭異翅雏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)人芽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門望几,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人啼肩,你說我怎么就攤上這事⊙昧妫” “怎么了祈坠?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)矢劲。 經(jīng)常有香客問我赦拘,道長(zhǎng),這世上最難降的妖魔是什么芬沉? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任躺同,我火速辦了婚禮阁猜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蹋艺。我一直安慰自己剃袍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布捎谨。 她就那樣靜靜地躺著民效,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涛救。 梳的紋絲不亂的頭發(fā)上畏邢,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音检吆,去河邊找鬼舒萎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蹭沛,可吹牛的內(nèi)容都是我干的臂寝。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼致板,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼交煞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起斟或,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤素征,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后萝挤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體御毅,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年怜珍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了端蛆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡酥泛,死狀恐怖今豆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柔袁,我是刑警寧澤呆躲,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站捶索,受9級(jí)特大地震影響插掂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一辅甥、第九天 我趴在偏房一處隱蔽的房頂上張望酝润。 院中可真熱鬧,春花似錦璃弄、人聲如沸要销。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蕉陋。三九已至,卻和暖如春拨扶,著一層夾襖步出監(jiān)牢的瞬間凳鬓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工患民, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缩举,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓匹颤,卻偏偏與公主長(zhǎng)得像仅孩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子印蓖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容