Skip to content

Cal Metrics Schema

A metrics.json file is output in conjunction with the Plex from the TVCal process. All the data here is the same as the data used in the User Hub to visualize calibration outputs.

Top-Level Entries

Top-Level Metrics

{
  "reprojections": [
    // ...
  ],
  "summary_statistics": {
    // ...
  },
  "optimized_object_space": {
    // ...
  },
  "plex_uuid": "82709b45-55bf-4fed-ba67-fe6278603436"
}
Field Type Description
"reprojections" Array<Object> An array of individual image reprojection and pose data.
"optimized_object_space" Object An object describing the points within object space and their optimized coordinates after calibration.
"summary_statistics" Object An object describing the various summary statistics related to the calibration.
"plex_uuid" string The UUID of the plex with which this file was produced.

Image Reprojection and Pose Data

The "reprojections" field in the top-level object contains an array of image reprojection data, which comprises the point coordinates (in Cartesian and Polar), the image reprojection errors (in Cartesian and Polar), the unprojected object space coordinates of these points, as well as the world extrinsic and its covariance.

In total, the "reprojections" field is an array of objects of this type. There is one object for each image in the calibration that contains a sufficient number of detected points.

Item In "Reprojections"

Image-specific Data

{
  "metadata": {
    "component_uuid": "f70140d5-48e3-4617-9ccb-b5664ef19542",
    "index_order": "RowMajor",
    "sync_group_id": 0,
    "timestamp_nanoseconds": 1643230518150000000
  },
  "ids": [
    52, 37, 10, 29, 61 // ...
  ],
  "us": [
    -76.41727756706621,
    -307.9962799474373,
    -291.226069681324,
    -247.42214512077715,
    -78.10413669792558
    // ...
  ],
  "vs": [
    -59.704059782176614,
    -15.95616549506724,
    137.79424649223745,
    28.950404939503073,
    -93.48556918159068
    // ...
  ],
  "rs": [
    96.97512601299242,
    308.4093184045614,
    322.1798845806406,
    249.11010385435617,
    121.81874984801897
    // ...
  ],
  "ts": [
    -2.478364781506337,
    -3.0898325689206607,
    2.699653060882809,
    3.0251141522712683,
    -2.2667926760939667
    // ...
  ],
  "dus": [
    -0.00582865708065583,
    0.4728734002483179,
    0.4596362651073491,
    0.032416239165996785,
    -0.10803986742860161
    // ...
  ],
  "dvs": [
    0.08343421120605399,
    0.11889043794494114,
    -0.2174777602847371,
    0.209647498043239,
    0.1465732478155246
    // ...
  ],
  "drs": [
    -0.046749577497010364,
    -0.4783767055781709,
    -0.5084899924485171,
    -0.0077421347660333595,
    -0.043084278023286515
    // ...
  ],
  "dts": [
    -0.0007153262522718862,
    -0.00030612764875259657,
    -3.8056402473785056e-10,
    -0.0008510325761301729,
    -0.001452564418383151
    // ...
  ],
  "object_xs": [
      0.698002622820157,
      0.36010317631766203,
      0.3525860189122692,
      0.4372311492873444,
      0.702395336501443
      // ...
  ],
  "object_ys": [
    -0.08579402368383977,
    -0.011997490056249215,
    0.3528293459972665,
    0.10130994243772368,
    -0.16539119863893126
    // ...
  ],
  "object_zs": [
      0.7443800595633222,
      1.1820437305672682,
      1.1531042175302693,
      1.0682837838627914,
      0.7470646575628607
  ],
  "world_extrinsic": {
    "rotation": [
      0.01648564307869111,
      -0.44520309758744425,
      -0.03900317305423123,
      0.8944278495007455
    ],
    "translation": [
      -0.6306996650566558,
      -0.21131773948847302,
      0.6847683451861181
    ]
  },
  "world_extrinsic_covariance": {
    "raw_se3": [
      0.0001658861645857824, -0.00001944045293404048, 0.00016776650748161537, -5.261299985065433e-7, 0.000002796439257594873, 0.00009311567589118572,
      -0.000019440452934039938, 0.00008278674209634434, 0.000025973246344528124, -8.644506022842648e-7, 1.7628667653835793e-7, -0.0001233828072929699,
      0.0001677665074816147, 0.000025973246344527852, 0.0003617290535496343, -0.00012449576545413583, 0.00009884846897998518, 3.8423530680100054e-7,
      -5.261299985069333e-7, -8.644506022837222e-7, -0.0001244957654541368, 0.00043228512705295006, -1.5639282006057574e-7, -0.0000011500236194149619,
      0.0000027964392575951957, 1.7628667653826618e-7, 0.00009884846897998587, -1.5639282006034112e-7, 0.0002625933810499622, -1.7415205904677696e-7,
      0.00009311567589118585, -0.00012338280729296992, 3.842353068020429e-7, -0.0000011500236194138743, -1.741520590471204e-7, 0.0003237663169538749
    ]
  },
  "rmse": 0.3275575291954445
}
Field Type Description
"metadata" Object The metadata of the image associated with this reprojection and pose data.
"ids" integer[] An array of point IDs, labelling each point described in this object.
"us" Array<number> The horizontal u-coordinate (centered on principal point) of each detected point.
"vs" Array<number> The vertical v-coordinate (centered on principal point) of each detected point.
"rs" Array<number> The radial polar-coordinate (centered on the principal point) of each detected point.
"ts" Array<number> The tangential polar coordinate (centered on the principal point) of each detected point.
"dus" Array<number> The residual of the horizontal u-coordinate of each detected point.
"dvs" Array<number> The residual of the vertical v-coordinate of each detected point.
"drs" Array<number> The residual of the radial polar-coordinate of each detected point.
"dts" Array<number> The residual of the tangential polar coordinate of each detected point.
"object_xs" Array<number> The X-coordinate of the unprojected point in object space.
"object_ys" Array<number> The Y-coordinate of the unprojected point in object space.
"object_zs" Array<number> The Z-coordinate of the unprojected point in object space.
"world_extrinsic" Object The image-from-world extrinsic (pose). See an example.
"world_extrinsic_covariance" Object The covariance of the image-from-world extrinsic (pose).
"rmse" number The per-image RMSE of reprojection errors.

