I am new to the forum, nice to meet you all!
I am writing to ask your help in the following topic: I processed two identical dataset in Pix4D and WebODM. I am interested in the 3D point cloud output. I have already tried all the different possibilities to increase the quality of the webODM point cloud but the vines are still not well represented as in Pix4D, i.e. lots of feature are missing also using the “ultra” feature for pc-quality and feature-quality.
WebODM total points (default template): 35.000.000
WebODM total points (3D template): 142.000.000
Pix4D total points (3D maps template): 33.000.000
It seems that even though the total point cloud size is similar between the webODM default template and the Pix4D 3D maps template, webODM puts more points in the soil than in the vines, whereas Pix4D has a more uniform distribution of the points between soil and vines.
Here a portion of the two point clouds:
ODM (Default Template) → https://drive.google.com/file/d/1nLhxosk7G-t4gtxEn8o5bcUqzbGVRbg7/view?usp=sharing
Pix4D → https://drive.google.com/file/d/1JIs9zTa9Gtd1UI24ccnOZ2rdT7swme2Y/view?usp=sharing
I see that webODM struggles to recontruct vegetation and plants correctly, even when using parameters to enhance the point cloud quality. Is it possible to achieve quite the same quality of the point cloud in webODM?
Thanks for your suggestions and help!
Could you please screenshot or otherwise post your full parameters for processing for both WebODM and Pix4D?
This will help us suggest further possible tweaks/improvements to your processing parameters. We should be able to get you much closer
Yup! It’s the only way we can help. And to say: try setting pc-filter to 0, but that will bring some noise to the party, so better to share settings and screenshots so we can better advise.
Thank you for your replies.
I have already tried pc-filter = 0 but the results are still not good.
Here following the settings for the 2 software:
WebODM (default template with some additional parameters) → https://drive.google.com/file/d/1FchI68_bs36G45DmNoKswvGFCgnRjgZ6/view?usp=sharing
Pix4D (3D maps template) → https://drive.google.com/file/d/1u65wUz_KGT3pb_6_2Vn_Suird0njNW5Q/view?usp=sharing
Rather than a screenshot of all your options which is quite difficult to read, can you copy and paste the text from WebODM? This will also only give the changes from default which is much faster to analyze. Something like this would work:
dsm: true, feature-quality: ultra, feature-type: hahog, matcher-neighbors: 40, mesh-octree-depth: 12, mesh-size: 300000, min-num-features: 64000, orthophoto-resolution: 1, pc-geometric: false, pc-quality: ultra, rerun-from: dataset, resize-to: -1
Switch it back to default, and then one-by-one add these options so you can be sure they are set. If you try the above options, it would likely already be an improvement.
Also, I increased your privileges in the system so you can share screen shots directly in your posts, that would be helpful to others. The ones you posted don’t look like they included the pc-sample parameter (as it should result in points below the ground). How did those results look? You can add pc-sample of 0 to the above as well for the retention of as much of the point cloud as possible.
Thank you smathermather, I will follow your suggestions and come back to you with the results.
I have already tried with the following paramenters and the point clouds seem to be much more well defined:
auto-boundary: true, crop: 0, dem-gapfill-steps: 5, dem-resolution: 1, end-with: odm_georeferencing, feature-quality: ultra, gps-accuracy: 1, mesh-size: 300000, min-num-features: 16000, orthophoto-resolution: 1, pc-classify: true, pc-filter: 0, pc-geometric: true, pc-quality: ultra, use-3dmesh: true, rerun-from: opensfm
I have tried to get the same results between Pix4D and WebODM to another (but similar) survey taken by a smartphone to a single vine. I still can’t get the same results in terms of point cloud density but I have the following total points:
WebODM total points: 1.430.000
Pix4D total points (3D maps template): 160.000
For Pix4D I have used the 3D model template whereas for webODM the following settings:
auto-boundary: true, crop: 0, dem-gapfill-steps: 5, dem-resolution: 1, end-with: odm_georeferencing, feature-quality: ultra, gps-accuracy: 1, mesh-size: 300000, min-num-features: 16000, orthophoto-resolution: 1, pc-classify: true, pc-filter: 0, pc-geometric: true, pc-quality: ultra, rerun-from: opensfm, use-3dmesh: true
Do you have some ideas on where I am getting wrong?
Thanks for your help!
You might have to make
--pc-sample finer, or set it to 0 and pray for your RAM
What viewer are you using? This looks like a floating point problem associated with non-geographic data in the web viewer for webodm. Please load the .laz file in cloud compare to verify.
With pc-sample=0 I got the same results. I am using CloudCompare to visualize the data and I am importing the .laz file.
I am using the following options (default) inside CloudCompare. I click on “apply all” and then on “yes to all”. If I click “no” on the global shift I get a worse point cloud visualization.
I do not understand why the point cloud has aligned points and not random as the pix4D one.
Hmm. That looks like a bug. Is this a dataset you can share?
Definitely a regression. This is what the final product looks like:
vs. what we get for an intermediate product (the point_cloud.ply):
Can you open an issue documenting this here?: Issues · OpenDroneMap/ODM · GitHub
This is a breathtaking dataset, it practically looks like a mesh as a point cloud:
Thank you smathermather!
Could you please tell me which setting you used in webODM and where are you viewing the point cloud? Is it CloudCompare? Because I have already tried with the .ply file in CloudCompare but I still see the same results…
I proceeded to open the issue as you suggest (please check if it is ok to be understood): https://github.com/OpenDroneMap/ODM/issues/1432
I pulled the point_cloud.ply file from the odm_filterpoints subdirectory. As an intermediate product, it doesn’t show up in the final downloads, but is an indication that the SfM portion is fine, but there’s a bug in the transformation to the final point cloud.
Ok perfect, I understood. There is a way to make WebODM to output this result and write the odm_filterpoints folder?
Thank you again.
Indeed. Fix is in. It will take a couple days maybe and then run and update and it should just work.
Ok, so I’ll need to re-install WebODM or just wait and restart the job?
Thanks again for your support.