{
  "schema_version": 1,
  "tool_version": "0.2.1",
  "opencv_version": "5.0.0",
  "generated_at": "2026-07-31T12:00:00+03:00",
  "input_directory": ".",
  "configuration": {
    "pattern": {
      "cols": 9,
      "rows": 6,
      "square_size": 30.0,
      "unit": "mm"
    },
    "recursive": false,
    "min_valid_images": 3,
    "min_board_area": 0.01,
    "max_board_area": 0.9,
    "min_sharpness": null,
    "max_per_view_error": null,
    "disable_fallback_detector": false,
    "fail_on_warning": false,
    "overwrite_output": false,
    "log_level": "INFO",
    "coverage_cols": 4,
    "coverage_rows": 3,
    "max_file_size_mb": 100,
    "near_border_ratio": 0.01,
    "relative_sharpness_factor": 0.35,
    "duplicate_center_distance": 0.03,
    "duplicate_log_area_distance": 0.08,
    "duplicate_rotation_degrees": 5.0,
    "duplicate_perspective_distance": 0.08,
    "min_coverage_ratio": 0.35,
    "min_scale_bins": 3,
    "min_rotation_range_degrees": 15.0
  },
  "pattern": {
    "cols": 9,
    "rows": 6,
    "square_size": 30.0,
    "unit": "mm"
  },
  "dataset_metrics": {
    "discovered_count": 3,
    "readable_count": 3,
    "detected_count": 3,
    "accepted_count": 3,
    "warning_count": 2,
    "rejected_count": 0,
    "unreadable_count": 0,
    "detection_rate": 1.0,
    "coverage_grid": [
      [
        0,
        0,
        0,
        0
      ],
      [
        0,
        0,
        3,
        0
      ],
      [
        0,
        0,
        0,
        0
      ]
    ],
    "occupied_coverage_cells": 1,
    "coverage_ratio": 0.08333333333333333,
    "corner_density_grid": [
      [
        0,
        19,
        26,
        7
      ],
      [
        0,
        29,
        40,
        17
      ],
      [
        0,
        4,
        16,
        4
      ]
    ],
    "scale_min": 0.26277651193271157,
    "scale_max": 0.46862020197127985,
    "scale_median": 0.41266563998664263,
    "scale_iqr": 0.10292184501928414,
    "occupied_scale_bins": 3,
    "rotation_range_degrees": 89.3570877095579,
    "horizontal_perspective_range": 0.1370729353299674,
    "vertical_perspective_range": 0.2598575602435533,
    "duplicate_count": 0
  },
  "quality_gates": [
    {
      "name": "minimum_valid_images",
      "passed": true,
      "message": "3 accepted views meet the minimum.",
      "measured_value": 3,
      "threshold": 3
    }
  ],
  "calibration": {
    "camera_model": "pinhole",
    "image_size": [
      640,
      480
    ],
    "opencv_rms": 0.20340291970181212,
    "camera_matrix": [
      [
        535.4891370284612,
        0.0,
        341.6228649364716
      ],
      [
        0.0,
        536.7293891622663,
        234.43436418806436
      ],
      [
        0.0,
        0.0,
        1.0
      ]
    ],
    "distortion_coefficients": [
      -0.3167297374324814,
      0.21519540968566292,
      0.0016617683409911475,
      0.0009056149866629888,
      -0.16542528687003036
    ],
    "rotation_vectors": [
      [
        -0.4343827824153476,
        0.26711541650527393,
        -3.0868237724543386
      ],
      [
        0.6878954813521805,
        -0.4395432201112522,
        1.6552546571540114
      ],
      [
        -0.2644229356490152,
        -0.39376875227334673,
        -2.747693589710688
      ]
    ],
    "translation_vectors": [
      [
        0.14275680805780136,
        0.02681254482728464,
        0.4392453956190113
      ],
      [
        0.09962415135176081,
        -0.05094937457297831,
        0.25429897380302097
      ],
      [
        0.1186726034405404,
        0.09085357999699209,
        0.29068391619419687
      ]
    ],
    "calibration_flags": 0,
    "mean_per_view_rmse_px": 0.20260696602909348
  },
  "images": [
    {
      "relative_path": "left01.jpg",
      "read_success": true,
      "detection_success": true,
      "detection_method": "findChessboardCornersSB",
      "detection_duration_ms": 61.401753991958685,
      "corner_count": 54,
      "corners": [
        [
          510.1767578125,
          266.307861328125
        ],
        [
          475.4885559082031,
          264.6244812011719
        ],
        [
          440.5230407714844,
          263.126953125
        ],
        [
          406.250732421875,
          261.5592956542969
        ],
        [
          372.69171142578125,
          259.88092041015625
        ],
        [
          340.08404541015625,
          258.2392883300781
        ],
        [
          308.4718322753906,
          256.5281982421875
        ],
        [
          277.86309814453125,
          255.0365447998047
        ],
        [
          249.76345825195312,
          253.3645477294922
        ],
        [
          511.6543273925781,
          231.2588653564453
        ],
        [
          476.69158935546875,
          229.92662048339844
        ],
        [
          441.1742858886719,
          228.67340087890625
        ],
        [
          406.6693115234375,
          227.53318786621094
        ],
        [
          372.6853332519531,
          226.3422088623047
        ],
        [
          339.61981201171875,
          225.32598876953125
        ],
        [
          307.5682373046875,
          224.1842498779297
        ],
        [
          276.7846374511719,
          223.2513885498047
        ],
        [
          248.07887268066406,
          222.2074737548828
        ],
        [
          512.9677734375,
          195.5894317626953
        ],
        [
          477.4215393066406,
          194.39532470703125
        ],
        [
          441.6996154785156,
          193.3831024169922
        ],
        [
          406.9124450683594,
          192.57957458496094
        ],
        [
          372.5299072265625,
          192.05264282226562
        ],
        [
          339.21978759765625,
          191.4046173095703
        ],
        [
          307.004638671875,
          190.95724487304688
        ],
        [
          275.8373107910156,
          190.6400909423828
        ],
        [
          247.13575744628906,
          190.3550567626953
        ],
        [
          513.7274169921875,
          159.19334411621094
        ],
        [
          478.02606201171875,
          158.18869018554688
        ],
        [
          442.1824035644531,
          157.83583068847656
        ],
        [
          406.99365234375,
          157.4481964111328
        ],
        [
          372.3622131347656,
          157.2589874267578
        ],
        [
          338.9499206542969,
          157.26722717285156
        ],
        [
          306.4825439453125,
          157.552001953125
        ],
        [
          275.1826171875,
          157.908447265625
        ],
        [
          246.09754943847656,
          158.27154541015625
        ],
        [
          514.0430297851562,
          122.99267578125
        ],
        [
          478.13873291015625,
          122.25121307373047
        ],
        [
          442.10601806640625,
          122.05138397216797
        ],
        [
          406.86962890625,
          122.02162170410156
        ],
        [
          372.21197509765625,
          122.3699951171875
        ],
        [
          338.7076110839844,
          122.96266174316406
        ],
        [
          306.0218505859375,
          123.89899444580078
        ],
        [
          274.6981201171875,
          124.92401123046875
        ],
        [
          245.61346435546875,
          126.06019592285156
        ],
        [
          513.72900390625,
          86.42189025878906
        ],
        [
          477.827392578125,
          86.10865020751953
        ],
        [
          441.80517578125,
          86.26439666748047
        ],
        [
          406.45196533203125,
          86.77120971679688
        ],
        [
          371.7919616699219,
          87.7145004272461
        ],
        [
          338.26324462890625,
          88.74919128417969
        ],
        [
          305.5339050292969,
          90.2542495727539
        ],
        [
          274.3009948730469,
          92.1047592163086
        ],
        [
          245.0708465576172,
          94.12271118164062
        ]
      ],
      "metrics": {
        "width": 640,
        "height": 480,
        "channels": 1,
        "original_dtype": "uint8",
        "original_bit_depth": 8,
        "file_size": 27908,
        "global_sharpness": 744.9194001640216,
        "board_sharpness": 579.8427672879492,
        "sharpness_decision_source": "none",
        "mean_intensity": 116.5601953125,
        "near_black_ratio": 0.010065104166666667,
        "near_white_ratio": 0.011204427083333333,
        "board_center": [
          0.5932577848434448,
          0.3646963834762573
        ],
        "board_boundary": [
          [
            548.5753173828125,
            303.5186462402344
          ],
          [
            220.0462646484375,
            283.50299072265625
          ],
          [
            213.28871154785156,
            59.593345642089844
          ],
          [
            554.8909301757812,
            45.578773498535156
          ]
        ],
        "board_area_ratio": 0.26277651193271157,
        "rotation_degrees": -177.15457132928145,
        "horizontal_perspective": -0.02989086188881897,
        "vertical_perspective": 0.1145506697900979,
        "border_distance_ratio": 0.09495577812194825
      },
      "state": "ACCEPTED",
      "reasons": [],
      "duplicate_of": null,
      "reprojection": {
        "rmse_px": 0.1974014474935786,
        "mean_px": 0.16446685372131728,
        "median_px": 0.13295591227916267,
        "max_px": 0.5344383907381652,
        "point_count": 54
      }
    },
    {
      "relative_path": "left02.jpg",
      "read_success": true,
      "detection_success": true,
      "detection_method": "findChessboardCornersSB",
      "detection_duration_ms": 24.412038997979835,
      "corner_count": 54,
      "corners": [
        [
          540.1513671875,
          133.12457275390625
        ],
        [
          523.4558715820312,
          180.9735870361328
        ],
        [
          507.8659362792969,
          223.9882354736328
        ],
        [
          493.3700256347656,
          262.31597900390625
        ],
        [
          480.2270812988281,
          295.88946533203125
        ],
        [
          467.9072570800781,
          325.7281799316406
        ],
        [
          457.0911865234375,
          352.23834228515625
        ],
        [
          446.83404541015625,
          375.838134765625
        ],
        [
          438.73406982421875,
          395.89862060546875
        ],
        [
          483.03802490234375,
          119.97622680664062
        ],
        [
          469.4488830566406,
          169.2838897705078
        ],
        [
          456.82550048828125,
          213.53857421875
        ],
        [
          445.4571533203125,
          252.4286651611328
        ],
        [
          434.70819091796875,
          286.8020935058594
        ],
        [
          425.14727783203125,
          317.3885498046875
        ],
        [
          416.4841613769531,
          344.4044494628906
        ],
        [
          408.55535888671875,
          368.3703918457031
        ],
        [
          401.30084228515625,
          389.7492370605469
        ],
        [
          424.0433654785156,
          107.8483657836914
        ],
        [
          414.05999755859375,
          157.69012451171875
        ],
        [
          404.6659851074219,
          202.72265625
        ],
        [
          396.1371154785156,
          242.2113494873047
        ],
        [
          388.4658508300781,
          277.3436584472656
        ],
        [
          381.52203369140625,
          308.3551025390625
        ],
        [
          375.1990661621094,
          335.9705505371094
        ],
        [
          369.54376220703125,
          360.4508972167969
        ],
        [
          364.46673583984375,
          382.3624267578125
        ],
        [
          365.06390380859375,
          96.53913116455078
        ],
        [
          358.4560241699219,
          146.9134979248047
        ],
        [
          352.4224853515625,
          192.116943359375
        ],
        [
          347.1228942871094,
          232.08535766601562
        ],
        [
          342.2703857421875,
          267.77752685546875
        ],
        [
          338.0599670410156,
          299.121826171875
        ],
        [
          334.2598571777344,
          327.00537109375
        ],
        [
          330.8476867675781,
          352.09197998046875
        ],
        [
          327.861083984375,
          374.21917724609375
        ],
        [
          307.197021484375,
          86.65522766113281
        ],
        [
          303.8626708984375,
          136.8153533935547
        ],
        [
          301.031005859375,
          182.06854248046875
        ],
        [
          298.6220703125,
          222.2319793701172
        ],
        [
          296.7773132324219,
          258.0234069824219
        ],
        [
          295.0968322753906,
          289.73590087890625
        ],
        [
          293.77093505859375,
          318.0925598144531
        ],
        [
          292.6827087402344,
          343.2187194824219
        ],
        [
          291.59014892578125,
          365.9699401855469
        ],
        [
          251.30979919433594,
          78.2441177368164
        ],
        [
          251.07400512695312,
          127.87301635742188
        ],
        [
          251.23646545410156,
          172.5386505126953
        ],
        [
          251.78904724121094,
          212.7692413330078
        ],
        [
          252.66836547851562,
          248.53363037109375
        ],
        [
          253.3070831298828,
          280.3179016113281
        ],
        [
          254.32376098632812,
          308.7864074707031
        ],
        [
          255.0528564453125,
          334.3719482421875
        ],
        [
          256.1324157714844,
          357.2145080566406
        ]
      ],
      "metrics": {
        "width": 640,
        "height": 480,
        "channels": 1,
        "original_dtype": "uint8",
        "original_bit_depth": 8,
        "file_size": 28611,
        "global_sharpness": 597.4925554360284,
        "board_sharpness": 340.73278981353707,
        "sharpness_decision_source": "none",
        "mean_intensity": 109.01914388020833,
        "near_black_ratio": 0.0101953125,
        "near_white_ratio": 0.009322916666666667,
        "board_center": [
          0.5805967450141907,
          0.5023342967033386
        ],
        "board_boundary": [
          [
            630.9967651367188,
            86.59896850585938
          ],
          [
            467.6282043457031,
            426.5008239746094
          ],
          [
            220.59803771972656,
            372.4843444824219
          ],
          [
            187.5972900390625,
            3.777714967727661
          ]
        ],
        "board_area_ratio": 0.41266563998664263,
        "rotation_degrees": 111.10402920997393,
        "horizontal_perspective": 0.00942183151910348,
        "vertical_perspective": 0.3651409453598514,
        "border_distance_ratio": 0.007870239516099295
      },
      "state": "WARNING",
      "reasons": [
        {
          "code": "BOARD_CLIPPED_OR_NEAR_BORDER",
          "severity": "WARNING",
          "message": "Estimated physical board boundary is clipped or close to an image border.",
          "measured_value": 0.007870239516099295,
          "threshold": 0.01
        }
      ],
      "duplicate_of": null,
      "reprojection": {
        "rmse_px": 0.22675551335368663,
        "mean_px": 0.16063529793922718,
        "median_px": 0.12304793888358877,
        "max_px": 1.1040220685137239,
        "point_count": 54
      }
    },
    {
      "relative_path": "left03.jpg",
      "read_success": true,
      "detection_success": true,
      "detection_method": "findChessboardCornersSB",
      "detection_duration_ms": 16.18662900000345,
      "corner_count": 54,
      "corners": [
        [
          544.7359008789062,
          390.69696044921875
        ],
        [
          498.110595703125,
          374.53289794921875
        ],
        [
          449.9355773925781,
          357.6609191894531
        ],
        [
          402.2091064453125,
          340.5731506347656
        ],
        [
          355.27569580078125,
          323.062744140625
        ],
        [
          309.99261474609375,
          306.027099609375
        ],
        [
          266.55511474609375,
          289.0624084472656
        ],
        [
          225.37330627441406,
          272.8457946777344
        ],
        [
          187.74215698242188,
          257.49853515625
        ],
        [
          560.1962890625,
          342.5789489746094
        ],
        [
          513.9652099609375,
          326.6954040527344
        ],
        [
          466.6799621582031,
          310.25921630859375
        ],
        [
          419.3406677246094,
          293.8792724609375
        ],
        [
          373.22772216796875,
          277.4119873046875
        ],
        [
          328.03680419921875,
          261.3192443847656
        ],
        [
          284.99359130859375,
          245.7937469482422
        ],
        [
          243.97772216796875,
          230.95396423339844
        ],
        [
          206.2668914794922,
          217.2150421142578
        ],
        [
          573.5730590820312,
          295.5388488769531
        ],
        [
          528.4381713867188,
          279.8674621582031
        ],
        [
          482.0738220214844,
          263.9728088378906
        ],
        [
          435.8457946777344,
          248.07749938964844
        ],
        [
          390.1148681640625,
          232.8289031982422
        ],
        [
          345.7464294433594,
          218.17608642578125
        ],
        [
          303.0850830078125,
          203.7598876953125
        ],
        [
          262.5254821777344,
          190.2249298095703
        ],
        [
          224.54588317871094,
          177.6874542236328
        ],
        [
          585.4860229492188,
          250.46453857421875
        ],
        [
          541.1925659179688,
          235.14529418945312
        ],
        [
          496.13079833984375,
          220.18438720703125
        ],
        [
          450.72369384765625,
          205.0710906982422
        ],
        [
          406.00421142578125,
          190.6838836669922
        ],
        [
          362.739501953125,
          176.9292755126953
        ],
        [
          320.5479431152344,
          163.94468688964844
        ],
        [
          280.1731872558594,
          151.6842041015625
        ],
        [
          242.85406494140625,
          140.59632873535156
        ],
        [
          595.5232543945312,
          208.11077880859375
        ],
        [
          552.6810913085938,
          193.13400268554688
        ],
        [
          508.5968933105469,
          178.52723693847656
        ],
        [
          464.59722900390625,
          164.31930541992188
        ],
        [
          421.0975036621094,
          150.8016815185547
        ],
        [
          378.3255310058594,
          138.18923950195312
        ],
        [
          337.2349853515625,
          126.16535186767578
        ],
        [
          297.6023254394531,
          115.1146240234375
        ],
        [
          260.4888000488281,
          105.04149627685547
        ],
        [
          604.1337280273438,
          168.002685546875
        ],
        [
          562.53271484375,
          153.66079711914062
        ],
        [
          519.7044677734375,
          139.62445068359375
        ],
        [
          477.01104736328125,
          126.13653564453125
        ],
        [
          434.6600341796875,
          113.5824203491211
        ],
        [
          393.1670227050781,
          101.8160400390625
        ],
        [
          352.8961181640625,
          90.850830078125
        ],
        [
          313.94384765625,
          80.86199951171875
        ],
        [
          277.7742919921875,
          71.9765853881836
        ]
      ],
      "metrics": {
        "width": 640,
        "height": 480,
        "channels": 1,
        "original_dtype": "uint8",
        "original_bit_depth": 8,
        "file_size": 29553,
        "global_sharpness": 743.9964050099584,
        "board_sharpness": 587.9059410669647,
        "sharpness_decision_source": "none",
        "mean_intensity": 122.86502278645834,
        "near_black_ratio": 0.00978515625,
        "near_white_ratio": 0.03397135416666667,
        "board_center": [
          0.6306195259094238,
          0.4625910222530365
        ],
        "board_boundary": [
          [
            587.7053833007812,
            466.226318359375
          ],
          [
            121.7900161743164,
            286.8467102050781
          ],
          [
            257.0396728515625,
            24.441293716430664
          ],
          [
            663.8639526367188,
            140.35403442382812
          ]
        ],
        "board_area_ratio": 0.46862020197127985,
        "rotation_degrees": -159.53888308046817,
        "horizontal_perspective": 0.10718207344114843,
        "vertical_perspective": 0.10528338511629816,
        "border_distance_ratio": -0.038849925994873045
      },
      "state": "WARNING",
      "reasons": [
        {
          "code": "BOARD_CLIPPED_OR_NEAR_BORDER",
          "severity": "WARNING",
          "message": "Estimated physical board boundary is clipped or close to an image border.",
          "measured_value": -0.038849925994873045,
          "threshold": 0.01
        }
      ],
      "duplicate_of": null,
      "reprojection": {
        "rmse_px": 0.18366393724001526,
        "mean_px": 0.16710220912384274,
        "median_px": 0.16563161807827442,
        "max_px": 0.38885391774389344,
        "point_count": 54
      }
    }
  ],
  "warnings": [
    {
      "code": "LOW_FIELD_COVERAGE",
      "severity": "WARNING",
      "message": "Accepted board centers cover too few image-plane grid cells.",
      "measured_value": 0.08333333333333333,
      "threshold": 0.35
    }
  ],
  "errors": [],
  "passed": true
}
