Cone tracing, IPE in Mip-NeRF

김민솔·2024년 11월 11일
0

NeRF

목록 보기
8/10

Mip-NeRF에서의 cone tracing과 IPE를 공부하기 위한 목적으로 작성되었습니다. 따라서 Introduction, Related Works, Results는 생략하였습니다.

Preliminaries: NeRF

  • 링크: https://velog.io/@rlaalsthf02/NeRF
    NeRF의 설명은 위의 링크로 대체하겠습니다! 해당 포스트에선 conical ray casting과 IPE 위주로만 다루겠습니다.

Method

pixel의 color는 pixel frustum 내에 존재하는 incoming radiance의 integration으로 계산됩니다. NeRF는 하나의 매우 작은 ray포인트로 캐스팅하기 때문에, aliasing이 발생합니다. conic 형태로 인코딩하게 되면, ray point의 volume 정보와 함께 샘플링하는 효과를 얻습니다.

사진과 같이 NeRF point sampling을 적용하게 되면, sample의 volume의 모양이나 크기가 고려되지 않게 ray가 샘플링됩니다.

따라서 1️⃣ cone 모양의 ray casting을 구현하여, 해당 문제를 해결하였습니다. 또한 encoding 과정에서 conical frustum에 맞는 2️⃣ IPE를 적용하였습니다.

1. Cone Tracing

기존 ray casting은 r(t)=o+td\mathbf{r}(t) = \mathbf{o} + t\mathbf{d}로 이루어지는 반면, cone casting에서는 radius를 정하고 반경 내의 ray를 casting합니다. cone의 radius r^\hat{r}은 world 좌표계 픽셀의 넓이에 2/122/\sqrt{12}로 scale한 값으로 설정됩니다.

위의 그림과 같이 1️⃣ radius 내, 2️⃣ t0에서 t1 사이에 존재하는 points를 샘플링합니다. 해당 포인트 샘플링 식은 다음과 같습니다.

F(x,o,d,r^,t0,t1)=1{(t0<d(xo)d22<t1)(d(xo)d22xo22>11+(r^/d2)2)}F(\mathbf{x}, \mathbf{o}, \mathbf{d}, \hat{r}, t_{0}, t_{1}) = \mathbb{1} \Bigg\{\Bigg( t_{0} < \frac{\mathbf{d}^{\top}(\mathbf{x} - \mathbf{o})} {||\mathbf{d}||^{2}_{2}} < t_{1} \Bigg) \Bigg( \frac{\mathbf{d}^{\top}(\mathbf{x} - \mathbf{o})} {||\mathbf{d}||^{2}_{2}||\mathbf{x} - \mathbf{o}||^{2}_{2}} > \frac{1}{\sqrt{1+(\hat{r}/||\mathbf{d}||_{2})^{2}}} \Bigg) \Bigg\}
  • 1\mathbb{1}: indicator function
    - x\mathbf{x}가 conical frustum 내에 있을 경우, 1로 반환
  • first term: t0과 t1 사이 거리에 위치하는 point sampling
  • second term: radius 내에 존재하는 point sampling

feature 표현 후에는, 해당 feature들에 대한 기댓값을 구하는 것으로 positional encoding을 적용할 수 있습니다.

r(o,d,r^,t0,t1)=r(x)F(x,o,d,r^,t0,t1)dxF(x,o,d,r^,t0,t1)dxr^{*}(\mathbf{o}, \mathbf{d}, \hat{r}, t_{0}, t_{1})=\frac{\int r(\mathbf{x})F(\mathbf{x}, \mathbf{o}, \mathbf{d}, \hat{r}, t_{0}, t_{1})d\mathbf{x}}{\int F(\mathbf{x}, \mathbf{o}, \mathbf{d}, \hat{r}, t_{0}, t_{1})d\mathbf{x}}

