Title | Cloud Compare Tutorial slides |
---|---|
Course | Geomatics |
Institution | Sapienza - Università di Roma |
Pages | 15 |
File Size | 1.4 MB |
File Type | |
Total Downloads | 21 |
Total Views | 141 |
Yc6tcgycgy...
CloudCompare
Generalities
Tutorial Daniel Girardeau-Montaut
www.cloudcompare.org @CloudCompareGPL
[email protected]
Graphical user interface
Point cloud display
menus + toolbars
database
3D view(s)
“3D view” tools
Raw cloud
Normals (slow )
RGB
EDL (fast )
highlighted entity properties
Console
File formats
Level 1
Mainly point clouds…
Basic manipulations
Interactive transformation
Interactive segmentation
Sub-sampling
Other standards tools:
(ASC/PTS, LAS/LAZ, E57, PTX, PCD, Faro, DP, Riegl, etc.)
… and triangular meshes (PLY, OBJ, STL, OFF, FBX)
A dedicated format: BIN (to save « projects »)
Other formats:
SfM (Bundler .OUT) Photoscan (work in progress) CAO (Autocad DXF, Aveva PDMS) SIG (shapefile SHP) Polylines (SALOME hydro, SinusX, etc.)
1 - load file
colors and normals edition scaling, cloning and merging cross section 2 – L1 manipulations
Level 1.5
Level 2
Scalar fields
Registration
Operations on scalar fields
Distances computation
Color scales
Other tools
4 – registration
5 – distances
3 – scalar fields
6 – other tools
Present and Share
Present and share your results
Display
labels
Multi 3D views support, full-screen mode, etc.
Viewports can be saved (Display > Save viewport)
Export 3D views to image with optional super resolution (X2, X3, X4, etc. – Display > Render to file)
Save ‘projects’ in BIN format (can contain several entities, of all types)
ccViewer Other
Light client, to load and visualize various file types
SfM data
Sensors
Bundler (.OUT) file loading support
import keypoints import calibrated pictures (+ sensor) ortho-rectification
‘Sensor’ entities
Operations:
+ Photoscan project files (PSX, etc.) loading support under development
Misc
Compute distances or angles between particular points Fit planes or spheres on point clouds Meshing (Delaunay 2.5D or Poisson) Command line Plugins etc.
Wiki: http://www.cloudcompare.org/doc/wiki
7 – plugins
TLS (Terrestrial Laser Sensor) = GBL (Ground Based Lidar) Projective cameras
Set the virtual (OpenGL) camera to match the sensor point of view Filter points based on their visibility Compute distance to sensor, scattering angle, etc.
Loading a file (ASCII)
Loading an ASCII file
Loading a file (ASCII)
Assigning a role to each column
File > Open file: Mazda5_Scan.pts
Loading a file (ASCII)
3D camera interactions
Basic manipulations
Interactions with the 3D view
camera rotation :
camera translation (panning) :
• Left mouse button
• Right mouse button
zooming: • Mouse wheel • or +/= keys
changing the size of points • interactor in the upper-left corner of 3D views • ‘Point size’ property (per cloud)
Example: change the color source
Database
Interactions with the database
Highlight / select an entity: • Left clik on its entry in the database • Or left clik on the entity in the 3D view
Toggling the visibility • Checkbox next to the entity entry: (de)activate the entity and all its children in the database tree • ‘Visible’ option: only the entity is hidden (not its children)
Create a new group, displace entities inside
Renaming an entity • F2 or double-click with the mouse
Interactive transformation
Choose the « front » view
X = red Y = green Z = blue
Note that the road is not horizontal
Select the cloud and start the tool
(Edit > Segment)
Interactive transformation
Same conventions as with the 3D camera … but now only the highlighted entities move
Options to constrain the rotation about a given axis or the translation along one or several axes
Warning: the bounding-box is sometimes measleding (prefer the window borders for visual alignment)
The tool can be paused anytime (to move the camera instead of the highlighted entities). The « 3D views » toolbar remains accessible.
Interactive segmentation
Other possibilities
Tools > Level
Highlight one (or more) entities
Start the tool
Draw a polyline
Click on three points to define a plane (XY)
Other solution (indirect but more general) :
Segment out some points on the road Fit a plane over them (Tools > Fit > Plane) Use this plane to make the cloud horizontal (see the Console for directions)
Subsampling
To reduce the size of a cloud or achieve a regular density
Higlight one or more entities and start the tool
Choose the subsampling mode:
Left click: new vertex Right click: close the polyline
Chosse to keep points inside
Notes:
or outside
you can choose a polygonal or rectangular contour the tool can be paused (to rotate the camera) then restarted the polyline can be exported or imported from the main DB the « 3D views » toolbar remains accessible
Subsampling
random space (spatial) octree (regular)
With ‘spatial’ mode, input the minimum distance between two points (e.g. 0.01 = 1 cm here)
The tool will select a subset of points and create a new cloud (points are not displaced)
Original cloud 1.3M points
Subsampled cloud (1 cm) 0.26M points
Note : density can be computed with Tools > Other > Density
Colors and Normals edition
Edit > Colors
Set a unique color, or « colorize » an entity Apply a color ramp RGB histogram manipulation Conversion to gray scale or to one or several scalar fields
Scaling, cloning and merging
Edit > Multiply / Scale
Edit > Clone
Edit > Normals
Compute normals Invert normals Orient normals Conversion to HSV Conversion to « Dip / Dip direction »
Duplicates an entity (manual undo ;)
Edit > Merge
Scaling (isotropic or not)
Merge two or more entities (only works with clouds and meshes)
Sections
Edit > Crop
To segment a cloud or a mesh inside a box Mesh segmentation is clean (triangles are remshed on the border)
Tools > Segmentation > Cross Section
interactive or systematic sections extraction contours extraction (polylines)
Scalar fields Scalar fields
Scalar fields
Values can be:
Statistics computation (histogram, average, std. dev.)
A cloud can be modified based on these values
… any value (distance, intensity, density, roughness, confidance, curvature, temperature, time, etc.)
… can be (dynamicallly) colored
Scalar fields
Dynamic and customizable coloration
dedicated editor (see the properties of the highlighted entity) real-time update of the point colors
Segmentation inside a given range (Edit > SF > Filter by value) Subsampling
Values can be exported to an ASCII file (CSV)
Excel, Matlab, etc.
Color scales
« Color Scale Editor »: to edit or create custom color scales
import/export to a dedicated XML file color ramps are also saved in BIN files
One value per point …
composed (+,-,/,x) and transformed (cos, log, etc.) filtered (smoothed, gradient, etc.) imported from point coordinates (X, Y ou Z) or the opposite way converted to RGB (or merged with existing colors)
Unlimited number of scalar fields per cloud
Load two clouds Registration
Lidar_ensenada.laz GoPro_ensenada.laz
Loading a LAS/LAZ file
LAZ = compressed LAS
Standad LAS fields
Loading a LAS/LAZ file
Large coordinates management
All fields can be loaded as scalar fields (but the RGB colors)
Keep the default options
Click on « Apply all » Be sure to use the same local coordinate system for both clouds!
CC and OpenGL don’t handle large numbers (> 105) Work in a local coordinate system (click on « Yes ») Original coordinates will be restored at export time
Shifted clouds
Point-pair based alignment
Highlight two clouds and start the tool ( Tools > Registration > Align (point pair picking) )
Choose the LIDAR cloud as reference
Select (left click) 4 or 5 points on the top cloud (GoPro) Pick uniquely identifiable points Sample them all over the cloud (if possible) Zoom in for a more accurate selection
Options to align the clouds:
Interactive transformation (inaccurate, painfull) Point-pair based alignment Automatic registration (ICP) the two clouds must already be roughly aligned
Hide the ‘to align’ cloud ( same points on the other cloud
) and select the
Automatic registration (ICP)
Point-pair based alignment
Click on « Align » to preview the result
Highlight two clouds and start the tool ( Tools > Registration > Fine registration (ICP) )
Choose the LIDAR cloud as referene (use the « swap » button)
Select an "overlap" of 50%
Lidar
Check the error contribution of each pair (you can add more pairs and / or remove some if necessary)
Notes:
GoPro
Option to rescale the aligned cloud Reference points (GCPs) can be input manually (no need to use a reference cloud)
Alignment tips
Alignment tips If entities have "structural" differences
Small or medium local differences :
If one entity is a mesh
Almost the same process
It can be useful to
• ICP (+ option ‘Enable farthest points removal’ or use a small ‘Overlap’)
• Sample a lot of points on the Mesh (Edit > Mesh > Sample points) and use it in place of the mesh • Then apply the resulting transformation matrix to the original mesh (Edit > Apply Transformation)
Different scales: • option ‘adjust scale’ (both tools)
Major differences: • Prefer the point pair based alignment
Pay attention to holes / missing data!
For fine registration (ICP), the mesh should always be the reference entity (the one that doesn’t move). it’s generally less noisier and don’t have holes
Cloud-cloud distances Distances computation
Distances computation
By default, distances are computed between each point of the compared cloud and its nearest neighbor (point or triangle) in the reference entity
compared
Highlight two clouds and start the tool (Tools > Distances > Cloud/Cloud dist.)
Choose the LIDAR cloud as reference
Define a maximum distance of 10 m. (acceleration)
C2C distances computation
Main idea: if the reference cloud is dense enough, then the distance to the nearest neighbor is (almost) as precise as the true distance à to the real-world surface represented by the cloud
Theory: TLS cloud sampling follows a Poisson distribution error is bounded error depends only on the cloud density
Always use the most dense cloud as reference (if possible)
Extents of the reference cloud should be at least as wide as the compared cloud (avoid non-overlapping areas)
reference
The process is not symmetrical!
Poor or irregular density?
N.N. distances in a random Poisson process
Statistics
Local modelling strategies
Highlight the GoPro cloud and start the tool (Edit > Scalar fields > Show histogram)
Histogram is polluted by far / red points (> 10 m.)
Use the tool
Highlight the resulting cloud
measured distance real distance
Local modelling (2 to 5X slower)
(Edit > Scalar fields > Filter by value) and keep points inside [0 9.99]
display the histogram
Display the associated color ramp (section ‘Color Scale’ / option ‘Visible’)
rename the scalar fied (Edit > Scalar fields > Rename)
+ other manipulations
Cloud-to-mesh distances
Advanced C2C: the M3C2 plugin
Tools > Distances > Cloud/Mesh dist.
Lague, D., Brodu, N. and Leroux, J., Accurate 3D comparison of complex topography with terrestrial laser scanner : application to the Rangitikei canyon (N-Z), 2013, ISPRS journal of Photogrammmetry and Remote Sensing
Cleaning Other tools
Several methods available:
Interactive segmentation
Connected components extraction (Tools > Segmentation > Label Connected Comp.)
Noise removal: Tools > Clean > SOR filter Tools > Clean > Noise filter
Profile extraction
Tools > Segmentation > Extract sections
Raster and contour plot
Other option: thresholding based on a scalar field values (roughness, etc.)
Unrolling
Cylindrical or conical unrolling (Tools > Projection > Unroll)
Profile based unrolling (Section Extraction tool – version 2.6.3+)
Volume estimation (2.5D)
Estimation of volume differences between two clouds projected along X, Y or Z (Tools > Volume > Compute 2.5D volume)
Robust C2C distances: M3C2
Plugins
Lague, D., Brodu, N. and Leroux, J., Accurate 3D comparison of complex topography with terrestrial laser scanner : application to the Rangitikei canyon (N-Z), 2013, ISPRS journal of Photogrammmetry and Remote Sensing
CANUPO
Classification with CANUPO https://geosciences.univ-rennes1.fr/spip.php?article1284
Create your own classifiers (easily)
Apply any classifier to any data (with the right scale / units)
Get classification result as a scalar field (each point is associated to a class number + confidence value)
Brodu, N. and Lague, D., 3D Terrestrial LiDAR data classification of complex natural scenes using a multi-scale dimensionality criterion : applications in geomorphology, ISPRS journal of Photogrammmetry and Remote Sensing, 2012
RANSAC Shape Detection
Automatically detects planes, spheres, cylinders, etc.
Facets
Generally detects a lot of them ;)
Fast and simple … but exploiting the result can be challenging
Automatic extraction of fracture planes (facets) Classification per orientation families Stereogram plot Segmentation based on the orientation Export to CSV or SHP files
Facets
Two algorithms for facet extraction
Kd-tree Fast-Marching (seems better)
Non unique result (depends on the cloud density, on parameters and the order in which points are processed, etc.) But the result is statistically valid (if you have enough points / facets)
PCV
Facets exercise
Use Fast-Marching to extract facets
Classify the resulting facets
Export to QGis
Try the orientation based segmentation
Other interesting plugins
Global illumination / ambient occlusion
Surface of Revolution Analysis
Poisson Surface Reconstruction
Animation Hidden Points Removal...