All array quantities in this object should be the same length. It is an error if any array is differently sized than the others.

Optimized Object Space

Optimized Object Space

{
  "ids": [
    59, 0, 49, 61, 56 // ...
  ],
  "xs": [
    0.480169117078033,
    0.0010587677470956028,
    0.38386335841204977,
    0.6724122495899142,
    0.1917521724165121
    // ...
  ],
  "ys": [
    -0.00046496906486692956,
    0.5761571598670792,
    0.09573039459511024,
    -0.0003250573048373086,
    -0.00034378373946653977
    // ...
  ],
  "zs": [
    -0.0009044424428364603,
    -0.002495100125672213,
    0.001111352752502408,
    -0.0019781475404354256,
    -0.0021271391976623744
    // ...
  ]
}
Field Type Description
"ids" Array<integer> The identifiers of the points in object space.
"xs" Array<number> The X-coordinate of the points in object space.
"ys" Array<number> The Y-coordinate of the points in object space.
"zs" Array<number> The Z-coordinate of the points in object space.

All the arrays contained within this object should be the same length. It is an error if any array is differently sized than the others.

Summary Statistics

Advanced Topics

See our page in the Advanced Topics section for interpreting or working with this data, as it may be easy to mislead or misinterpret without the appropriate context.

Summary Statistics

{
  "per_component_rmse": {
    "09bb8a44-ea8a-47cc-aab0-1023ea0205c7": 0.20673255289864623,
    "ff8330ae-8bce-46f8-9628-5c7ef2c34a29": 0.20905713539650247,
    "f70140d5-48e3-4617-9ccb-b5664ef19542": 0.2097200157068809
  },
  "base_object_rmse": 0.617141725711078,
  "optimized_object_rmse": 0.2948512029167111,
  "posterior_variance": 0.7193335602193256
}
Field Type Description
"per_component_rmse" Object A table of (UUID, RMSE) per-component in the calibration.
"base_object_rmse" number The RMSE of unprojected object points relative to the un-optimized object space.
"optimized_object_rmse" number The RMSE of unprojected object points relative to the optimized object space.
"posterior_variance" number The a-posteriori variance factor.