ROKIT-Healthcare / InFusionSurf

Official implementation of InFusionSurf, a novel approach to enhance the fidelity of neural radiance field (NeRF) frameworks for 3D surface reconstruction using RGB-D video frames.
MIT License
34 stars 5 forks source link

There was a problem with the other data #2

Closed wbqnb666 closed 1 year ago

wbqnb666 commented 1 year ago

Hello, thank you for your work. When I used Intrinsic3D data as input, I got the following result: multiple duplicate reconstructed objects. Is it because of my parameter settings. Thanks a lot! image

expname = tomn basedir = ./logs datadir = ./data/tomn dataset_type = scannet trainskip = 1

N_iters = 75000 N_rand = 900 N_samples = 512 N_importance = 16 chunk = 4096 # 1024 * 16 frame_features = 0 optimize_poses = True use_deformation_field = False use_per_frame_alignment = False

multires_views = 4

progressive_learning = [10000] fusion_init = 3000

lrate = 0.001

voxel_size = 0.1 use_filtered_depth = True

rgb_weight = 0.5 depth_weight = 0.0 fs_weight = 10.0 trunc_weight = 6000.0 trunc = 0.05

rgb_loss_type = l2 sdf_loss_type = l2

mode = sdf raw_noise_std = 0.0

translation = [-0.12, -1.94, -0.69] sc_factor = 0.5 near = 0.0 far = 4.0

factor = 1 render_factor = 1

i_img = 5000 i_weights = 5000

shlee472 commented 1 year ago

Hello.

It seems parameter setting is not wrong. Are the camera poses in the dataset OpenGL format?

wbqnb666 commented 1 year ago

I thought there was no problem because I ran the same data in the go-surf code and could get the ideal single model. The default camera pose for the data should be in opencv form. I left multiplied the matrix T. T=[1 0 0 0, 0 0 -1 0, 0 1 0 0, 0 0 0 1]

shlee472 commented 1 year ago

Go-surf used different coordinate system from our code for the scannet dataset.

We used the code below to transform scannet default camera pose to opengl format. When I tested using Intrinsic3D, it gave the single object.

T0 = np.array([[ 1., 0., 0., 0.],
               [ 0., 0., 1., 0.],
               [ 0., -1., 0., 0.],
               [ 0., 0., 0., 1.]])

T1 = np.array([[ 1., 0., 0., 0.],
               [ 0., -1., 0., 0.],
               [ 0., 0., -1., 0.],
               [ 0., 0., 0., 1.]])

pose= T0 @ pose @ T1

snapshot00_L00

wbqnb666 commented 1 year ago

Is my negligence, thank you very much for your answers carefully!