하지만, 위의 Expected PE는 closed form solution을 가지지 않기 때문에 cost를 알 수 없습니다. 따라서 conical frustum을 다변수 가우시안으로 근사하여 표현하는 방법을 고안하였고, 이것이 intergrated positional encoding(IPE)입니다.

2. IPE


F(x,)F(\mathbf{x}, \cdot)로부터 ray mean distance μt\mu_t와 ray variance σt2\sigma_t^2, σr2\sigma^2_r(perpendicular to rays)를 구하는 것으로 가우시안을 특정할 수 있습니다.

위의 값들을 통해 최종적인 다변수 가우시안을 표현하면 다음과 같습니다.

μ=o+μtd,Σ=σt2(dd)+σr2(Iddd22)\mathbf{\mu} = \mathbf{o} + \mu_t\mathbf{d}, \quad \Sigma=\sigma^2_t(\mathbf{d}\mathbf{d}^\top)+\sigma^2_r\Big( \mathbf{I}- \frac{\mathbf{d}\mathbf{d}^{\top}}{||d||^{2}_{2}} \Big)

Fourier Feature for PE

해당 가우시안에 Fourier feature을 적용하는 과정입니다. 우선 기존 PE를 matrix P\mathbf{P}와 sin, cos 행렬로 표현합니다.

P=[100...2L100010...02L10001...002L1],r(x)=[sin(Px)cos(Px)]\mathbf{P} = \begin{bmatrix} 1 & 0 & 0 & ... & 2^{L-1} & 0 & 0 \\ 0 & 1 & 0 & ... & 0 & 2^{L-1} & 0\\ 0 & 0 & 1 & ... & 0 & 0 & 2^{L-1} \end{bmatrix}, \quad r(\mathbf{x})=\begin{bmatrix} \sin(\mathbf{P}\mathbf{x}) \\ \cos(\mathbf{P}\mathbf{x}) \end{bmatrix}

이후, Positional encoding을 적용한 mean과 covariance는 다음과 같습니다.

μr=Pμ,Σr=PΣP\mu_r=\mathbf{P}{\mu}, \quad \Sigma_{r}=\mathbf{P}\Sigma\mathbf{P}^\top
  • Cov[Ax,By]=ACov[x,y]BCov[\mathbf{Ax}, \mathbf{By}] = \mathbf{A}Cov[\mathbf{x, y}]\mathbf{B}^\top : linear transformation of covariance

Expected value

PE 적용한 mean과 covariance에 integral(기댓값)을 적용하여, 최종적인 encoding 벡터를 얻게 됩니다.

r(μ,Σ)=ExN(μr,Σr)=[sin(μr)exp((1/2)diag(Σr))cos(μr)exp((1/2)diag(Σr))]\begin{aligned} r(\mu, \Sigma) &= \mathbb{E}_{\mathbf{x}\sim\mathcal{N}(\mu_{r},\Sigma_{r})} \\ &= \begin{bmatrix} \sin(\mu_{r})\cdot\exp(-(1/2)\text{diag}(\Sigma_{r})) \\ \cos(\mu_{r})\cdot\exp(-(1/2)\text{diag}(\Sigma_{r})) \end{bmatrix} \end{aligned}
  • computational cost를 고려하여, covariance의 대각 성분만 계산합니다.
  • 1차원 벡터로 연산하여 cost를 줄일 수 있습니다.

Contribution

  • single ray가 아닌, conical frustum을 활용하여 렌더링하였습니다.
  • multiscale scene 표현이 가능해졌으므로 single MLP만 사용합니다.
    - encoding 과정에서 이미 volume이 고려되기 때문에 hierarchical sampling의 효과를 얻습니다.
    - 모델 사이즈가 절반으로 줄게 됩니다. (fine network X)
  • NeRF보다 7% 빠르며, multiscale dataset에 대해선 22% 더 빠른 속도를 보입니다.

Reference

[1] Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields, Jonathan T. Barron, Google, https://arxiv.org/pdf/2103.13415

profile
Interested in Vision, Generative, NeRFs

0개의 댓글