Page 1 of 1

Cloud to Cloud difference clarifications

Posted: Fri Jul 27, 2012 3:55 pm
by patcarbon007
Hi,

I'm really enjoying CC, definitly the best scientific freeware I've ever used. So I'm comparing LiDAR and TLS vs SfM (Agisoft Photoscan). I've attached a photo of the LiDAR in CC and my Svalbard block highlighted. I've also got a small scale experiment of a wall where a similar camera was used to get a point cloud and I scanned with a TLS. I just want to check something about the differencing. Here's what I'm doing:

1- Open all the files. The LiDAR and TLS files are always of greater extent.
2- Subsample my SfM clouds to a constant 10 000 points. I want the data from both small and large scale experiments to be comparable have no sample size effect of changes in the mean and stdev
3- Do cloud to cloud differences with the LiDAR/TLS as reference. Least squares plane method.
4- Get the basic outputs from the command line in CC then I export the scalar field to Matlab (yes it does work :) ) to get a nice histogram.

My hesitations are about the difference in the number of points and spatial extents between my reference and SfM. If I understand this right, CC, in least squares mode, will, for each observed SfM point, fit a local plane with 6 points in the reference data and then, for each of those observed SfM point, calculate the shortest distance to that plane. So it doesn't matter that the reference data has a different number of points and it doesn't matter that the spatial extent of the reference data is much larger. Is that right? So for example, in the image I attached, CC will only calculate distances for those points nearest my SfM block. It will not include distances to the far reaches of the LiDAR data? And also, I do NOT need to subsample my reference data to the same size as the SfM data. Is that correct?

Merci!
Patrice

Re: Cloud to Cloud difference clarifications

Posted: Sat Jul 28, 2012 9:00 am
by daniel
Thanks!

Here are some pieces of answer:
  • it's always a good idea to have a reference data set with a larger extent! It's even mandatory. Otherwise you'll get (fake) large distances on the non-matching borders.
    --> So yes, you can keep the total extent of you Lidar/TLS cloud (if processing time is critical for you, you could keep only the matching part + a border around. The octree should be more efficient this way).
  • the sampling of the compared cloud has no influence on the result (apart on statistical accuracy of course). On the opposite, the sampling density of the reference cloud should always be as high as possible. And local models are here to cope with low density cloud and to "smooth" the effect of reference sampling on the result (only on the global histogram, as it can locally lead to higher errors on noisy clouds).
    --> So yes, don't sub-sample the reference.
  • as a last remark: CC will never look for very far points (apart if there's only "very far points" in the reference cloud of course :). Even without local model, CC computes only the distance to the nearest point - with such clouds, it's never very far. And the local models are only computed around the nearest point.

Re: Cloud to Cloud difference clarifications

Posted: Wed Aug 15, 2012 12:35 pm
by patcarbon007
Thanks for the reply,

I've come back to this after my summer (in Lyon and Aix-en-Provence :) ), and now I see serious discrepancies between the methods used to calculate the C2C distances. Basicly, NONE and Height Function give similar results but they are about 10 times larger than the Least Squares Planes. In other experiemnts I get consistent results (small differences) when I use the 3 methods. Definitly not a factor of 10 in the sigma. I've attached screenshots of the scalar fields. What's going on here? The results from least squares do seem too good to be true...

Thanks
Patrice
Scalar C2C field calculated with NONE
Scalar C2C field calculated with NONE
none.jpg (198.86 KiB) Viewed 6971 times
Scalar C2C field calculated with the Hieght Function
Scalar C2C field calculated with the Hieght Function
heightfunc.jpg (194.97 KiB) Viewed 6971 times
Scalar C2C field calculated with the least squares plane
Scalar C2C field calculated with the least squares plane
lsp.jpg (227.99 KiB) Viewed 6971 times

Re: Cloud to Cloud difference clarifications

Posted: Wed Aug 15, 2012 1:01 pm
by daniel
Oups, looks like a bug. Or a very pervert case... I'll try to check this soon. Can you send me the two clouds? (or at least part of them if it's too big)

Thanks for the feedback,

Re: Cloud to Cloud difference clarifications

Posted: Wed Aug 15, 2012 1:23 pm
by patcarbon007
No problem but each cloud is 300 megs (Meshlab crashes when I try to crop, grrr). How should I send them?
Patrice

Re: Cloud to Cloud difference clarifications

Posted: Wed Aug 15, 2012 5:31 pm
by daniel
You can crop it with CloudCompare (the cissors icon). Crop a small rectangular part (both clouds at the same time) then save them in a BIN file. You should get decent clouds in a file < 10 Mb (so it should be ok by email).

Otherwise I can create an ftp account for you on the CC server.

Re: Cloud to Cloud difference clarifications

Posted: Sat Sep 22, 2012 9:02 pm
by daniel
Regarding this issue, the cloud-cloud distances computation tool with local model has been improved. Now the user can set a lot more parameters. And the bug shouldn't be there anymore (at least I hope so).

See the wiki for more information:
http://www.cloudcompare.org/doc/wiki/in ... omputation

Re: Cloud to Cloud difference clarifications

Posted: Sat Sep 22, 2012 10:34 pm
by Dimitri
Hi Daniel,

great to see the improvement on the C2C calculation with models. I'll try to update the tests I did in the paper at the next review iteration process.

How difficult would it be to use a local model to average the position of the compared point ? Even if you do not compute the distance along the surface normal, but only towards the closest point, there would be certainly an interest in doing so as you'd reduce the effect of noise on the compared cloud.

Cheers

Dim