Better calibration in ContextCapture

Introduction

The goal of this tutorial is to specify calibration settings to ContextCapture, so that you can obtain a better model.

In this tutorial, we will cover how to send calibration settings to ContextCapture, and how to retrieve calibration reports from the service.

Info

Skill level:

Expert

Duration:

10 minutes

Prerequisites

This tutorial assumes that you already have:

1. Specifying calibration settings

If you want to apply specific settings for the calibration, you can add a file in the workspace reality data: the file at_settings.json has to be uploaded to /{jobId}/data/. Note that no check on the uploaded file is performed until the job is actually submitted, and if the parameters are not fitted to the inputs, the job will failed.

Note that every properties in the following structure are optional. Strings separated by - mean only one option can be specified. Strings separated by | can be combined using |, eg: "QR Codes|Chili Tags". For parameter "AdjustWithinTolerance %.%", %.% has to be replace by a double.

If you have a preset and you want to apply it, upload it as at_preset.cfg in /{jobId}/data/. No need to specify the name in the the ATSettings file.

AT Settings exchange structure


JSON
{
  "ATSettingsExchange":{
    "PhotogroupEstimationMode": "OnePass"-"MultiPass",
    "ColorEqualizationMode": "EqualizeBlockwise"-"EqualizeNone",
    "SplatsMode": "SplatsAtlas"-"SplatsNone",
    "AdjustmentConstraints": "None"|"UserConstraints"|"ControlPoints"|"PositionMetadata"|"PointClouds"|"Automatic",
    "RigidRegistration": "None"|"UserConstraints"|"ControlPoints"|"PositionMetadata"|"PointClouds"|"Automatic",
    "EstimationGroups": "PerPhotogroup"-"PerPhoto",
    "RotationPolicy": "Compute"-"Keep"-"Adjust"-"AdjustWithinTolerance %.%",
    "CenterPolicy": "Compute"-"Keep"-"Adjust"-"AdjustWithinTolerance %.%",
    "FocalPolicy": "Compute"-"Keep"-"Adjust"-"AdjustWithinTolerance %.%",
    "PrincipalPolicy": "Compute"-"Keep"-"Adjust"-"AdjustWithinTolerance %.%",
    "RadialPolicy": "Compute"-"Keep"-"Adjust"-"AdjustWithinTolerance %.%",
    "TangentialPolicy": "Compute"-"Keep"-"Adjust"-"AdjustWithinTolerance %.%",
    "TiePointsPolicy": "Compute"-"Keep",
    "FisheyeFocalPolicy": "Compute"-"Keep"-"AdjustFisheyeFocalSymmetric"-"AdjustFisheyeFocalAsymmetric",
    "FisheyeDistortionPolicy": "Compute"-"Keep"-"AdjustFisheyeDistortion_01xx0"-"AdjustFisheyeDistortion_x1xx0"-"AdjustFisheyeDistortion_x1xxx"-"AdjustWithinTolerance %.%",
    "AspectRatioPolicy": "Compute"-"Keep"-"Adjust"-"AdjustWithinTolerance %.%",
    "SkewPolicy": "Compute"-"Keep"-"Adjust"-"AdjustWithinTolerance %.%",
    "PairSelectionMode": "Default"-"Sequence"-"Loop"-"Exhaustive"-"Similar images only",
    "PairSelectionMaxDistance": int,
    "KeyPointsDensity": "Normal"-"High",
    "ExtractQR": "QR Codes"|"April Tags"|"Chili Tags"|"Disabled",
    "ComponentConstructionMode": "OnePass"-"MultiPass"
  }
}

2. Accessing calibration results

Once the step AT_CloudExport is executed, you can access calibration results (including reports) through the workspace reality data.

In /{jobId}/outputs/calibration/ you will find:

  • acquisition_report, a folder containing an HTML page with CSS regarding the acquisition of your images
  • quality_report, a folder containing HTML pages regarding with quality of your calibration
  • block.xmlz and block - TiePoints.xmlz, the corresponding CCOrientations of this calibration

Continue learning

Congratulations for completing the ContextCapture calibration tutorial! You should now be able to specify calibration settings and retrieve reports once a calibration is completed.

To go further and use ContextCapture to its maximum potential, you can check the following tutorials.

More resources that you may like

Projects API

Project is necessary for using ContextCapture API. You can check its possibilities.

Reality Data API

Reality Data API is necessary for uploading inputs for ContextCapture, and downloading outputs.