LightwheelAI / street-gaussians-ns

Unofficial implementation of "Street Gaussians for Modeling Dynamic Urban Scenes"
Apache License 2.0
199 stars 18 forks source link

training question #19

Open wendy0527 opened 1 week ago

wendy0527 commented 1 week ago

1: in your scripts/shells/train.sh,--init_points_filename points3D_withlidar.txt. But in 8398516118967750070_3958_000_3978_000/colmap/sparse/0, there is only points3D.bin, points3D_clean.bin, points3D1.bin, points3D3.bin

2: when I use your preprocess dataset: 8398516118967750070_3958_000_3978_000, execute ./scripts/shells/train.sh,
`data_root=$1 cuda_id=$2

mkdir -p output/

CUDA_VISIBLE_DEVICES=$cuda_id sgn-train street-gaussians-ns \ --experiment_name street-gaussians-ns \ --output_dir output/ \ --vis viewer \ --viewer.quit_on_train_completion True \ colmap-data-parser-config \ --data $data_root \ --colmap_path colmap/sparse/0 \ --load_3D_points True \ --max_2D_matches_per_3D_point 0 \ --undistort True \ --segments-path segs \ --filter_camera_id 1 \ --init_points_filename points3D.bin`

error is:

Step (% Done)       Train Iter (time)    ETA (time)           Train Rays / Sec                       
-----------------------------------------------------------------------------------                                                
680 (2.27%)         154.155 ms           1 h, 15 m, 19 s      4.16 M                                 
690 (2.30%)         156.785 ms           1 h, 16 m, 35 s      4.10 M                                 
700 (2.33%)         160.737 ms           1 h, 18 m, 29 s      4.02 M                                 
---------------------------------------------------------------------------------------------------- 
Viewer running locally at: http://localhost:7007 (listening on 0.0.0.0)                              
Printing profiling stats, from longest to shortest duration in seconds
Trainer.train_iteration: 0.1052              
VanillaPipeline.get_train_loss_dict: 0.1000              
Traceback (most recent call last):
  File "envs/street-gaussians-ns/bin/sgn-train", line 8, in <module>
    sys.exit(entrypoint())
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/scripts/train.py", line 262, in entrypoint
    main(
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/scripts/train.py", line 247, in main
    launch(
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/scripts/train.py", line 189, in launch
    main_func(local_rank=0, world_size=world_size, config=config)
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/scripts/train.py", line 100, in train_loop
    trainer.train()
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/engine/trainer.py", line 261, in train
    loss, loss_dict, metrics_dict = self.train_iteration(step)
  File "/street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/utils/profiler.py", line 112, in inner
    out = func(*args, **kwargs)
  File "street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/engine/trainer.py", line 496, in train_iteration
    _, loss_dict, metrics_dict = self.pipeline.get_train_loss_dict(step=step)
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/utils/profiler.py", line 112, in inner
    out = func(*args, **kwargs)
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/pipelines/base_pipeline.py", line 301, in get_train_loss_dict
    model_outputs = self._model(ray_bundle)  # train distributed data parallel model if world_size > 1
  File "street-gaussians-ns/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1541, in _call_impl
    return forward_call(*args, **kwargs)
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/nerfstudio/models/base_model.py", line 143, in forward
    return self.get_outputs(ray_bundle)
  File "street-gaussians-ns/street_gaussians_ns/sgn_splatfacto_scene_graph.py", line 363, in get_outputs
    out = super().get_outputs(camera)
  File "/street-gaussians-ns/street_gaussians_ns/sgn_splatfacto.py", line 861, in get_outputs
    self.xys, self.depths, self.radii, self.conics, _, self.num_tiles_hit, _ = project_gaussians(  # type: ignore
  File "envs/street-gaussians-ns/lib/python3.8/site-packages/gsplat/project_gaussians.py", line 60, in project_gaussians
    assert (quats.norm(dim=-1) - 1 < 1e-6).all(), "quats must be normalized"
AssertionError: quats must be normalized

when I print quats,there are some "nan" in quats.