nerfstudio icon indicating copy to clipboard operation
nerfstudio copied to clipboard

Exported nerfacto point cloud has huge skybox surrounding it

Open gradeeterna opened this issue 1 year ago • 6 comments

Not sure if this is a bug, but has something changed with nerfacto point cloud export recently? The point clouds now have this enormous skybox surrounding it which is about 10 million points in this example. Same with world frame and remove outliers enabled and disabled.

https://www.youtube.com/watch?v=wP69fZ_taUE

gradeeterna avatar Aug 23 '24 13:08 gradeeterna

please tell your specific version of all library, related with nerfstudio (example: tiny-cuda-nn, nerfstudio, gsplat, torch, python, open3D, etc). :+1:

please tell your command to reproduce that bug, then run & compare the command with old version of nerfstudio vs your current version

I am not too advance with coding. But, I hope it helps other developers for understanding the problem.

Good luck :100:

ichsan2895 avatar Aug 23 '24 19:08 ichsan2895

Hi @gradeeterna are you able to share the command you get and/or are running for export?

In particular I'm wondering if any of the --obb-* arguments are set:

image

If you're using the viewer to generate the command this should happen if you've cropped the scene.

brentyi avatar Aug 24 '24 02:08 brentyi

This change might've happened in #2086; previously if you didn't pass any bounding box-related arguments it would crop to min=[-1, -1, -1], max=[1, 1, 1]. But this change would've been a long time ago, so maybe it's something else?

brentyi avatar Aug 24 '24 02:08 brentyi

Hey, here is the export command and nerfstudio version I was using here:

ns-export pointcloud --load-config outputs/unnamed/nerfacto/2024-08-22_095045/config.yml --output-dir exports/pcd/ --num-points 40000000 --remove-outliers True --normal-method open3d --save-world-frame True

nerfstudio - 1.1.2, gsplat - 1.0.0, tiny-cuda-nn - 1.7, torchvision - 0.17.2, python - 3.10.14, open3d - 0.18.0

I didn't set any of the --obb arguments, but I'm pretty sure I have just used the default export command since that commit #2086 and haven't had the huge skybox. Tbh I haven't been using nerfacto a lot since splatfacto came along, so it could be that long ago! I do remember using the bounding box min max arguments in the old default command.

gradeeterna avatar Aug 24 '24 11:08 gradeeterna

Huh, interesting!

It's possible there are other commits where the behavior for this has changed, but with that command the code does look set up to export all points, even if they're super far away. I'd expect passing in --bounding-box-min -1 -1 -1 --bounding-box-max 1 1 1 to fix it.

brentyi avatar Aug 24 '24 16:08 brentyi

Just tested with a slightly older version used in NeRFtoGSandBack, nerfstudio 1.0.1 / gsplat 0.1.3 etc, and the default export point cloud command has these --obb arguments which work fine:

ns-export pointcloud --load-config outputs\unnamed\nerfsh\2024-08-20_105834\config.yml --output-dir exports/pcd/ --num-points 3000000 --remove-outliers True --normal-method open3d --use_bounding_box False --save-world-frame False --obb_center 0.0000000000 0.0000000000 0.0000000000 --obb_rotation 0.0000000000 0.0000000000 0.0000000000 --obb_scale 1.0000000000 1.0000000000 1.0000000000

So it just seems like the --obb stuff was removed from the default export command at some point since then?

gradeeterna avatar Aug 24 '24 21:08 gradeeterna