Fix ngp num_rays_per_chunk bug; use enable_density_field to control ngp. (#215)

This commit is contained in:
Ruilong Li(李瑞龙) authored and GitHub committed 2022-07-27 13:18:48 -07:00
1 parent 3e28a40c44
commit 966fc50f28
2 files changed
+7 -11

No files matched your search

+3 -4
View File
@@ -8,7 +8,7 @@ data:
pixel_sampler:
num_rays_per_batch: 8192 # for training
dataloader_eval:
num_rays_per_chunk: 8192 # for evaluation
num_rays_per_chunk: 1000000000 # all rays for evaluation
viewer:
enable: true
@@ -16,12 +16,11 @@ viewer:
graph:
_target_: nerfactory.graphs.instant_ngp.NGPGraph
collider_config:
_target_: nerfactory.graphs.modules.scene_colliders.AABBBoxCollider
enable_density_field: true
enable_collider: false
field_implementation: tcnn # torch, tcnn, ...
loss_coefficients: # loss coefficients
rgb_loss: 1.0
enable_collider: false
# optimizer options for network
optimizers:
+4 -7
View File
@@ -26,7 +26,6 @@ from torchmetrics.image.lpip import LearnedPerceptualImagePatchSimilarity
import nerfactory.cuda as nerfactory_cuda
from nerfactory.cameras.rays import RayBundle
from nerfactory.fields.density_fields.density_grid import DensityGrid
from nerfactory.fields.instant_ngp_field import field_implementation_to_class
from nerfactory.fields.modules.field_heads import FieldHeadNames
from nerfactory.graphs.base import Graph
@@ -48,10 +47,11 @@ class NGPGraph(Graph):
def register_callbacks(self) -> None:
"""defining callbacks to run after every training iteration"""
assert self.density_field is not None
self.callbacks = [
Callback(
self.density_grid.update_every_num_iters,
self.density_grid.update_density_grid,
self.density_field.update_every_num_iters,
self.density_field.update_density_grid,
density_eval_func=self.field.density_fn,
)
]
@@ -62,11 +62,8 @@ class NGPGraph(Graph):
self.field = field_implementation_to_class[self.field_implementation](self.scene_bounds.aabb)
def populate_misc_modules(self):
# density grid
self.density_grid = DensityGrid(center=0.0, base_scale=3, num_cascades=1)
# samplers
self.sampler = NGPSpacedSampler(num_samples=1024, density_field=self.density_grid)
self.sampler = NGPSpacedSampler(num_samples=1024, density_field=self.density_field)
# losses
self.rgb_loss = MSELoss()