Volsdf Sampling algorithm

l论文作者开发一个算法计算抽样S方程中使用
I ( c , v ) ≈ I ^ S ( c , v ) = ∑ i = 1 m − 1 τ ^ i L i I(\boldsymbol{c}, \boldsymbol{v}) \approx \hat{I}_{\mathcal{S}}(\boldsymbol{c}, \boldsymbol{v})=\sum_{i=1}^{m-1} \hat{\tau}_{i} L_{i} I(c,v)I^S(c,v)=i=1m1τ^iLi
首先是通过利用约束方程 :
max ⁡ t ∈ [ 0 , M ] ∣ O ( t ) − O ^ ( t ) ∣ ≤ B T , β = max ⁡ k ∈ [ n − 1 ] { exp ⁡ ( − R ^ ( t k ) ) ( exp ⁡ ( E ^ ( t k + 1 ) ) − 1 ) } , \max _{t \in[0, M]}|O(t)-\widehat{O}(t)| \leq B_{\mathcal{T}, \beta}=\max _{k \in[n-1]}\left\{\exp \left(-\widehat{R}\left(t_{k}\right)\right)\left(\exp \left(\widehat{E}\left(t_{k+1}\right)\right)-1\right)\right\}, t[0,M]maxO(t)O (t)BT,β=k[n1]max{exp(R (tk))(exp(E (tk+1))1)}, 找到 样本 T \Tau T 这样 0 ^ \hat 0 0^:
O ^ ( t ) = 1 − e x p ( − R ^ ( t ) ) \widehat{O}(t)=1-exp(-\hat R(t)) O (t)=1exp(R^(t))
提供了一个 ϵ \epsilon ϵ近似真实的不透明度 O O O, 其中 ϵ \epsilon ϵ为超参数,即 B T , β < ϵ B_{T,\beta} < \epsilon BT,β<ϵ.第二,我们执行逆CDF抽样与 O ^ \hat O O^.

注意,从引理1可以得出,我们可以简单地选择足够大的n来保证 B T , β < ϵ B_{T,\beta} < \epsilon BT,β<ϵ。然而,这将导致过多的样本。相反,我们建议一个简单的算法来减少实际中所需的样本数量,并允许使用有限的样本点预算。简单地说,我们从均匀采样 T = T 0 T = T_0 T=T0开始,用引理2初始设置 β + > β \beta_+ > \beta β+>β满足 B T , β + ≤ ϵ B_{T,\beta_+} \le \epsilon BT,β+ϵ。然后,我们重复上采样 T T T以降低 β + \beta_+ β+,同时维持 B T , β + ≤ ϵ B_{T,\beta_+} \le \epsilon BT,β+ϵ。尽管这个简单的策略不能保证收敛,但我们发现 β + \beta_+ β+通常收敛于 β + \beta_+ β+(通常为85%,见图3),即使在不收敛的情况下,算法提供的 β + \beta_+ β+的不透明度近似仍然保持一个误差。算法如下所示(算法1)。

Volsdf Sampling algorithm_第1张图片
我们初始化 T T T(1号线算法1)均匀采样 T 0 = { t i } i = 1 n , t k = ( k − 1 ) M n − 1 , k ∈ [ n ] T_0 = \{t_i\} ^n_{i = 1}, t_k = \frac{(k−1)M}{n−1}, k∈[n] T0={ti}i=1n,tk=n1(k1)M,k[n](我们在我们的实现中使用n = 128)。给定这个采样,我们接下来根据引理2选取 β + > β \beta_+ > \beta β+>β,使得误差界满足要求的界(算法1中的第2行)。

为了降低 β + \beta_+ β+,同时保持 B T , β + ≤ ϵ B_{T,\beta_+} \le \epsilon BT,β+ϵ,将n个样本添加到T(算法1中的第4行),其中从每个间隔采样的点数与其当前误差界限成比例,公式:
m a x t ∈ [ t k , t k + 1 ] O ( t ) − O ^ ( t ) ∣ ≤ e x p ( E ^ ( t k + 1 ) − 1 ) \underset{t\in[t_k,t_{k+1}]}{max} O(t)-\widehat{O}(t)| \le exp(\hat E(t_{k+1})-1) t[tk,tk+1]maxO(t)O (t)exp(E^(tk+1)1)
假设T被充分上采样并满足 B T , β + ≤ ϵ B_{T,\beta_+} \le \epsilon BT,β+ϵ,我们将 β + \beta_+ β+ β \beta β减小。因为算法没有停止,所以我们有 B T , β + ≥ ϵ B_{T,\beta_+} \ge \epsilon BT,β+ϵ。因此,中值定理蕴含着存在 β ∈ ( β , β + ) \beta \in(\beta,\beta_+) βββ+使得 B T , β + = ϵ B_{T,\beta_+} = \epsilon BT,β+=ϵ。我们使用二分法(最多10次迭代)来有效地搜索 β \beta β并相应地更新 β + \beta_+ β+(算法1中的第6行和第7行)。该算法迭代运行,直到 B T , β + ≤ ϵ B_{T,\beta_+} \le \epsilon BT,β+ϵ或达到最大迭代次数5。无论哪种方式,我们都使用最终的 T T T β + \beta_+ β+(保证提供 B T , β + ≤ ϵ B_{T,\beta_+} \le \epsilon BT,β+ϵ)来估计当前的不透明度 O O O,算法1中的第10行)。最后,我们使用逆变换采样返回一个新的m = 64个样本O的集合(算法1中的第11行)。图3显示了算法1的定性说明,β = 0.001和= 0.1(典型值)。

引理1.固定 β > 0 \beta > 0 β>0。对于任何 ϵ > 0 \epsilon > 0 ϵ>0,足够密集的采样T将提供 B T , β + ≤ ϵ B_{T,\beta_+} \le \epsilon BT,β+ϵ。其次,在样本数固定的情况下,我们可以设置 β \beta β,使得误差界小于: ϵ \epsilon ϵ.

引理2.固定 n > 0 n > 0 n>0。对于任何 ϵ > 0 \epsilon>0 ϵ>0,有一个足够大的 β \beta β满足 β ≥ α M 2 a ( n − 1 ) l o g ( 1 + ϵ ) \beta \ge \frac{\alpha M^2}{a(n-1)log(1+\epsilon)} βa(n1)log(1+ϵ)αM2将提供 B T , β + ≤ ϵ B_{T,\beta_+} \le \epsilon BT,β+ϵ.

你可能感兴趣的:(Paper,NeRF,算法,机器学习,人工智能)