How to Georeference Polycam Scans Using Ground Control Points in CloudCompare

This guide provides a step-by-step workflow for adding Ground Control Points (GCPs) to Polycam scans using CloudCompare. Ground control points allow you to georeference your scan data to real-world coordinates, improving accuracy and enabling integration with survey-grade data.

Why Ground Control Points Matter

Ground control points serve as reference markers with known, accurate coordinates (typically from GPS or total station surveys). By aligning your Polycam scan to these control points, you can:

  • Correct for GPS drift or offset in your scan
  • Match your scan to real-world coordinate systems
  • Improve overall positional accuracy
  • Enable accurate measurements and comparisons

Prerequisites

Free and open-source 3D point cloud processing software

Polycam Scan

Required

Exported in .ply or .las format

Ground Control Points

Required

Minimum 3 GCPs (5-7 recommended for best results)

Ground Control Point Requirements

Recommended Setup

  • Use 5-7 GCPs for optimal results (minimum of 3 required)
  • Distribute GCPs around the perimeter and throughout the center of your scan
  • Place GCPs at different elevations when possible
  • Each GCP must be clearly identifiable in your Polycam scan

Step-by-Step Workflow

1Prepare Your Data

Export your Polycam scan:

  • From Polycam, export your scan in .ply or .las format
  • These formats preserve point cloud data and are well-supported by CloudCompare

Prepare your GCP coordinate file:

  • Choose one of these file formats:
    • Text file (.txt):
      • Without color: X Y Z
      • With color (optional): X Y Z R G B
      • Use spaces to separate values
    • CSV file (.csv):
      • Without color: X,Y,Z
      • With color (optional): X,Y,Z,R,G,B
      • Use commas to separate values
    • Color values: RGB 0-255 for easy identification in CloudCompare
  • Label each GCP for easy reference (e.g., GCP1, GCP2, GCP3)

Example Format:

GCP ID X (Easting) Y (Northing) Z (Elevation) Notes
GCP1 3310421.880 6859844.890 462.700 North corner marker
GCP2 3310445.230 6859867.120 463.145 South corner marker
GCP3 3310467.340 6859823.450 461.892 East corner marker

2Import Your Polycam Scan into CloudCompare

  1. Open CloudCompare
  2. Go to File > Open or drag and drop your Polycam scan file
  3. CloudCompare may prompt you about a coordinate shift:
    • If your coordinates have large values (e.g., UTM coordinates like 3310421, 6859844), accept the global shift
    • Large coordinates = values in the hundreds of thousands or millions
    • This shift maintains precision during processing by moving data closer to origin (0,0,0)
  4. Your point cloud will appear in the 3D viewer
  5. Check the DB Tree panel (left side) - your scan should be listed there

3Import or Input Your Ground Control Points

Option A: Import GCP File

  1. Go to File > Open and select your GCP coordinate file
  2. Choose the appropriate import format:
    • For text files: Use the ASCII import wizard
    • Specify that columns represent X, Y, Z coordinates
  3. GCPs will appear as a small point cloud in the DB Tree

Tip: Color Code Your GCPs

For easier identification, add RGB color values to your GCP coordinate file before importing:

  • Add three additional columns for Red, Green, Blue values (0-255)
  • Use bright, contrasting colors like bright red (255, 0, 0), yellow (255, 255, 0), or cyan (0, 255, 255)
  • Example format: X Y Z R G B

Example with color:

# GCP1 (North corner) - Bright Red
3310421.880 6859844.890 462.700 255 0 0
# GCP2 (South corner) - Bright Yellow
3310445.230 6859867.120 463.145 255 255 0

CloudCompare will automatically apply these colors when you import the file.

Option B: Manual Input During Alignment

  • You can input GCP coordinates directly in the Align tool (next step)
  • Useful if you only have a few GCPs or prefer to enter them as you pick points

4Start the Alignment Process

