How to import any scan data to RealityCapture using CloudCompare and Faro Scene (How to create ordered point-cloud from unordered)

RealityCapture can work only with ordered point-clouds. These point-clouds are mostly created by terrestrial laser scans (like Faro, Leica, Trimble). But it is possible to create ordered point-cloud from unordered point-cloud and there is how.

1. Intro in RealityCapture and general RealityCapture point-cloud requirements

In this section is described basic setup in RelityCapture for good working with laser scan point-cloud. These setting are in Reconstruction tab -> Reconstruction settings -> Laser scans

laser_scans.png

There are:

  • Minimal distance between two points - points, which are closer to each other as this value are omitted (this could cause problems if the laser scan is in different units then meters) 
  • Point-cloud cropping radius - any point which distance is larger than 150 m from zero laser scan station is omitted 
  • Minimal intensity - RealityCapture is working in the intensity spectrum 0 - 1. If the intensity values are more than 1 it will cause a problem with point-cloud

These values are in meters (not intensity). It is important to have all of your scans in meters (not feets or miles). You should consider about all of these parameters before using your point-cloud in RealityCapture.

2. Scaling in CloudCompare

For the quick check if your point-cloud is suitable for RealityCapture or not you can use CloudCompare. After point-cloud import, the first thing which you will notice is the rotation of point-cloud. In this case, if you use different views, these should be correct. We want to have an ordinary oriented point-cloud (up is real up).

The second thing to check is if there is some TLS/GBL (scan position). If not, this means, that the point-cloud is unordered.

unordered.png

The units of the model we can check after clicking on the point-cloud. If the box dimensions are in thousands, then it is not good (laser scans have mostly range hundreds meters). On the next image is how it should look.

box.png

If these values are not in meters, we can scale the project in CLoudCompare. Go to Edit -> Multiply/Scale and set the correct scale to transfer values to meters. Then we can save this point-cloud.

scale.png scale2.png

3. Creation of virtual scan positions in Faro Scene

In Faro Scene we will create new project. Through Import tab we import our scaled point-cloud. Then we need to process our scan. 

What we want to do is creation a scan point-cloud. It is in Configure processing settings.

create.png

After processing we can go to Explore tab and by right click on the point-cloud -> View -> 3D View we can see bad orientation of point-cloud (similar as in CloudCompare). What we want is, that if we show Top view, then we will see the top of the point-cloud, not other site.

To change this click on the point-cloud and choose Properties -> Transformation. There is possible to change rotation angles to wanted (where top view is from top, etc.). Also we can do some adjustments to position.

After this we want to create scan position/s for this point-cloud. We have to move to the right place (where should stand scanner) and create a virtual scan virtual.png with High resolution and enabled point interpolation.

We don’t want to crop anything from the point-cloud so this position should be located near to position of original scanner. If there will be some kind of overlap with front and back point-cloud, the resulted point-cloud will have only the first viewed points. If the point-cloud is created from more scan positions, we simulate also scanner movement and create virtual scan for each position.

After creation of all wanted virtual scans we can export them.

export.png

Set correct maximal distance value (150 m as it is in RealityCapture) and choose E57 format. Keep value 1 for subsampling.

4. Import into RealityCapture

After these steps you can import this ordered point-cloud into RealityCapture. Depending on your point-cloud, the settings will look like this:

import.png

Use Unregistered, because you want to register this scan with other scans, Feature source as Color (when there is not intensity) and also Intensity channel type as Image.

After import you can work with this point-cloud as ordered.

I would like RC to be able to  be able to import unordered point clouds from another photogrammetry, from SLAM LiDAR and from Drone LiDAR.

Is there alternative to the Faro Scene method described here ? That method seems expensive and very time consuming.

1, this is not possible now. I will add your vote into our feature request database to increase of its priority.

The similar way it should work in Cyclone, but it is also not free soft. For now there is no other workflow.

Thanks, I will try the new version of Leica Cyclone Register 360 which appears to create a _setup _when importing unordered point clouds (page 28 of Release notes) . I will then export the point cloud and see whether it becomes ordered ? Fingers crossed.

Please add my vote into feature request as well. We have Faro Freestyle handheld scanner, and even with process described above it is still a questionable solution: virtual scans see through points and pick the ones on the other side of the mesh, so basically making them with inverted normals. Which leads to huge problems during mesh reconstruction. The only workaround i found is to manually cut the scan in pieces and try to place virtual scans to minimize inverted point, though completely fixing this is impossible. So i have to say that solution is far from perfect or even good.

, when you have handheld scanners and not so big object, you can also try this workflow: https://support.capturingreality.com/hc/en-us/articles/4408415049618-Using-a-model-made-by-a-handheld-scanner-in-RealityCapture

I will also add your vote into the feature request.

374823146340 most of the time we are using handheld scanner to reach small and narrow areas where its impossible to place terrestrial scanner, so scans from handheld mostly are smaller parts of bigger mesh. Any workflow you can suggest given this info? Thank you

Insepes 1, Did you use cyclone 360 successfully?

I’ve not had a chance to test it yet. When I do I will post the result.

I have tried this workflow every way that I can possibly imagine. I have exported a working e57 that can be read by Cloud Compare with working Virtual Scans that are even registered and not registered trying multiple methods. I have not found a single way to incorporate this workflow into a project that I am working on. Mainly because the roof of a large building seems to have holes in the data so we happened to have flown this with aerial lidar. I have imported that data into faro seemingly correct. It is unordered data but when I follow these instructions and go to import into RC I get roughly 4 seconds where it thinks about using the data but nothing imports. 

, how many virtual scans have you created? Have you followed placing like in ordinary scanning? After import into CloudCompare were you able to see the TLS/GLB positions here? Have you used E57 from Scene or from CloudComapre?

I have been able to see the TLS/GLB positions in cloud compare from the exported .e57 which are the created virtual positions from scene.

I tried this solution, but I couldn’t get a result. Could you explain the workflow a little bit more in detail? Thank you!

,

the basic idea of this workflow is creation of the fake laser scan positions around your object. In this case you are simulating the real scanning. You need to place more positions. Which step is not working for you?