nv-tlabs / NKSR

[CVPR 2023 Highlight] Neural Kernel Surface Reconstruction
https://research.nvidia.com/labs/toronto-ai/NKSR
Other
735 stars 43 forks source link

How to obtain better KITTI results? #45

Closed hungdche closed 11 months ago

hungdche commented 11 months ago

Hi,

Thanks for such an incredible project! I've tried running KITTI odometry sequence 0 and obtain the result as follows: image

Although it looks quite nice, it seems like it can achieve better quality (as mentioned in #3) as @YuePanEdward has gotten a much better looking result on the same sequence: image

I'm not sure if the issue lies on my parameters, so I will post them down below:

field = reconstructor.reconstruct(
        input_xyz, sensor=input_sensor, detail_level=None,
        # Minor configs for better efficiency (not necessary)
        approx_kernel_grad=True, solver_tol=1e-4, fused_mode=True,
        # Chunked reconstruction (if OOM)
        chunk_size=51.2,
        preprocess_fn=nksr.get_estimate_normal_preprocess_fn(64, 85.0)
    )

I would appreciate any help! Thank you in advance.

heiwang1997 commented 11 months ago

Hey I'm not pretty sure what exact parameters are used (perhaps @YuePanEdward could kindly advise :) ) But give your results, what you could do is perhaps to increase the knn of your normal estimation search, i.e using

preprocess_fn=nksr.get_estimate_normal_preprocess_fn(96, 80.0)   # <- 96 could be larger while 80.0 could be smaller

You can also cut off the points that are too far away from the sensor origin, because the LiDAR beam's noise increase as it travels longer distance :)

hungdche commented 11 months ago

Hi @heiwang1997, thanks for the advice! Unfortunately increase the knn does not help much, but I was able to get a (subjectively) better mesh by increasing the voxel size to 0.15 image I'll mark this as close.