dgrzech / sobfu

real-time 3D reconstruction of non-rigidly deforming scenes using depth data
BSD 3-Clause "New" or "Revised" License
161 stars 22 forks source link

The reconstruction effect is not very good. #1

Open buddyhs opened 5 years ago

buddyhs commented 5 years ago

Thank you for your great work first.I successfully run your program, But the effect is not very good. every frams takes about 5s/frame.Is there something wrong with my operation?Look forward to your reply @dgrzech

dgrzech commented 5 years ago

hi! what data did you test it on? how did the quality compare to the quality shown on the youtube videos?

buddyhs commented 5 years ago

My computer configuration is Inter i7, gtx108ti and 64g memory. My cuda Edition is cuda9.1. I ran the program with umbrella data sets, first the time consuming for every per frame for me is too long. It take about 5s everyframe.Then the reconstrucion effect is not good than shown on youtube videos.

dgrzech commented 5 years ago

unfortunately you're facing a choice between reconstruction quality and speed. you can lower the time taken per frame by decreasing the maximum number of iterations of the solver and simultaneously increasing the gradient descent step size, or by increasing the parameter which controls the convergence criterion for the solver. you will also get a minor speed-up if you set the verbosity of the solver to 0. however, if you're not satisfied with the reconstruction quality, you'll have to increase the max. number of steps and lower the step size.

please try to increase the dimensions of the tsdf, set a much higher max. no. of steps, and lower the step size, and see if the quality is better. when prioritising quality, i would use 192^3 voxels, max_iter=16384, and alpha=2e-4. beware that the processing time will increase--it will be a couple of minutes per frame

buddyhs commented 5 years ago

Thank you for your help! I will take your advice to see the effect of reconstruction.

dgrzech commented 5 years ago

disregard the parameters from the previous reply. these should give you a reconstruction of similar quality to the one on the video at a more reasonable speed of ~10s per frame. the comments i made stand but there's an issue with the tsdf when trying to reconstruct just the umbrella rather than both the umbrella and the person. i hadn't ran the code on the umbrella data since august and i forgot about this

# TSDF
VOL_DIMS_X=128
VOL_DIMS_Y=128
VOL_DIMS_Z=128

VOL_SIZE_X=1.15
VOL_SIZE_Y=1.15
VOL_SIZE_Z=1.15

TSDF_TRUNC_DIST=10
ETA=5
TSDF_MAX_WEIGHT=128

GRADIENT_DELTA_FACTOR=0.5

# CAMERA
INTR_FX=570.342
INTR_FY=570.342
INTR_CX=320.0
INTR_CY=240.0

TRUNC_DEPTH=1.5

VOL_POSE_T_Z=0.3

# BILATERAL FILTER
BILATERAL_SIGMA_DEPTH=0.04
BILATERAL_SIGMA_SPATIAL=4.5
BILATERAL_KERNEL_SIZE=7

# SOLVER
START_FRAME=1

MAX_ITER=4096
MAX_UPDATE_NORM=1e-10

S=7
LAMBDA=0.1

ALPHA=0.1
W_REG=0.2

the reconstruction shown on the video was the best that i managed to get out of the code. i don't think that sobolevfusion is able to produce a better one, so the way forward would be to apply some kind of post-processing to the tsdf or the mesh

LinLi-DL commented 5 years ago

Could I run it in Windows or Linux? @buddyhs