main
Caleb Version 0.3.0: new copper reader, dome via filter, every layer read from the photos, net evidence, measured confidence;… e874d7d
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911
{
  "at": "2026-11-05T23:24:45Z",
  "belowTarget": [
    "F.SilkS 0.742",
    "F.Mask opening 0.715",
    "F exposed metal 0.666",
    "B.SilkS 0.740",
    "B exposed metal 0.753",
    "B holes 0.746"
  ],
  "board": "/home/adom/project/Driver_RE3_test/run/kicad/run.kicad_pcb",
  "boardAreaMm2": 4544.36,
  "categories": {
    "copper": {
      "formula": "100 x the lower IoU of F.Cu and B.Cu, each the lower of its held-out tiles and the second photo. Only bare mask counts: pixels under parts, silk or metal are in neither the numerator nor the denominator, so they cannot raise it. See layers.*.scoredShareOfBoard for how much of the board this covers.",
      "score": 80.9
    },
    "placement": {
      "formula": "100 x the lowest of: F exposed metal IoU, F holes IoU (held-out, second photo), and the share of parts whose library pads sit within 0.25 mm of the pads the photo shows",
      "score": 55.65
    },
    "vias": {
      "formula": "100 x F1 of written vias against bright domes on the bottom mask in the held-out tiles, from a plain blob test",
      "score": 69.4
    }
  },
  "generatedBy": "check fidelity",
  "inputs": {
    "copper.json": "geometry:a38e5dae530b50de90cfba56310bd9f43f353a908399fcb599f46123cc24eb26",
    "parts.json": "4d332847fa5eb00103bb53d9a776f191920a1ac5d604680ef76ec3a2cb4b2bf7",
    "photo-layers.json": "fe62d95c6b2fe0731897874c0ede4f9de7352449e3e46ddf019ed9474d95e755"
  },
  "layers": {
    "B exposed metal": {
      "bestShiftMm": {
        "iouThere": 0.828,
        "x": 0.0,
        "y": 0.0
      },
      "excludedBecause": {
        "partBodiesMm2": 0.0
      },
      "excludedMm2": 0.0,
      "heldOutTiles": {
        "boardMm2": 70.94,
        "boundaryMedianMm": 0.0,
        "boundaryP95Mm": 0.4,
        "boundarySamples": 22916,
        "iou": 0.828,
        "photoMm2": 70.36,
        "precision": 0.902,
        "recall": 0.91
      },
      "iouTuningTiles": 0.885,
      "perBlob": {
        "blobs": 32,
        "iouMedian": 0.952,
        "iouP10": 0.643,
        "under05": 3
      },
      "photoAgainstItsSecondShot": {
        "iou": 0.864
      },
      "scoredMm2": 4544.36,
      "scoredShareOfBoard": 1.0,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.025,
        "boundaryP95Mm": 3.783,
        "iou": 0.753,
        "precision": 0.833,
        "recall": 0.887
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.48,
        "iouAtZero": 0.828,
        "scoresWorse": true,
        "shiftMm": 0.25
      }
    },
    "B holes": {
      "bestShiftMm": {
        "iouThere": 0.758,
        "x": 0.0,
        "y": 0.0
      },
      "excludedBecause": {
        "note": "a hole with a pin and solder in it does not show",
        "partBodiesMm2": 0.0,
        "solderedMetalMm2": 22.89
      },
      "excludedMm2": 22.89,
      "heldOutTiles": {
        "boardMm2": 38.01,
        "boundaryMedianMm": 0.025,
        "boundaryP95Mm": 7.883,
        "boundarySamples": 7812,
        "iou": 0.758,
        "photoMm2": 29.76,
        "precision": 0.769,
        "recall": 0.982
      },
      "iouTuningTiles": 0.746,
      "perHole": {
        "centreErrorMedianMm": 0.008,
        "centreErrorP95Mm": 0.038,
        "diameterErrorMedianMm": 0.015,
        "diameterErrorP95Mm": 0.029,
        "drillsWithNoPhotoHole": 20,
        "holesOnPhoto": 67,
        "withADrill": 67,
        "withNoDrill": 0
      },
      "photoAgainstItsSecondShot": {
        "iou": 0.971
      },
      "scoredMm2": 4521.48,
      "scoredShareOfBoard": 0.995,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.025,
        "boundaryP95Mm": 10.15,
        "iou": 0.746,
        "precision": 0.757,
        "recall": 0.982
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.496,
        "iouAtZero": 0.758,
        "scoresWorse": true,
        "shiftMm": 0.25
      }
    },
    "B.Cu": {
      "bestShiftMm": {
        "iouThere": 0.873,
        "x": 0.0,
        "y": 0.0
      },
      "excludedBecause": {
        "holesMm2": 60.33,
        "metalMm2": 138.58,
        "note": "copper can be read only under bare mask; a margin of 6 px around anything else goes too",
        "partBodiesMm2": 0.0,
        "silkMm2": 149.47
      },
      "excludedMm2": 596.98,
      "heldOutTiles": {
        "boardMm2": 1593.31,
        "boundaryMedianMm": 0.058,
        "boundaryP95Mm": 1.292,
        "boundarySamples": 144662,
        "iou": 0.873,
        "photoMm2": 1567.91,
        "precision": 0.925,
        "recall": 0.939
      },
      "iouTuningTiles": 0.865,
      "photoAgainstItsSecondShot": {
        "iou": 0.948
      },
      "plotAgainstRead": {
        "iouVisibleOnly": 0.983,
        "iouWholeBoard": 0.977,
        "meaning": "KiCad's plotted copper against the pours and tracks of copper.json drawn directly. The whole-board figure also counts pads and vias, which the read layer does not draw",
        "plotOnlyVisibleMm2": 35.65,
        "readOnlyVisibleMm2": 17.89
      },
      "scoredMm2": 3947.38,
      "scoredShareOfBoard": 0.869,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.05,
        "boundaryP95Mm": 1.3,
        "iou": 0.882,
        "precision": 0.934,
        "recall": 0.94
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.828,
        "iouAtZero": 0.873,
        "scoresWorse": true,
        "shiftMm": 0.25
      },
      "visibility": {
        "agreementVisibleOnly": 0.873,
        "hiddenBy": {
          "holesMm2": 60.33,
          "marginBesideThemMm2": 248.61,
          "metalMm2": 138.58,
          "partBodiesMm2": 0.0,
          "silkMm2": 149.47
        },
        "visibleMm2": 3947.38,
        "visibleShareOfBoard": 0.869
      }
    },
    "B.Mask opening": {
      "bestShiftMm": {
        "iouThere": 0.906,
        "x": 0.0,
        "y": 0.0
      },
      "excludedBecause": {
        "partBodiesMm2": 0.0
      },
      "excludedMm2": 0.0,
      "heldOutTiles": {
        "boardMm2": 109.12,
        "boundaryMedianMm": 0.0,
        "boundaryP95Mm": 1.225,
        "boundarySamples": 17403,
        "iou": 0.906,
        "photoMm2": 100.12,
        "precision": 0.912,
        "recall": 0.994
      },
      "iouTuningTiles": 0.945,
      "photoAgainstItsSecondShot": {
        "iou": 0.905
      },
      "scoredMm2": 4544.36,
      "scoredShareOfBoard": 1.0,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.025,
        "boundaryP95Mm": 4.358,
        "iou": 0.838,
        "precision": 0.859,
        "recall": 0.972
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.714,
        "iouAtZero": 0.906,
        "scoresWorse": true,
        "shiftMm": 0.25
      }
    },
    "B.SilkS": {
      "bestShiftMm": {
        "iouThere": 0.979,
        "x": 0.0,
        "y": 0.0
      },
      "edgeAgainstLuminance": {
        "meaning": "positive: the photographed edge lies outside the drawn shape",
        "medianAbsMm": 0.025,
        "medianSignedMm": 0.025,
        "p95AbsMm": 0.15,
        "samples": 7726
      },
      "excludedBecause": {
        "holesMm2": 60.33,
        "partBodiesMm2": 0.0
      },
      "excludedMm2": 60.33,
      "heldOutTiles": {
        "boardMm2": 76.91,
        "boundaryMedianMm": 0.0,
        "boundaryP95Mm": 0.025,
        "boundarySamples": 61323,
        "iou": 0.979,
        "photoMm2": 76.48,
        "precision": 0.986,
        "recall": 0.992
      },
      "iouTuningTiles": 0.979,
      "photoAgainstItsSecondShot": {
        "iou": 0.739
      },
      "scoredMm2": 4484.04,
      "scoredShareOfBoard": 0.987,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.025,
        "boundaryP95Mm": 4.4,
        "iou": 0.74,
        "precision": 0.867,
        "recall": 0.834
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.426,
        "iouAtZero": 0.979,
        "scoresWorse": true,
        "shiftMm": 0.25
      }
    },
    "F exposed metal": {
      "bestShiftMm": {
        "iouThere": 0.779,
        "x": 0.0,
        "y": 0.0
      },
      "excludedBecause": {
        "partBodiesMm2": 1087.18
      },
      "excludedMm2": 1087.18,
      "heldOutTiles": {
        "boardMm2": 166.35,
        "boundaryMedianMm": 0.0,
        "boundaryP95Mm": 0.517,
        "boundarySamples": 63376,
        "iou": 0.779,
        "photoMm2": 159.3,
        "precision": 0.857,
        "recall": 0.895
      },
      "iouTuningTiles": 0.769,
      "perBlob": {
        "blobs": 176,
        "iouMedian": 0.876,
        "iouP10": 0.14,
        "under05": 33
      },
      "photoAgainstItsSecondShot": {
        "iou": 0.766
      },
      "scoredMm2": 3457.18,
      "scoredShareOfBoard": 0.761,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.033,
        "boundaryP95Mm": 0.692,
        "iou": 0.666,
        "precision": 0.745,
        "recall": 0.862
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.469,
        "iouAtZero": 0.779,
        "scoresWorse": true,
        "shiftMm": 0.25
      }
    },
    "F holes": {
      "bestShiftMm": {
        "iouThere": 0.92,
        "x": 0.0,
        "y": 0.0
      },
      "excludedBecause": {
        "note": "a hole with a pin and solder in it does not show",
        "partBodiesMm2": 1087.18,
        "solderedMetalMm2": 234.42
      },
      "excludedMm2": 1321.61,
      "heldOutTiles": {
        "boardMm2": 32.58,
        "boundaryMedianMm": 0.025,
        "boundaryP95Mm": 0.05,
        "boundarySamples": 7110,
        "iou": 0.92,
        "photoMm2": 32.21,
        "precision": 0.953,
        "recall": 0.964
      },
      "iouTuningTiles": 0.878,
      "perHole": {
        "centreErrorMedianMm": 0.008,
        "centreErrorP95Mm": 0.038,
        "diameterErrorMedianMm": 0.015,
        "diameterErrorP95Mm": 0.028,
        "drillsWithNoPhotoHole": 24,
        "holesOnPhoto": 63,
        "withADrill": 63,
        "withNoDrill": 0
      },
      "photoAgainstItsSecondShot": {
        "iou": 0.952
      },
      "scoredMm2": 3222.76,
      "scoredShareOfBoard": 0.709,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.025,
        "boundaryP95Mm": 0.067,
        "iou": 0.864,
        "precision": 0.953,
        "recall": 0.903
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.596,
        "iouAtZero": 0.92,
        "scoresWorse": true,
        "shiftMm": 0.25
      }
    },
    "F.Cu": {
      "bestShiftMm": {
        "iouThere": 0.823,
        "x": 0.0,
        "y": 0.0
      },
      "excludedBecause": {
        "holesMm2": 58.52,
        "metalMm2": 335.68,
        "note": "copper can be read only under bare mask; a margin of 6 px around anything else goes too",
        "partBodiesMm2": 1087.18,
        "silkMm2": 257.29
      },
      "excludedMm2": 2363.35,
      "heldOutTiles": {
        "boardMm2": 749.59,
        "boundaryMedianMm": 0.05,
        "boundaryP95Mm": 0.425,
        "boundarySamples": 102577,
        "iou": 0.823,
        "photoMm2": 778.71,
        "precision": 0.92,
        "recall": 0.886
      },
      "iouTuningTiles": 0.815,
      "photoAgainstItsSecondShot": {
        "iou": 0.927
      },
      "plotAgainstRead": {
        "iouVisibleOnly": 0.969,
        "iouWholeBoard": 0.835,
        "meaning": "KiCad's plotted copper against the pours and tracks of copper.json drawn directly. The whole-board figure also counts pads and vias, which the read layer does not draw",
        "plotOnlyVisibleMm2": 16.17,
        "readOnlyVisibleMm2": 31.49
      },
      "scoredMm2": 2181.01,
      "scoredShareOfBoard": 0.48,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.05,
        "boundaryP95Mm": 0.5,
        "iou": 0.809,
        "precision": 0.921,
        "recall": 0.87
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.742,
        "iouAtZero": 0.823,
        "scoresWorse": true,
        "shiftMm": 0.25
      },
      "visibility": {
        "agreementVisibleOnly": 0.823,
        "hiddenBy": {
          "holesMm2": 58.52,
          "marginBesideThemMm2": 624.69,
          "metalMm2": 335.68,
          "partBodiesMm2": 1087.18,
          "silkMm2": 257.29
        },
        "visibleMm2": 2181.01,
        "visibleShareOfBoard": 0.48
      }
    },
    "F.Mask opening": {
      "bestShiftMm": {
        "iouThere": 0.824,
        "x": 0.0,
        "y": 0.0
      },
      "excludedBecause": {
        "partBodiesMm2": 1087.18
      },
      "excludedMm2": 1087.18,
      "heldOutTiles": {
        "boardMm2": 200.53,
        "boundaryMedianMm": 0.0,
        "boundaryP95Mm": 0.85,
        "boundarySamples": 58121,
        "iou": 0.824,
        "photoMm2": 191.51,
        "precision": 0.883,
        "recall": 0.924
      },
      "iouTuningTiles": 0.806,
      "photoAgainstItsSecondShot": {
        "iou": 0.806
      },
      "scoredMm2": 3457.18,
      "scoredShareOfBoard": 0.761,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.05,
        "boundaryP95Mm": 1.067,
        "iou": 0.715,
        "precision": 0.787,
        "recall": 0.886
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.576,
        "iouAtZero": 0.824,
        "scoresWorse": true,
        "shiftMm": 0.25
      }
    },
    "F.SilkS": {
      "bestShiftMm": {
        "iouThere": 0.983,
        "x": 0.0,
        "y": 0.0
      },
      "edgeAgainstLuminance": {
        "meaning": "positive: the photographed edge lies outside the drawn shape",
        "medianAbsMm": 0.025,
        "medianSignedMm": 0.025,
        "p95AbsMm": 0.138,
        "samples": 11142
      },
      "excludedBecause": {
        "holesMm2": 58.52,
        "partBodiesMm2": 1087.18
      },
      "excludedMm2": 1145.7,
      "heldOutTiles": {
        "boardMm2": 135.75,
        "boundaryMedianMm": 0.0,
        "boundaryP95Mm": 0.025,
        "boundarySamples": 96536,
        "iou": 0.983,
        "photoMm2": 135.46,
        "precision": 0.99,
        "recall": 0.992
      },
      "iouTuningTiles": 0.983,
      "photoAgainstItsSecondShot": {
        "iou": 0.744
      },
      "scoredMm2": 3398.66,
      "scoredShareOfBoard": 0.748,
      "secondPhotoHeldOutTiles": {
        "boundaryMedianMm": 0.025,
        "boundaryP95Mm": 0.692,
        "iou": 0.742,
        "precision": 0.811,
        "recall": 0.898
      },
      "shiftTest": {
        "iouAtBestOfFourShifts": 0.412,
        "iouAtZero": 0.983,
        "scoresWorse": true,
        "shiftMm": 0.25
      }
    }
  },
  "layersWorst": 66.6,
  "outline": {
    "perPhoto": {
      "Driver1.JPG": {
        "bottom": {
          "maxGapMm": 0.015,
          "medianGapMm": 0.007
        },
        "cornerRadiiMm": [
          3.08,
          3.14,
          3.08,
          2.96
        ],
        "left": {
          "blocked": true
        },
        "right": {
          "maxGapMm": 0.013,
          "medianGapMm": 0.007
        },
        "top": {
          "maxGapMm": 0.036,
          "medianGapMm": 0.016
        }
      },
      "Driver2.JPG": {
        "bottom": {
          "maxGapMm": 0.014,
          "medianGapMm": 0.006
        },
        "cornerRadiiMm": [
          3.32,
          3.08,
          3.02,
          2.96
        ],
        "left": {
          "maxGapMm": 0.064,
          "medianGapMm": 0.049
        },
        "right": {
          "maxGapMm": 0.019,
          "medianGapMm": 0.008
        },
        "top": {
          "maxGapMm": 0.033,
          "medianGapMm": 0.026
        }
      },
      "Driver3.JPG": {
        "bottom": {
          "blocked": true
        },
        "cornerRadiiMm": [
          2.96,
          2.96,
          2.72,
          1.39
        ],
        "left": {
          "maxGapMm": 0.038,
          "medianGapMm": 0.029
        },
        "right": {
          "maxGapMm": 0.045,
          "medianGapMm": 0.024
        },
        "top": {
          "maxGapMm": 0.232,
          "medianGapMm": 0.169
        }
      },
      "Driver4.jpg": {
        "bottom": {
          "blocked": true
        },
        "cornerRadiiMm": [
          3.02,
          3.08,
          3.08,
          2.96
        ],
        "left": {
          "maxGapMm": 0.021,
          "medianGapMm": 0.019
        },
        "right": {
          "maxGapMm": 0.052,
          "medianGapMm": 0.027
        },
        "top": {
          "maxGapMm": 0.235,
          "medianGapMm": 0.165
        }
      }
    },
    "worstMedianGapMm": 0.169
  },
  "pxPerMm": 40.0,
  "samples": {
    "edgeAgainstLuminance": "threshold-free: the nearest steepest edge in the luminance, for bias in where the silk edge was put",
    "heldOut": "tile set B, primary photos",
    "secondPhoto": "tile set B, the other photo of each face, registered through its holes; same camera position and light, so it tests noise and registration, not a choice of threshold",
    "tuning": "tile set A of a 5 mm checkerboard, primary photos: thresholds come from here"
  },
  "scaleCheck": {
    "boardMm": [
      73.65,
      61.78
    ],
    "bottomRegistration": {
      "leaveOneOutMaxMm": 0.083,
      "leaveOneOutRmsMm": 0.026,
      "pairs": 40,
      "quadraticRmsMm": 0.02,
      "translationOnlyMaxMm": 0.58,
      "translationOnlyRmsMm": 0.204
    },
    "edges": {
      "bottom": {
        "bottomInlierShare": 0.21072088724584104,
        "bottomPhotoMm": 62.063,
        "bowMmBottom": -0.018,
        "bowMmTop": -0.024,
        "tiltMradBottom": -0.336,
        "tiltMradTop": 0.121,
        "topInlierShare": 0.9722735674676524,
        "topPhotoMm": 61.91
      },
      "left": {
        "bottomInlierShare": 0.92152466367713,
        "bottomPhotoMm": -0.131,
        "bowMmBottom": 0.039,
        "bowMmTop": 0.023,
        "tiltMradBottom": -0.093,
        "tiltMradTop": -0.904,
        "topInlierShare": 0.4618834080717489,
        "topPhotoMm": -0.105
      },
      "right": {
        "bottomInlierShare": 0.9551569506726456,
        "bottomPhotoMm": 73.8,
        "bowMmBottom": 0.008,
        "bowMmTop": 0.027,
        "tiltMradBottom": 2.96,
        "tiltMradTop": 4.705,
        "topInlierShare": 0.9910313901345292,
        "topPhotoMm": 73.78
      },
      "top": {
        "bottomInlierShare": 0.9815157116451017,
        "bottomPhotoMm": 0.04,
        "bowMmBottom": -0.002,
        "bowMmTop": 0.001,
        "tiltMradBottom": 2.383,
        "tiltMradTop": 0.119,
        "topInlierShare": 0.6469500924214417,
        "topPhotoMm": -0.109
      }
    },
    "outlineMm": [
      [
        99.8719,
        99.8862
      ],
      [
        173.634,
        99.895
      ],
      [
        173.9258,
        161.9149
      ],
      [
        99.8662,
        161.906
      ]
    ],
    "pxPerMm": 46.599,
    "rulers": {
      "holes": {
        "x": {
          "ratio": 1.00096,
          "rulers": 3,
          "spreadBetweenRulers": 0.00044
        },
        "y": {
          "ratio": 1.00368,
          "rulers": 3,
          "spreadBetweenRulers": 0.00193
        }
      },
      "meaning": "ratio 1.001 means the frame draws 0.1% larger than the library pitch",
      "perRuler": [
        {
          "holes": true,
          "name": "J10",
          "pads": 4,
          "x": null,
          "xBaselineMm": 0.0,
          "y": 1.0028,
          "yBaselineMm": 20.0
        },
        {
          "holes": true,
          "name": "J11",
          "pads": 4,
          "x": null,
          "xBaselineMm": 0.0,
          "y": 1.0018,
          "yBaselineMm": 20.0
        },
        {
          "holes": true,
          "name": "J4",
          "pads": 6,
          "x": 1.0003,
          "xBaselineMm": 70.0,
          "y": null,
          "yBaselineMm": 0.0
        },
        {
          "holes": true,
          "name": "J5",
          "pads": 7,
          "x": 1.0013,
          "xBaselineMm": 112.0,
          "y": null,
          "yBaselineMm": 0.0
        },
        {
          "holes": true,
          "name": "J8",
          "pads": 4,
          "x": 1.0013,
          "xBaselineMm": 25.4,
          "y": null,
          "yBaselineMm": 0.0
        },
        {
          "holes": true,
          "name": "J9",
          "pads": 4,
          "x": null,
          "xBaselineMm": 0.0,
          "y": 1.0064,
          "yBaselineMm": 20.0
        },
        {
          "holes": false,
          "name": "Q1",
          "pads": 4,
          "x": 0.9819,
          "xBaselineMm": 12.7,
          "y": null,
          "yBaselineMm": 0.0
        },
        {
          "holes": false,
          "name": "Q2",
          "pads": 4,
          "x": 0.9858,
          "xBaselineMm": 12.7,
          "y": null,
          "yBaselineMm": 0.0
        },
        {
          "holes": false,
          "name": "Q4",
          "pads": 4,
          "x": 0.9791,
          "xBaselineMm": 12.7,
          "y": null,
          "yBaselineMm": 0.0
        },
        {
          "holes": false,
          "name": "Q6",
          "pads": 4,
          "x": 0.9774,
          "xBaselineMm": 12.7,
          "y": null,
          "yBaselineMm": 0.0
        },
        {
          "holes": false,
          "name": "SW1",
          "pads": 4,
          "x": 0.8453,
          "xBaselineMm": 13.0,
          "y": 0.8153,
          "yBaselineMm": 9.0
        },
        {
          "holes": false,
          "name": "U1",
          "pads": 34,
          "x": 1.0034,
          "xBaselineMm": 1366.4,
          "y": 1.0105,
          "yBaselineMm": 1283.4
        },
        {
          "holes": false,
          "name": "U2",
          "pads": 14,
          "x": 0.9901,
          "xBaselineMm": 225.8,
          "y": 0.9941,
          "yBaselineMm": 65.1
        },
        {
          "holes": false,
          "name": "U6",
          "pads": 8,
          "x": 1.0426,
          "xBaselineMm": 42.8,
          "y": 1.0995,
          "yBaselineMm": 66.9
        }
      ],
      "smallPads": {
        "x": {
          "ratio": 1.00072,
          "rulers": 8,
          "spreadBetweenRulers": 0.01617
        },
        "y": {
          "ratio": 1.01267,
          "rulers": 4,
          "spreadBetweenRulers": 0.02489
        }
      }
    }
  },
  "secondPhotos": {
    "bottom": {
      "file": "Driver3.JPG",
      "registration": {
        "leaveOneOutMaxMm": 0.074,
        "leaveOneOutRmsMm": 0.023,
        "pairs": 41,
        "patchResidualMedianPx": 0.14,
        "patches": 351,
        "patchesKept": 308,
        "quadraticRmsMm": 0.018,
        "translationOnlyMaxMm": 0.626,
        "translationOnlyRmsMm": 0.226
      }
    },
    "top": {
      "file": "Driver2.JPG",
      "registration": {
        "leaveOneOutMaxMm": 0.046,
        "leaveOneOutRmsMm": 0.014,
        "pairs": 43,
        "patchResidualMedianPx": 0.11,
        "patches": 433,
        "patchesKept": 391,
        "quadraticRmsMm": 0.011,
        "translationOnlyMaxMm": 0.079,
        "translationOnlyRmsMm": 0.021
      }
    }
  },
  "targetIoU": 0.8,
  "viaLayer": {
    "domesInHeldOutTiles": 909,
    "domesWithAVia": 554,
    "f1": 0.694,
    "note": "domes found by a plain bright-blob test on the bottom face, not the flow's via detector: an independent floor, not a truth",
    "precision": 0.806,
    "recall": 0.609,
    "viasInHeldOutTiles": 687,
    "viasOnADome": 554,
    "viasOnSilk": 4
  }
}