README.md 1.49 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
| trainval (35k, 1<<16) | Lego | Mic | Materials |
| - | - | - | - |
| Time | 377s | 357s | 354s |
| PSNR | 36.08 | 36.58 | 29.63 |
Ruilong Li's avatar
Ruilong Li committed
17

Ruilong Li's avatar
Ruilong Li committed
18

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

Ruilong Li's avatar
Ruilong Li committed
21
22
| Model | Split | PSNR | Train Time | Test Speed | GPU | Train Memory |
| - | - | - | - | - | - | - |
Ruilong Li's avatar
readme  
Ruilong Li committed
23
| instant-ngp (paper)            | trainval?            | 36.39  |  -   | -    | 3090    |
Ruilong Li's avatar
Ruilong Li committed
24
25
| instant-ngp (code)             | train (35k steps)    | 36.08  |  308 sec  | 55.32 fps  | TITAN RTX  |  1734MB |
| torch-ngp (`-O`)               | train (30K steps)    | 34.15  |  310 sec  | 7.8 fps    | V100 |
Ruilong Li's avatar
Ruilong Li committed
26
| ours                           | trainval (35K steps) | 36.08  |  343 sec  | 9.6 fps    | TITAN RTX  |
Ruilong Li's avatar
Ruilong Li committed
27
| ours                           | train (35K steps)    | 35.04  |  349 sec  | 9.3 fps    | TITAN RTX  |
Ruilong Li's avatar
Ruilong Li committed
28
29
30
31
32
33

## 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
34
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
35