If you imported GCPs (Option A):

  1. Select BOTH your Polycam scan AND the GCP point cloud in the DB Tree (hold Ctrl/Cmd to select multiple)
  2. Go to Tools > Registration > Align (point pairs picking)
  3. A dialog will appear asking you to designate roles:
    • Reference (won't move): Your GCP coordinates
    • Aligned (will move): Your Polycam scan
  4. Click OK to proceed

If you're using manual input (Option B):

  1. Select only your Polycam scan in the DB Tree
  2. Go to Tools > Registration > Align (point pairs picking)
  3. The Align tool will open directly (no role dialog)
  4. You'll input GCP coordinates manually in the next step

5Pick Corresponding Point Pairs

In this step, you'll identify matching locations between your scan and your GCP coordinates.

For Each Ground Control Point:

  1. Input the Reference GCP coordinate:
    • In the Align tool dialog, look for the "Reference" table (right side)
    • Click the pencil icon (for manual coordinate input)
    • Enter the X, Y, Z coordinates for GCP1
    • Click OK
    • A marker labeled "R" (Reference) will appear
  2. Pick the corresponding point in your Polycam scan:
    • In the 3D viewer, locate where GCP1 physically appears in your scan
    • Click directly on that point in your scan
    • A marker labeled "A" (Aligned) will appear
    • This point will be added to the "Aligned" table (left side)
  3. Repeat for all GCPs:
    • Continue with GCP2, GCP3, etc.
    • Always maintain the same order (if you input GCP2 coordinates as the reference, pick GCP2 location in the scan)
    • After picking 3 point pairs, CloudCompare will show an initial RMS error value

Tips for Accurate Point Picking:

  • If you color-coded your GCPs, toggle their visibility to help locate them in your scan
  • Zoom in closely to the GCP location before clicking
  • Use the rotation tools to view the point from multiple angles
  • If your GCP is a physical marker (checkerboard, sphere), try to click the center
  • You can remove and re-pick points if needed using the "X" icon next to each point

6Configure Alignment Settings

Important: Choose Your Scale Option

Locate the "Adjust Scale" checkbox in the lower part of the Align dialog

☐ Leave UNCHECKED (Rigid Alignment) when:

  • Your Polycam scan scale is already accurate and you trust the internal measurements
  • You only need positional/rotational correction

☑ CHECK (Non-Rigid Alignment) when:

  • You're unsure about Polycam scan scale accuracy
  • You want the scan to match design models or survey data exactly
  • GPS drift may have affected overall scale
  • Note: This may cause dimensions to change slightly

Click the "Align" button to preview the alignment - your scan will move to match the GCPs.

7Evaluate Alignment Quality

Check the RMS (Root Mean Square) Error:

  • After you click "Align", the total RMS value will appear in the Console log at the bottom of the screen
  • Individual point errors for each GCP are shown in the Align window
  • Lower RMS values indicate better alignment
  • The RMS value represents the average error between your picked points and their target positions

What RMS Means:

  • RMS is a statistical measure of alignment quality
  • It calculates the average distance between where each GCP should be and where it actually ended up after alignment
  • For example: If your RMS is 0.02m, the average error across all your GCPs is about 2 centimeters
  • Compare your RMS to the accuracy of your survey equipment (e.g., if your GCPs were surveyed with 2cm accuracy, aim for similar or better RMS)

Review Individual Point Errors:

  • Each point pair shows its individual error contribution
  • Look for outliers (points with much higher errors than others)
  • If one GCP has significantly higher error than the others:
    • Verify you picked the correct location
    • Check if GCP coordinates are correct
    • Consider removing and re-picking that point

Tips for Improvement:

  • Add more GCPs for better constraint
  • Re-pick any points with high individual errors
  • Try both with and without "Adjust Scale" to compare results
  • If RMS is much higher than your survey equipment accuracy, investigate potential issues

8Apply the Alignment

  1. Once you're satisfied with the RMS error, click the green checkmark (✓) to apply
  2. CloudCompare will display a final report showing:
    • Final RMS error
    • Transformation matrix applied
    • Scale factor (if scale adjustment was enabled)

9Optional Fine-Tuning with ICP

ICP (Iterative Closest Point) is an automatic alignment tool that matches thousands of points between your scan and a reference model. While GCP alignment uses 3-7 manually picked points, ICP fine-tunes the alignment by comparing the entire surfaces.

If you have a reference model or design surface, you can further refine alignment:

  1. Make sure your georeferenced Polycam scan is roughly aligned to the reference
  2. Select both the Polycam scan and reference model
  3. Go to Tools > Registration > Fine Registration (ICP)
  4. Designate:
    • Reference: Your design model or reference scan
    • Aligned: Your georeferenced Polycam scan
  5. Set parameters:
    • Adjust Scale: Check if needed
    • Final Overlap: Estimate what % of points overlap (e.g., 70% if most areas match)
  6. Click OK to run ICP
  7. Review the final RMS - it will be calculated across thousands of points instead of just your GCP count

10Verify and Export

Verification Steps:

  1. Use the Measure tool to check known distances in your scan
  2. Compare measurements against survey data or design dimensions
  3. Visually inspect alignment with any reference models
  4. Check that the alignment makes sense relative to your GCP accuracy expectations

Export Your Georeferenced Scan:

  1. Select your aligned Polycam scan in the DB Tree
  2. Go to File > Save
  3. Choose your output format:
    • .las/.laz - Standard for point clouds, preserves coordinates
    • .e57 - Industry standard with rich metadata
    • .ply - Versatile, works well with many software tools
    • .xyz - Simple ASCII format
  4. Important: Make note of any global shift that was applied
    • Check Edit > Edit Global Shift on your aligned cloud
    • Document these values for future reference
    • When importing into other software, you may need to reverse this shift