Mip-NeRF:反走样神经辐射场的多尺度表示

Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields

传统神经辐射场(Neural Radiance Field,NeRF)对图像中的每一个像素发射一条光线,在该光线上取若干采样点对场景进行采样。它的弱点在于训练和推导应当尽可能在同一分辨率下,否则会产生模糊(近距离)、混叠(远距离),造成准确率下降。为了解决这个问题,一个直接的想法是增加每个像素发射的光线数量,然而每条光线的渲染都需要查询 MLP 数百次,这种超采样方式的开销是不可接受的。
在这里插入图片描述
Mip-NeRF 的做法是用视锥取代光线,借用 CG 中 Mipmap 的概念,利用一些预处理得到的 Mipmap,从而能够更好地还原不同分辨率下的场景。这些 Mipmap 也是由 MLP 学习得到的特征,由于暗含了分辨率参数(事实上,即 ttt),Mip-NeRF 只需要一个统一的 MLP 即可表达场景,而不用像传统 NeRF 那样分粗、细粒度两个。

在这里插入图片描述
区别于 NeRF 采样空间中无限小的点,Mip-NeRF 采样的是具有形状和大小、对尺度敏感的视锥。对位置向量 x\bold xx 参数化:

术语含义
图像平面(t=1t=1t=1o+d{\bold o}+{\bold d}o+d
图像平面视锥半径
(像素宽度的 2/122/\sqrt{12}2/12 倍)
r˙{\dot r}r˙
视锥范围(近点、远点)[t0,t1][t_0,t_1][t0,t1]

F(x,o,d,r˙,t0,t1)=1{(t0<dT(x−o)∥d∥22<t1)∧(dT(x−o)∥d∥2∥x−o∥2>11+(r˙/∥d∥2)2)} {\rm F}({\bold x},{\bold o},{\bold d},{\dot r},t_0,t_1)=1\left\{\left(t_0<\frac{{\bold d}^{\rm T}({\bold x}-{\bold o})}{\|{\bold d}\|_2^2}<t_1\right)\land\left(\frac{{\bold d}^{\rm T}({\bold x}-{\bold o})}{\|{\bold d}\|_2\|{\bold x}-{\bold o}\|_2}>\frac{1}{\sqrt{1+\left({\dot r}/{\|{\bold d}\|_2}\right)^2}}\right)\right\} F(x,o,d,r˙,t0,t1)=1(t0<d22dT(xo)<t1)d2xo2dT(xo)>1+(r˙/d2)21tan⁡θ˙=r˙∥d∥2\tan{\dot\theta}=\dfrac{\dot r}{\|{\bold d}\|_2}tanθ˙=d2r˙ 表示视锥在图像平面的半张角,上式改写为:
F(x,o,d,r˙,t0,t1)=1{(t0<dT(x−o)∥d∥22<t1)∧(dT(x−o)∥d∥2∥x−o∥2>cos⁡θ˙)} {\rm F}({\bold x},{\bold o},{\bold d},{\dot r},t_0,t_1)=1\left\{\left(t_0<\frac{{\bold d}^{\rm T}({\bold x}-{\bold o})}{\|{\bold d}\|_2^2}<t_1\right)\land\left(\frac{{\bold d}^{\rm T}({\bold x}-{\bold o})}{\|{\bold d}\|_2\|{\bold x}-{\bold o}\|_2}>\cos{\dot\theta}\right)\right\} F(x,o,d,r˙,t0,t1)=1{(t0<d22dT(xo)<t1)(d2xo2dT(xo)>cosθ˙)}当且仅当 F(x,⋅)=1{\rm F}({\bold x},\cdot)=1F(x,)=1x\bold xx 在视锥内部。此时位置编码更正为积分位置编码(Integral Positional Encoding,IPE)的期望:
γ∗(o,d,r˙,t0,t1)=∫γ(x)F(x,o,d,r˙,t0,t1)dx∫F(x,o,d,r˙,t0,t1)dx \gamma^*({\bold o},{\bold d},{\dot r},t_0,t_1)=\frac{\displaystyle\int{\gamma({\bold x}){\rm F}({\bold x},{\bold o},{\bold d},{\dot r},t_0,t_1){\rm d}{\bold x}}}{\displaystyle\int{{\rm F}({\bold x},{\bold o},{\bold d},{\dot r},t_0,t_1){\rm d}{\bold x}}} γ(o,d,r˙,t0,t1)=F(x,o,d,r˙,t0,t1)dxγ(x)F(x,o,d,r˙,t0,t1)dx上述积分的分子部分没有精确解,Mip-NeRF 使用多元高斯近似(假设视锥沿射线对称)。

术语含义
射线方向距离均值μt\mu_tμt
射线方向距离方差σt2\sigma_t^2σt2
垂轴方向距离方差σr2\sigma_r^2σr2

对位置向量进行坐标变换:
{x=r′cos⁡θy=r′sin⁡θz=t,1r˙=tr′⟹r′=r˙t \begin{cases} x=r'\cos\theta\\ y=r'\sin\theta\\ z=t \end{cases},\quad \frac{1}{{\dot r}}=\frac{t}{r'}\Longrightarrow r'={\dot r}t x=rcosθy=rsinθz=t,r˙1=rtr=r˙tx=φ(r,t,θ)=(rtcos⁡θ,rtsin⁡θ,t),θ∈[0,2π),t≥0,∣r∣≤r˙ {\bold x}=\varphi(r,t,\theta)=(rt\cos\theta,rt\sin\theta,t),\theta\in[0,2\pi),t\ge0,|r|\le{\dot r} x=φ(r,t,θ)=(rtcosθ,rtsinθ,t),θ[0,2π),t0,rr˙微元:
dxdydz=∣det⁡Dφ(r,t,θ)∣drdtdθ=∣∂x∂r∂x∂t∂x∂θ∂y∂r∂y∂t∂y∂θ∂z∂r∂z∂t∂z∂θ∣drdtdθ=∣tcos⁡θrcos⁡θ−rtsin⁡θtsin⁡θrsin⁡θrtcos⁡θ010∣drdtdθ=−(rt2cos⁡2θ+rt2sin⁡2θ)drdtdθ=−rt2drdtdθ \begin{align} {\rm d}x{\rm d}y{\rm d}z &=|\det{D\varphi}(r,t,\theta)|{\rm d}r{\rm d}t{\rm d}\theta\\ &=\begin{vmatrix} \dfrac{\partial x}{\partial r} & \dfrac{\partial x}{\partial t} & \dfrac{\partial x}{\partial\theta}\\ \dfrac{\partial y}{\partial r} & \dfrac{\partial y}{\partial t} & \dfrac{\partial y}{\partial\theta}\\ \dfrac{\partial z}{\partial r} & \dfrac{\partial z}{\partial t} & \dfrac{\partial z}{\partial\theta} \end{vmatrix}{\rm d}r{\rm d}t{\rm d}\theta\\ &=\begin{vmatrix} t\cos\theta & r\cos\theta & -rt\sin\theta\\ t\sin\theta & r\sin\theta & rt\cos\theta\\ 0 & 1 & 0 \end{vmatrix}{\rm d}r{\rm d}t{\rm d}\theta\\ &=-(rt^2\cos^2\theta+rt^2\sin^2\theta){\rm d}r{\rm d}t{\rm d}\theta\\ &=-rt^2{\rm d}r{\rm d}t{\rm d}\theta \end{align} dxdydz=detDφ(r,t,θ)drdtdθ=rxryrztxtytzθxθyθzdrdtdθ=tcosθtsinθ0rcosθrsinθ1rtsinθrtcosθ0drdtdθ=(rt2cos2θ+rt2sin2θ)drdtdθ=rt2drdtdθ体积:
V=∭0≤θ<2πt≥0∣r∣≤r˙∣dxdydz∣=∫02πdθ∫t0t1t2dt∫0r˙rdr=2π⋅t13−t033⋅r˙22=π3(t13−t03)r˙2 \begin{align}V&=\iiint\limits_{\begin{aligned}0\le&\theta<2\pi\\&t\ge0\\|&r|\le{\dot r}\end{aligned}}{|{\rm d}x{\rm d}y{\rm d}z|}\\ &=\int_0^{2\pi}{{\rm d}\theta}\int_{t_0}^{t_1}{t^2{\rm d}t\int_0^{\dot r}{r{\rm d}r}}\\ &=2\pi\cdot\frac{t_1^3-t_0^3}{3}\cdot\frac{{\dot r}^2}{2}\\ &=\frac{\pi}{3}(t_1^3-t_0^3){\dot r}^2\end{align} V=0θ<2πt0rr˙dxdydz=02πdθt0t1t2dt0r˙rdr=2π3t13t032r˙2=3π(t13t03)r˙2类似地:
μt=E[t]=1V∫02πdθ∫t0t1t3dt∫0r˙rdr=1V⋅2π⋅t14−t044⋅r˙22=3(t14−t04)4(t13−t03) \mu_t={\rm E}[t]=\frac1V\int_0^{2\pi}{{\rm d}\theta}\int_{t_0}^{t_1}{t^3{\rm d}t\int_0^{\dot r}{r{\rm d}r}}=\frac1V\cdot2\pi\cdot\frac{t_1^4-t_0^4}{4}\cdot\frac{{\dot r}^2}{2}=\frac{3(t_1^4-t_0^4)}{4(t_1^3-t_0^3)} μt=E[t]=V102πdθt0t1t3dt0r˙rdr=V12π4t14t042r˙2=4(t13t03)3(t14t04)E[t2]=1V∫02πdθ∫t0t1t4dt∫0r˙rdr=1V⋅2π⋅t15−t055⋅r˙22=3(t15−t05)5(t13−t03) {\rm E}[t^2]=\frac1V\int_0^{2\pi}{{\rm d}\theta}\int_{t_0}^{t_1}{t^4{\rm d}t\int_0^{\dot r}{r{\rm d}r}}=\frac1V\cdot2\pi\cdot\frac{t_1^5-t_0^5}{5}\cdot\frac{{\dot r}^2}{2}=\frac{3(t_1^5-t_0^5)}{5(t_1^3-t_0^3)} E[t2]=V102πdθt0t1t4dt0r˙rdr=V12π5t15t052r˙2=5(t13t03)3(t15t05)σt2=Var[t]=E[t2]−E2[t]=3(t15−t05)5(t13−t03)−μt2 \sigma_t^2={\rm Var}[t]={\rm E}[t^2]-{\rm E}^2[t]=\frac{3(t_1^5-t_0^5)}{5(t_1^3-t_0^3)}-\mu_t^2 σt2=Var[t]=E[t2]E2[t]=5(t13t03)3(t15t05)μt2E[x]=1V∫02πcos⁡θdθ∫t0t1t3dt∫0r˙r2dr=0 {\rm E}[x]=\frac1V\int_0^{2\pi}{\cos\theta{\rm d}\theta}\int_{t_0}^{t_1}{t^3{\rm d}t\int_0^{\dot r}{r^2{\rm d}r}}=0 E[x]=V102πcosθdθt0t1t3dt0r˙r2dr=0E[x2]=1V∫02πcos⁡2θdθ∫t0t1t4dt∫0r˙r3dr=1V⋅π⋅t15−t055⋅r˙44=3(t15−t05)20(t13−t03)r˙2 {\rm E}[x^2]=\frac1V\int_0^{2\pi}{\cos^2\theta{\rm d}\theta}\int_{t_0}^{t_1}{t^4{\rm d}t\int_0^{\dot r}{r^3{\rm d}r}}=\frac1V\cdot\pi\cdot\frac{t_1^5-t_0^5}{5}\cdot\frac{{\dot r}^4}{4}=\frac{3(t_1^5-t_0^5)}{20(t_1^3-t_0^3)}{\dot r}^2 E[x2]=V102πcos2θdθt0t1t4dt0r˙r3dr=V1π5t15t054r˙4=20(t13t03)3(t15t05)r˙2σr2=Var[x]=E[x2]−E2[x]=3(t15−t05)20(t13−t03)r˙2 \sigma_r^2={\rm Var}[x]={\rm E}[x^2]-{\rm E}^2[x]=\frac{3(t_1^5-t_0^5)}{20(t_1^3-t_0^3)}{\dot r}^2 σr2=Var[x]=E[x2]E2[x]=20(t13t03)3(t15t05)r˙2上述公式在数值计算层面存在指数爆炸(五次方)、差为零(t1−t0t_1-t_0t1t0 太小)的问题,训练过程会产生 0 或者 NaN\rm NaNNaN,需要进一步参数化 t1t_1t1t0t_0t0
{tμ=t1+t02tδ=t1−t02 \begin{cases} t_\mu=\dfrac{t_1+t_0}{2}\\ t_\delta=\dfrac{t_1-t_0}{2} \end{cases} tμ=2t1+t0tδ=2t1t0重写前述公式:
μt=34⋅(t1−t0)(t1+t0)[(t1+t0)2−2t1t0](t1−t0)(t12+t02+t1t0)=3(tμ2+tδ2)tμ3tμ2+tδ2=tμ+2tμtδ23tμ2+tδ2 \begin{align}\mu_t&=\dfrac34\cdot\dfrac{(t_1-t_0)(t_1+t_0)\left[(t_1+t_0)^2-2t_1t_0\right]}{(t_1-t_0)(t_1^2+t_0^2+t_1t_0)}\\ &=\dfrac{3(t_\mu^2+t_\delta^2)t_\mu}{3t_\mu^2+t_\delta^2}\\ &=t_\mu+\dfrac{2t_\mu t_\delta^2}{3t_\mu^2+t_\delta^2} \end{align} μt=43(t1t0)(t12+t02+t1t0)(t1t0)(t1+t0)[(t1+t0)22t1t0]=3tμ2+tδ23(tμ2+tδ2)tμ=tμ+3tμ2+tδ22tμtδ2σt2=35⋅(t1−t0)[(t12+t02)2−(t1t0)2+(t12+t02)t1t0](t1−t0)(t12+t02+t1t0)−μt2=3(5tμ4−2tμ2tδ2+tδ4)tδ25(3tμ2+tδ2)2=[13−4(12tμ2−tδ2)tδ215(3tμ2+tδ2)2]tδ2 \begin{align} \sigma_t^2&=\dfrac35\cdot\dfrac{(t_1-t_0)\left[\left(t_1^2+t_0^2\right)^2-\left(t_1 t_0\right)^2+\left(t_1^2+t_0^2\right)t_1t_0\right]}{(t_1-t_0)(t_1^2+t_0^2+t_1t_0)}-\mu_t^2\\ &=\dfrac{3(5t_\mu^4-2t_\mu^2t_\delta^2+t_\delta^4)t_\delta^2}{5\left(3t_\mu^2+t_\delta^2\right)^2}\\ &=\left[\dfrac13-\dfrac{4(12t_\mu^2-t_\delta^2)t_\delta^2}{15\left(3t_\mu^2+t_\delta^2\right)^2}\right]t_\delta^2 \end{align} σt2=53(t1t0)(t12+t02+t1t0)(t1t0)[(t12+t02)2(t1t0)2+(t12+t02)t1t0]μt2=5(3tμ2+tδ2)23(5tμ42tμ2tδ2+tδ4)tδ2=[3115(3tμ2+tδ2)24(12tμ2tδ2)tδ2]tδ2σr2=320⋅(t1−t0)[(t12+t02)2−(t1t0)2+(t12+t02)t1t0](t1−t0)(t12+t02+t1t0)⋅r˙2=(tμ24+5tδ212−4tμ2tδ215(3tμ2+tδ2))r˙2 \begin{align} \sigma_r^2&=\dfrac{3}{20}\cdot\dfrac{(t_1-t_0)\left[\left(t_1^2+t_0^2\right)^2-\left(t_1 t_0\right)^2+\left(t_1^2+t_0^2\right)t_1t_0\right]}{(t_1-t_0)(t_1^2+t_0^2+t_1t_0)}\cdot{\dot r}^2\\ &=\left(\dfrac{t_\mu^2}{4}+\dfrac{5t_\delta^2}{12}-\dfrac{4t_\mu^2t_\delta^2}{15(3t_\mu^2+t_\delta^2)}\right){\dot r}^2 \end{align} σr2=203(t1t0)(t12+t02+t1t0)(t1t0)[(t12+t02)2(t1t0)2+(t12+t02)t1t0]r˙2=(4tμ2+125tδ215(3tμ2+tδ2)4tμ2tδ2)r˙2于是相机坐标到世界坐标的变换:
{μ=o+μtdΣ=σt2ddT+σr2(I−ddT∥d∥22) \begin{cases} {\boldsymbol\mu}={\bold o}+\mu_t{\bold d}\\ {\boldsymbol\Sigma}=\sigma_t^2{\bold d}{\bold d}^{\rm T}+\sigma_r^2\left({\bold I}-\dfrac{{\bold d}{\bold d}^{\rm T}}{\|{\bold d}\|_2^2}\right) \end{cases} μ=o+μtdΣ=σt2ddT+σr2(Id22ddT)矩阵变换形式的位置编码:
P=[1002002L−100010020⋯02L−10001002002L−1]T,γ(x)=[sin⁡Pxcos⁡Px] {\bold P}=\begin{bmatrix} 1 & 0 & 0 & 2 & 0 & 0 & & 2^{L-1} & 0 & 0 \\ 0 & 1 & 0 & 0 & 2 & 0 & \cdots & 0 & 2^{L-1} & 0 \\ 0 & 0 & 1 & 0 & 0 & 2 & & 0 & 0 & 2^{L-1} \end{bmatrix}^{\rm T}, \gamma({\bold x})=\begin{bmatrix} \sin{{\bold P}{\bold x}}\\ \cos{{\bold P}{\bold x}} \end{bmatrix} P=1000100012000200022L10002L10002L1T,γ(x)=[sinPxcosPx]根据:
Ex∼N(μ,Σ)[sin⁡xcos⁡x]=[sin⁡μexp⁡(−12σ2)cos⁡μexp⁡(−12σ2)] {\rm E}_{x\sim{\cal N({\boldsymbol\mu},{\boldsymbol\Sigma})}}\begin{bmatrix} \sin{x}\\ \cos{x} \end{bmatrix}=\begin{bmatrix} \sin{\mu}\exp\left(-\dfrac{1}{2}\sigma^2\right)\\ \cos{\mu}\exp\left(-\dfrac{1}{2}\sigma^2\right) \end{bmatrix} ExN(μ,Σ)[sinxcosx]=sinμexp(21σ2)cosμexp(21σ2)定义积分位置编码:
γ(μ′,Σ′)=Ex∼N(μ′,Σ′)[γ(x)]=[sin⁡μ′∘exp⁡(−12diag Σ′)cos⁡μ′∘exp⁡(−12diag Σ′)] \gamma({\boldsymbol\mu}',{\boldsymbol\Sigma}')={\rm E}_{{\bold x}\sim{\cal N({\boldsymbol\mu}',{\boldsymbol\Sigma}')}}[\gamma({\bold x})]=\begin{bmatrix} \sin{{\boldsymbol\mu}'}\circ\exp\left(-\dfrac{1}{2}{\rm diag\ }{\boldsymbol\Sigma}'\right)\\ \cos{{\boldsymbol\mu}'}\circ\exp\left(-\dfrac{1}{2}{\rm diag\ }{\boldsymbol\Sigma}'\right) \end{bmatrix} γ(μ,Σ)=ExN(μ,Σ)[γ(x)]=sinμexp(21diag Σ)cosμexp(21diag Σ)其中:
{μ′=PμΣ′=PΣPT \begin{cases} {\boldsymbol\mu}'={\bold P}{\boldsymbol\mu}\\ {\boldsymbol\Sigma}'={\bold P}{\boldsymbol\Sigma}{\bold P}^{\rm T} \end{cases} {μ=PμΣ=PΣPTdiag Σ′=[diag Σ4diag Σ⋯4L−1diag Σ]T {\rm diag\ }{\boldsymbol\Sigma}'= \begin{bmatrix} {\rm diag\ }{\boldsymbol\Sigma} & 4{\rm diag\ }{\boldsymbol\Sigma} & \cdots & 4^{L-1}{\rm diag\ }{\boldsymbol\Sigma} \end{bmatrix}^{\rm T} diag Σ=[diag Σ4diag Σ4L1diag Σ]T于是:
γ(μ′,Σ′)={[sin⁡2lμ∘exp⁡(−22l−1diag Σ)cos⁡2lμ∘exp⁡(−22l−1diag Σ)]}l=0L \gamma({\boldsymbol\mu}',{\boldsymbol\Sigma}')=\left\{\begin{bmatrix} \sin{2^l{\boldsymbol\mu}}\circ\exp\left(-2^{2l-1}{\rm diag\ }{\boldsymbol\Sigma}\right)\\ \cos{2^l{\boldsymbol\mu}}\circ\exp\left(-2^{2l-1}{\rm diag\ }{\boldsymbol\Sigma}\right) \end{bmatrix}\right\}_{l=0}^L γ(μ,Σ)={[sin2lμexp(22l1diag Σ)cos2lμexp(22l1diag Σ)]}l=0L由于 IID,我们只需要关心协方差矩阵的对角线,Σ\boldsymbol\SigmaΣ 的计算可以简化为:
diag Σ=σt2(d∘d)+σr2(1−d∘d∥d∥22) {\rm diag\ }{\boldsymbol\Sigma}=\sigma_t^2\left({\bold d}\circ{\bold d}\right)+\sigma_r^2\left(1-\dfrac{{\bold d}\circ{\bold d}}{\|{\bold d}\|_2^2}\right) diag Σ=σt2(dd)+σr2(1d22dd)

References

J. T. Barron, B. Mildenhall, M. Tancik, et al. Mip-NeRF: A Multiscale Representation for Anti-Aliasing Neural Radiance Fields. ICCV’21. https://arxiv.org/abs/2103.13415

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值