ngp.rst 5.29 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
.. _`Instant-NGP Example`:

Instant-NGP
====================

See code `examples/train_ngp_nerf_occ.py` and `examples/train_ngp_nerf_prop.py` at our 
`github repository`_ for details.


Radiance Field
--------------
We follow the `Instant-NGP`_ paper to implement the radiance field (`examples/radiance_fields/ngp.py`),
and aligns the hyperparameters (e.g., hashencoder, mlp) with the paper. It is build on top of the
`tiny-cuda-nn`_ library.


Benchmark: Nerf-Synthetic Dataset
---------------------------------
*updated on 2023-04-04 with nerfacc==0.5.0*

Our experiments are conducted on a single NVIDIA TITAN RTX GPU. 
The training memory footprint is about 3GB.

.. note::
    
    The Instant-NGP paper makes use of the alpha channel in the images to apply random background
    augmentation during training. For fair comparision, we rerun their code with a constant white
    background during both training and testing. Also it is worth to mention that we didn't strictly
    follow the training receipe in the Instant-NGP paper, such as the learning rate schedule etc, as
    the purpose of this benchmark is to showcase instead of reproducing the paper.

+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+-------+
| PSNR                  | Lego  | Mic   |Materials| Chair |Hotdog | Ficus | Drums | Ship  | MEAN  |
|                       |       |       |         |       |       |       |       |       |       |
+=======================+=======+=======+=========+=======+=======+=======+=======+=======+=======+
|Instant-NGP 35k steps  | 35.87 | 36.22 | 29.08   | 35.10 | 37.48 | 30.61 | 23.85 | 30.62 | 32.35 |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+-------+
| training time         | 309s  | 258s  | 256s    | 316s  | 292s  | 207s  | 218s  | 250s  | 263s  |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+-------+
|Ours (occ) 20k steps   | 35.67 | 36.85 | 29.60   | 35.71 | 37.37 | 33.95 | 25.44 | 30.29 | 33.11 |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+-------+
| training time         | 288s  | 260s  | 253s    | 326s  | 272s  | 249s  | 252s  | 251s  | 269s  |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+-------+
|Ours (prop) 20k steps  | 34.04 | 34.56 | 28.76   | 34.21 | 36.44 | 31.41 | 24.81 | 29.85 | 31.76 |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+-------+
| training time         | 225s  | 235s  | 235s    | 240s  | 239s  | 242s  | 258s  | 247s  | 240s  |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+-------+


Benchmark: Mip-NeRF 360 Dataset
---------------------------------
*updated on 2023-04-04 with nerfacc==0.5.0*

Our experiments are conducted on a single NVIDIA TITAN RTX GPU.

.. note:: 
    `Ours (prop)` combines the proposal network (:class:`nerfacc.PropNetEstimator`) with the 
    Instant-NGP radiance field. This is exactly what the `Nerfacto`_ model is doing in the
    `nerfstudio`_ project. In fact, the hyperparameters for `Ours (prop)` in this experiment
    are aligned with the `Nerfacto`_ model.

+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+
| PSNR                  |Bicycle| Garden|   Stump | Bonsai|Counter|Kitchen| Room  | MEAN  |
|                       |       |       |         |       |       |       |       |       |
+=======================+=======+=======+=========+=======+=======+=======+=======+=======+
|NeRF++ (~days)         | 22.64 | 24.32 | 23.34   | 29.15 | 26.38 | 27.80 | 28.87 | 26.21 |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+
|Mip-NeRF 360 (~days)   | 24.37 | 26.98 | 26.40   | 33.46 | 29.55 | 32.23 | 31.63 | 29.23 |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+
|Instant-NGP 35k steps  | 22.40 | 24.86 | 23.17   | 24.41 | 27.38 | 29.07 | 30.24 | 25.93 |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+
| training time         | 301s  | 339s  | 295s    | 279s  | 339s  | 366s  | 317s  | 319s  |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+
|Ours (occ) 20k steps   | 22.40 | 23.94 | 22.98   | 30.09 | 26.84 | 28.03 | 30.60 | 26.41 |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+
| training time         | 277s  | 302s  | 299s    | 278s  | 315s  | 331s  | 301s  | 300s  |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+
|Ours (prop) 20k steps  | 23.23 | 25.42 | 25.24   | 30.71 | 26.74 | 30.70 | 30.99 | 27.58 |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+
| training time         | 276s  | 293s  | 291s    | 291s  | 291s  | 295s  | 287s  | 289s  |
+-----------------------+-------+-------+---------+-------+-------+-------+-------+-------+


Ruilong Li's avatar
Ruilong Li committed
84
.. _`github repository`: https://github.com/nerfstudio-project/nerfacc/
85
86
.. _`Instant-NGP`: https://arxiv.org/abs/2201.05989
.. _`tiny-cuda-nn`: https://github.com/NVlabs/tiny-cuda-nn
Ruilong Li's avatar
Ruilong Li committed
87
88
.. _`Nerfacto`: https://docs.nerf.studio/nerfology/methods/nerfacto.html
.. _`nerfstudio`: https://docs.nerf.studio/