nv-tlabs / NKSR

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

Rendered model not maintaining coordinate projection. #38

Open cserepes10 opened 1 year ago

cserepes10 commented 1 year ago

The lidar data we are using has a well defined geographic projection but after running it through NKSR the coordinate system is stripped away. It would be nice to maintain the projection for use in other softwares such as AutoCad and ArcGIS.

heiwang1997 commented 1 year ago

Hey @cserepes10 thanks for your suggestion! What do you mean specifically by 'maintaining the projection'? How is the projection represented? Could you provide a specific example of that?

cserepes10 commented 1 year ago

Here is a link to the data that I was using. It has a geographic coordinate system of NAD 1983 AZ State Plane Central in its raw .las format, once I process it it appears to lose that geographic projection. I included the .lasx file for your viewing pleasure.

https://drive.google.com/drive/folders/1Pe0scSa-gjW9AqkClIO2iCRDzKY1eXJ_?usp=sharing

heiwang1997 commented 1 year ago

Thank you for your information and the provided example. I've downloaded it and viewed it using cloud-compare.

However I still cannot get what you mean by losing projection. NAD is ECEF is cartesian right? You could simply feed the (x,y,z) into NKSR and obtain the mesh under the same cartesian coordinates. What information is lost here?

cserepes10 commented 1 year ago

So yes it initially has a projection when bringing into cloud compare as a .las file but when I am saving the mesh as a .ply file the header information from the las that defines the coordinate system is converted to 0,0. The mesh looks amazing but it’s not really consumable from what I can tell in a GIS application. Unless I’m missing something? Please let me know if I am.

cserepes10 commented 1 year ago

I should clarify that I’m in an ArcGIS ecosystem

heiwang1997 commented 1 year ago

Hi Ben, it was a really nice chat last week, and thanks again for your dedication to this project. I've uploaded an example script at examples/gis_app.py. Could you please take a look at that example and see if it works for you? Thanks!

Here is the result that I previewed with 200m radius (without projection though) Screenshot from 2023-09-04 23-56-50

cserepes10 commented 1 year ago

Thank you! I’ll check it out asap

cserepes10 commented 1 year ago

I was able to get your example working after a few tweaks but the problem that I am facing is o3d does not support triangle meshes when exporting out to .obj so my mesh ends up looking like this. The coordinate system is not quite right but that is an easy enough fix. image

cserepes10 commented 1 year ago

Same area but as .ply file image

fwilliams commented 1 year ago

You can try point-cloud-utils instead of o3d for export!

https://www.fwilliams.info/point-cloud-utils/

Relevant Mesh IO documentation here: https://www.fwilliams.info/point-cloud-utils/sections/mesh_io/

Let me know if this resolves your issue!