README.md 1.51 KB
Newer Older
Ruilong Li's avatar
readme  
Ruilong Li committed
1
2
# nerfacc

3
This is a **tiny** tootlbox  for **accelerating** NeRF training & rendering using PyTorch CUDA extensions. Plug-and-play for most of the NeRFs!
Ruilong Li's avatar
readme  
Ruilong Li committed
4
5
6
7
8
9
10
11
12

## Instant-NGP example

```
python examples/trainval.py
```

## Performance Reference

Ruilong Li's avatar
Ruilong Li committed
13
14
15
16
17
| trainval (20k, 1<<18) | Lego | Mic | Materials |
| - | - | - | - | - |
| Time | 300s  | 272s  | 258s  |
| PSNR | 36.28 | 36.16 | 29.76 |
| FPS  | 11.49 | 21.48 | 8.86  |
Ruilong Li's avatar
Ruilong Li committed
18

Ruilong Li's avatar
Ruilong Li committed
19

Ruilong Li's avatar
Ruilong Li committed
20
Tested with the default settings on the Lego test set.
Ruilong Li's avatar
readme  
Ruilong Li committed
21

Ruilong Li's avatar
Ruilong Li committed
22
23
| Model | Split | PSNR | Train Time | Test Speed | GPU | Train Memory |
| - | - | - | - | - | - | - |
Ruilong Li's avatar
readme  
Ruilong Li committed
24
| instant-ngp (paper)            | trainval?            | 36.39  |  -   | -    | 3090    |
Ruilong Li's avatar
Ruilong Li committed
25
| instant-ngp (code)             | train (35k steps)    | 36.08  |  308 sec  | 55.32 fps  | TITAN RTX  |  1734MB |
Ruilong Li's avatar
Ruilong Li committed
26
| instant-ngp (code) w/o rng bkgd| train (35k steps)    | 34.17  |  -  | -  | - |  - |
Ruilong Li's avatar
Ruilong Li committed
27
| torch-ngp (`-O`)               | train (30K steps)    | 34.15  |  310 sec  | 7.8 fps    | V100 |
Ruilong Li's avatar
Ruilong Li committed
28
| ours                           | trainval (35K steps) | 36.22  |  378 sec  | 12.08 fps    | TITAN RTX  |
Ruilong Li's avatar
Ruilong Li committed
29
30
31
32
33
34

## Tips:

1. sample rays over all images per iteration (`batch_over_images=True`) is better: `PSNR 33.31 -> 33.75`.
2. make use of scheduler (`MultiStepLR(optimizer, milestones=[20000, 30000], gamma=0.1)`) to adjust learning rate gives: `PSNR 33.75 -> 34.40`.
3. increasing chunk size (`chunk: 8192 -> 81920`) during inference gives speedup: `FPS 4.x -> 6.2`
Ruilong Li's avatar
Ruilong Li committed
35
4. random bkgd color (`color_bkgd_aug="random"`) for the `Lego` scene actually hurts: `PNSR 35.42 -> 34.38`
Ruilong Li's avatar
Ruilong Li committed
36