README.md 1.64 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
Ours on TITAN RTX :
14
15
16

| trainval | Lego | Mic | Materials |
| - | - | - | - |
Ruilong Li's avatar
Ruilong Li committed
17
18
19
| 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
20

Ruilong Li's avatar
Ruilong Li committed
21
Instant-NGP paper (5 min) on 3090:
22
23
24
25
26
27
28

| trainval | Lego | Mic | Materials |
| - | - | - | - |
| PSNR | 36.39 | 36.22 | 29.78 |


<!-- 
Ruilong Li's avatar
Ruilong Li committed
29

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

Ruilong Li's avatar
Ruilong Li committed
32
33
| Model | Split | PSNR | Train Time | Test Speed | GPU | Train Memory |
| - | - | - | - | - | - | - |
Ruilong Li's avatar
readme  
Ruilong Li committed
34
| instant-ngp (paper)            | trainval?            | 36.39  |  -   | -    | 3090    |
Ruilong Li's avatar
Ruilong Li committed
35
| instant-ngp (code)             | train (35k steps)    | 36.08  |  308 sec  | 55.32 fps  | TITAN RTX  |  1734MB |
Ruilong Li's avatar
Ruilong Li committed
36
| instant-ngp (code) w/o rng bkgd| train (35k steps)    | 34.17  |  -  | -  | - |  - |
Ruilong Li's avatar
Ruilong Li committed
37
| torch-ngp (`-O`)               | train (30K steps)    | 34.15  |  310 sec  | 7.8 fps    | V100 |
38
| ours                           | trainval (35K steps) | 36.22  |  378 sec  | 12.08 fps    | TITAN RTX  | -->
Ruilong Li's avatar
Ruilong Li committed
39
40
41
42
43
44

## 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
45
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
46