June 01, 2023
Modern Neural Radiance Fields (NeRFs) learn a mapping from position to volumetric density leveraging proposal network samplers. In contrast to the coarse-to-fine sampling approach with two NeRFs, this offers significant potential for acceleration using lower network capacity. Given that NeRFs utilize most of their network capacity to estimate radiance, they could store valuable density information in their parameters or their deep features. To investigate this proposition, we take one step back and analyze large, trained ReLU-MLPs used in coarse-to-fine sampling. Building on our novel activation visualization method, we find that trained NeRFs, Mip-NeRFs and proposal network samplers map samples with high density to local minima along a ray in activation feature space. We show how these large MLPs can be accelerated by transforming intermediate activations to a weight estimate, without any modifications to the training protocol or the network architecture. With our approach, we can reduce the computational requirements of trained NeRFs by up to \(50\%\) with only a slight hit in rendering quality. Extensive experimental evaluation on a variety of datasets and architectures demonstrates the effectiveness of our approach. Consequently, our methodology provides valuable insight into the inner workings of NeRFs.
Neural Fields [1] parameterize implicit functions over continuous domains using neural networks and have gained popularity due to their ability to represent various types of signals. To represent arbitrary high-frequency functions, positional encoding [2], Fourier features [3], Gaussian activations [4], [5], among other alternatives [6]–[8], are used to overcome the spectral bias [9]. Compared to their explicit counterparts, implicit representations are more memory-efficient and can achieve higher quality, but regrettably suffer from slower inference. In addition, as the signal is encoded in the weights and biases of a neural network, every change to a parameter has a non-local effect, which makes implicit representations hard to modify.
For novel view synthesis problems, the 5D plenoptic function mapping positions and directions to radiance and density can be learned from posed images leveraging a neural field. NeRFs [2] have recently demonstrated impressive performance for real-world and synthetic datasets. However, the naïve approach of sampling the scene densely is slow and inefficient due to the prohibitive number of required samples. A coarse-to-fine sampling strategy is adopted to overcome these limitations, estimating the density distribution along a ray by uniformly sampling a coarse NeRF, which generates a new set of samples for a subsequent fine NeRF using inverse transform sampling. Although performance is improved substantially, the number of required samples still prohibits real-time rendering. Furthermore, as no ground-truth density information is available, the coarse NeRF is supervised with an MSE reconstruction loss.
Reducing the number of required samples for NeRFs is a fruitful endeavor to lower the computational requirements. Sampling networks [10]–[13], which predict volumetric density along a ray to produce a set of samples for a subsequent shading network, prove highly effective for this task. The network capacity for a sampling network is significantly reduced, as solely predicting volumetric density is view-independent and thus easier to learn. For supervising these sampling networks ground-truth depth data [13], a pre-trained NeRF [14], multi-view stereo [15] or distillation from a concurrently trained shading network [10]–[12] may be used. Alternatively, occupancy grids [16] allow for efficient empty-space skipping by encoding the expected density within a discretized region.
A clear disadvantage of the coarse-to-fine NeRF pipeline is the use of the coarse model for density prediction only, even though it is optimized to reconstruct the ground-truth image. Sampling networks, on the other hand, map sample positions to volumetric density using a network with reduced capacity and can be supervised by the shading network. Given that sampling networks show that density can be modelled with lower capacity, a subset of a coarse NeRF should be able to model density accurately as well — particularly since recent work has found that NeRF-MLPs naturally partition themselves into structural and color layers [17].
To this end, we analyze the intermediate activations of coarse NeRFs: We derive a representation from these activations and show how it is tied to the density distribution along a view ray. Building on this crucial finding, we devise a novel method to extract density estimates given intermediate activations of coarse NeRFs. By elegantly combining activation analysis and our method to extract densities, our approach can reduce inference times while maintaining high quality at test-time. We demonstrate that our approach is not only applicable to NeRF and Mip-NeRF [18], but produces similar results when applied to proposal network samplers as well, with extensive evaluation supporting our claim. To the best of our knowledge, our approach is the first to use intermediate activations to accelerate inference for coordinate-based MLPs.
To summarize, our contributions are as follows:
We present a novel method for visualizing and analyzing the activations of coordinate-based ReLU-MLPs.
We present an approach for extracting a density estimate for fine re-sampling from activations in early layers of coarse NeRFs, significantly reducing the inference time with little decrease in quality. Consequently, our method provides valuable insight into the inner workings of NeRFs.
We demonstrate the effectiveness of our method for several architectures with real-world and synthetic data.
In the following, we review related work, focusing on real-time rendering and efficient sampling for NeRFs.
Instead of the implicit representation of radiance fields used in NeRF [2], explicit representations with grid-like data structures [19], [20] or hybrid representation [16], [21]–[24] are often used to accelerate inference and training. Most prominently of the aforementioned, Instant-NGP [16] replaces the fixed positional encoding used by NeRF with a learnable hash encoding, allowing for the use of much smaller MLPs and thus rapid convergence. Alternatively, 3D Gaussian Splatting [25] has recently demonstrated state-of-the-art rendering quality in addition to fast training and rendering using a fully explicit representation relying on anisotropic 3D Gaussians. Other works [26], [27] suggest a divide-and-conquer approach, utilizing many tiny MLPs responsible for a small region instead of a large MLP for the whole scene. Distillation of a NeRF into a render-friendly format has been explored extensively [28], [29], but these approaches are memory-intensive and require an additional distillation step after training. Recent work [30], [31] has also investigated approximate geometry equipped with neural features and small, global decoders. Finally, mesh-based view synthesis [32]–[34] has recently demonstrated real-time rendering on low-power devices, relying on approximate meshes extracted from radiance fields and the well-known graphics pipeline.
Several works investigate a learnable proposal sampler, which can predict volumetric density [11] or sample locations [10]. DONeRF [13] learns a density volume as a multi-class classification task to guide sample placement with direct depth supervision. Building on DONeRF, AdaNeRF [12] mitigates the requirement of pre-training and depth supervision for the sampling network with a 4-phase training recipe. EfficientNeRF [35] proposes valid sampling, caching densities of sample positions and exclusively evaluating those with positive density — this approach shares similarities with our method in that it is motivated by the density distribution of coarse NeRFs. TermiNeRF [14] distills a NeRF into a sampling and shading network. For their sampling network, they perform distribution matching, effectively reparameterizing NeRFs intervals to allow for fewer samples. Lin et al. [15] learn a proxy geometry with a cost volume for depth guidance, uniformly sampling a smaller depth range with a lower sample count. A better sampling strategy is also attained by unifying implicit surface models and radiance fields [36]. To enable mesh-based view synthesis, SDFs [32] or Binary Opacity Grids [34] can accurately locate surfaces. Finally, by restricting volume rendering to a small band around the surface [37], the number of samples can be reduced significantly.
In the following section, we briefly summarize the most important architectures and concepts which build the foundation for our work.
NeRFs [2] learn a function \[\Theta_{\text{NeRF}}: \mathbb{R}^5 \rightarrow \mathbb{R}^4,\;({\mathbf{p}}, {\mathbf{d}}) \mapsto ({\mathbf{c}}, \sigma),\] where \({\mathbf{p}} = (x,y,z)\) and \({\mathbf{d}} = (\theta, \phi)\) are the sample position and viewing direction, \({\mathbf{c}} \in [0,1]^3\) denotes the predicted output color and \(\sigma \in \mathbb{R}\) is the volumetric density. NeRF uses a ReLU-MLP with 8 layers and \(56\) hidden units to predict a feature vector \({\mathbf{f}} \in \mathbb{R}^{256}\) and \(\sigma\). This feature vector is then concatenated with \({\mathbf{d}}\) and passed through a small ReLU-MLP to produce \({\mathbf{c}}\), which allows view-dependent phenomena to be modelled. For each pixel, we cast a ray \({\mathbf{r}}(t) = {\mathbf{o}} + t{\mathbf{d}}\) from the origin \({\mathbf{o}}\) in the direction of \({\mathbf{d}}\). We evaluate \(\Theta_{\text{NeRF}}\) at different sample positions \(t \in [t_n, t_f]\) between the near bound \(t_n\) and the far bound \(t_f\). The color \(\hat{\mathcal{C}}\) of a ray \({\mathbf{r}}\) can be estimated using \(N_s\) samples with \[\hat{\mathcal{C}}({\mathbf{r}}) = \sum_{i=1}^{N_s} T_i (1 - \exp({-\sigma_i \delta_i})){\mathbf{c}}_i,\] where \(\delta_i\) and \(T_i\) are given as \[\delta_i = t_{i+1}-t_i, \quad T_i = \exp{\left(- \sum_{j=1}^{i-1} {\sigma_j \delta_j}\right)}.\] To increase rendering efficiency, two NeRFs are concurrently optimized. The coarse NeRF \(\Theta_{\text{coarse}}\) places \(N_c\) samples uniformly for each ray \({\mathbf{r}}\), which produces a set of weights \({\mathbf{w}} \in \mathbb{R}^{N_c}\) with \[\mathrm{w}_i = { T_i(1 - \exp(-\sigma_i \delta_i))}, \label{eq:3:weights}\tag{1}\] used to express the estimated coarse radiance as a weighted sum \[\hat{\mathcal{C}}_c({\mathbf{r}}) = \sum_{i=1}^{N_c} \mathrm{w}_i {\mathbf{c}}_i.\] The weights \({\mathbf{w}}\) are normalized such that \({\mathbf{1}}^T {\mathbf{w}}= 1\) to obtain a piecewise-constant PDF along \({\mathbf{r}}\). This distribution is used to produce a new set of \(N_f\) samples with inverse transform sampling. The final rendered color is produced by \(\Theta_{\text{fine}}\) using all \(N_c + N_f\) samples.
NeRF applies positional encoding \(\gamma(\cdot)\) to \({\mathbf{p}}\) and \({\mathbf{d}}\), allowing the network to model high-frequency details effectively [3]. The network is supervised with the MSE loss for both \(\Theta_{\text{coarse}}\) and \(\Theta_{\text{fine}}\), i.e. \(\sum_{{\mathbf{r}}}\|\hat{\mathcal{C}}_c({\mathbf{r}}) - {\mathcal{C}}({\mathbf{r}})\|_2^2 + \|\hat{\mathcal{C}}_f({\mathbf{r}}) - {\mathcal{C}}({\mathbf{r}})\|_2^2\), with \(\mathcal{C}({\mathbf{r}})\) denoting the ground truth color for \({\mathbf{r}}\) and \(\hat{\mathcal{C}}_f({\mathbf{r}})\) denoting the estimated fine radiance of \({\mathbf{r}}\).
Mip-NeRF [18] builds on NeRF and tackles the problem of aliasing when scene content is observed at various resolutions. The standard computer graphics solution of super-sampling is prohibitively expensive when considering NeRFs volume rendering. Instead, Mip-NeRF introduces a novel Integrated Positional Encoding (IPE), which is the expected positional encoding of all coordinates within a conical frustum. Each conical frustum is approximated with a multivariate Gaussian, and the IPE feature serves as the encoded input for \(\Theta_{\text{NeRF}}\). This modification allows the MLP to reason about the size and shape of the encoded region, efficiently combating aliasing which occurs for ambiguous point samples.
As the network can now learn a multi-scale scene representation, \(\Theta_{\text{NeRF}}\) performs both coarse and fine sampling, reducing the model size by \(50\%\) — however, the network is still supervised with an MSE loss.
NeRF and Mip-NeRF require that 3D coordinates exist in a bounded domain for sampling — an assumption which is violated in unbounded 3D scenes, where objects may exist at any distance from the camera. Therefore, Mip-NeRF 360 [11] proposes a spatial contraction \(\text{contract}(\cdot)\), which maps coordinates from \(\mathbb{R}^3\) to a ball of radius \(2\): \[\begin{align} \text{contract}({\mathbf{x}}) = \begin{cases} {\mathbf{x}} & \|{\mathbf{x}} \| \leq 1 \\ \left( 2 - \frac{1}{\|{\mathbf{x}} \|}\right)\left( \frac{{\mathbf{x}}}{\|{\mathbf{x}} \|}\right) & \|{\mathbf{x}} \| > 1 \\ \end{cases}. \end{align}\] To handle the increased capacity required for unbounded scenes and increase rendering efficiency, Mip-NeRF 360 concurrently optimizes two MLPs, \(\Theta_{\text{prop}}\) and \(\Theta_{\text{NeRF}}\). Their proposal network sampler \(\Theta_{\text{prop}}\) learns a function \[\Theta_{\text{prop}}: \mathbb{R}^3 \rightarrow \mathbb{R},\;{\mathbf{p}} \mapsto \sigma,\] and is optimized to bound the weights \({\mathbf{w}}\) produced by \(\Theta_{\text{NeRF}}\). Two subsequent rounds of proposal sampling produce two weights \(\{\hat{{\mathbf{w}}}_1, \hat{{\mathbf{w}}}_2\}\), which is efficient due to the small size of \(\Theta_{\text{prop}}\) with 4 layers and 256 hidden units.
In this section, we present our method for visualizing and analyzing the intermediate activations for ReLU-MLPs. In addition, we show how we can leverage these intermediate activations to accelerate inference for pre-trained NeRFs.
Benefiting from the inherent spatial structure baked into their building blocks, several works [38], [39] investigate the visualization of intermediate features for Convolutional Neural Networks (CNNs). These methods typically operate by back-projection from feature space to pixel space, allowing informative insight into the inner workings of these models. For MLPs, which are mostly used as universal function approximators, practitioners have not been as interested in their activations. To this end, we propose a novel method for visualizing activations of coordinate-based MLPs.
We analyze the hidden layer activations of NeRF MLPs as follows: For each pixel \((x,y)\), a ray \({\mathbf{r}}\) is generated, positional encoding \(\gamma(\cdot)\) is applied and each sample along the ray is passed through \(\Theta_{\text{NeRF}}\). In the following, we describe the intermediate activations in terms of a single ray/pixel. After each linear layer, the activation \({\mathbf{A}}^{(\ell)}\) is of size \(\mathbb{R}^{N_s \times N_h}\), where \(N_s\) and \(N_h\) denote the number of samples and the number of hidden units, respectively. To obtain a feature representation \({\mathbf{f}}_{\ell}\in \mathbb{R}^{N_s}\) for the activation in layer \(\ell\), we compute the mean over the dimension \(N_h\): \[{\mathbf{f}}_{\ell}= \frac{1}{N_h}\;\sum_{i=1}^{N_h}\;{{\mathbf{A}}^{(\ell)}_{i}}. \label{eq:feature95per95sample}\tag{2}\] Further, we can produce a scalar \(v_{\ell}\in \mathbb{R}\) for each ray \({\mathbf{r}}\) for visualization purposes with \[v_{\ell}= \frac{1}{N_s}\;\sum_{i=1}^{N_s}\;\sum_{j=1}^{N_h}\;{{\mathbf{A}}^{(\ell)}_{i, j}}. \label{eq:activation}\tag{3}\] We visualize the activations of different layers \(\ell\) for some example views using Eqn. 3 in Fig. 1. As we can see, intermediate activations exhibit notable structural information. We note that when recording activations \({\mathbf{A}}^{(\ell)}\), we have the option to apply or not apply the activation function. Unless stated otherwise, we work with activations after the ReLU has been applied, thus \({\mathbf{A}}^{(\ell)} \in \mathbb{R}_+^{N_s \times N_h}\). Although unintuitive due to the information loss caused by the ReLU, early experiments showed that applying the activation function resulted in more consistent histograms for \({\mathbf{f}}_{\ell}\).
| \(\ell\) | PSNR \(\uparrow\) | SSIM \(\uparrow\) | LPIPS \(\downarrow\) | \(t\;[s]\) | Speedup | \(\%\) fine Rays |
|---|---|---|---|---|---|---|
| 1 | 29.66 | 0.93 | 0.04 | 34.69 | 40\(\%\) | 59\(\%\) |
| 2 | 30.45 | 0.94 | 0.03 | 34.02 | 43\(\%\) | 58\(\%\) |
| 3 | 33.11 | 47\(\%\) | 55\(\%\) | |||
| 4 | 34.76 | 43\(\%\) | 59\({\%}\) | |||
| NeRF | 48.98 | - | 100\(\%\) |
4.25pt
As a first step towards speeding up the coarse-to-fine NeRF rendering pipeline, we analyze the densities \(\sigma\) predicted by \(\Theta_{\text{coarse}}\). Take, for example, any of the synthetic scenes from the Blender dataset [2]. Along rays \({\mathbf{r}}\) in empty space, we do not expect any sample with significant volumetric density. We can sum the number of densities along each ray \({\mathbf{r}}\) larger than a small threshold \(\tau\) to obtain a mapping \(g: {\mathbf{r}} \mapsto \{0, \ldots, N_c\}\). If for any of the rays the result is \({0}\), the corresponding pixel likely belongs to the transparent background. We see in Fig. 2 that when the value of \(g\) is high, the value of \(v_{\ell}\) is low, and vice-versa.
For each ray \({\mathbf{r}}\), we record the predicted coarse radiance \(\hat{\mathcal{C}}_c\) and the activations \(v_{\ell}\) from \(\Theta_{\text{coarse}}\). We choose a threshold \(\tau\), which indicates whether we observe scene content along \({\mathbf{r}}\). We choose \(\tau = \mu({\mathbf{V}}_\ell)\), the mean activation of the activation image \({\mathbf{V}}_\ell\). We obtain a set of rays \(P = \{{\mathbf{r}}: v_{\ell}< \tau\}\), which we treat as a mask. If \({\mathbf{r}} \in P\), we evaluate \(\Theta_{\text{fine}}\). Otherwise, we treat the coarse radiance \(\hat{\mathcal{C}}_c\) as our final output. Using this approach, we can significantly reduce the number of evaluations for \(\Theta_{\text{fine}}\), which uses \(N_c + N_f = 192\) samples, which results in a significant performance improvement. As we cover most of the object in the scene with our derived mask \(P\), the image quality loss is negligible. We report the results for the lego scene from the Blender dataset [2] in Tab. 1 and visualize our approach in Fig. 2. This experiment demonstrates that early intermediate activations already contain notable density information and reveals an interesting connection between density and activations.
Clearly, the approach from Sec. 4.2 heavily relies on the transparent background present in synthetic scenes. Real-world captures, on the other hand, often include highly detailed backgrounds. Therefore, we go beyond this basic approach by analyzing the activation features \({\mathbf{f}}_{\ell}\) along a ray \({\mathbf{r}}\). We accomplish this by examining histograms of the predicted density \(\sigma\) and the activation features \({\mathbf{f}}_{\ell}\), as can be seen in Fig. 3. We notice a trend throughout multiple scenes: Activation feature space minima indicate samples with significant density. If we can find a function to transform \({\mathbf{f}}_{\ell}\) to a reasonable density estimate \(\hat{{\mathbf{d}}}\), we can effectively replace the expensive evaluation for \(\Theta_{\text{coarse}}\) with a pass through a smaller MLP. Ideally, this function should transform \({\mathbf{f}}_{\ell}\) to a vector of mostly zeros, except for locations where \(\sigma\) is significant. To this end, we propose 3 different functions \(f_i\) to map the intermediate activations directly to estimated densities \(\hat{{\mathbf{d}}}\), which were handcrafted based on the observed relationship between activations and density: \[\begin{align} f_1\left( {\mathbf{f}}_{\ell}\right) &= \text{ReLU} \left( \left(\mu({\mathbf{f}}_{\ell}) - \sigma({\mathbf{f}}_{\ell})\right) - {\mathbf{f}}_{\ell}\right), \tag{4}\\ f_2\left( {\mathbf{f}}_{\ell}\right) &= \text{ReLU} \left( \left(\mu({\mathbf{f}}_{\ell}) - \frac{\sigma({\mathbf{f}}_{\ell})}{2}\right) - {\mathbf{f}}_{\ell}\right), \tag{5}\\ f_3\left( {\mathbf{f}}_{\ell}\right) &= \text{ReLU} \left( \left(\mu({\mathbf{f}}_{\ell}) - \frac{\sigma({\mathbf{f}}_{\ell})}{2}\right) - {\mathbf{f}}_{\ell}\right)^2, \tag{6} \end{align}\] where \({\mathbf{f}}_{\ell}\) denotes the intermediate activation feature for layer \(\ell\) and \(\mu(\cdot),\;\sigma(\cdot)\) denote the mean and standard deviation along the last dimension (i.e. along the \(N_s\) samples of the ray \({\mathbf{r}}\)). We visualize our approach for a toy example in Fig. [fig:act95informed].
Using Eqn. 4 results in fewer intervals with density along the ray, but is prone to failures if the distribution along a ray exhibits high standard deviation. On the other hand, Eqns. 5 and 6 extract density estimates more conservatively but might lead to insufficient detail, as the interval between fine samples grows larger.
Given a well-behaved distribution, we can estimate densities sufficiently close to \(\sigma\) such that we get good reconstruction quality when converting \(\hat{{\mathbf{d}}}\) to a weight estimate \(\hat{{\mathbf{w}}}\). Further, we can significantly reduce the required inference time by using only a small subset of the large \(\Theta_{\text{coarse}}\) MLP. Clearly, the potential speedup is dependent on the number of samples \(N_s\), which is large for NeRFs.
First, we extract the activation features \({\mathbf{f}}_{\ell}\) and apply a function \(f_i\) to transform this to a density estimate \(\hat{{\mathbf{d}}}\) for each ray \({\mathbf{r}}\). To obtain our estimated weights \(\hat{{\mathbf{w}}}\), which should conform to a piecewise-constant PDF along the ray \({\mathbf{r}}\), we use \(\hat{w}_i = \hat{d}_i / \sum_{j=1}^{N_s}\hat{d}_j\) and subsequently perform inverse transform sampling, as done in NeRF [2] (c.f. Fig. [fig:act95informed]).
In the following, we apply our presented method to NeRF [2] and Mip-NeRF [18]. Additionally, we apply our method to proposal network samplers, utilizing a nerfacto model [40] with a Mip-NeRF 360 [11] proposal sampler, which we dub \(\text{nerfacto}^\dagger\). We only apply our density extraction method to the first 3 layers: Recent work by Wang et al. [17] has found that NeRF MLPs naturally store structural information within the first MLP layers. In addition, when applying our method to earlier layers, we can accelerate inference more substantially.
For our evaluation, we use four diverse datasets, which are well-established in the novel view synthesis literature: The Blender dataset [2] consists of \(360^\circ\) captures of synthetic objects with complex geometry, realistic non-Lambertian effects and transparent backgrounds in a bounded domain. LLFF [41] is a dataset of forward-facing, real-world scenes in high resolution. The Mip-NeRF 360 dataset [11] contains \(360^\circ\) captures of real-world, unbounded scenes and is the most challenging benchmark in our evaluation. Finally, we also use 2 large-scale, bounded indoor scenes from Deep Blending [42] (playroom & drjohnson). For both LLFF and Mip-NeRF 360, we use the \(4\times\) downsampled images. We report per-scene results in the supplementary material.
We use the NeRF and Mip-NeRF implementations from Nerfstudio [40] and use the hyperparameter settings as reported in the respective works [2], [18]. To facilitate sampling in NDC, as NeRF does for LLFF [41], we implement a custom LLFF dataloader adapted from the nerf-pytorch codebase [43].
For our experiments with proposal network samplers, we adapt the nerfacto model from Nerfstudio [40]. This architecture unifies recent NeRF-related research [11], [16], [44]–[46] into a single, universally-applicable method. For our \(\text{nerfacto}^\dagger\) model, we replace the HashMLPDensityField with a 4-layer ReLU-MLP with 256 hidden units, following Mip-NeRF 360 [11], and use positional encoding [2]. Note that this configuration is slower than nerfacto due to the large MLP, however, it enables experiments with our proposed method for proposal network samplers.
2.8pt
@cccccccccc@
&& &
(lr)3-6(lr)7-10 & & PSNR & SSIM & LPIPS & Speedup & PSNR & SSIM & LPIPS & Speedup
& \(f_1\) & 27.48 & 0.92 & 0.09 & & 25.11 & 0.75 & 0.23 &
&\(f_2\) & 28.69 & 0.92 & 0.08 & & & & &
&\(f_3\) & 28.63 & 0.92 & 0.08 & & & & &
& \(f_1\) & 27.99 & 0.92 & 0.08 & & 24.72 & 0.73 & 0.26 &
&\(f_2\) & & & & & 25.12 & 0.74 & 0.24 &
&\(f_3\) & & & & & 25.01 & 0.74 & 0.25 &
& \(f_1\) & & 0.88 & 0.12 & & 24.21 & 0.71 & 0.28 &
&\(f_2\) & 26.23 & 0.90 & 0.11 & & 24.99 & 0.74 & 0.25 &
&\(f_3\) & 25.07 & 0.89 & 0.11 & & 24.87 & 0.73 & 0.26 &
& & & & - & & & & -
& \(f_1\) & 27.54 & 0.92 & 0.09 & & 25.07 & 0.74 & 0.24 &
&\(f_2\) & 28.75 & 0.92 & 0.08 & & & & &
&\(f_3\) & 28.72 & 0.93 & 0.08 & & 25.35 & 0.75 & 0.22 &
& \(f_1\) & 26.67 & 0.91 & 0.09 & & 25.02 & 0.74 & 0.25 &
&\(f_2\) & & & & & 25.44 & 0.75 & 0.22 &
&\(f_3\) & & & & & 25.35 & 0.75 & 0.23 &
& \(f_1\) & & 0.90 & 0.10 & & 24.21 & 0.71 & 0.28 &
&\(f_2\) & 27.47 & 0.92 & 0.09 & & & & &
&\(f_3\) & 26.45 & 0.91 & 0.09 & & 25.42 & 0.75 & 0.22 &
& & & & - & & & & -
& \(f_1\) & 25.67 & 0.91 & 0.10 & & 24.46 & 0.81 & 0.15 &
&\(f_2\) & 26.20 & 0.91 & 0.09 & & & & &
&\(f_3\) & 26.17 & 0.91 & 0.09 & & 24.13 & 0.80 & 0.16 &
& \(f_1\) & 26.24 & 0.91 & 0.09 & & 24.21 & 0.80 & 0.16 &
&\(f_2\) & & & & & & & &
&\(f_3\) & & & & & 23.51 & 0.78 & 0.18 &
& \(f_1\) & 26.16 & 0.91 & 0.09 & & 23.21 & 0.78 & 0.19 &
&\(f_2\) & 25.58 & 0.91 & 0.10 & & 23.78 & 0.79 & 0.17 &
&\(f_3\) & 24.79 & 0.90 & 0.10 & & 23.04 & 0.77 & 0.22 &
& & & & - & & & & -
We evaluate our approach for NeRF and Mip-NeRF using the Blender dataset [2] and the LLFF dataset [41]. For the NeRF experiment, we could either record the activations from \(\Theta_{\text{coarse}}\) or \(\Theta_{\text{fine}}\). However, only \(\Theta_{\text{coarse}}\) is trained for uniform samples, hence we use the coarse MLP, which also performed better in our experiments.
We report quantitative results in Tab. ¿tbl:tab:results? and show our visual results in Fig. 4. For NeRF, the performance gain is not as significant as for Mip-NeRF due to the different number of samples \(N_c, N_f\): For Mip-NeRF, \(N_c = N_f = 128\), contrary to \(N_c=64, N_f = 128+64\) for NeRF. Hence, our approach performs favorably for Mip-NeRF due to its more expensive coarse network evaluation. We find that Eqn. 5 for \(\ell=2\) performs best in our experiments. All run-time results for NeRF and Mip-NeRF were obtained on an NVIDIA Quadro RTX 8000.
First, we evaluate our approach for \(\text{nerfacto}^\dagger\) using the Blender dataset [2] and the LLFF dataset [41]. For our experiments, we approximate the first iteration of proposal sampling: As the proposal sampler iterations use \(\{256, 96\}\) samples, respectively, approximating the first round yields more performance improvements1. In addition, our functions \(f_i\) are biased towards uniform or piecewise-linear sample placement, and lead to unfavorable results when interval sizes vary significantly.
We report quantitative results in Tab. ¿tbl:tab:results? and show our visual results in Fig. 4. For the \(\text{nerfacto}^\dagger\) model, we observe a huge performance gain for the first layer, which declines sharply — this is due to the large number of samples for the first proposal sampler iteration and the small shading network. We find that Eqn. 5 applied in layer \(\ell=2\) performed best when considering standard image metrics. The reported run-time results for \(\text{nerfacto}^\dagger\) were obtained on an NVIDIA RTX 2070 Super.
Further, we evaluate our method on unbounded, real-world scenes, leveraging the Mip-NeRF 360 [11] and Deep Blending [42] datasets. We adapt \(\text{nerfacto}^\dagger\) in the following ways: We use \(7 \times 10^{5}\) training iterations, disable the appearance embedding, camera optimizer, distortion loss and the collider. We present our results in Tab. 2 and show example outputs in Fig. 5. Compared to the results presented for the LLFF dataset [41], our method performs less favorably in this scenario. We attribute this to the large sampling domain in these datasets, which requires more precise density estimates. Performance-wise, we observe the same trends as for the previous experiments. We used an NVIDIA RTX 4090 for these two datasets.
| Mip-NeRF 360 | Deep Blending | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 3-6 (lr)7-10 | PSNR | SSIM | LPIPS | Speedup | PSNR | SSIM | LPIPS | Speedup | |
| 1 | \(f_1\) | 22.80 | 0.687 | ||||||
| \(f_2\) | 76 % | 72 % | |||||||
| \(f_3\) | 0.283 | 27.98 | 0.858 | 0.239 | |||||
| 2 | \(f_1\) | 22.71 | 0.683 | 0.289 | 27.97 | 0.858 | 0.239 | ||
| \(f_2\) | 22.66 | 0.681 | 0.292 | 28 % | 27.95 | 0.856 | 0.243 | 27 % | |
| \(f_3\) | 22.67 | 0.680 | 0.297 | 27.94 | 0.856 | 0.242 | |||
| 3 | \(f_1\) | 22.44 | 0.675 | 0.305 | 27.77 | 0.849 | 0.256 | ||
| \(f_2\) | 22.21 | 0.669 | 0.309 | - | 27.48 | 0.844 | 0.264 | - | |
| \(f_3\) | 22.39 | 0.669 | 0.316 | 27.78 | 0.847 | 0.262 | |||
| \(\text{nerfacto}^\dagger\) | - | - | |||||||
2.8pt
To support our quantitative evaluation, we conduct additional ablation studies to analyze the effect of varying network capacity and the use of the ReLU function in our proposed functions \(f_i\). More details and ablation studies are provided in the supplementary material.
To investigate the effect of network capacity, we vary the number of layers for the proposal network sampler of \(\text{nerfacto}^\dagger\) using the Mip-NeRF 360 dataset [11]. We report results in Tab. 3 — remarkably, lower network capacity allows for better visual quality retention for our best configuration. As the decomposition property of NeRFs [17] does not apply to proposal network samplers, lower network capacity forces the proposal network sampler to learn a more informative latent representation of density. We report results for all configurations of \(\ell\) and \(f_i\) in the supplementary material — the configuration \(\ell=1\) and \(f_2\) performs best for all tested network capacities.
| #Layers | \(\ourfacto\) | Ours, \(\ell = 1\), \(f_2\) | ||||
|---|---|---|---|---|---|---|
| 2-4 (lr)5-7 | PSNR \(\uparrow\) | SSIM \(\uparrow\) | LPIPS \(\downarrow\) | PSNR \(\uparrow\) | SSIM \(\uparrow\) | LPIPS \(\downarrow\) |
| 2 | 0.726 | 0.247 | ||||
| 3 | ||||||
| 4 | 24.201 | 22.925 | 0.691 | 0.279 | ||
| 5 | 24.176 | 0.729 | 0.240 | |||
| 6 | 22.891 | 0.690 | 0.278 | |||
4pt
We also conduct an additional ablation study to test the effectiveness of applying the ReLU in Eqns. 4 , 5 and 6 : We remove the ReLU for all \(f_i\), use the \(\text{nerfacto}^\dagger\) model for the Mip-NeRF 360 dataset [11] and report the results in Tab. 4.
| with ReLU | without ReLU | ||||||
|---|---|---|---|---|---|---|---|
| 3-5(lr)6-8 | PSNR \(\uparrow\) | SSIM \(\uparrow\) | LPIPS \(\downarrow\) | PSNR \(\uparrow\) | SSIM \(\uparrow\) | LPIPS \(\downarrow\) | |
| 1 | \(f_1\) | ||||||
| \(f_2\) | |||||||
| \(f_3\) | |||||||
| 2 | \(f_1\) | 22.708 | 0.683 | 0.289 | 21.527 | 0.637 | 0.327 |
| \(f_2\) | 22.656 | 0.681 | 0.292 | 21.536 | 0.637 | 0.327 | |
| \(f_3\) | 22.666 | 0.680 | 0.297 | 21.501 | 0.635 | 0.329 | |
| 3 | \(f_1\) | 22.443 | 0.675 | 0.305 | 21.598 | 0.635 | 0.334 |
| \(f_2\) | 22.214 | 0.669 | 0.309 | 21.618 | 0.637 | 0.332 | |
| \(f_3\) | 22.390 | 0.669 | 0.316 | 21.570 | 0.636 | 0.333 | |
4.5pt
As we can see, not applying the ReLU leads to worse outputs for every configuration we tested. Empirically, this is caused by the more inconsistent histograms and larger standard deviation \(\sigma({\mathbf{f}}_{\ell})\). We note that the configuration \(\ell=1, f_2\) performs best for both variants of our method.
Our method is not without its limitations. For certain test set views, using Eqn. 4 results in rays \({\mathbf{r}}\) with \(\hat{{\mathbf{w}}} = \mathbf{0}\), which does not produce a good set of samples for the subsequent shading pass. We indicate these cases in Tab. ¿tbl:tab:results? and show examples in Fig. 6. These failures are particularly evident for Mip-NeRF, as the fine pass does not include the uniformly distributed samples. Eqns. 5 and 6 mitigate this issue effectively, but might lead to outputs with less detail due to their more conservative formulation.
Although our approach performs well for a variety of architectures and datasets, extending it to hybrid or explicit representations such as [16], [19], [20], [24] is not trivial, as these approaches replace the MLP with more efficient alternatives. Further, our handcrafted functions for density estimation were created intuitively and are biased towards uniform or piecewise-linear sample placement.
We have presented a generally applicable framework to analyze and visualize the intermediate activations of coordinate-based ReLU-MLPs. Building on our findings, we proposed a novel method to obtain density estimates using our derived activation features. We demonstrated that our approach produces faithful renderings with improved performance and provided valuable insight into the internals of neural fields. We believe our concepts could be applied to other tasks involving coordinate-based MLPs.
For the Blender dataset [2], we set \(t_n = 2.0,\;t_f = 6.0\) for all scenes. We disable the camera optimizer, the appearance embedding, the distortion loss and the scene contraction. We manually set the background color to white. For all scenes, we use a batch size of \(2048\) rays during training and use a uniform initial proposal network sampler. We train \(\text{nerfacto}^\dagger\) for \(16.5 \times 10^{3}\) epochs, as in [40].
For the LLFF dataset [41], we disable the camera optimizer, the appearance embedding and the distortion loss. We use a \(\ell_\infty\) scene contraction as default for nerfacto [40], contrary to the use of NDC coordinates in NeRF and Mip-NeRF. We do not use our custom LLFF dataparser, we instead opt for the nerfstudio dataparser, which requires pre-processing the data. For all scenes, we use a batch size of \(1024\) rays during training and a batch size of \(2048\) during evaluation. We train \(\text{nerfacto}^\dagger\) for \(30 \times 10^{3}\) epochs, as in [40]. For the leaves scenes, we use a uniform initial proposal network sampler, as the piecewise-uniform sampler did not result in stable optimization.
For Mip-NeRF 360 [11] and Deep Blending [42], we use the Nerfstudio data processing pipeline [40] to extract the dataset using the given SfM output. As we use an MLP with NeRFs positional encoding [2], the hyperparameters reported in [40] do not necessarily provide the best results. We experimented with different hyperparameters and ultimately used the configuration reported in the main paper, as it resulted in the best performance for \(\text{nerfacto}^\dagger\). Also, note that the results for Mip-NeRF 360 reported in [40] do not include the scenes flowers and treehill, for which \(\text{nerfacto}^\dagger\) exhibits the worst image metrics (c.f. Sec. 10).
To investigate the effect of the MLP introduced for \(\text{nerfacto}^\dagger\), we compare the results with nerfacto (with HashMLPDensityField) in Tab. 5. We use the Mip-NeRF 360 dataset [11] and use the same hyperparameter settings as reported in the main paper. Both variants achieve comparable results, although nerfacto is significantly faster.
| Method | # Layers | PSNR \(\uparrow\) | SSIM \(\uparrow\) | LPIPS \(\downarrow\) |
|---|---|---|---|---|
| 2 | 24.201 | 0.726 | 0.247 | |
| 3 | ||||
| \(\ourfacto\) | 4 | 24.201 | 0.732 | 0.237 |
| 5 | 24.176 | 0.729 | 0.240 | |
| 6 | ||||
| nerfacto | ||||
First, we present an extensions to our method, which reduces processing time even further. In addition, we also report more detailed results for the ablation studies in Sec. 5.3.
| NeRF | ||||||
|---|---|---|---|---|---|---|
| Method | Blender, \(800 \times 800\) | LLFF, \(1008 \times 756\) | ||||
| PSNR | SSIM | LPIPS | PSNR | SSIM | LPIPS | |
| 29.05 | 0.93 | 0.07 | 25.12 | 0.74 | 0.24 | |
| Upsampling | 28.90 | 0.93 | 0.08 | 24.60 | 0.73 | 0.26 |
| NeRF | 29.87 | 0.94 | 0.06 | 25.89 | 0.78 | 0.18 |
| \(\textbf{Mip-NeRF}\) | ||||||
| Base | 29.04 | 0.93 | 0.07 | 25.44 | 0.75 | 0.22 |
| Upsampling | 28.94 | 0.93 | 0.08 | 24.90 | 0.74 | 0.25 |
| Mip-NeRF | 29.69 | 0.94 | 0.06 | 25.99 | 0.78 | 0.18 |
5pt
As our approach builds on the intermediate activations for a proposal of density along a ray, a natural extension to our method is to obtain the activations \({\mathbf{A}}^{(\ell)}\) at a lower resolution. To this end, we perform an ablation study, where we record \({\mathbf{A}}^{(\ell)}\) at a resolution of \(\frac{w}{2} \times \frac{h}{2} \times \frac{N_c}{2} \times N_h\), then perform upsampling to obtain a full-resolution activation \({\mathbf{A}}^{(\ell)}\). As our interpolation method, we choose nearest neighbor upsampling due to its negligible cost. Similarly to this approach, DONeRF [13] filters along the depth axis and across neighboring rays to obtain a smoothed depth target for their oracle network. For the Blender dataset [2] and the LLFF dataset [41], we use our method with \(\ell =1\) and \(f_2\) and report results in Tab. 6. We perform this experiments for NeRF [2] and Mip-NeRF [18]: As we can see, this modifications impacts visual quality only slightly.
| Reduced Capacity: 2 Layers | Reduced Capacity: 3 Layers | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| 3-6(lr)7-10 | PSNR | SSIM | LPIPS | Speedup | PSNR | SSIM | LPIPS | Speedup | |
| 1 | \(f_1\) | 23.20 | 0.696 | ||||||
| \(f_2\) | - | 44% | |||||||
| \(f_3\) | 23.66 | 0.703 | 0.269 | 0.272 | |||||
| 2 | \(f_1\) | 22.63 | 0.677 | 0.299 | |||||
| \(f_2\) | 22.56 | 0.676 | 0.299 | - | |||||
| \(f_3\) | 22.71 | 0.676 | 0.306 | ||||||
| \(\text{nerfacto}^\dagger\) | - | - | |||||||
| Increased Capacity: 5 Layers | Increased Capacity: 6 Layers | ||||||||
| 3-6(lr)7-10 | PSNR | SSIM | LPIPS | Speedup | PSNR | SSIM | LPIPS | Speedup | |
| 1 | \(f_1\) | 22.83 | 22.73 | ||||||
| \(f_2\) | 101% | 120% | |||||||
| \(f_3\) | 22.83 | 0.688 | 0.280 | 0.686 | 0.283 | ||||
| 2 | \(f_1\) | 22.82 | 0.688 | 0.280 | 22.67 | 0.683 | 0.287 | ||
| \(f_2\) | 0.688 | 0.281 | 50% | 22.69 | 0.683 | 0.289 | 69% | ||
| \(f_3\) | 22.78 | 0.686 | 0.284 | 22.62 | 0.680 | 0.294 | |||
| 3 | \(f_1\) | 22.70 | 0.684 | 0.287 | 22.64 | 0.683 | 0.289 | ||
| \(f_2\) | 22.60 | 0.682 | 0.291 | 20% | 22.58 | 0.680 | 0.294 | 37% | |
| \(f_3\) | 22.64 | 0.680 | 0.295 | 22.47 | 0.675 | 0.303 | |||
| 4 | \(f_1\) | 22.54 | 0.677 | 0.299 | 22.52 | 0.678 | 0.298 | ||
| \(f_2\) | 22.28 | 0.670 | 0.305 | - | 22.31 | 0.672 | 0.304 | 15% | |
| \(f_3\) | 22.62 | 0.673 | 0.308 | 22.41 | 0.671 | 0.310 | |||
| 5 | \(f_1\) | 22.45 | 0.673 | 0.305 | |||||
| \(f_2\) | 22.18 | 0.665 | 0.317 | - | |||||
| \(f_3\) | 22.55 | 0.673 | 0.312 | ||||||
| \(\text{nerfacto}^\dagger\) | - | - | |||||||
2.7pt
We provide the full results for our capacity experiment from the main material in Tab. 7. As we can see, layer \(\ell = 1, f_2\) is the best configuration for our method across various scenarios. This further indicates that capacity has minimal impact on our approach.
We provide two example renderings comparing our method with the variant without the ReLU in Fig. 7. As can clearly be seen, not using the ReLU leads to more artefacts, particularly around sharp edges, causing the drop in all image metrics. This is caused by the more inconsistent histograms and the larger standard deviation.
In Tabs. 8 and 9, we show per-scene results for the Blender dataset [2] and the LLFF dataset [41]. For the drums scene, we manage to outperform Mip-NeRF quantitatively. In Tabs. 10 and 11, we also report the per-scene results for Mip-NeRF 360 [11] and Deep Blending [42].
| \(\textbf{NeRF}\) | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| \(\ell\) | Fct. | Chair | Drums | Ficus | Hotdog | Lego | Materials | Mic | Ship |
| 1 | \(f_1\) | 30.10 | 22.33 | 26.21 | 32.41 | 26.79 | 28.05 | 29.10 | 24.86 |
| \(f_2\) | 30.12 | 23.30 | 28.25 | 33.40 | 28.99 | 28.58 | 30.53 | 26.30 | |
| \(f_3\) | 30.43 | 23.23 | 28.14 | 33.26 | 28.75 | 28.61 | 30.48 | 26.16 | |
| 2 | \(f_1\) | 23.57 | 25.83 | 33.17 | 28.54 | ||||
| \(f_2\) | 30.19 | 28.73 | 30.97 | ||||||
| \(f_3\) | |||||||||
| 3 | \(f_1\) | 27.93 | 20.26 | 21.74 | 26.13 | 28.15 | |||
| \(f_2\) | 28.98 | 20.46 | 22.42 | 32.97 | 27.62 | 26.18 | 25.28 | 25.91 | |
| \(f_3\) | 27.93 | 19.62 | 21.29 | 32.15 | 26.14 | 24.17 | 23.59 | 25.71 | |
| \(\text{NeRF}\) | |||||||||
| \(\textbf{Mip-NeRF}\) | |||||||||
| 1 | \(f_1\) | 30.14 | 22.33 | 26.10 | 33.06 | 27.52 | 28.21 | 28.54 | 24.44 |
| \(f_2\) | 30.01 | 23.36 | 27.60 | 33.64 | 29.83 | 28.60 | 30.25 | 26.69 | |
| \(f_3\) | 30.34 | 23.34 | 27.44 | 29.70 | 28.61 | 29.93 | 26.56 | ||
| 2 | \(f_1\) | 27.46 | 31.67 | 28.97 | 27.97 | ||||
| \(f_2\) | 30.13 | 23.66 | 33.57 | 30.97 | 26.89 | ||||
| \(f_3\) | |||||||||
| 3 | \(f_1\) | 28.77 | 22.31 | 25.96 | 27.85 | 30.90 | |||
| \(f_2\) | 29.19 | 22.68 | 25.16 | 33.60 | 29.64 | 27.75 | 25.06 | 26.66 | |
| \(f_3\) | 28.07 | 21.86 | 23.22 | 33.44 | 29.64 | 26.27 | 21.98 | ||
| \(\text{Mip-NeRF}\) | |||||||||
| \(\textbf{nerfacto}^\dagger\) | |||||||||
| 1 | \(f_1\) | 28.30 | 20.80 | 22.06 | 31.48 | 25.89 | 24.19 | 27.49 | 25.14 |
| \(f_2\) | 29.07 | 21.17 | 26.89 | 24.35 | 28.19 | 25.56 | |||
| \(f_3\) | 29.07 | 21.18 | 26.91 | 24.30 | 28.02 | 25.66 | |||
| 2 | \(f_1\) | 20.89 | 22.08 | 31.19 | 27.26 | 24.61 | 29.18 | 25.57 | |
| \(f_2\) | 22.17 | 31.46 | 24.56 | 29.45 | |||||
| \(f_3\) | 28.56 | 22.04 | 31.18 | 27.40 | |||||
| 3 | \(f_1\) | 27.96 | 20.59 | 22.02 | 31.00 | 25.04 | |||
| \(f_2\) | 28.01 | 20.64 | 22.00 | 31.03 | 25.24 | 24.36 | 28.16 | 25.16 | |
| \(f_3\) | 27.95 | 20.60 | 22.02 | 31.01 | 22.69 | 23.53 | 25.55 | 24.97 | |
| \(\text{nerfacto}^\dagger\) | |||||||||
| \(\textbf{NeRF}\) | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| \(\ell\) | Fct. | Fern | Flower | Fortress | Horns | Leaves | Orchids | Room | T-Rex |
| 1 | \(f_1\) | 23.83 | 27.61 | 28.12 | 25.11 | 19.35 | 30.32 | 25.16 | |
| \(f_2\) | 21.35 | 19.57 | |||||||
| \(f_3\) | 19.48 | ||||||||
| 2 | \(f_1\) | 23.76 | 27.68 | 27.95 | 24.84 | 21.08 | 19.48 | 28.66 | 24.32 |
| \(f_2\) | 24.03 | 27.95 | 28.17 | 25.26 | 21.23 | 29.44 | 25.30 | ||
| \(f_3\) | 23.92 | 27.86 | 28.09 | 25.14 | 21.19 | 19.56 | 29.13 | 25.21 | |
| 3 | \(f_1\) | 23.61 | 27.65 | 27.74 | 24.34 | 20.97 | 19.50 | 28.18 | |
| \(f_2\) | 23.92 | 27.95 | 28.06 | 24.96 | 21.17 | 28.94 | 25.26 | ||
| \(f_3\) | 23.82 | 27.88 | 27.95 | 24.79 | 21.12 | 19.61 | 28.66 | 25.17 | |
| \(\text{NeRF}\) | |||||||||
| \(\textbf{Mip-NeRF}\) | |||||||||
| 1 | \(f_1\) | 23.56 | 27.73 | 28.04 | 24.79 | 19.34 | 30.57 | 25.16 | |
| \(f_2\) | 28.26 | 28.50 | 21.37 | 19.59 | 30.89 | 25.56 | |||
| \(f_3\) | 23.80 | 28.16 | 28.32 | 25.35 | 19.50 | 30.79 | 25.46 | ||
| 2 | \(f_1\) | 23.41 | 27.88 | 28.13 | 24.89 | 21.23 | 19.41 | 30.47 | 24.72 |
| \(f_2\) | 23.72 | 28.33 | 28.52 | 25.49 | 21.34 | 19.60 | |||
| \(f_3\) | 23.60 | 28.29 | 28.37 | 25.35 | 21.34 | 19.53 | 30.78 | 25.51 | |
| 3 | \(f_1\) | 23.51 | 25.69 | 28.31 | 23.68 | 20.74 | 18.75 | 30.14 | |
| \(f_2\) | 21.32 | ||||||||
| \(f_3\) | 23.71 | 25.37 | 21.31 | 30.81 | 25.57 | ||||
| \(\text{Mip-NeRF}\) | |||||||||
| \(\textbf{nerfacto}^\dagger\) | |||||||||
| 1 | \(f_1\) | 26.60 | 25.18 | 17.98 | 29.81 | ||||
| \(f_2\) | 17.86 | 30.09 | 25.88 | ||||||
| \(f_3\) | 23.10 | 26.30 | 27.22 | 24.88 | 18.14 | 18.92 | 29.45 | 25.06 | |
| 2 | \(f_1\) | 22.32 | 26.06 | 26.84 | 25.97 | 18.57 | 25.07 | ||
| \(f_2\) | 22.98 | 27.53 | 18.99 | ||||||
| \(f_3\) | 21.97 | 25.21 | 26.45 | 23.85 | 18.29 | 18.33 | 29.98 | 24.03 | |
| 3 | \(f_1\) | 22.44 | 25.83 | 27.23 | 23.65 | 18.34 | 17.88 | 28.03 | 22.28 |
| \(f_2\) | 22.06 | 25.96 | 26.76 | 24.58 | 18.46 | 17.77 | 28.81 | 25.87 | |
| \(f_3\) | 22.13 | 25.77 | 27.05 | 23.51 | 18.32 | 17.40 | 27.62 | 22.49 | |
| \(\text{nerfacto}^\dagger\) | |||||||||
| Outdoor Scenes | ||||||
|---|---|---|---|---|---|---|
| 3-7 \(\ell\) | Fct. | Bicycle | Flowers | Garden | Stump | Treehill |
| 1 | \(f_1\) | 20.47 | 23.69 | 22.88 | ||
| \(f_2\) | ||||||
| \(f_3\) | 20.51 | 20.14 | 22.90 | 17.54 | ||
| 2 | \(f_1\) | 20.45 | 20.13 | 23.58 | 22.89 | 17.35 |
| \(f_2\) | 20.03 | 23.45 | 17.33 | |||
| \(f_3\) | 20.41 | 20.12 | 23.61 | 22.86 | 17.46 | |
| 3 | \(f_1\) | 24.52 | 19.98 | 23.48 | 22.71 | 17.47 |
| \(f_2\) | 20.03 | 19.94 | 23.20 | 22.56 | 17.42 | |
| \(f_3\) | 20.12 | 19.89 | 23.54 | 22.70 | 17.48 | |
| \(\ourfacto\) | ||||||
| Indoor Scenes | ||||||
| 4-7 | Bonsai | Counter | Kitchen | Room | ||
| 1 | \(f_1\) | 25.43 | 24.29 | 26.66 | ||
| \(f_2\) | ||||||
| \(f_3\) | 25.40 | 24.00 | ||||
| 2 | \(f_1\) | 23.96 | 23.97 | 26.56 | ||
| \(f_2\) | 25.41 | 23.99 | 23.68 | 26.47 | ||
| \(f_3\) | 25.15 | 23.94 | 23.93 | 26.52 | ||
| 3 | \(f_1\) | 24.52 | 23.76 | 23.82 | 26.03 | |
| \(f_2\) | 24.36 | 23.64 | 23.15 | 25.63 | ||
| \(f_3\) | 24.29 | 23.90 | 23.63 | 25.96 | ||
| \(\ourfacto\) | ||||||
| Dr Johnson | Playroom | ||||||
|---|---|---|---|---|---|---|---|
| 3-5(lr)6-8 | PSNR | SSIM | LPIPS | PSNR | SSIM | LPIPS | |
| 1 | \(f_1\) | 28.39 | 0.885 | 0.195 | |||
| \(f_2\) | 28.39 | 0.885 | 0.196 | ||||
| \(f_3\) | 28.42 | 0.885 | 27.55 | 0.830 | 0.284 | ||
| 2 | \(f_1\) | 27.49 | 0.830 | 0.284 | |||
| \(f_2\) | 0.194 | 27.44 | 0.827 | 0.291 | |||
| \(f_3\) | 28.38 | 0.885 | 0.196 | 27.49 | 0.828 | 0.289 | |
| 3 | \(f_1\) | 28.23 | 0.881 | 0.202 | 27.30 | 0.818 | 0.310 |
| \(f_2\) | 28.03 | 0.879 | 0.205 | 26.93 | 0.809 | 0.322 | |
| \(f_3\) | 28.18 | 0.877 | 0.209 | 27.38 | 0.817 | 0.315 | |
| \(\ourfacto\) | |||||||
5pt
Please note that \(\text{nerfacto}^\dagger\) is significantly slower than nerfacto due to the use of an MLP.↩︎