OpenDroneMap / NodeMICMAC

A Lightweight REST API to Access MICMAC Photogrammetry and SFM Engine.
https://opendronemap.org/nodemicmac/
GNU General Public License v3.0
79 stars 21 forks source link

Could not load point cloud #35

Closed mj-saunders closed 2 years ago

mj-saunders commented 4 years ago

When trying to view 3d model from micmac processed input I get this error: Could not load point cloud. This task doesn't seem to have one. Try processing the task again.

However, I can download asset data and open the generated .ply in meshlab, which would suggest the point cloud does exist.

Also, is it not possible to generate DTM with micmac?

--- edit 05/09/2019 --- wondering is this more appropriate as a 'WebODM' issue ?

dronemapper-io commented 4 years ago

Might be an issue with the processed point cloud filename or actual location and WebODM isn't picking it up. Will try to take a look asap and replicate. Thanks

mj-saunders commented 4 years ago

Makes sense. Thank you for taking the time.

My issue here has a bit more info on how I set up my instance, but at this point it follows the README, if I'm not mistaken.

If there's anything I can do to help, let me know.

dronemapper-io commented 4 years ago

I wasn't able to replicate the problem. Can you provide more details and also make sure the Potree / Tiles generation option is checked?

MicMac cannot currently generate a DTM.. only DSM/DEM Thanks

mj-saunders commented 4 years ago

Hmm. If it comes to it I will try to reinstall from scratch again.

Incidentally, I see no option for "Potree / Tiles" (see image here: https://privatebin.at/?2179386a157d074d#B16Y5M35ev8Jxb9SSpqQz2NbB5mZehSpxdbagBvp8cDK) That's everything that I get.

The strange thing is I can export the .ply using 'Download Assets' and open the file in MeshLab - so it would appear that the ply is created.

As you said, it looks like it's to do with the point cloud filename and/or location. Is there anyway I can help to diagnose this? I'm not sure what more details I can provide. Would the download assets button also work if the .ply was in the wrong place or with a wrong name?

In the mean time I'll try to dig into the docker file tree, see if I can find out a little more myself.

As for DTM, never mind. Thanks for the heads up.

mj-saunders commented 4 years ago

looking at this: https://github.com/dronemapper-io/NodeMICMAC/blob/master/scripts/postprocess.sh It would appear my instance is not saving any .laz files for micmac, only .ply.

Where might the log files be kept? I can upload for you to have a check through... I've had a look but can't find them (and the one in the web interface gets truncated)

Thanks again

dronemapper-io commented 4 years ago

Sorry I am talking about this option:

image

I believe this is what takes the MM point cloud and builds the LAZ/etc. Is that working for you?

mj-saunders commented 4 years ago

I don't have that option :s But do I have to use the micmac interface directly (default port 3000) or should this be available through WebODM? The screenshot I uploaded earlier is from WebODM, and I don't see anything about potree...

u5000 commented 4 years ago

I also think its strange that this parameter can't be changed from webodm. But i also tried generating directly through the micmac interface - still no webodm compatible point cloud is generated.

But maybe this is just some kind of misunderstanding. Maybe it was never intended to generate webodm compatible points clouds? Because a PLY point could is generated. But it seems webodm only recognizes LAZ point clouds. You can still open the PLY point cloud with a different external program.

dronemapper-io commented 4 years ago

We can make the generate 2D and potree cloud tiles option default to true when nodeMicMac is running from the docker container. the reason why this defaults to false is due to most development systems when running nodeMicMac in a native way don't have potree and other required tools for this functionality installed (the docker image has these tools installed)

u5000 commented 4 years ago

@dronemapper-io Thank you for your fast replies all over here.

But let me ask you directly: is it intended that the generated potree cloud tiles are displayable in webodm? Because that is not working on my side, either.

Or is this a problem we should communicate over at OpenDroneMap/WebODM?

@pierotofy can you say if this is a wanted feature?

pierotofy commented 4 years ago

The problem is probably elsewhere (not in the "generate 2d and potree tiles" option). WebODM always checks that option to yes in the background.

You are either missing the installation of potreeconverter or entwine in your NodeODM setup, or postprocess.sh is not finding a valid point cloud location to generate the point cloud tiles via potreeconverter or entwine.

dronemapper-io commented 4 years ago

thanks @pierotofy good to know WebODM sets that default param. I am pretty sure the docker image has all the required potree binaries installed. will double check

rumenmitrev commented 4 years ago

I think i found the problem! @pierotofy were completely right! First checked that i have Potree and entwine. Then it turns out that i had to add a line in postprocess.sh:

"odm_georeferencing/odm_georeferenced_model.ply" \ because there is the actual path that store the PLY file

Generate point cloud (if entwine or potreeconverter is available) pointcloud_input_path="" for path in "odm_georeferencing/odm_georeferenced_model.laz" \ "odm_georeferencing/odm_georeferenced_model.las" \ "odm_georeferencing/odm_georeferenced_model.ply" \ "odm_filterpoints/point_cloud.ply" \ "opensfm/depthmaps/merged.ply" \ "smvs/smvs_dense_point_cloud.ply" \ "mve/mve_dense_point_cloud.ply" \ "pmvs/recon0/models/option-0000.ply"; do if [ -e $path ]; then echo "Found point cloud: $path" pointcloud_input_path=$path break fi done Then found that entwine is complaining that SRS is missing and cant find points. So i removed entwine call from postprocess.sh and voila , potreeconverter generate very nice point cloud view-able in WebODM interface.

I cant tell why entwine failed

olmanf commented 4 years ago

Is there a solution to this? The problem presents me. If there is any solution, please describe it in more detail.

patrickza commented 4 years ago

Same problem for me I'm afraid, rumenmitrev, could you explain your fix for this, or is there anything else to do to get around this?

patrickza commented 4 years ago

Okay figured it out. As you said rumenmitrev, if you add this line after line 76 in /scripts/postprocess.sh it works: "odm_georeferencing/odm_georeferenced_model.ply" \ The 3D model is visible and great quality. Could we have that added to the project code in a future update?

pierotofy commented 4 years ago

Hey @patrickza :hand: feel free to open a pull request with the changes; we can merge those into the project?

patrickza commented 4 years ago

Done, thanks again for a great program!