diff --git a/data/board/20260610_120248/cam0.jpg b/data/board/20260610_120248/cam0.jpg new file mode 100644 index 0000000..266d6cb Binary files /dev/null and b/data/board/20260610_120248/cam0.jpg differ diff --git a/data/board/20260610_120248/cam0_aruco_detection.json b/data/board/20260610_120248/cam0_aruco_detection.json new file mode 100644 index 0000000..d48b2fd --- /dev/null +++ b/data/board/20260610_120248/cam0_aruco_detection.json @@ -0,0 +1,3047 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-10T12:02:51Z", + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "camera": { + "camera_id": "cam0", + "intrinsics_file": "/app/data/calibration/20260610_092149/cam0_calibration.npz", + "camera_matrix": [ + [ + 1424.7584228515625, + 0.0, + 635.95947265625 + ], + [ + 0.0, + 1421.5770263671875, + 482.1744384765625 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "distortion_coefficients": [ + 0.05634751915931702, + 0.33765655755996704, + 0.002130246954038739, + -0.004022662527859211, + -1.182201862335205 + ] + }, + "image": { + "image_file": "/app/data/board/20260610_120248/cam0.jpg", + "image_sha256": "a033002fc0d9b73119ea7bb6ffb8f59748770b2983660e0794cfadc795870f49", + "width_px": 1280, + "height_px": 960 + }, + "aruco": { + "dictionary": "DICT_4X4_250", + "num_detected_markers": 49, + "num_rejected_candidates": 14 + }, + "detections": [ + { + "observation_id": "2768243f-c878-4085-a536-95e2d2837358", + "type": "aruco", + "marker_id": 69, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 278.0, + 794.0 + ], + [ + 263.0, + 756.0 + ], + [ + 311.0, + 742.0 + ], + [ + 327.0, + 779.0 + ] + ], + "center_px": [ + 294.75, + 767.75 + ], + "quality": { + "area_px": 2043.5, + "perimeter_px": 182.40919494628906, + "sharpness": { + "laplacian_var": 2552.794095990103 + }, + "contrast": { + "p05": 1.0, + "p95": 168.0, + "dynamic_range": 167.0, + "mean_gray": 56.07640949554896, + "std_gray": 64.3512542550669 + }, + "geometry": { + "distance_to_center_norm": 0.5618018507957458, + "distance_to_border_px": 166.0 + }, + "edge_ratio": 1.271219912784288, + "edge_lengths_px": [ + 40.853397369384766, + 50.0, + 40.31128692626953, + 51.244510650634766 + ] + }, + "confidence": 0.7866459531850403 + }, + { + "observation_id": "e64a5e6a-6f1e-448a-a49f-d5e34d56d0f0", + "type": "aruco", + "marker_id": 64, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 163.0, + 672.0 + ], + [ + 151.0, + 639.0 + ], + [ + 199.0, + 630.0 + ], + [ + 212.0, + 661.0 + ] + ], + "center_px": [ + 181.25, + 650.5 + ], + "quality": { + "area_px": 1677.0, + "perimeter_px": 167.78554916381836, + "sharpness": { + "laplacian_var": 2972.5484724519533 + }, + "contrast": { + "p05": 1.0, + "p95": 161.8499999999999, + "dynamic_range": 160.8499999999999, + "mean_gray": 54.34963768115942, + "std_gray": 62.13688022363768 + }, + "geometry": { + "distance_to_center_norm": 0.6117621064186096, + "distance_to_border_px": 151.0 + }, + "edge_ratio": 1.4939406002704918, + "edge_lengths_px": [ + 35.11410140991211, + 48.83646011352539, + 33.61547088623047, + 50.21951675415039 + ] + }, + "confidence": 0.6693706562489438 + }, + { + "observation_id": "01803997-f289-4f06-91b1-abfe5aac3083", + "type": "aruco", + "marker_id": 66, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 718.0, + 787.0 + ], + [ + 695.0, + 752.0 + ], + [ + 733.0, + 738.0 + ], + [ + 758.0, + 772.0 + ] + ], + "center_px": [ + 726.0, + 762.25 + ], + "quality": { + "area_px": 1693.5, + "perimeter_px": 167.29961395263672, + "sharpness": { + "laplacian_var": 1762.66755950542 + }, + "contrast": { + "p05": 4.0, + "p95": 181.0, + "dynamic_range": 177.0, + "mean_gray": 56.889559965487486, + "std_gray": 65.69732058783443 + }, + "geometry": { + "distance_to_center_norm": 0.36882641911506653, + "distance_to_border_px": 173.0 + }, + "edge_ratio": 1.0548956986999745, + "edge_lengths_px": [ + 41.88078308105469, + 40.49691390991211, + 42.20189666748047, + 42.72002029418945 + ] + }, + "confidence": 0.9479610175985868 + }, + { + "observation_id": "e2b1e6f6-57e6-4fae-9cce-4ab6c603d042", + "type": "aruco", + "marker_id": 58, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 320.0, + 676.0 + ], + [ + 305.0, + 644.0 + ], + [ + 348.0, + 633.0 + ], + [ + 365.0, + 663.0 + ] + ], + "center_px": [ + 334.5, + 654.0 + ], + "quality": { + "area_px": 1556.0, + "perimeter_px": 161.04790878295898, + "sharpness": { + "laplacian_var": 2594.20586256938 + }, + "contrast": { + "p05": 1.0, + "p95": 172.0, + "dynamic_range": 171.0, + "mean_gray": 58.99524262607041, + "std_gray": 65.80760077603738 + }, + "geometry": { + "distance_to_center_norm": 0.4394710063934326, + "distance_to_border_px": 284.0 + }, + "edge_ratio": 1.3583990340757353, + "edge_lengths_px": [ + 35.34119415283203, + 44.384681701660156, + 34.48188018798828, + 46.840152740478516 + ] + }, + "confidence": 0.7361607119224782 + }, + { + "observation_id": "9f2f862b-8cfb-4a7b-b29e-fea977c41187", + "type": "aruco", + "marker_id": 95, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 598.0, + 677.0 + ], + [ + 578.0, + 647.0 + ], + [ + 616.0, + 635.0 + ], + [ + 636.0, + 666.0 + ] + ], + "center_px": [ + 607.0, + 656.25 + ], + "quality": { + "area_px": 1389.0, + "perimeter_px": 152.3570442199707, + "sharpness": { + "laplacian_var": 2703.4374768289667 + }, + "contrast": { + "p05": 2.0, + "p95": 185.0, + "dynamic_range": 183.0, + "mean_gray": 71.01575630252101, + "std_gray": 72.10692314323438 + }, + "geometry": { + "distance_to_center_norm": 0.224140927195549, + "distance_to_border_px": 283.0 + }, + "edge_ratio": 1.1052323086467926, + "edge_lengths_px": [ + 36.055511474609375, + 39.84971618652344, + 36.8917350769043, + 39.560081481933594 + ] + }, + "confidence": 0.8378329087517916 + }, + { + "observation_id": "d519d64e-5847-4205-81fb-42c442062a1c", + "type": "aruco", + "marker_id": 97, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 862.0, + 724.0 + ], + [ + 838.0, + 694.0 + ], + [ + 872.0, + 681.0 + ], + [ + 897.0, + 713.0 + ] + ], + "center_px": [ + 867.25, + 703.0 + ], + "quality": { + "area_px": 1363.5, + "perimeter_px": 152.11505126953125, + "sharpness": { + "laplacian_var": 3442.9021316022768 + }, + "contrast": { + "p05": 2.0, + "p95": 187.0, + "dynamic_range": 185.0, + "mean_gray": 88.38930481283423, + "std_gray": 75.12785745531995 + }, + "geometry": { + "distance_to_center_norm": 0.3979862630367279, + "distance_to_border_px": 236.0 + }, + "edge_ratio": 1.1155842068054427, + "edge_lengths_px": [ + 38.41874694824219, + 36.400550842285156, + 40.607879638671875, + 36.68787384033203 + ] + }, + "confidence": 0.8148197101167184 + }, + { + "observation_id": "948a8937-0065-4449-a189-efac55fec605", + "type": "aruco", + "marker_id": 54, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 887.0, + 668.0 + ], + [ + 862.0, + 638.0 + ], + [ + 895.0, + 628.0 + ], + [ + 921.0, + 656.0 + ] + ], + "center_px": [ + 891.25, + 647.5 + ], + "quality": { + "area_px": 1252.0, + "perimeter_px": 147.798583984375, + "sharpness": { + "laplacian_var": 2268.746088489796 + }, + "contrast": { + "p05": 2.0, + "p95": 178.0, + "dynamic_range": 176.0, + "mean_gray": 42.06285714285714, + "std_gray": 56.27588717693414 + }, + "geometry": { + "distance_to_center_norm": 0.3774561285972595, + "distance_to_border_px": 292.0 + }, + "edge_ratio": 1.1325150029571143, + "edge_lengths_px": [ + 39.051246643066406, + 34.48188018798828, + 38.20994567871094, + 36.055511474609375 + ] + }, + "confidence": 0.7370027456477533 + }, + { + "observation_id": "ecc5e283-1bb4-4346-aafd-ee6013d2ea92", + "type": "aruco", + "marker_id": 103, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 398.0, + 609.0 + ], + [ + 384.0, + 581.0 + ], + [ + 423.0, + 570.0 + ], + [ + 439.0, + 599.0 + ] + ], + "center_px": [ + 411.0, + 589.75 + ], + "quality": { + "area_px": 1297.5, + "perimeter_px": 147.14943885803223, + "sharpness": { + "laplacian_var": 3066.8427549128173 + }, + "contrast": { + "p05": 1.5, + "p95": 179.0, + "dynamic_range": 177.5, + "mean_gray": 93.61909989023052, + "std_gray": 72.32880789753939 + }, + "geometry": { + "distance_to_center_norm": 0.31742632389068604, + "distance_to_border_px": 351.0 + }, + "edge_ratio": 1.3480900986430662, + "edge_lengths_px": [ + 31.30495262145996, + 40.52159881591797, + 33.12099075317383, + 42.20189666748047 + ] + }, + "confidence": 0.6416485076707221 + }, + { + "observation_id": "b12efc08-af14-497a-8589-53f9b2e54435", + "type": "aruco", + "marker_id": 55, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 737.0, + 614.0 + ], + [ + 717.0, + 586.0 + ], + [ + 750.0, + 577.0 + ], + [ + 772.0, + 603.0 + ] + ], + "center_px": [ + 744.0, + 595.0 + ], + "quality": { + "area_px": 1128.0, + "perimeter_px": 139.36120986938477, + "sharpness": { + "laplacian_var": 3534.6189529914527 + }, + "contrast": { + "p05": 1.0, + "p95": 189.0, + "dynamic_range": 188.0, + "mean_gray": 72.09871794871795, + "std_gray": 72.21326498214844 + }, + "geometry": { + "distance_to_center_norm": 0.1938145011663437, + "distance_to_border_px": 346.0 + }, + "edge_ratio": 1.0771930567320576, + "edge_lengths_px": [ + 34.4093017578125, + 34.20526123046875, + 34.058773040771484, + 36.68787384033203 + ] + }, + "confidence": 0.6981107010486919 + }, + { + "observation_id": "bef2fef2-063c-491c-b20c-55fc1122f2c2", + "type": "aruco", + "marker_id": 51, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 489.0, + 563.0 + ], + [ + 474.0, + 536.0 + ], + [ + 510.0, + 527.0 + ], + [ + 527.0, + 553.0 + ] + ], + "center_px": [ + 500.0, + 544.75 + ], + "quality": { + "area_px": 1132.5, + "perimeter_px": 138.35305786132812, + "sharpness": { + "laplacian_var": 3937.294766600921 + }, + "contrast": { + "p05": 1.0, + "p95": 184.0, + "dynamic_range": 183.0, + "mean_gray": 62.93076923076923, + "std_gray": 68.62503338505994 + }, + "geometry": { + "distance_to_center_norm": 0.19281047582626343, + "distance_to_border_px": 397.0 + }, + "edge_ratio": 1.2721826476664337, + "edge_lengths_px": [ + 30.886890411376953, + 37.10795211791992, + 31.064449310302734, + 39.293766021728516 + ] + }, + "confidence": 0.5934682424610157 + }, + { + "observation_id": "b73a5f13-c428-462c-a50d-1be15ef6ca69", + "type": "aruco", + "marker_id": 47, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 845.0, + 614.0 + ], + [ + 822.0, + 588.0 + ], + [ + 854.0, + 578.0 + ], + [ + 878.0, + 604.0 + ] + ], + "center_px": [ + 849.75, + 596.0 + ], + "quality": { + "area_px": 1080.0, + "perimeter_px": 138.10470962524414, + "sharpness": { + "laplacian_var": 3590.928588435104 + }, + "contrast": { + "p05": 1.0, + "p95": 183.0, + "dynamic_range": 182.0, + "mean_gray": 66.17529880478088, + "std_gray": 68.18616478780584 + }, + "geometry": { + "distance_to_center_norm": 0.299611896276474, + "distance_to_border_px": 346.0 + }, + "edge_ratio": 1.0554047553053545, + "edge_lengths_px": [ + 34.71310806274414, + 33.52610778808594, + 35.38361358642578, + 34.48188018798828 + ] + }, + "confidence": 0.6822027249552105 + }, + { + "observation_id": "391cd8e7-3503-446f-ae9f-45cda19d9485", + "type": "aruco", + "marker_id": 85, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1076.0, + 575.0 + ], + [ + 1051.0, + 550.0 + ], + [ + 1079.0, + 542.0 + ], + [ + 1105.0, + 566.0 + ] + ], + "center_px": [ + 1077.75, + 558.25 + ], + "quality": { + "area_px": 915.0, + "perimeter_px": 130.22384452819824, + "sharpness": { + "laplacian_var": 4186.054897010456 + }, + "contrast": { + "p05": 2.0, + "p95": 183.0, + "dynamic_range": 181.0, + "mean_gray": 109.20779220779221, + "std_gray": 67.4418629216782 + }, + "geometry": { + "distance_to_center_norm": 0.5558609962463379, + "distance_to_border_px": 175.0 + }, + "edge_ratio": 1.2150782803494247, + "edge_lengths_px": [ + 35.35533905029297, + 29.120439529418945, + 35.38361358642578, + 30.364452362060547 + ] + }, + "confidence": 0.5020252685486074 + }, + { + "observation_id": "374ca7ec-6c0e-4879-9b23-19bcc6b1fc01", + "type": "aruco", + "marker_id": 57, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1250.0, + 589.0 + ], + [ + 1222.0, + 564.0 + ], + [ + 1247.0, + 556.0 + ], + [ + 1275.0, + 580.0 + ] + ], + "center_px": [ + 1248.5, + 572.25 + ], + "quality": { + "area_px": 850.5, + "perimeter_px": 127.23429489135742, + "sharpness": { + "laplacian_var": 2314.879096137153 + }, + "contrast": { + "p05": 4.0, + "p95": 164.25, + "dynamic_range": 160.25, + "mean_gray": 72.79340277777777, + "std_gray": 59.533435034711495 + }, + "geometry": { + "distance_to_center_norm": 0.7693161964416504, + "distance_to_border_px": 5.0 + }, + "edge_ratio": 1.4300323733521214, + "edge_lengths_px": [ + 37.53664779663086, + 26.248809814453125, + 36.878177642822266, + 26.570659637451172 + ] + }, + "confidence": 0.03964945203799143 + }, + { + "observation_id": "d62a79c9-56ea-401d-b37b-9d8d3a2c7b80", + "type": "aruco", + "marker_id": 79, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 690.0, + 492.0 + ], + [ + 672.0, + 469.0 + ], + [ + 703.0, + 461.0 + ], + [ + 722.0, + 484.0 + ] + ], + "center_px": [ + 696.75, + 476.5 + ], + "quality": { + "area_px": 872.5, + "perimeter_px": 124.03949737548828, + "sharpness": { + "laplacian_var": 6107.921983486583 + }, + "contrast": { + "p05": 1.0, + "p95": 195.0, + "dynamic_range": 194.0, + "mean_gray": 94.88013698630137, + "std_gray": 76.30840015507998 + }, + "geometry": { + "distance_to_center_norm": 0.0710722804069519, + "distance_to_border_px": 461.0 + }, + "edge_ratio": 1.1293795678951515, + "edge_lengths_px": [ + 29.20616340637207, + 32.015621185302734, + 29.832868576049805, + 32.98484420776367 + ] + }, + "confidence": 0.5150320434349022 + }, + { + "observation_id": "88d42350-7512-4acf-adad-b4e4be001f20", + "type": "aruco", + "marker_id": 96, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 788.0, + 498.0 + ], + [ + 768.0, + 476.0 + ], + [ + 797.0, + 467.0 + ], + [ + 818.0, + 490.0 + ] + ], + "center_px": [ + 792.75, + 482.75 + ], + "quality": { + "area_px": 838.0, + "perimeter_px": 122.28976249694824, + "sharpness": { + "laplacian_var": 4021.898369476249 + }, + "contrast": { + "p05": 3.0, + "p95": 185.0, + "dynamic_range": 182.0, + "mean_gray": 81.56063268892794, + "std_gray": 72.70751959926902 + }, + "geometry": { + "distance_to_center_norm": 0.19096843898296356, + "distance_to_border_px": 462.0 + }, + "edge_ratio": 1.0475137512643375, + "edge_lengths_px": [ + 29.73213768005371, + 30.364452362060547, + 31.14482307434082, + 31.048349380493164 + ] + }, + "confidence": 0.533326331985964 + }, + { + "observation_id": "913a8dc5-f46d-4d9c-91e9-42485ac9a947", + "type": "aruco", + "marker_id": 105, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1051.0, + 519.0 + ], + [ + 1028.0, + 497.0 + ], + [ + 1053.0, + 489.0 + ], + [ + 1078.0, + 512.0 + ] + ], + "center_px": [ + 1052.5, + 504.25 + ], + "quality": { + "area_px": 765.0, + "perimeter_px": 119.93969917297363, + "sharpness": { + "laplacian_var": 1732.6444843714553 + }, + "contrast": { + "p05": 6.0, + "p95": 153.39999999999998, + "dynamic_range": 147.39999999999998, + "mean_gray": 35.2865275142315, + "std_gray": 44.10535373805883 + }, + "geometry": { + "distance_to_center_norm": 0.5165152549743652, + "distance_to_border_px": 202.0 + }, + "edge_ratio": 1.2941759066456928, + "edge_lengths_px": [ + 31.827661514282227, + 26.248809814453125, + 33.970577239990234, + 27.892650604248047 + ] + }, + "confidence": 0.39407316840091894 + }, + { + "observation_id": "97941133-7a5b-40e6-bd42-2f577ddb6469", + "type": "aruco", + "marker_id": 210, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 336.0, + 361.0 + ], + [ + 371.0, + 354.0 + ], + [ + 385.0, + 373.0 + ], + [ + 351.0, + 381.0 + ] + ], + "center_px": [ + 360.75, + 367.25 + ], + "quality": { + "area_px": 781.5, + "perimeter_px": 119.22248268127441, + "sharpness": { + "laplacian_var": 5039.277366302217 + }, + "contrast": { + "p05": 1.0, + "p95": 169.0, + "dynamic_range": 168.0, + "mean_gray": 62.68092691622103, + "std_gray": 62.01371083401348 + }, + "geometry": { + "distance_to_center_norm": 0.37644124031066895, + "distance_to_border_px": 336.0 + }, + "edge_ratio": 1.5123668126463343, + "edge_lengths_px": [ + 35.693138122558594, + 23.600847244262695, + 34.928497314453125, + 25.0 + ] + }, + "confidence": 0.3444931452101597 + }, + { + "observation_id": "acc317d4-771f-446b-8ec9-d6a235d94eab", + "type": "aruco", + "marker_id": 62, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 823.0, + 475.0 + ], + [ + 803.0, + 452.0 + ], + [ + 832.0, + 446.0 + ], + [ + 852.0, + 467.0 + ] + ], + "center_px": [ + 827.5, + 460.0 + ], + "quality": { + "area_px": 778.0, + "perimeter_px": 119.17690467834473, + "sharpness": { + "laplacian_var": 2605.399296407507 + }, + "contrast": { + "p05": 3.0, + "p95": 160.5, + "dynamic_range": 157.5, + "mean_gray": 35.581436077057795, + "std_gray": 45.859202844176835 + }, + "geometry": { + "distance_to_center_norm": 0.23570455610752106, + "distance_to_border_px": 428.0 + }, + "edge_ratio": 1.0510173008359711, + "edge_lengths_px": [ + 30.479501724243164, + 29.614185333251953, + 29.0, + 30.08321762084961 + ] + }, + "confidence": 0.4934901321359061 + }, + { + "observation_id": "c991b29a-f6ba-4253-83e8-5ce39a933356", + "type": "aruco", + "marker_id": 59, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1176.0, + 496.0 + ], + [ + 1152.0, + 474.0 + ], + [ + 1177.0, + 467.0 + ], + [ + 1202.0, + 489.0 + ] + ], + "center_px": [ + 1176.75, + 481.5 + ], + "quality": { + "area_px": 732.5, + "perimeter_px": 118.74662399291992, + "sharpness": { + "laplacian_var": 2313.104497846677 + }, + "contrast": { + "p05": 6.0, + "p95": 168.0, + "dynamic_range": 162.0, + "mean_gray": 87.0595009596929, + "std_gray": 64.39026218789762 + }, + "geometry": { + "distance_to_center_norm": 0.670940101146698, + "distance_to_border_px": 78.0 + }, + "edge_ratio": 1.2827316816282461, + "edge_lengths_px": [ + 32.557640075683594, + 25.961509704589844, + 33.30165100097656, + 26.925823211669922 + ] + }, + "confidence": 0.38069795915032156 + }, + { + "observation_id": "26430c18-f7fd-4697-bdb7-bb78270be4e3", + "type": "aruco", + "marker_id": 215, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 670.0, + 380.0 + ], + [ + 699.0, + 373.0 + ], + [ + 718.0, + 393.0 + ], + [ + 687.0, + 400.0 + ] + ], + "center_px": [ + 693.5, + 386.5 + ], + "quality": { + "area_px": 726.0, + "perimeter_px": 115.44840431213379, + "sharpness": { + "laplacian_var": 3675.088681569617 + }, + "contrast": { + "p05": 2.0, + "p95": 178.0, + "dynamic_range": 176.0, + "mean_gray": 71.44961240310077, + "std_gray": 69.40899024050384 + }, + "geometry": { + "distance_to_center_norm": 0.13465522229671478, + "distance_to_border_px": 373.0 + }, + "edge_ratio": 1.2107404801184949, + "edge_lengths_px": [ + 29.832868576049805, + 27.58622932434082, + 31.78049659729004, + 26.248809814453125 + ] + }, + "confidence": 0.39975536289381436 + }, + { + "observation_id": "96ab3605-b5e4-4b25-b51c-0284f8dfd0f9", + "type": "aruco", + "marker_id": 77, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 68.0, + 269.0 + ], + [ + 60.0, + 251.0 + ], + [ + 97.0, + 248.0 + ], + [ + 105.0, + 265.0 + ] + ], + "center_px": [ + 82.5, + 258.25 + ], + "quality": { + "area_px": 675.5, + "perimeter_px": 112.82301902770996, + "sharpness": { + "laplacian_var": 2757.4960351084014 + }, + "contrast": { + "p05": 2.0, + "p95": 144.0, + "dynamic_range": 142.0, + "mean_gray": 51.78111587982833, + "std_gray": 53.00659271126391 + }, + "geometry": { + "distance_to_center_norm": 0.7499784827232361, + "distance_to_border_px": 60.0 + }, + "edge_ratio": 1.9807859050886572, + "edge_lengths_px": [ + 19.697715759277344, + 37.121421813964844, + 18.788293838500977, + 37.2155876159668 + ] + }, + "confidence": 0.22735083694629635 + }, + { + "observation_id": "2c16745c-588a-4cb5-b683-6deb269577ba", + "type": "aruco", + "marker_id": 102, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1143.0, + 439.0 + ], + [ + 1120.0, + 420.0 + ], + [ + 1144.0, + 413.0 + ], + [ + 1167.0, + 433.0 + ] + ], + "center_px": [ + 1143.5, + 426.25 + ], + "quality": { + "area_px": 617.5, + "perimeter_px": 110.05100440979004, + "sharpness": { + "laplacian_var": 3658.855382498279 + }, + "contrast": { + "p05": 3.0, + "p95": 171.0, + "dynamic_range": 168.0, + "mean_gray": 92.20547945205479, + "std_gray": 63.021006624074786 + }, + "geometry": { + "distance_to_center_norm": 0.632951021194458, + "distance_to_border_px": 113.0 + }, + "edge_ratio": 1.2320608158613815, + "edge_lengths_px": [ + 29.832868576049805, + 25.0, + 30.479501724243164, + 24.73863410949707 + ] + }, + "confidence": 0.334128527883467 + }, + { + "observation_id": "15010ca8-75c2-4c53-b712-89ec84bba99d", + "type": "aruco", + "marker_id": 74, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 200.0, + 291.0 + ], + [ + 191.0, + 274.0 + ], + [ + 226.0, + 269.0 + ], + [ + 236.0, + 285.0 + ] + ], + "center_px": [ + 213.25, + 279.75 + ], + "quality": { + "area_px": 638.0, + "perimeter_px": 109.95525932312012, + "sharpness": { + "laplacian_var": 3296.1927083333335 + }, + "contrast": { + "p05": 1.0, + "p95": 142.89999999999998, + "dynamic_range": 141.89999999999998, + "mean_gray": 64.78935185185185, + "std_gray": 57.651246955341996 + }, + "geometry": { + "distance_to_center_norm": 0.589246928691864, + "distance_to_border_px": 191.0 + }, + "edge_ratio": 1.9343146136883373, + "edge_lengths_px": [ + 19.235383987426758, + 35.35533905029297, + 18.867961883544922, + 36.49657440185547 + ] + }, + "confidence": 0.21988839370980648 + }, + { + "observation_id": "1783ff8a-a767-48ce-9e06-01a749277c7c", + "type": "aruco", + "marker_id": 92, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1100.0, + 409.0 + ], + [ + 1079.0, + 391.0 + ], + [ + 1103.0, + 384.0 + ], + [ + 1126.0, + 403.0 + ] + ], + "center_px": [ + 1102.0, + 396.75 + ], + "quality": { + "area_px": 605.5, + "perimeter_px": 109.17483139038086, + "sharpness": { + "laplacian_var": 3646.4901028474105 + }, + "contrast": { + "p05": 2.0, + "p95": 168.29999999999995, + "dynamic_range": 166.29999999999995, + "mean_gray": 55.3411214953271, + "std_gray": 57.82547453574682 + }, + "geometry": { + "distance_to_center_norm": 0.5868008732795715, + "distance_to_border_px": 154.0 + }, + "edge_ratio": 1.1933147430419921, + "edge_lengths_px": [ + 27.658634185791016, + 25.0, + 29.832868576049805, + 26.68332862854004 + ] + }, + "confidence": 0.3382734262024129 + }, + { + "observation_id": "9f674eda-2391-43ee-bf01-43a8c3223936", + "type": "aruco", + "marker_id": 52, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 175.0, + 243.0 + ], + [ + 167.0, + 227.0 + ], + [ + 200.0, + 222.0 + ], + [ + 210.0, + 239.0 + ] + ], + "center_px": [ + 188.0, + 232.75 + ], + "quality": { + "area_px": 601.5, + "perimeter_px": 106.21609687805176, + "sharpness": { + "laplacian_var": 3447.416826421413 + }, + "contrast": { + "p05": 1.0, + "p95": 149.5, + "dynamic_range": 148.5, + "mean_gray": 52.443349753694584, + "std_gray": 55.476622623810364 + }, + "geometry": { + "distance_to_center_norm": 0.6440067291259766, + "distance_to_border_px": 167.0 + }, + "edge_ratio": 1.9692954785334376, + "edge_lengths_px": [ + 17.8885440826416, + 33.37664031982422, + 19.72308349609375, + 35.22782897949219 + ] + }, + "confidence": 0.20362612130640265 + }, + { + "observation_id": "c4245da2-1138-4548-8066-adeef032b854", + "type": "aruco", + "marker_id": 211, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 609.0, + 308.0 + ], + [ + 638.0, + 302.0 + ], + [ + 654.0, + 320.0 + ], + [ + 623.0, + 324.0 + ] + ], + "center_px": [ + 631.0, + 313.5 + ], + "quality": { + "area_px": 585.0, + "perimeter_px": 106.21466636657715, + "sharpness": { + "laplacian_var": 4126.891564751478 + }, + "contrast": { + "p05": 3.0, + "p95": 177.0, + "dynamic_range": 174.0, + "mean_gray": 75.36591478696742, + "std_gray": 67.59989501187704 + }, + "geometry": { + "distance_to_center_norm": 0.20842884480953217, + "distance_to_border_px": 302.0 + }, + "edge_ratio": 1.4702055781375993, + "edge_lengths_px": [ + 29.614185333251953, + 24.083189010620117, + 31.256999969482422, + 21.260292053222656 + ] + }, + "confidence": 0.26526902482171044 + }, + { + "observation_id": "a5df6775-8fb9-45c9-a686-5dc0b637e1fd", + "type": "aruco", + "marker_id": 81, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 246.0, + 265.0 + ], + [ + 236.0, + 248.0 + ], + [ + 267.0, + 243.0 + ], + [ + 279.0, + 260.0 + ] + ], + "center_px": [ + 257.0, + 254.0 + ], + "quality": { + "area_px": 599.0, + "perimeter_px": 105.30901336669922, + "sharpness": { + "laplacian_var": 2924.8633683889652 + }, + "contrast": { + "p05": 1.0, + "p95": 151.79999999999995, + "dynamic_range": 150.79999999999995, + "mean_gray": 53.98765432098765, + "std_gray": 57.09790029374618 + }, + "geometry": { + "distance_to_center_norm": 0.5558847188949585, + "distance_to_border_px": 236.0 + }, + "edge_ratio": 1.6922627907768388, + "edge_lengths_px": [ + 19.72308349609375, + 31.400636672973633, + 20.808652877807617, + 33.37664031982422 + ] + }, + "confidence": 0.23597595805437407 + }, + { + "observation_id": "93e854fa-4463-447b-8cce-b76ada88bdca", + "type": "aruco", + "marker_id": 201, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1165.0, + 45.0 + ], + [ + 1186.0, + 58.0 + ], + [ + 1175.0, + 84.0 + ], + [ + 1155.0, + 72.0 + ] + ], + "center_px": [ + 1170.25, + 64.75 + ], + "quality": { + "area_px": 674.5, + "perimeter_px": 105.0455322265625, + "sharpness": { + "laplacian_var": 789.1676398533773 + }, + "contrast": { + "p05": 6.0, + "p95": 123.0, + "dynamic_range": 117.0, + "mean_gray": 46.32832618025751, + "std_gray": 39.21698102940853 + }, + "geometry": { + "distance_to_center_norm": 0.8418707251548767, + "distance_to_border_px": 45.0 + }, + "edge_ratio": 1.234462307063758, + "edge_lengths_px": [ + 24.698177337646484, + 28.23118782043457, + 23.323806762695312, + 28.792360305786133 + ] + }, + "confidence": 0.327835040150074 + }, + { + "observation_id": "65b69930-c360-4431-bea0-e7fd0fa0bdcd", + "type": "aruco", + "marker_id": 0, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 880.0, + 336.0 + ], + [ + 906.0, + 331.0 + ], + [ + 925.0, + 348.0 + ], + [ + 898.0, + 353.0 + ] + ], + "center_px": [ + 902.25, + 342.0 + ], + "quality": { + "area_px": 543.0, + "perimeter_px": 104.18939971923828, + "sharpness": { + "laplacian_var": 4115.841745546055 + }, + "contrast": { + "p05": 4.0, + "p95": 162.34999999999997, + "dynamic_range": 158.34999999999997, + "mean_gray": 70.74064171122994, + "std_gray": 59.81316369713162 + }, + "geometry": { + "distance_to_center_norm": 0.37042850255966187, + "distance_to_border_px": 331.0 + }, + "edge_ratio": 1.1090610173009117, + "edge_lengths_px": [ + 26.476404190063477, + 25.495098114013672, + 27.459060668945312, + 24.75883674621582 + ] + }, + "confidence": 0.3264022396901015 + }, + { + "observation_id": "58b629e8-3b4b-43fd-8031-aa730c62aeeb", + "type": "aruco", + "marker_id": 208, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1005.0, + 305.0 + ], + [ + 1027.0, + 300.0 + ], + [ + 1047.0, + 316.0 + ], + [ + 1025.0, + 322.0 + ] + ], + "center_px": [ + 1026.0, + 310.75 + ], + "quality": { + "area_px": 473.0, + "perimeter_px": 97.22584342956543, + "sharpness": { + "laplacian_var": 3651.8255859375 + }, + "contrast": { + "p05": 2.0, + "p95": 165.0, + "dynamic_range": 163.0, + "mean_gray": 68.184375, + "std_gray": 58.996560330746185 + }, + "geometry": { + "distance_to_center_norm": 0.526844322681427, + "distance_to_border_px": 233.0 + }, + "edge_ratio": 1.1634580820048162, + "edge_lengths_px": [ + 22.56102752685547, + 25.612497329711914, + 22.803508758544922, + 26.248809814453125 + ] + }, + "confidence": 0.271031108220045 + }, + { + "observation_id": "42836362-fe1a-43de-b4e9-2eba12f54c29", + "type": "aruco", + "marker_id": 101, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 173.0, + 179.0 + ], + [ + 164.0, + 164.0 + ], + [ + 195.0, + 161.0 + ], + [ + 204.0, + 175.0 + ] + ], + "center_px": [ + 184.0, + 169.75 + ], + "quality": { + "area_px": 481.0, + "perimeter_px": 96.53799438476562, + "sharpness": { + "laplacian_var": 3492.4361479177937 + }, + "contrast": { + "p05": 1.1500000000000021, + "p95": 149.84999999999997, + "dynamic_range": 148.69999999999996, + "mean_gray": 62.91279069767442, + "std_gray": 55.23021017041145 + }, + "geometry": { + "distance_to_center_norm": 0.6894190311431885, + "distance_to_border_px": 161.0 + }, + "edge_ratio": 1.8780511927091457, + "edge_lengths_px": [ + 17.492855072021484, + 31.14482307434082, + 16.6433162689209, + 31.256999969482422 + ] + }, + "confidence": 0.17074436943547597 + }, + { + "observation_id": "c456b454-17eb-42aa-8f5b-c0214924e79b", + "type": "aruco", + "marker_id": 214, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 837.0, + 264.0 + ], + [ + 861.0, + 259.0 + ], + [ + 878.0, + 275.0 + ], + [ + 853.0, + 279.0 + ] + ], + "center_px": [ + 857.25, + 269.25 + ], + "quality": { + "area_px": 454.0, + "perimeter_px": 95.11022758483887, + "sharpness": { + "laplacian_var": 5081.689359034322 + }, + "contrast": { + "p05": 5.0, + "p95": 172.0, + "dynamic_range": 167.0, + "mean_gray": 91.3186119873817, + "std_gray": 64.19943345635991 + }, + "geometry": { + "distance_to_center_norm": 0.3783457577228546, + "distance_to_border_px": 259.0 + }, + "edge_ratio": 1.1544003783438828, + "edge_lengths_px": [ + 24.515300750732422, + 23.34523582458496, + 25.317977905273438, + 21.931713104248047 + ] + }, + "confidence": 0.2621851762565047 + }, + { + "observation_id": "e5f17f5f-54de-4dab-b404-d0a76fef5a29", + "type": "aruco", + "marker_id": 83, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 60.0, + 164.0 + ], + [ + 53.0, + 150.0 + ], + [ + 84.0, + 147.0 + ], + [ + 91.0, + 161.0 + ] + ], + "center_px": [ + 72.0, + 155.5 + ], + "quality": { + "area_px": 455.0, + "perimeter_px": 93.5945987701416, + "sharpness": { + "laplacian_var": 2585.428650137741 + }, + "contrast": { + "p05": 4.0, + "p95": 138.0, + "dynamic_range": 134.0, + "mean_gray": 69.96666666666667, + "std_gray": 49.046750528182166 + }, + "geometry": { + "distance_to_center_norm": 0.8176989555358887, + "distance_to_border_px": 53.0 + }, + "edge_ratio": 1.9897696988041842, + "edge_lengths_px": [ + 15.65247631072998, + 31.14482307434082, + 15.65247631072998, + 31.14482307434082 + ] + }, + "confidence": 0.15244645323307077 + }, + { + "observation_id": "42d1d832-228e-4818-b0ec-a7ac931a4ac8", + "type": "aruco", + "marker_id": 56, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 684.0, + 196.0 + ], + [ + 670.0, + 183.0 + ], + [ + 693.0, + 179.0 + ], + [ + 711.0, + 193.0 + ] + ], + "center_px": [ + 689.5, + 187.75 + ], + "quality": { + "area_px": 393.5, + "perimeter_px": 92.41987228393555, + "sharpness": { + "laplacian_var": 3745.78625260632 + }, + "contrast": { + "p05": 2.0, + "p95": 143.39999999999998, + "dynamic_range": 141.39999999999998, + "mean_gray": 42.907849829351534, + "std_gray": 45.84230694037631 + }, + "geometry": { + "distance_to_center_norm": 0.37051552534103394, + "distance_to_border_px": 179.0 + }, + "edge_ratio": 1.4219415588746098, + "edge_lengths_px": [ + 19.10497283935547, + 23.34523582458496, + 22.803508758544922, + 27.166154861450195 + ] + }, + "confidence": 0.18448953242561952 + }, + { + "observation_id": "08535b1f-706e-47d4-b028-b69b1278b120", + "type": "aruco", + "marker_id": 82, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 303.0, + 163.0 + ], + [ + 294.0, + 150.0 + ], + [ + 323.0, + 147.0 + ], + [ + 333.0, + 160.0 + ] + ], + "center_px": [ + 313.25, + 155.0 + ], + "quality": { + "area_px": 412.0, + "perimeter_px": 91.51699638366699, + "sharpness": { + "laplacian_var": 3749.2252649895495 + }, + "contrast": { + "p05": 1.3000000000000007, + "p95": 159.0, + "dynamic_range": 157.7, + "mean_gray": 67.44625407166124, + "std_gray": 59.73202544546923 + }, + "geometry": { + "distance_to_center_norm": 0.576073169708252, + "distance_to_border_px": 147.0 + }, + "edge_ratio": 1.9068299162299913, + "edge_lengths_px": [ + 15.81138801574707, + 29.154760360717773, + 16.401220321655273, + 30.149627685546875 + ] + }, + "confidence": 0.1440436109843044 + }, + { + "observation_id": "651a6313-3993-414d-b55b-1fba62dde66a", + "type": "aruco", + "marker_id": 217, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1030.0, + 224.0 + ], + [ + 1052.0, + 221.0 + ], + [ + 1070.0, + 234.0 + ], + [ + 1047.0, + 238.0 + ] + ], + "center_px": [ + 1049.75, + 229.25 + ], + "quality": { + "area_px": 365.0, + "perimeter_px": 89.7751579284668, + "sharpness": { + "laplacian_var": 3554.095882139838 + }, + "contrast": { + "p05": 3.6000000000000014, + "p95": 151.79999999999995, + "dynamic_range": 148.19999999999996, + "mean_gray": 61.32967032967033, + "std_gray": 50.640597074407495 + }, + "geometry": { + "distance_to_center_norm": 0.6004824042320251, + "distance_to_border_px": 210.0 + }, + "edge_ratio": 1.060052597186358, + "edge_lengths_px": [ + 22.203603744506836, + 22.203603744506836, + 23.34523582458496, + 22.022714614868164 + ] + }, + "confidence": 0.22954835824109132 + }, + { + "observation_id": "346fc7f8-43c6-40e4-b2eb-ed64c5e0f9d4", + "type": "aruco", + "marker_id": 73, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 292.0, + 142.0 + ], + [ + 282.0, + 129.0 + ], + [ + 311.0, + 126.0 + ], + [ + 320.0, + 139.0 + ] + ], + "center_px": [ + 301.25, + 134.0 + ], + "quality": { + "area_px": 399.0, + "perimeter_px": 89.52762413024902, + "sharpness": { + "laplacian_var": 4889.069182671335 + }, + "contrast": { + "p05": 2.0, + "p95": 156.09999999999997, + "dynamic_range": 154.09999999999997, + "mean_gray": 72.25083612040133, + "std_gray": 57.035170376146155 + }, + "geometry": { + "distance_to_center_norm": 0.6052731275558472, + "distance_to_border_px": 126.0 + }, + "edge_ratio": 1.8439089807726943, + "edge_lengths_px": [ + 16.401220321655273, + 29.154760360717773, + 15.81138801574707, + 28.160255432128906 + ] + }, + "confidence": 0.1442587474618905 + }, + { + "observation_id": "c724cef1-851e-4c67-8027-8c94b1b06b13", + "type": "aruco", + "marker_id": 72, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 608.0, + 190.0 + ], + [ + 595.0, + 176.0 + ], + [ + 620.0, + 173.0 + ], + [ + 633.0, + 186.0 + ] + ], + "center_px": [ + 614.0, + 181.25 + ], + "quality": { + "area_px": 383.0, + "perimeter_px": 87.98708534240723, + "sharpness": { + "laplacian_var": 2817.028427208372 + }, + "contrast": { + "p05": 1.0, + "p95": 158.8, + "dynamic_range": 157.8, + "mean_gray": 49.09473684210526, + "std_gray": 52.2249668767882 + }, + "geometry": { + "distance_to_center_norm": 0.3748490512371063, + "distance_to_border_px": 173.0 + }, + "edge_ratio": 1.3771163941844924, + "edge_lengths_px": [ + 19.10497283935547, + 25.179357528686523, + 18.384777069091797, + 25.317977905273438 + ] + }, + "confidence": 0.18541158496957547 + }, + { + "observation_id": "a10a3c01-9b7d-400e-b986-2ad470670701", + "type": "aruco", + "marker_id": 53, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 645.0, + 173.0 + ], + [ + 632.0, + 159.0 + ], + [ + 657.0, + 157.0 + ], + [ + 669.0, + 170.0 + ] + ], + "center_px": [ + 650.75, + 164.75 + ], + "quality": { + "area_px": 362.0, + "perimeter_px": 86.06342506408691, + "sharpness": { + "laplacian_var": 4976.079534945171 + }, + "contrast": { + "p05": 4.0, + "p95": 170.0, + "dynamic_range": 166.0, + "mean_gray": 88.58620689655173, + "std_gray": 61.379708552671005 + }, + "geometry": { + "distance_to_center_norm": 0.3942915201187134, + "distance_to_border_px": 157.0 + }, + "edge_ratio": 1.4175981246284608, + "edge_lengths_px": [ + 19.10497283935547, + 25.079872131347656, + 17.69180679321289, + 24.1867733001709 + ] + }, + "confidence": 0.17024100775851728 + }, + { + "observation_id": "2775803f-e6f9-4bbb-a999-6c368f068761", + "type": "aruco", + "marker_id": 84, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 537.0, + 158.0 + ], + [ + 526.0, + 146.0 + ], + [ + 551.0, + 143.0 + ], + [ + 563.0, + 155.0 + ] + ], + "center_px": [ + 544.25, + 150.5 + ], + "quality": { + "area_px": 340.5, + "perimeter_px": 84.60124397277832, + "sharpness": { + "laplacian_var": 4524.591864667435 + }, + "contrast": { + "p05": 3.0, + "p95": 162.89999999999995, + "dynamic_range": 159.89999999999995, + "mean_gray": 72.87843137254902, + "std_gray": 57.87156948279658 + }, + "geometry": { + "distance_to_center_norm": 0.4289126992225647, + "distance_to_border_px": 143.0 + }, + "edge_ratio": 1.6077642214981271, + "edge_lengths_px": [ + 16.278820037841797, + 25.179357528686523, + 16.970561981201172, + 26.172504425048828 + ] + }, + "confidence": 0.1411898566746806 + }, + { + "observation_id": "e38decc7-a85d-4cc4-bafd-90913204b732", + "type": "aruco", + "marker_id": 46, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 712.0, + 181.0 + ], + [ + 698.0, + 168.0 + ], + [ + 721.0, + 165.0 + ], + [ + 735.0, + 178.0 + ] + ], + "center_px": [ + 716.5, + 173.0 + ], + "quality": { + "area_px": 341.0, + "perimeter_px": 84.5995979309082, + "sharpness": { + "laplacian_var": 3896.369343789436 + }, + "contrast": { + "p05": 3.0, + "p95": 165.14999999999998, + "dynamic_range": 162.14999999999998, + "mean_gray": 79.59689922480621, + "std_gray": 60.08785807515202 + }, + "geometry": { + "distance_to_center_norm": 0.3954847753047943, + "distance_to_border_px": 165.0 + }, + "edge_ratio": 1.2140727087723586, + "edge_lengths_px": [ + 19.10497283935547, + 23.194826126098633, + 19.10497283935547, + 23.194826126098633 + ] + }, + "confidence": 0.18724853272025804 + }, + { + "observation_id": "a0416543-fe68-4361-a65d-f818b35a9143", + "type": "aruco", + "marker_id": 86, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 473.0, + 146.0 + ], + [ + 462.0, + 133.0 + ], + [ + 487.0, + 130.0 + ], + [ + 498.0, + 143.0 + ] + ], + "center_px": [ + 480.0, + 138.0 + ], + "quality": { + "area_px": 358.0, + "perimeter_px": 84.41748809814453, + "sharpness": { + "laplacian_var": 4335.243631185475 + }, + "contrast": { + "p05": 3.0, + "p95": 162.79999999999998, + "dynamic_range": 159.79999999999998, + "mean_gray": 68.60754716981133, + "std_gray": 61.99973173726688 + }, + "geometry": { + "distance_to_center_norm": 0.4719705879688263, + "distance_to_border_px": 130.0 + }, + "edge_ratio": 1.4785827721124607, + "edge_lengths_px": [ + 17.029386520385742, + 25.179357528686523, + 17.029386520385742, + 25.179357528686523 + ] + }, + "confidence": 0.16141583086733932 + }, + { + "observation_id": "22a34290-e49b-4a08-b8a7-3291451d4e89", + "type": "aruco", + "marker_id": 50, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 732.0, + 161.0 + ], + [ + 718.0, + 148.0 + ], + [ + 739.0, + 145.0 + ], + [ + 754.0, + 158.0 + ] + ], + "center_px": [ + 735.75, + 153.0 + ], + "quality": { + "area_px": 323.0, + "perimeter_px": 82.37121391296387, + "sharpness": { + "laplacian_var": 3616.840962590391 + }, + "contrast": { + "p05": 2.0, + "p95": 148.89999999999998, + "dynamic_range": 146.89999999999998, + "mean_gray": 49.547325102880656, + "std_gray": 50.19108366708375 + }, + "geometry": { + "distance_to_center_norm": 0.4259127378463745, + "distance_to_border_px": 145.0 + }, + "edge_ratio": 1.1621897571488986, + "edge_lengths_px": [ + 19.10497283935547, + 21.21320343017578, + 19.84943389892578, + 22.203603744506836 + ] + }, + "confidence": 0.1852824222626022 + }, + { + "observation_id": "3e43e67d-3ab3-4635-b552-6c2a312128d8", + "type": "aruco", + "marker_id": 76, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 864.0, + 169.0 + ], + [ + 848.0, + 157.0 + ], + [ + 871.0, + 155.0 + ], + [ + 885.0, + 166.0 + ] + ], + "center_px": [ + 867.0, + 161.75 + ], + "quality": { + "area_px": 290.5, + "perimeter_px": 82.10448837280273, + "sharpness": { + "laplacian_var": 4708.400392561984 + }, + "contrast": { + "p05": 2.0, + "p95": 158.0, + "dynamic_range": 156.0, + "mean_gray": 69.85909090909091, + "std_gray": 55.31671750508331 + }, + "geometry": { + "distance_to_center_norm": 0.48863980174064636, + "distance_to_border_px": 155.0 + }, + "edge_ratio": 1.2966834863790753, + "edge_lengths_px": [ + 20.0, + 23.0867919921875, + 17.804492950439453, + 21.21320343017578 + ] + }, + "confidence": 0.14935538911463375 + }, + { + "observation_id": "9ec98ac0-afdb-437e-adfd-c50fe3ea6eca", + "type": "aruco", + "marker_id": 67, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 651.0, + 138.0 + ], + [ + 640.0, + 126.0 + ], + [ + 663.0, + 124.0 + ], + [ + 674.0, + 135.0 + ] + ], + "center_px": [ + 657.0, + 130.75 + ], + "quality": { + "area_px": 292.0, + "perimeter_px": 78.11678695678711, + "sharpness": { + "laplacian_var": 3912.390398730411 + }, + "contrast": { + "p05": 4.0, + "p95": 148.0, + "dynamic_range": 144.0, + "mean_gray": 54.63849765258216, + "std_gray": 49.66238902960598 + }, + "geometry": { + "distance_to_center_norm": 0.43707939982414246, + "distance_to_border_px": 124.0 + }, + "edge_ratio": 1.4910199316896122, + "edge_lengths_px": [ + 16.278820037841797, + 23.0867919921875, + 15.55634880065918, + 23.194826126098633 + ] + }, + "confidence": 0.1305593993274603 + }, + { + "observation_id": "01360e25-7cf4-44cc-8c05-6d7d28146ade", + "type": "aruco", + "marker_id": 98, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 676.0, + 107.0 + ], + [ + 662.0, + 96.0 + ], + [ + 685.0, + 94.0 + ], + [ + 697.0, + 104.0 + ] + ], + "center_px": [ + 680.0, + 100.25 + ], + "quality": { + "area_px": 263.5, + "perimeter_px": 77.72498798370361, + "sharpness": { + "laplacian_var": 4099.608492875364 + }, + "contrast": { + "p05": 2.0, + "p95": 157.2, + "dynamic_range": 155.2, + "mean_gray": 66.46192893401015, + "std_gray": 54.6223288079247 + }, + "geometry": { + "distance_to_center_norm": 0.4773135483264923, + "distance_to_border_px": 94.0 + }, + "edge_ratio": 1.4779803826553803, + "edge_lengths_px": [ + 17.804492950439453, + 23.0867919921875, + 15.620499610900879, + 21.21320343017578 + ] + }, + "confidence": 0.11885588518506524 + }, + { + "observation_id": "e4340bf1-625f-4dcc-9c11-4c6b48823ccf", + "type": "aruco", + "marker_id": 70, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 707.0, + 111.0 + ], + [ + 696.0, + 100.0 + ], + [ + 717.0, + 98.0 + ], + [ + 730.0, + 108.0 + ] + ], + "center_px": [ + 712.5, + 104.25 + ], + "quality": { + "area_px": 261.0, + "perimeter_px": 76.24741744995117, + "sharpness": { + "laplacian_var": 4923.033414654204 + }, + "contrast": { + "p05": 4.0, + "p95": 160.5, + "dynamic_range": 156.5, + "mean_gray": 75.43979057591623, + "std_gray": 57.69004821269753 + }, + "geometry": { + "distance_to_center_norm": 0.47835052013397217, + "distance_to_border_px": 98.0 + }, + "edge_ratio": 1.4910199316896122, + "edge_lengths_px": [ + 15.55634880065918, + 21.095022201538086, + 16.401220321655273, + 23.194826126098633 + ] + }, + "confidence": 0.11669864117968197 + }, + { + "observation_id": "2b86f2cb-88b7-4b43-b8e0-3af6a1b23ee4", + "type": "aruco", + "marker_id": 90, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 735.0, + 98.0 + ], + [ + 724.0, + 88.0 + ], + [ + 744.0, + 85.0 + ], + [ + 757.0, + 96.0 + ] + ], + "center_px": [ + 740.0, + 91.75 + ], + "quality": { + "area_px": 250.5, + "perimeter_px": 74.2099256515503, + "sharpness": { + "laplacian_var": 5222.724520008546 + }, + "contrast": { + "p05": 3.0, + "p95": 163.0, + "dynamic_range": 160.0, + "mean_gray": 75.26519337016575, + "std_gray": 58.71945053703626 + }, + "geometry": { + "distance_to_center_norm": 0.5011518597602844, + "distance_to_border_px": 85.0 + }, + "edge_ratio": 1.4859827011490676, + "edge_lengths_px": [ + 14.866068840026855, + 20.2237491607666, + 17.029386520385742, + 22.090721130371094 + ] + }, + "confidence": 0.11238354246712544 + }, + { + "observation_id": "b0075122-ba55-4c63-aa36-ff7d7ea3b8d3", + "type": "aruco", + "marker_id": 91, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 799.0, + 84.0 + ], + [ + 787.0, + 74.0 + ], + [ + 806.0, + 71.0 + ], + [ + 820.0, + 82.0 + ] + ], + "center_px": [ + 803.0, + 77.75 + ], + "quality": { + "area_px": 242.5, + "perimeter_px": 73.75539875030518, + "sharpness": { + "laplacian_var": 3505.0954424946344 + }, + "contrast": { + "p05": 2.8499999999999996, + "p95": 159.0, + "dynamic_range": 156.15, + "mean_gray": 61.03932584269663, + "std_gray": 55.48280048904624 + }, + "geometry": { + "distance_to_center_norm": 0.5425260066986084, + "distance_to_border_px": 71.0 + }, + "edge_ratio": 1.3504703900006356, + "edge_lengths_px": [ + 15.620499610900879, + 19.235383987426758, + 17.804492950439453, + 21.095022201538086 + ] + }, + "confidence": 0.11971137454305131 + } + ], + "rejected_candidates": [ + { + "image_points_px": [ + [ + 1108.0, + 190.0 + ], + [ + 1103.0, + 199.0 + ], + [ + 1023.0, + 213.0 + ], + [ + 1034.0, + 203.0 + ] + ], + "center_px": [ + 1067.0, + 201.25 + ], + "area_px": 623.5 + }, + { + "image_points_px": [ + [ + 1127.0, + 890.0 + ], + [ + 1079.0, + 911.0 + ], + [ + 1060.0, + 892.0 + ], + [ + 1112.0, + 873.0 + ] + ], + "center_px": [ + 1094.5, + 891.5 + ], + "area_px": 1240.0 + }, + { + "image_points_px": [ + [ + 974.0, + 236.0 + ], + [ + 1000.0, + 232.0 + ], + [ + 1024.0, + 250.0 + ], + [ + 995.0, + 254.0 + ] + ], + "center_px": [ + 998.25, + 243.0 + ], + "area_px": 585.0 + }, + { + "image_points_px": [ + [ + 744.0, + 170.0 + ], + [ + 765.0, + 167.0 + ], + [ + 780.0, + 180.0 + ], + [ + 756.0, + 183.0 + ] + ], + "center_px": [ + 761.25, + 175.0 + ], + "area_px": 333.0 + }, + { + "image_points_px": [ + [ + 542.0, + 128.0 + ], + [ + 567.0, + 126.0 + ], + [ + 577.0, + 138.0 + ], + [ + 553.0, + 140.0 + ] + ], + "center_px": [ + 559.75, + 133.0 + ], + "area_px": 315.0 + }, + { + "image_points_px": [ + [ + 947.0, + 138.0 + ], + [ + 967.0, + 135.0 + ], + [ + 983.0, + 146.0 + ], + [ + 962.0, + 149.0 + ] + ], + "center_px": [ + 964.75, + 142.0 + ], + "area_px": 272.0 + }, + { + "image_points_px": [ + [ + 923.0, + 103.0 + ], + [ + 943.0, + 100.0 + ], + [ + 958.0, + 111.0 + ], + [ + 938.0, + 113.0 + ] + ], + "center_px": [ + 940.5, + 106.75 + ], + "area_px": 247.5 + }, + { + "image_points_px": [ + [ + 1006.0, + 128.0 + ], + [ + 1025.0, + 125.0 + ], + [ + 1041.0, + 136.0 + ], + [ + 1020.0, + 138.0 + ] + ], + "center_px": [ + 1023.0, + 131.75 + ], + "area_px": 247.5 + }, + { + "image_points_px": [ + [ + 829.0, + 74.0 + ], + [ + 848.0, + 72.0 + ], + [ + 862.0, + 82.0 + ], + [ + 842.0, + 85.0 + ] + ], + "center_px": [ + 845.25, + 78.25 + ], + "area_px": 238.5 + }, + { + "image_points_px": [ + [ + 576.0, + 263.0 + ], + [ + 570.0, + 267.0 + ], + [ + 543.0, + 269.0 + ], + [ + 553.0, + 265.0 + ] + ], + "center_px": [ + 560.5, + 266.0 + ], + "area_px": 84.0 + }, + { + "image_points_px": [ + [ + 365.0, + 300.0 + ], + [ + 345.0, + 306.0 + ], + [ + 335.0, + 304.0 + ], + [ + 357.0, + 299.0 + ] + ], + "center_px": [ + 350.5, + 302.25 + ], + "area_px": 81.0 + }, + { + "image_points_px": [ + [ + 1017.0, + 303.0 + ], + [ + 1027.0, + 301.0 + ], + [ + 1036.0, + 309.0 + ], + [ + 1027.0, + 309.0 + ] + ], + "center_px": [ + 1026.75, + 305.5 + ], + "area_px": 76.0 + }, + { + "image_points_px": [ + [ + 503.0, + 426.0 + ], + [ + 490.0, + 430.0 + ], + [ + 483.0, + 430.0 + ], + [ + 496.0, + 426.0 + ] + ], + "center_px": [ + 493.0, + 428.0 + ], + "area_px": 28.0 + }, + { + "image_points_px": [ + [ + 962.0, + 227.0 + ], + [ + 948.0, + 232.0 + ], + [ + 943.0, + 230.0 + ], + [ + 957.0, + 226.0 + ] + ], + "center_px": [ + 952.5, + 228.75 + ], + "area_px": 43.5 + } + ] +} \ No newline at end of file diff --git a/data/board/20260610_120248/cam0_camera_pose.json b/data/board/20260610_120248/cam0_camera_pose.json new file mode 100644 index 0000000..ac9af39 --- /dev/null +++ b/data/board/20260610_120248/cam0_camera_pose.json @@ -0,0 +1,775 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-10T12:02:51Z", + "source": { + "detection_json": "/app/data/board/20260610_120248/cam0_aruco_detection.json", + "robot_json": "/app/scripts/robot_1781069752019.json" + }, + "camera": { + "camera_id": "cam0", + "camera_matrix": [ + [ + 1424.7584228515625, + 0.0, + 635.95947265625 + ], + [ + 0.0, + 1421.5770263671875, + 482.1744384765625 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "distortion_coefficients": [ + 0.05634751915931702, + 0.33765655755996704, + 0.002130246954038739, + -0.004022662527859211, + -1.182201862335205 + ] + }, + "estimation": { + "method": "single_camera_marker_center_lm", + "description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.", + "marker_size_m": 0.025, + "num_used_markers": 41, + "used_marker_ids": [ + 69, + 64, + 66, + 58, + 95, + 97, + 54, + 103, + 55, + 51, + 47, + 85, + 57, + 79, + 96, + 105, + 62, + 59, + 77, + 102, + 74, + 92, + 52, + 81, + 101, + 83, + 56, + 82, + 73, + 72, + 53, + 84, + 46, + 86, + 50, + 76, + 67, + 98, + 70, + 90, + 91 + ], + "history": { + "iters": [ + 0, + 1, + 2, + 3 + ], + "rms": [ + 0.011785664628320952, + 0.0008659691058571075, + 0.000458810901419449, + 0.000458803718240118 + ], + "lambda": [ + 0.001, + 0.0005, + 0.00025, + 0.000125 + ] + }, + "residual_rms_px": 0.9385435370489509, + "residual_median_px": 0.5405344605085041, + "residual_max_px": 2.9731447743280883, + "sigma2_normalized": 2.2711934017585248e-07 + }, + "camera_pose": { + "world_to_camera": { + "rotation_matrix": [ + [ + 0.868840754032135, + -0.47710981965065, + 0.13221943378448486 + ], + [ + -0.22466658055782318, + -0.6179296374320984, + -0.7534506320953369 + ], + [ + 0.4411810040473938, + 0.6249233484268188, + -0.6440730690956116 + ] + ], + "translation_m": [ + -0.3045285642147064, + -0.05258737504482269, + 0.859828531742096 + ], + "rvec_rad": [ + 2.2490920408293182, + -0.5041324197439587, + 0.4119114813303856 + ] + }, + "camera_in_world": { + "position_m": [ + -0.1265678107738495, + -0.7151157855987549, + 0.5544350147247314 + ], + "position_mm": [ + -126.56781005859375, + -715.1157836914062, + 554.4349975585938 + ], + "orientation_deg": { + "roll": 135.8645477294922, + "pitch": -26.179256439208984, + "yaw": -14.498087882995605 + } + }, + "uncertainty": { + "pose_covariance_6x6": [ + [ + 1.7175654885914824e-07, + -2.2769270370845646e-08, + -2.7776277837868053e-08, + -4.849060000520722e-10, + 1.3088048131554088e-08, + 7.153500594799495e-08 + ], + [ + -2.2769270370845434e-08, + 1.0739263792835327e-07, + 3.334611436293922e-08, + -1.991224382855702e-09, + -2.9484242340164447e-08, + -1.6891655685214707e-08 + ], + [ + -2.777627783786764e-08, + 3.3346114362939234e-08, + 3.681893624467165e-07, + 3.7809243404411764e-08, + -4.5278655917284434e-08, + -9.881557745810519e-08 + ], + [ + -4.849060000520185e-10, + -1.991224382855701e-09, + 3.78092434044117e-08, + 9.497658096955721e-09, + -3.2899146586772964e-09, + -9.450981488678889e-09 + ], + [ + 1.3088048131554004e-08, + -2.9484242340164434e-08, + -4.527865591728444e-08, + -3.2899146586773063e-09, + 1.7240452967726238e-08, + 1.4161996767404672e-08 + ], + [ + 7.153500594799484e-08, + -1.6891655685214727e-08, + -9.881557745810536e-08, + -9.450981488678932e-09, + 1.4161996767404707e-08, + 1.2394131713934274e-07 + ] + ], + "parameter_std": { + "rvec_std_deg": [ + 0.02374538879974203, + 0.018776294462318977, + 0.03476628218614778 + ], + "tvec_std_m": [ + 9.745592899847459e-05, + 0.00013130290540474052, + 0.0003520530033096476 + ] + }, + "camera_center_std_m": [ + 0.00040728126764774913, + 0.0003224678471473466, + 0.0004747664452323261 + ], + "camera_center_std_mm": [ + 0.40728126764774913, + 0.32246784714734655, + 0.4747664452323261 + ], + "orientation_std_deg": { + "roll": 0.02693916843015458, + "pitch": 0.025019912891867082, + "yaw": 0.02042057112280519 + } + } + }, + "observations": { + "markers": [ + { + "marker_id": 69, + "observed_center_px": [ + 294.75, + 767.75 + ], + "projected_center_px": [ + 293.7527160644531, + 767.7146606445312 + ], + "reprojection_error_px": 0.997909874760647, + "confidence": 0.7866459531850403 + }, + { + "marker_id": 64, + "observed_center_px": [ + 181.25, + 650.5 + ], + "projected_center_px": [ + 180.25, + 653.2999267578125 + ], + "reprojection_error_px": 2.9731447743280883, + "confidence": 0.6693706562489438 + }, + { + "marker_id": 66, + "observed_center_px": [ + 726.0, + 762.25 + ], + "projected_center_px": [ + 726.9111938476562, + 761.2313842773438 + ], + "reprojection_error_px": 1.366693900787267, + "confidence": 0.9479610175985868 + }, + { + "marker_id": 58, + "observed_center_px": [ + 334.5, + 654.0 + ], + "projected_center_px": [ + 333.9712219238281, + 653.8878784179688 + ], + "reprojection_error_px": 0.5405344605085041, + "confidence": 0.7361607119224782 + }, + { + "marker_id": 95, + "observed_center_px": [ + 607.0, + 656.25 + ], + "projected_center_px": [ + 607.3807373046875, + 654.8073120117188 + ], + "reprojection_error_px": 1.4920822788009052, + "confidence": 0.8378329087517916 + }, + { + "marker_id": 97, + "observed_center_px": [ + 867.25, + 703.0 + ], + "projected_center_px": [ + 867.9035034179688, + 703.097900390625 + ], + "reprojection_error_px": 0.6607958866256405, + "confidence": 0.8148197101167184 + }, + { + "marker_id": 54, + "observed_center_px": [ + 891.25, + 647.5 + ], + "projected_center_px": [ + 891.05224609375, + 647.6394653320312 + ], + "reprojection_error_px": 0.24198592164776983, + "confidence": 0.7370027456477533 + }, + { + "marker_id": 103, + "observed_center_px": [ + 411.0, + 589.75 + ], + "projected_center_px": [ + 411.167724609375, + 588.765625 + ], + "reprojection_error_px": 0.9985618084099733, + "confidence": 0.6416485076707221 + }, + { + "marker_id": 55, + "observed_center_px": [ + 744.0, + 595.0 + ], + "projected_center_px": [ + 744.091064453125, + 594.9982299804688 + ], + "reprojection_error_px": 0.09108165343303957, + "confidence": 0.6981107010486919 + }, + { + "marker_id": 51, + "observed_center_px": [ + 500.0, + 544.75 + ], + "projected_center_px": [ + 500.20147705078125, + 543.9871215820312 + ], + "reprojection_error_px": 0.7890351592888705, + "confidence": 0.5934682424610157 + }, + { + "marker_id": 47, + "observed_center_px": [ + 849.75, + 596.0 + ], + "projected_center_px": [ + 849.928466796875, + 595.5831909179688 + ], + "reprojection_error_px": 0.45340953722937477, + "confidence": 0.6822027249552105 + }, + { + "marker_id": 85, + "observed_center_px": [ + 1077.75, + 558.25 + ], + "projected_center_px": [ + 1077.971923828125, + 558.1199951171875 + ], + "reprojection_error_px": 0.2571992516411088, + "confidence": 0.5020252685486074 + }, + { + "marker_id": 57, + "observed_center_px": [ + 1248.5, + 572.25 + ], + "projected_center_px": [ + 1247.4278564453125, + 572.9871826171875 + ], + "reprojection_error_px": 1.3011264400285472, + "confidence": 0.03964945203799143 + }, + { + "marker_id": 79, + "observed_center_px": [ + 696.75, + 476.5 + ], + "projected_center_px": [ + 696.7872314453125, + 476.18524169921875 + ], + "reprojection_error_px": 0.31695262805466295, + "confidence": 0.5150320434349022 + }, + { + "marker_id": 96, + "observed_center_px": [ + 792.75, + 482.75 + ], + "projected_center_px": [ + 793.3117065429688, + 482.433837890625 + ], + "reprojection_error_px": 0.6445717336482835, + "confidence": 0.533326331985964 + }, + { + "marker_id": 105, + "observed_center_px": [ + 1052.5, + 504.25 + ], + "projected_center_px": [ + 1052.7557373046875, + 504.5330505371094 + ], + "reprojection_error_px": 0.3814697570800769, + "confidence": 0.39407316840091894 + }, + { + "marker_id": 62, + "observed_center_px": [ + 827.5, + 460.0 + ], + "projected_center_px": [ + 827.0533447265625, + 460.0904541015625 + ], + "reprojection_error_px": 0.4557223691887496, + "confidence": 0.4934901321359061 + }, + { + "marker_id": 59, + "observed_center_px": [ + 1176.75, + 481.5 + ], + "projected_center_px": [ + 1176.293701171875, + 481.9327087402344 + ], + "reprojection_error_px": 0.6288445550559122, + "confidence": 0.38069795915032156 + }, + { + "marker_id": 77, + "observed_center_px": [ + 82.5, + 258.25 + ], + "projected_center_px": [ + 82.41415405273438, + 260.7313232421875 + ], + "reprojection_error_px": 2.4828077974103873, + "confidence": 0.22735083694629635 + }, + { + "marker_id": 102, + "observed_center_px": [ + 1143.5, + 426.25 + ], + "projected_center_px": [ + 1143.1990966796875, + 426.41204833984375 + ], + "reprojection_error_px": 0.3417637672738327, + "confidence": 0.334128527883467 + }, + { + "marker_id": 74, + "observed_center_px": [ + 213.25, + 279.75 + ], + "projected_center_px": [ + 213.7755584716797, + 279.8918151855469 + ], + "reprojection_error_px": 0.5443558156261247, + "confidence": 0.21988839370980648 + }, + { + "marker_id": 92, + "observed_center_px": [ + 1102.0, + 396.75 + ], + "projected_center_px": [ + 1101.632568359375, + 396.7992858886719 + ], + "reprojection_error_px": 0.3707224155005408, + "confidence": 0.3382734262024129 + }, + { + "marker_id": 52, + "observed_center_px": [ + 188.0, + 232.75 + ], + "projected_center_px": [ + 188.2330322265625, + 232.81349182128906 + ], + "reprojection_error_px": 0.2415268721846051, + "confidence": 0.20362612130640265 + }, + { + "marker_id": 81, + "observed_center_px": [ + 257.0, + 254.0 + ], + "projected_center_px": [ + 257.267578125, + 253.64199829101562 + ], + "reprojection_error_px": 0.4469488523469422, + "confidence": 0.23597595805437407 + }, + { + "marker_id": 101, + "observed_center_px": [ + 184.0, + 169.75 + ], + "projected_center_px": [ + 184.4817657470703, + 168.95640563964844 + ], + "reprojection_error_px": 0.9283804413235028, + "confidence": 0.17074436943547597 + }, + { + "marker_id": 83, + "observed_center_px": [ + 72.0, + 155.5 + ], + "projected_center_px": [ + 70.45494842529297, + 154.61476135253906 + ], + "reprojection_error_px": 1.78068296770176, + "confidence": 0.15244645323307077 + }, + { + "marker_id": 56, + "observed_center_px": [ + 689.5, + 187.75 + ], + "projected_center_px": [ + 688.7070922851562, + 188.32925415039062 + ], + "reprojection_error_px": 0.9819562184759065, + "confidence": 0.18448953242561952 + }, + { + "marker_id": 82, + "observed_center_px": [ + 313.25, + 155.0 + ], + "projected_center_px": [ + 313.7337341308594, + 154.89724731445312 + ], + "reprojection_error_px": 0.4945268685778053, + "confidence": 0.1440436109843044 + }, + { + "marker_id": 73, + "observed_center_px": [ + 301.25, + 134.0 + ], + "projected_center_px": [ + 301.6894836425781, + 133.56317138671875 + ], + "reprojection_error_px": 0.6196491825823358, + "confidence": 0.1442587474618905 + }, + { + "marker_id": 72, + "observed_center_px": [ + 614.0, + 181.25 + ], + "projected_center_px": [ + 614.5244140625, + 182.4296875 + ], + "reprojection_error_px": 1.2909967879913582, + "confidence": 0.18541158496957547 + }, + { + "marker_id": 53, + "observed_center_px": [ + 650.75, + 164.75 + ], + "projected_center_px": [ + 650.923583984375, + 165.3136444091797 + ], + "reprojection_error_px": 0.5897681066580485, + "confidence": 0.17024100775851728 + }, + { + "marker_id": 84, + "observed_center_px": [ + 544.25, + 150.5 + ], + "projected_center_px": [ + 544.8168334960938, + 150.71702575683594 + ], + "reprojection_error_px": 0.6069599586661997, + "confidence": 0.1411898566746806 + }, + { + "marker_id": 46, + "observed_center_px": [ + 716.5, + 173.0 + ], + "projected_center_px": [ + 716.5786743164062, + 172.87643432617188 + ], + "reprojection_error_px": 0.14648591676536457, + "confidence": 0.18724853272025804 + }, + { + "marker_id": 86, + "observed_center_px": [ + 480.0, + 138.0 + ], + "projected_center_px": [ + 480.4365234375, + 138.1004180908203 + ], + "reprojection_error_px": 0.4479246638116871, + "confidence": 0.16141583086733932 + }, + { + "marker_id": 50, + "observed_center_px": [ + 735.75, + 153.0 + ], + "projected_center_px": [ + 736.2880859375, + 153.03378295898438 + ], + "reprojection_error_px": 0.5391454019585012, + "confidence": 0.1852824222626022 + }, + { + "marker_id": 76, + "observed_center_px": [ + 867.0, + 161.75 + ], + "projected_center_px": [ + 866.71875, + 161.26486206054688 + ], + "reprojection_error_px": 0.5607676727458744, + "confidence": 0.14935538911463375 + }, + { + "marker_id": 67, + "observed_center_px": [ + 657.0, + 130.75 + ], + "projected_center_px": [ + 656.8185424804688, + 130.52462768554688 + ], + "reprojection_error_px": 0.28934324169814685, + "confidence": 0.1305593993274603 + }, + { + "marker_id": 98, + "observed_center_px": [ + 680.0, + 100.25 + ], + "projected_center_px": [ + 680.0936889648438, + 99.85391998291016 + ], + "reprojection_error_px": 0.40700983043580696, + "confidence": 0.11885588518506524 + }, + { + "marker_id": 70, + "observed_center_px": [ + 712.5, + 104.25 + ], + "projected_center_px": [ + 712.3978271484375, + 103.98674774169922 + ], + "reprojection_error_px": 0.2823845659678905, + "confidence": 0.11669864117968197 + }, + { + "marker_id": 90, + "observed_center_px": [ + 740.0, + 91.75 + ], + "projected_center_px": [ + 740.48583984375, + 91.5243148803711 + ], + "reprojection_error_px": 0.5356996611880002, + "confidence": 0.11238354246712544 + }, + { + "marker_id": 91, + "observed_center_px": [ + 803.0, + 77.75 + ], + "projected_center_px": [ + 802.8135375976562, + 77.46407318115234 + ], + "reprojection_error_px": 0.34135373620943854, + "confidence": 0.11971137454305131 + } + ] + }, + "qa": { + "sanity_notes": [] + } +} \ No newline at end of file diff --git a/data/board/20260610_120248/cam0_debug.jpg b/data/board/20260610_120248/cam0_debug.jpg new file mode 100644 index 0000000..d579989 Binary files /dev/null and b/data/board/20260610_120248/cam0_debug.jpg differ diff --git a/data/board/20260610_120248/cam1.jpg b/data/board/20260610_120248/cam1.jpg new file mode 100644 index 0000000..d90e9aa Binary files /dev/null and b/data/board/20260610_120248/cam1.jpg differ diff --git a/data/board/20260610_120248/cam1_aruco_detection.json b/data/board/20260610_120248/cam1_aruco_detection.json new file mode 100644 index 0000000..03751f6 --- /dev/null +++ b/data/board/20260610_120248/cam1_aruco_detection.json @@ -0,0 +1,1418 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-10T12:02:56Z", + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "camera": { + "camera_id": "cam1", + "intrinsics_file": "/app/data/calibration/20260610_092149/cam1_calibration.npz", + "camera_matrix": [ + [ + 1367.5723876953125, + 0.0, + 672.1165771484375 + ], + [ + 0.0, + 1372.3011474609375, + 445.8396911621094 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "distortion_coefficients": [ + 0.01016925647854805, + 0.7656787633895874, + -0.0031530377455055714, + -0.00288817984983325, + -2.490830183029175 + ] + }, + "image": { + "image_file": "/app/data/board/20260610_120248/cam1.jpg", + "image_sha256": "e80b06a475dd67b4a91f69e871781aace1e5d4db2fa0a07cf0a14ad2cb25a155", + "width_px": 1280, + "height_px": 960 + }, + "aruco": { + "dictionary": "DICT_4X4_250", + "num_detected_markers": 23, + "num_rejected_candidates": 5 + }, + "detections": [ + { + "observation_id": "a93b0c23-3291-44d6-b675-1c81ddc248c6", + "type": "aruco", + "marker_id": 54, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 271.0, + 275.0 + ], + [ + 277.0, + 311.0 + ], + [ + 237.0, + 316.0 + ], + [ + 231.0, + 279.0 + ] + ], + "center_px": [ + 254.0, + 295.25 + ], + "quality": { + "area_px": 1487.0, + "perimeter_px": 154.49069213867188, + "sharpness": { + "laplacian_var": 1986.4359458809856 + }, + "contrast": { + "p05": 2.0, + "p95": 173.0, + "dynamic_range": 171.0, + "mean_gray": 40.58308157099698, + "std_gray": 57.41116344042749 + }, + "geometry": { + "distance_to_center_norm": 0.534919023513794, + "distance_to_border_px": 231.0 + }, + "edge_ratio": 1.104522481546107, + "edge_lengths_px": [ + 36.49657440185547, + 40.31128692626953, + 37.48332977294922, + 40.199501037597656 + ] + }, + "confidence": 0.8975220965585672 + }, + { + "observation_id": "5ac4ca36-7ddc-4727-a3fe-fb47583c397e", + "type": "aruco", + "marker_id": 97, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 325.0, + 224.0 + ], + [ + 331.0, + 261.0 + ], + [ + 292.0, + 265.0 + ], + [ + 286.0, + 227.0 + ] + ], + "center_px": [ + 308.5, + 244.25 + ], + "quality": { + "area_px": 1483.5, + "perimeter_px": 154.2739028930664, + "sharpness": { + "laplacian_var": 3232.7120716112013 + }, + "contrast": { + "p05": 3.0, + "p95": 183.0, + "dynamic_range": 180.0, + "mean_gray": 86.04742684157416, + "std_gray": 76.05222043461826 + }, + "geometry": { + "distance_to_center_norm": 0.5084755420684814, + "distance_to_border_px": 224.0 + }, + "edge_ratio": 1.0459206821066087, + "edge_lengths_px": [ + 37.48332977294922, + 39.20458984375, + 38.470767974853516, + 39.11521530151367 + ] + }, + "confidence": 0.9455783951112204 + }, + { + "observation_id": "329015c8-18e6-4a9d-97db-b16e8768ade4", + "type": "aruco", + "marker_id": 47, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 279.0, + 342.0 + ], + [ + 284.0, + 377.0 + ], + [ + 246.0, + 382.0 + ], + [ + 239.0, + 347.0 + ] + ], + "center_px": [ + 262.0, + 362.0 + ], + "quality": { + "area_px": 1395.0, + "perimeter_px": 149.6873016357422, + "sharpness": { + "laplacian_var": 2969.229673208007 + }, + "contrast": { + "p05": 2.0, + "p95": 176.0, + "dynamic_range": 174.0, + "mean_gray": 62.60929250263992, + "std_gray": 68.52421887604636 + }, + "geometry": { + "distance_to_center_norm": 0.4949873685836792, + "distance_to_border_px": 239.0 + }, + "edge_ratio": 1.140175374048223, + "edge_lengths_px": [ + 35.35533905029297, + 38.327537536621094, + 35.693138122558594, + 40.31128692626953 + ] + }, + "confidence": 0.8156639944765781 + }, + { + "observation_id": "b29e3d49-ebf3-4275-af61-48c1ef7c0468", + "type": "aruco", + "marker_id": 66, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 473.0, + 204.0 + ], + [ + 476.0, + 240.0 + ], + [ + 440.0, + 244.0 + ], + [ + 436.0, + 207.0 + ] + ], + "center_px": [ + 456.25, + 223.75 + ], + "quality": { + "area_px": 1344.5, + "perimeter_px": 146.68333435058594, + "sharpness": { + "laplacian_var": 3003.991809081898 + }, + "contrast": { + "p05": 3.0, + "p95": 186.0, + "dynamic_range": 183.0, + "mean_gray": 57.67876787678768, + "std_gray": 69.75102824214213 + }, + "geometry": { + "distance_to_center_norm": 0.39415282011032104, + "distance_to_border_px": 204.0 + }, + "edge_ratio": 1.0301954773521775, + "edge_lengths_px": [ + 36.12478256225586, + 36.22154235839844, + 37.2155876159668, + 37.121421813964844 + ] + }, + "confidence": 0.8700614136232684 + }, + { + "observation_id": "0aad489a-6669-40d2-9de3-4f476ef23ce0", + "type": "aruco", + "marker_id": 62, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 209.0, + 514.0 + ], + [ + 215.0, + 547.0 + ], + [ + 177.0, + 552.0 + ], + [ + 168.0, + 520.0 + ] + ], + "center_px": [ + 192.25, + 533.25 + ], + "quality": { + "area_px": 1325.0, + "perimeter_px": 146.54679489135742, + "sharpness": { + "laplacian_var": 1472.0195274488835 + }, + "contrast": { + "p05": 3.0, + "p95": 158.89999999999998, + "dynamic_range": 155.89999999999998, + "mean_gray": 31.242686890574216, + "std_gray": 45.85255513835203 + }, + "geometry": { + "distance_to_center_norm": 0.5636316537857056, + "distance_to_border_px": 168.0 + }, + "edge_ratio": 1.2465337092770656, + "edge_lengths_px": [ + 33.541019439697266, + 38.327537536621094, + 33.241539001464844, + 41.43669891357422 + ] + }, + "confidence": 0.7086317255276053 + }, + { + "observation_id": "3437cef7-7987-49e4-8548-9d868fad0a29", + "type": "aruco", + "marker_id": 55, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 378.0, + 365.0 + ], + [ + 383.0, + 400.0 + ], + [ + 346.0, + 404.0 + ], + [ + 341.0, + 370.0 + ] + ], + "center_px": [ + 362.0, + 384.75 + ], + "quality": { + "area_px": 1299.0, + "perimeter_px": 144.2729148864746, + "sharpness": { + "laplacian_var": 3461.886720441887 + }, + "contrast": { + "p05": 2.0, + "p95": 184.75, + "dynamic_range": 182.75, + "mean_gray": 69.50677200902935, + "std_gray": 73.9301685288199 + }, + "geometry": { + "distance_to_center_norm": 0.3673310875892639, + "distance_to_border_px": 341.0 + }, + "edge_ratio": 1.0864416700328359, + "edge_lengths_px": [ + 35.35533905029297, + 37.2155876159668, + 34.36568069458008, + 37.336307525634766 + ] + }, + "confidence": 0.7970975560738816 + }, + { + "observation_id": "5041996c-26d1-4058-a11c-b199f21eea99", + "type": "aruco", + "marker_id": 96, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 262.0, + 490.0 + ], + [ + 267.0, + 523.0 + ], + [ + 230.0, + 529.0 + ], + [ + 224.0, + 496.0 + ] + ], + "center_px": [ + 245.75, + 509.5 + ], + "quality": { + "area_px": 1270.5, + "perimeter_px": 142.87175750732422, + "sharpness": { + "laplacian_var": 2645.4089878461946 + }, + "contrast": { + "p05": 3.0, + "p95": 175.0, + "dynamic_range": 172.0, + "mean_gray": 73.96910755148741, + "std_gray": 70.81517961218199 + }, + "geometry": { + "distance_to_center_norm": 0.49419018626213074, + "distance_to_border_px": 224.0 + }, + "edge_ratio": 1.152625537088693, + "edge_lengths_px": [ + 33.37664031982422, + 37.48332977294922, + 33.541019439697266, + 38.470767974853516 + ] + }, + "confidence": 0.7348440345503332 + }, + { + "observation_id": "6b4534ba-b192-4357-9ee4-8135491e8bb1", + "type": "aruco", + "marker_id": 0, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 51.0, + 691.0 + ], + [ + 13.0, + 696.0 + ], + [ + 6.0, + 666.0 + ], + [ + 43.0, + 659.0 + ] + ], + "center_px": [ + 28.25, + 678.0 + ], + "quality": { + "area_px": 1207.5, + "perimeter_px": 139.77456665039062, + "sharpness": { + "laplacian_var": 1594.4557528472656 + }, + "contrast": { + "p05": 4.0, + "p95": 146.0, + "dynamic_range": 142.0, + "mean_gray": 60.00357568533969, + "std_gray": 56.5180468322021 + }, + "geometry": { + "distance_to_center_norm": 0.803743302822113, + "distance_to_border_px": 6.0 + }, + "edge_ratio": 1.2441645273947948, + "edge_lengths_px": [ + 38.327537536621094, + 30.805843353271484, + 37.656341552734375, + 32.98484420776367 + ] + }, + "confidence": 0.07764246437910792 + }, + { + "observation_id": "4851a40f-c8d8-49e8-a7e0-1f3033e6e51c", + "type": "aruco", + "marker_id": 95, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 521.0, + 331.0 + ], + [ + 524.0, + 365.0 + ], + [ + 489.0, + 369.0 + ], + [ + 486.0, + 335.0 + ] + ], + "center_px": [ + 505.0, + 350.0 + ], + "quality": { + "area_px": 1202.0, + "perimeter_px": 138.7198486328125, + "sharpness": { + "laplacian_var": 3217.6929386367133 + }, + "contrast": { + "p05": 2.0, + "p95": 185.0, + "dynamic_range": 183.0, + "mean_gray": 70.00954653937947, + "std_gray": 74.71444384379403 + }, + "geometry": { + "distance_to_center_norm": 0.23427079617977142, + "distance_to_border_px": 331.0 + }, + "edge_ratio": 1.0321027359077215, + "edge_lengths_px": [ + 34.13209533691406, + 35.22782897949219, + 34.13209533691406, + 35.22782897949219 + ] + }, + "confidence": 0.7764084964163676 + }, + { + "observation_id": "042d160d-7c67-4afb-96bc-2a5a6ad5039f", + "type": "aruco", + "marker_id": 79, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 355.0, + 514.0 + ], + [ + 359.0, + 547.0 + ], + [ + 323.0, + 552.0 + ], + [ + 319.0, + 520.0 + ] + ], + "center_px": [ + 339.0, + 533.25 + ], + "quality": { + "area_px": 1192.0, + "perimeter_px": 138.33270645141602, + "sharpness": { + "laplacian_var": 4755.571742096036 + }, + "contrast": { + "p05": 2.0, + "p95": 189.0, + "dynamic_range": 187.0, + "mean_gray": 84.51027811366384, + "std_gray": 76.54474995471621 + }, + "geometry": { + "distance_to_center_norm": 0.3820924460887909, + "distance_to_border_px": 319.0 + }, + "edge_ratio": 1.1317107272510052, + "edge_lengths_px": [ + 33.241539001464844, + 36.34556198120117, + 32.24903106689453, + 36.49657440185547 + ] + }, + "confidence": 0.7021817921589917 + }, + { + "observation_id": "fcec3549-5bc8-4238-b0a4-c48aaf72fadc", + "type": "aruco", + "marker_id": 215, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 327.0, + 647.0 + ], + [ + 290.0, + 653.0 + ], + [ + 286.0, + 623.0 + ], + [ + 322.0, + 616.0 + ] + ], + "center_px": [ + 306.25, + 634.75 + ], + "quality": { + "area_px": 1142.5, + "perimeter_px": 135.82369804382324, + "sharpness": { + "laplacian_var": 2385.0744097156967 + }, + "contrast": { + "p05": 2.0, + "p95": 170.0, + "dynamic_range": 168.0, + "mean_gray": 69.05829015544042, + "std_gray": 68.9461039878797 + }, + "geometry": { + "distance_to_center_norm": 0.45985156297683716, + "distance_to_border_px": 286.0 + }, + "edge_ratio": 1.2384840930400456, + "edge_lengths_px": [ + 37.48332977294922, + 30.265491485595703, + 36.67424011230469, + 31.400636672973633 + ] + }, + "confidence": 0.6149991517428708 + }, + { + "observation_id": "e123ccc4-36e5-4a6c-8467-ca848aca8ee9", + "type": "aruco", + "marker_id": 211, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 343.0, + 760.0 + ], + [ + 308.0, + 766.0 + ], + [ + 304.0, + 737.0 + ], + [ + 339.0, + 730.0 + ] + ], + "center_px": [ + 323.5, + 748.25 + ], + "quality": { + "area_px": 1058.5, + "perimeter_px": 130.74375534057617, + "sharpness": { + "laplacian_var": 2463.20277082761 + }, + "contrast": { + "p05": 3.0, + "p95": 172.0, + "dynamic_range": 169.0, + "mean_gray": 67.80381471389646, + "std_gray": 67.16693739211256 + }, + "geometry": { + "distance_to_center_norm": 0.5186073780059814, + "distance_to_border_px": 194.0 + }, + "edge_ratio": 1.2192543513933984, + "edge_lengths_px": [ + 35.510562896728516, + 29.27456283569336, + 35.693138122558594, + 30.265491485595703 + ] + }, + "confidence": 0.5787690368791474 + }, + { + "observation_id": "82ef7bd8-f262-439c-aed4-96db9268c8c7", + "type": "aruco", + "marker_id": 69, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 767.0, + 291.0 + ], + [ + 767.0, + 324.0 + ], + [ + 736.0, + 328.0 + ], + [ + 734.0, + 295.0 + ] + ], + "center_px": [ + 751.0, + 309.5 + ], + "quality": { + "area_px": 1060.0, + "perimeter_px": 130.55908966064453, + "sharpness": { + "laplacian_var": 3393.66143173878 + }, + "contrast": { + "p05": 1.0, + "p95": 180.0, + "dynamic_range": 179.0, + "mean_gray": 60.669398907103826, + "std_gray": 68.91378151104719 + }, + "geometry": { + "distance_to_center_norm": 0.2543104887008667, + "distance_to_border_px": 291.0 + }, + "edge_ratio": 1.063491027095371, + "edge_lengths_px": [ + 33.0, + 31.256999969482422, + 33.060550689697266, + 33.241539001464844 + ] + }, + "confidence": 0.6644782594891557 + }, + { + "observation_id": "60e8c3bd-04ef-4359-bede-7de5c65fa6c1", + "type": "aruco", + "marker_id": 51, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 559.0, + 466.0 + ], + [ + 562.0, + 497.0 + ], + [ + 529.0, + 502.0 + ], + [ + 526.0, + 471.0 + ] + ], + "center_px": [ + 544.0, + 484.0 + ], + "quality": { + "area_px": 1038.0, + "perimeter_px": 129.04292678833008, + "sharpness": { + "laplacian_var": 3888.5999524375743 + }, + "contrast": { + "p05": 2.0, + "p95": 189.0, + "dynamic_range": 187.0, + "mean_gray": 63.9751724137931, + "std_gray": 72.13008892562486 + }, + "geometry": { + "distance_to_center_norm": 0.120104119181633, + "distance_to_border_px": 458.0 + }, + "edge_ratio": 1.0716593329220778, + "edge_lengths_px": [ + 31.14482307434082, + 33.37664031982422, + 31.14482307434082, + 33.37664031982422 + ] + }, + "confidence": 0.6457275915408058 + }, + { + "observation_id": "78c760bf-f1c2-44a2-8c3e-115411c1ae5a", + "type": "aruco", + "marker_id": 58, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 713.0, + 383.0 + ], + [ + 715.0, + 415.0 + ], + [ + 683.0, + 419.0 + ], + [ + 681.0, + 387.0 + ] + ], + "center_px": [ + 698.0, + 401.0 + ], + "quality": { + "area_px": 1032.0, + "perimeter_px": 128.62294006347656, + "sharpness": { + "laplacian_var": 4247.858055555555 + }, + "contrast": { + "p05": 2.0, + "p95": 185.0, + "dynamic_range": 183.0, + "mean_gray": 60.18611111111111, + "std_gray": 70.77312206691722 + }, + "geometry": { + "distance_to_center_norm": 0.12250638008117676, + "distance_to_border_px": 383.0 + }, + "edge_ratio": 1.005819647789595, + "edge_lengths_px": [ + 32.06243896484375, + 32.24903106689453, + 32.06243896484375, + 32.24903106689453 + ] + }, + "confidence": 0.6840192488901559 + }, + { + "observation_id": "ed3a5562-916d-44b6-a10e-8b7eb0ce223d", + "type": "aruco", + "marker_id": 103, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 642.0, + 433.0 + ], + [ + 643.0, + 464.0 + ], + [ + 611.0, + 469.0 + ], + [ + 609.0, + 438.0 + ] + ], + "center_px": [ + 626.25, + 451.0 + ], + "quality": { + "area_px": 1015.0, + "perimeter_px": 127.84548568725586, + "sharpness": { + "laplacian_var": 4609.6699673929925 + }, + "contrast": { + "p05": 2.0, + "p95": 188.0, + "dynamic_range": 186.0, + "mean_gray": 99.15539568345324, + "std_gray": 78.22177673626882 + }, + "geometry": { + "distance_to_center_norm": 0.04011823236942291, + "distance_to_border_px": 433.0 + }, + "edge_ratio": 1.0761060775769242, + "edge_lengths_px": [ + 31.016124725341797, + 32.38827133178711, + 31.064449310302734, + 33.37664031982422 + ] + }, + "confidence": 0.6288103754513884 + }, + { + "observation_id": "e7217919-f992-4189-b92f-5ed4af439195", + "type": "aruco", + "marker_id": 64, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 808.0, + 410.0 + ], + [ + 809.0, + 440.0 + ], + [ + 777.0, + 444.0 + ], + [ + 777.0, + 414.0 + ] + ], + "center_px": [ + 792.75, + 427.0 + ], + "quality": { + "area_px": 947.0, + "perimeter_px": 123.5226936340332, + "sharpness": { + "laplacian_var": 4153.619463743477 + }, + "contrast": { + "p05": 2.0, + "p95": 180.29999999999995, + "dynamic_range": 178.29999999999995, + "mean_gray": 60.19435736677116, + "std_gray": 70.5978711003198 + }, + "geometry": { + "distance_to_center_norm": 0.20210441946983337, + "distance_to_border_px": 410.0 + }, + "edge_ratio": 1.0749677022298176, + "edge_lengths_px": [ + 30.01666259765625, + 32.24903106689453, + 30.0, + 31.256999969482422 + ] + }, + "confidence": 0.5873044669377057 + }, + { + "observation_id": "504949fd-1a99-454c-b9e0-084135f7146b", + "type": "aruco", + "marker_id": 210, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 616.0, + 704.0 + ], + [ + 585.0, + 709.0 + ], + [ + 583.0, + 682.0 + ], + [ + 614.0, + 676.0 + ] + ], + "center_px": [ + 599.5, + 692.75 + ], + "quality": { + "area_px": 863.5, + "perimeter_px": 118.12125205993652, + "sharpness": { + "laplacian_var": 3245.9786727951737 + }, + "contrast": { + "p05": 2.0, + "p95": 174.0, + "dynamic_range": 172.0, + "mean_gray": 62.447457627118645, + "std_gray": 66.0548805108226 + }, + "geometry": { + "distance_to_center_norm": 0.270713210105896, + "distance_to_border_px": 251.0 + }, + "edge_ratio": 1.16626053687191, + "edge_lengths_px": [ + 31.400636672973633, + 27.073972702026367, + 31.575305938720703, + 28.07133674621582 + ] + }, + "confidence": 0.4936003992818733 + }, + { + "observation_id": "a267fcf4-0ef5-46de-9964-d26b02357247", + "type": "aruco", + "marker_id": 81, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 636.0, + 856.0 + ], + [ + 638.0, + 881.0 + ], + [ + 609.0, + 887.0 + ], + [ + 607.0, + 863.0 + ] + ], + "center_px": [ + 622.5, + 871.75 + ], + "quality": { + "area_px": 723.5, + "perimeter_px": 108.61011505126953, + "sharpness": { + "laplacian_var": 2780.076734046128 + }, + "contrast": { + "p05": 1.0, + "p95": 154.0, + "dynamic_range": 153.0, + "mean_gray": 51.6317907444668, + "std_gray": 59.99110627757181 + }, + "geometry": { + "distance_to_center_norm": 0.49017584323883057, + "distance_to_border_px": 73.0 + }, + "edge_ratio": 1.23874245071507, + "edge_lengths_px": [ + 25.079872131347656, + 29.614185333251953, + 24.083189010620117, + 29.832868576049805 + ] + }, + "confidence": 0.3893733786671347 + }, + { + "observation_id": "a74e5c5b-34f4-410b-9fc9-297fa6b4f681", + "type": "aruco", + "marker_id": 74, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 680.0, + 820.0 + ], + [ + 682.0, + 845.0 + ], + [ + 653.0, + 851.0 + ], + [ + 652.0, + 826.0 + ] + ], + "center_px": [ + 666.75, + 835.5 + ], + "quality": { + "area_px": 721.5, + "perimeter_px": 108.34969329833984, + "sharpness": { + "laplacian_var": 2350.079465495347 + }, + "contrast": { + "p05": 1.0, + "p95": 150.0, + "dynamic_range": 149.0, + "mean_gray": 65.37721021611002, + "std_gray": 60.75037616025104 + }, + "geometry": { + "distance_to_center_norm": 0.4456312656402588, + "distance_to_border_px": 109.0 + }, + "edge_ratio": 1.1836208561848045, + "edge_lengths_px": [ + 25.079872131347656, + 29.614185333251953, + 25.01999282836914, + 28.635643005371094 + ] + }, + "confidence": 0.40638013219065744 + }, + { + "observation_id": "88caeb42-57e3-47d8-9465-0716cb2a5ab6", + "type": "aruco", + "marker_id": 52, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 683.0, + 887.0 + ], + [ + 684.0, + 911.0 + ], + [ + 656.0, + 918.0 + ], + [ + 655.0, + 893.0 + ] + ], + "center_px": [ + 669.5, + 902.25 + ], + "quality": { + "area_px": 692.5, + "perimeter_px": 106.53820037841797, + "sharpness": { + "laplacian_var": 2779.720220720703 + }, + "contrast": { + "p05": 1.0, + "p95": 154.0, + "dynamic_range": 153.0, + "mean_gray": 47.9738430583501, + "std_gray": 57.19919410935855 + }, + "geometry": { + "distance_to_center_norm": 0.5290990471839905, + "distance_to_border_px": 42.0 + }, + "edge_ratio": 1.2015299555417216, + "edge_lengths_px": [ + 24.020824432373047, + 28.861740112304688, + 25.01999282836914, + 28.635643005371094 + ] + }, + "confidence": 0.3227551657879029 + }, + { + "observation_id": "d099a77e-bb8d-47f6-845b-04436db56d7d", + "type": "aruco", + "marker_id": 77, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 772.0, + 851.0 + ], + [ + 772.0, + 876.0 + ], + [ + 744.0, + 880.0 + ], + [ + 744.0, + 857.0 + ] + ], + "center_px": [ + 758.0, + 866.0 + ], + "quality": { + "area_px": 672.0, + "perimeter_px": 104.91991424560547, + "sharpness": { + "laplacian_var": 2981.6855542335916 + }, + "contrast": { + "p05": 1.0, + "p95": 155.0, + "dynamic_range": 154.0, + "mean_gray": 49.985772357723576, + "std_gray": 58.77905613269592 + }, + "geometry": { + "distance_to_center_norm": 0.5045418739318848, + "distance_to_border_px": 80.0 + }, + "edge_ratio": 1.245027956755265, + "edge_lengths_px": [ + 25.0, + 28.284271240234375, + 23.0, + 28.635643005371094 + ] + }, + "confidence": 0.3598312773373838 + }, + { + "observation_id": "97b753c6-f74b-4109-b06f-1623eaf9a84b", + "type": "aruco", + "marker_id": 75, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 823.0, + 846.0 + ], + [ + 823.0, + 869.0 + ], + [ + 795.0, + 874.0 + ], + [ + 795.0, + 850.0 + ] + ], + "center_px": [ + 809.0, + 859.75 + ], + "quality": { + "area_px": 658.0, + "perimeter_px": 103.7271957397461, + "sharpness": { + "laplacian_var": 3701.501883799326 + }, + "contrast": { + "p05": 2.0, + "p95": 157.45, + "dynamic_range": 155.45, + "mean_gray": 71.8170731707317, + "std_gray": 62.569725928885006 + }, + "geometry": { + "distance_to_center_norm": 0.5195717215538025, + "distance_to_border_px": 86.0 + }, + "edge_ratio": 1.2366488912831182, + "edge_lengths_px": [ + 23.0, + 28.44292449951172, + 24.0, + 28.284271240234375 + ] + }, + "confidence": 0.3547220797744106 + } + ], + "rejected_candidates": [ + { + "image_points_px": [ + [ + 779.0, + 757.0 + ], + [ + 767.0, + 766.0 + ], + [ + 719.0, + 776.0 + ], + [ + 708.0, + 772.0 + ] + ], + "center_px": [ + 743.25, + 767.75 + ], + "area_px": 380.5 + }, + { + "image_points_px": [ + [ + 384.0, + 821.0 + ], + [ + 367.0, + 830.0 + ], + [ + 333.0, + 833.0 + ], + [ + 338.0, + 827.0 + ] + ], + "center_px": [ + 355.5, + 827.75 + ], + "area_px": 250.5 + }, + { + "image_points_px": [ + [ + 79.0, + 883.0 + ], + [ + 91.0, + 878.0 + ], + [ + 105.0, + 879.0 + ], + [ + 90.0, + 884.0 + ] + ], + "center_px": [ + 91.25, + 881.0 + ], + "area_px": 76.0 + }, + { + "image_points_px": [ + [ + 723.0, + 741.0 + ], + [ + 713.0, + 745.0 + ], + [ + 701.0, + 743.0 + ], + [ + 715.0, + 739.0 + ] + ], + "center_px": [ + 713.0, + 742.0 + ], + "area_px": 64.0 + }, + { + "image_points_px": [ + [ + 804.0, + 416.0 + ], + [ + 802.0, + 422.0 + ], + [ + 786.0, + 422.0 + ], + [ + 788.0, + 416.0 + ] + ], + "center_px": [ + 795.0, + 419.0 + ], + "area_px": 96.0 + } + ] +} \ No newline at end of file diff --git a/data/board/20260610_120248/cam1_camera_pose.json b/data/board/20260610_120248/cam1_camera_pose.json new file mode 100644 index 0000000..3138db9 --- /dev/null +++ b/data/board/20260610_120248/cam1_camera_pose.json @@ -0,0 +1,467 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-10T12:02:56Z", + "source": { + "detection_json": "/app/data/board/20260610_120248/cam1_aruco_detection.json", + "robot_json": "/app/scripts/robot_1781069752019.json" + }, + "camera": { + "camera_id": "cam1", + "camera_matrix": [ + [ + 1367.5723876953125, + 0.0, + 672.1165771484375 + ], + [ + 0.0, + 1372.3011474609375, + 445.8396911621094 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "distortion_coefficients": [ + 0.01016925647854805, + 0.7656787633895874, + -0.0031530377455055714, + -0.00288817984983325, + -2.490830183029175 + ] + }, + "estimation": { + "method": "single_camera_marker_center_lm", + "description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.", + "marker_size_m": 0.025, + "num_used_markers": 19, + "used_marker_ids": [ + 54, + 97, + 47, + 66, + 62, + 55, + 96, + 95, + 79, + 69, + 51, + 58, + 103, + 64, + 81, + 74, + 52, + 77, + 75 + ], + "history": { + "iters": [ + 0, + 1, + 2, + 3 + ], + "rms": [ + 0.005908492617084079, + 0.000531955389358334, + 0.0004973054167271152, + 0.0004973053257081608 + ], + "lambda": [ + 0.001, + 0.0005, + 0.00025, + 0.000125 + ] + }, + "residual_rms_px": 0.9767691765851207, + "residual_median_px": 0.7820052531539182, + "residual_max_px": 2.6960619292292325, + "sigma2_normalized": 2.9368369703581645e-07 + }, + "camera_pose": { + "world_to_camera": { + "rotation_matrix": [ + [ + -0.9621239304542542, + 0.05326477065682411, + 0.26735827326774597 + ], + [ + 0.14050082862377167, + 0.9373264908790588, + 0.3188707232475281 + ], + [ + -0.2336174100637436, + 0.3443572223186493, + -0.9093080163002014 + ] + ], + "translation_m": [ + 0.08620023727416992, + 0.1742357462644577, + 1.0531834363937378 + ], + "rvec_rad": [ + 0.14437260525474524, + 2.8378638193547685, + 0.4941638197103588 + ] + }, + "camera_in_world": { + "position_m": [ + 0.30449703335762024, + -0.5305785536766052, + 0.8790631294250488 + ], + "position_mm": [ + 304.4970397949219, + -530.5785522460938, + 879.0631103515625 + ], + "orientation_deg": { + "roll": 159.25819396972656, + "pitch": 13.510137557983398, + "yaw": 171.6916961669922 + } + }, + "uncertainty": { + "pose_covariance_6x6": [ + [ + 8.449666319585472e-07, + -6.740020733074256e-07, + -1.4058060095944764e-06, + 4.5208973261461144e-08, + -1.1921674358395356e-07, + 1.893984228476158e-07 + ], + [ + -6.740020733073051e-07, + 8.928537842796082e-06, + 3.391178961266702e-06, + 2.5704379788246923e-08, + 3.8400178926795673e-07, + -3.595001621545094e-07 + ], + [ + -1.405806009594519e-06, + 3.391178961267287e-06, + 8.757846717357817e-06, + 8.787647167146225e-08, + 1.666518421622728e-07, + -1.1524785038887159e-06 + ], + [ + 4.5208973261459694e-08, + 2.5704379788252783e-08, + 8.787647167146857e-08, + 2.703339195174334e-08, + -8.23996142208714e-09, + -5.4090863884874565e-08 + ], + [ + -1.1921674358394824e-07, + 3.8400178926796197e-07, + 1.6665184216224414e-07, + -8.239961422087447e-09, + 4.3931645936511716e-08, + -9.843879266637308e-09 + ], + [ + 1.8939842284762305e-07, + -3.5950016215458893e-07, + -1.152478503888724e-06, + -5.4090863884873566e-08, + -9.84387926664108e-09, + 4.801368396660864e-07 + ] + ], + "parameter_std": { + "rvec_std_deg": [ + 0.05266746457673423, + 0.17120356516921936, + 0.16955917791783418 + ], + "tvec_std_m": [ + 0.0001644183443285552, + 0.00020959877369992343, + 0.0006929190715127462 + ] + }, + "camera_center_std_m": [ + 0.003061099015936063, + 0.0015655578523650947, + 0.001430951041451357 + ], + "camera_center_std_mm": [ + 3.061099015936063, + 1.5655578523650948, + 1.430951041451357 + ], + "orientation_std_deg": { + "roll": 0.13546902152897963, + "pitch": 0.17960938355955527, + "yaw": 0.06921715361963306 + } + } + }, + "observations": { + "markers": [ + { + "marker_id": 54, + "observed_center_px": [ + 254.0, + 295.25 + ], + "projected_center_px": [ + 253.46893310546875, + 294.6708984375 + ], + "reprojection_error_px": 0.7857421117370553, + "confidence": 0.8975220965585672 + }, + { + "marker_id": 97, + "observed_center_px": [ + 308.5, + 244.25 + ], + "projected_center_px": [ + 307.9642333984375, + 243.66114807128906 + ], + "reprojection_error_px": 0.7961108247577228, + "confidence": 0.9455783951112204 + }, + { + "marker_id": 47, + "observed_center_px": [ + 262.0, + 362.0 + ], + "projected_center_px": [ + 261.61322021484375, + 361.3203430175781 + ], + "reprojection_error_px": 0.7820052531539182, + "confidence": 0.8156639944765781 + }, + { + "marker_id": 66, + "observed_center_px": [ + 456.25, + 223.75 + ], + "projected_center_px": [ + 455.822265625, + 223.88134765625 + ], + "reprojection_error_px": 0.44744709448046344, + "confidence": 0.8700614136232684 + }, + { + "marker_id": 62, + "observed_center_px": [ + 192.25, + 533.25 + ], + "projected_center_px": [ + 193.19772338867188, + 532.77197265625 + ], + "reprojection_error_px": 1.0614564347199478, + "confidence": 0.7086317255276053 + }, + { + "marker_id": 55, + "observed_center_px": [ + 362.0, + 384.75 + ], + "projected_center_px": [ + 361.8635559082031, + 384.7062683105469 + ], + "reprojection_error_px": 0.14328102054598374, + "confidence": 0.7970975560738816 + }, + { + "marker_id": 96, + "observed_center_px": [ + 245.75, + 509.5 + ], + "projected_center_px": [ + 245.64976501464844, + 509.0459899902344 + ], + "reprojection_error_px": 0.46494315916659196, + "confidence": 0.7348440345503332 + }, + { + "marker_id": 95, + "observed_center_px": [ + 505.0, + 350.0 + ], + "projected_center_px": [ + 504.9391174316406, + 350.3973388671875 + ], + "reprojection_error_px": 0.4019761964443663, + "confidence": 0.7764084964163676 + }, + { + "marker_id": 79, + "observed_center_px": [ + 339.0, + 533.25 + ], + "projected_center_px": [ + 339.4649353027344, + 532.9585571289062 + ], + "reprojection_error_px": 0.5487292436530726, + "confidence": 0.7021817921589917 + }, + { + "marker_id": 69, + "observed_center_px": [ + 751.0, + 309.5 + ], + "projected_center_px": [ + 751.142822265625, + 309.8138427734375 + ], + "reprojection_error_px": 0.34481224745823635, + "confidence": 0.6644782594891557 + }, + { + "marker_id": 51, + "observed_center_px": [ + 544.0, + 484.0 + ], + "projected_center_px": [ + 543.974365234375, + 484.78131103515625 + ], + "reprojection_error_px": 0.781731459559854, + "confidence": 0.6457275915408058 + }, + { + "marker_id": 58, + "observed_center_px": [ + 698.0, + 401.0 + ], + "projected_center_px": [ + 698.4539794921875, + 401.70245361328125 + ], + "reprojection_error_px": 0.836384157034735, + "confidence": 0.6840192488901559 + }, + { + "marker_id": 103, + "observed_center_px": [ + 626.25, + 451.0 + ], + "projected_center_px": [ + 626.7295532226562, + 451.99505615234375 + ], + "reprojection_error_px": 1.1045850078998642, + "confidence": 0.6288103754513884 + }, + { + "marker_id": 64, + "observed_center_px": [ + 792.75, + 427.0 + ], + "projected_center_px": [ + 792.0496826171875, + 427.088623046875 + ], + "reprojection_error_px": 0.7059026002974901, + "confidence": 0.5873044669377057 + }, + { + "marker_id": 81, + "observed_center_px": [ + 622.5, + 871.75 + ], + "projected_center_px": [ + 622.9915161132812, + 872.4616088867188 + ], + "reprojection_error_px": 0.8648556511188473, + "confidence": 0.3893733786671347 + }, + { + "marker_id": 74, + "observed_center_px": [ + 666.75, + 835.5 + ], + "projected_center_px": [ + 667.296630859375, + 836.3943481445312 + ], + "reprojection_error_px": 1.048171693973626, + "confidence": 0.40638013219065744 + }, + { + "marker_id": 52, + "observed_center_px": [ + 669.5, + 902.25 + ], + "projected_center_px": [ + 670.3670654296875, + 903.2512817382812 + ], + "reprojection_error_px": 1.3245254164321236, + "confidence": 0.3227551657879029 + }, + { + "marker_id": 77, + "observed_center_px": [ + 758.0, + 866.0 + ], + "projected_center_px": [ + 757.9642333984375, + 865.531494140625 + ], + "reprojection_error_px": 0.4698691201345731, + "confidence": 0.3598312773373838 + }, + { + "marker_id": 75, + "observed_center_px": [ + 809.0, + 859.75 + ], + "projected_center_px": [ + 807.6593627929688, + 857.410888671875 + ], + "reprojection_error_px": 2.6960619292292325, + "confidence": 0.3547220797744106 + } + ] + }, + "qa": { + "sanity_notes": [] + } +} \ No newline at end of file diff --git a/data/board/20260610_120248/cam1_debug.jpg b/data/board/20260610_120248/cam1_debug.jpg new file mode 100644 index 0000000..e4da55c Binary files /dev/null and b/data/board/20260610_120248/cam1_debug.jpg differ diff --git a/data/board/20260610_120248/cam2.jpg b/data/board/20260610_120248/cam2.jpg new file mode 100644 index 0000000..703f411 Binary files /dev/null and b/data/board/20260610_120248/cam2.jpg differ diff --git a/data/board/20260610_120248/cam2_aruco_detection.json b/data/board/20260610_120248/cam2_aruco_detection.json new file mode 100644 index 0000000..1efd449 --- /dev/null +++ b/data/board/20260610_120248/cam2_aruco_detection.json @@ -0,0 +1,4091 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-10T12:02:58Z", + "vision_config": { + "MarkerType": "DICT_4X4_250", + "MarkerSize": 0.025 + }, + "camera": { + "camera_id": "cam2", + "intrinsics_file": "/app/data/calibration/20260610_092149/cam2_calibration.npz", + "camera_matrix": [ + [ + 1388.99072265625, + 0.0, + 933.082763671875 + ], + [ + 0.0, + 1394.8729248046875, + 562.4996948242188 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "distortion_coefficients": [ + 0.019531700760126114, + -0.11213663965463638, + 0.0026758278254419565, + 0.0007694826927036047, + 0.05339815095067024 + ] + }, + "image": { + "image_file": "/app/data/board/20260610_120248/cam2.jpg", + "image_sha256": "993973dae71023f03f8354e42218b2f2adb8d8fb9a39c679918027f2ff099fd9", + "width_px": 1920, + "height_px": 1080 + }, + "aruco": { + "dictionary": "DICT_4X4_250", + "num_detected_markers": 60, + "num_rejected_candidates": 32 + }, + "detections": [ + { + "observation_id": "640fa5ee-b510-405a-b7fc-68852164108a", + "type": "aruco", + "marker_id": 69, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1170.0, + 950.0 + ], + [ + 1131.0, + 945.0 + ], + [ + 1133.0, + 908.0 + ], + [ + 1171.0, + 913.0 + ] + ], + "center_px": [ + 1151.25, + 929.0 + ], + "quality": { + "area_px": 1432.0, + "perimeter_px": 151.71427154541016, + "sharpness": { + "laplacian_var": 1535.785614056232 + }, + "contrast": { + "p05": 12.0, + "p95": 160.0, + "dynamic_range": 148.0, + "mean_gray": 63.35892116182573, + "std_gray": 58.13558887868767 + }, + "geometry": { + "distance_to_center_norm": 0.3935449719429016, + "distance_to_border_px": 130.0 + }, + "edge_ratio": 1.0622933214605574, + "edge_lengths_px": [ + 39.31920623779297, + 37.05401611328125, + 38.327537536621094, + 37.013511657714844 + ] + }, + "confidence": 0.8986846169324365 + }, + { + "observation_id": "4d56a82e-45cf-47d3-b484-b87e35a5f558", + "type": "aruco", + "marker_id": 64, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1019.0, + 976.0 + ], + [ + 980.0, + 971.0 + ], + [ + 985.0, + 934.0 + ], + [ + 1022.0, + 939.0 + ] + ], + "center_px": [ + 1001.5, + 955.0 + ], + "quality": { + "area_px": 1426.0, + "perimeter_px": 151.11324310302734, + "sharpness": { + "laplacian_var": 1387.6418245500154 + }, + "contrast": { + "p05": 11.0, + "p95": 156.0, + "dynamic_range": 145.0, + "mean_gray": 61.21337579617835, + "std_gray": 58.69457553202216 + }, + "geometry": { + "distance_to_center_norm": 0.37865400314331055, + "distance_to_border_px": 104.0 + }, + "edge_ratio": 1.059205286770598, + "edge_lengths_px": [ + 39.31920623779297, + 37.336307525634766, + 37.336307525634766, + 37.121421813964844 + ] + }, + "confidence": 0.8975282492831451 + }, + { + "observation_id": "7e7c6d48-9c84-4da3-99d0-c17067e9516c", + "type": "aruco", + "marker_id": 75, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 425.0, + 907.0 + ], + [ + 388.0, + 902.0 + ], + [ + 401.0, + 868.0 + ], + [ + 437.0, + 872.0 + ] + ], + "center_px": [ + 412.75, + 887.25 + ], + "quality": { + "area_px": 1315.5, + "perimeter_px": 146.95840072631836, + "sharpness": { + "laplacian_var": 1340.2817284111175 + }, + "contrast": { + "p05": 6.0, + "p95": 139.0, + "dynamic_range": 133.0, + "mean_gray": 71.29202586206897, + "std_gray": 55.207834793804594 + }, + "geometry": { + "distance_to_center_norm": 0.5884263515472412, + "distance_to_border_px": 173.0 + }, + "edge_ratio": 1.0307763031238744, + "edge_lengths_px": [ + 37.336307525634766, + 36.400550842285156, + 36.22154235839844, + 37.0 + ] + }, + "confidence": 0.8508150578764381 + }, + { + "observation_id": "19e8cfd3-3120-4430-aa0d-589870139eaa", + "type": "aruco", + "marker_id": 58, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1074.0, + 873.0 + ], + [ + 1037.0, + 867.0 + ], + [ + 1041.0, + 833.0 + ], + [ + 1077.0, + 838.0 + ] + ], + "center_px": [ + 1057.25, + 852.75 + ], + "quality": { + "area_px": 1278.5, + "perimeter_px": 143.19171524047852, + "sharpness": { + "laplacian_var": 1831.4839019147375 + }, + "contrast": { + "p05": 12.0, + "p95": 161.0, + "dynamic_range": 149.0, + "mean_gray": 63.402038505096264, + "std_gray": 59.130068314326806 + }, + "geometry": { + "distance_to_center_norm": 0.297353595495224, + "distance_to_border_px": 207.0 + }, + "edge_ratio": 1.0948997505673104, + "edge_lengths_px": [ + 37.48332977294922, + 34.2344856262207, + 36.34556198120117, + 35.12833786010742 + ] + }, + "confidence": 0.7784578751540552 + }, + { + "observation_id": "2a7dabcc-d703-442b-a044-89cf92ae9587", + "type": "aruco", + "marker_id": 61, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 219.0, + 875.0 + ], + [ + 185.0, + 871.0 + ], + [ + 200.0, + 837.0 + ], + [ + 234.0, + 841.0 + ] + ], + "center_px": [ + 209.5, + 856.0 + ], + "quality": { + "area_px": 1216.0, + "perimeter_px": 142.79258728027344, + "sharpness": { + "laplacian_var": 1066.2569761515429 + }, + "contrast": { + "p05": 7.0, + "p95": 134.0, + "dynamic_range": 127.0, + "mean_gray": 64.05760368663594, + "std_gray": 51.97771943592741 + }, + "geometry": { + "distance_to_center_norm": 0.7393078804016113, + "distance_to_border_px": 185.0 + }, + "edge_ratio": 1.085507999730343, + "edge_lengths_px": [ + 34.2344856262207, + 37.161808013916016, + 34.2344856262207, + 37.161808013916016 + ] + }, + "confidence": 0.7468085604786412 + }, + { + "observation_id": "ae4bf0a3-4f4d-41c5-8d86-0c82568230ad", + "type": "aruco", + "marker_id": 77, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 450.0, + 845.0 + ], + [ + 416.0, + 840.0 + ], + [ + 427.0, + 807.0 + ], + [ + 462.0, + 810.0 + ] + ], + "center_px": [ + 438.75, + 825.5 + ], + "quality": { + "area_px": 1219.0, + "perimeter_px": 141.27907180786133, + "sharpness": { + "laplacian_var": 1191.8775008398277 + }, + "contrast": { + "p05": 7.0, + "p95": 141.0, + "dynamic_range": 134.0, + "mean_gray": 52.22432113341204, + "std_gray": 53.741888039853386 + }, + "geometry": { + "distance_to_center_norm": 0.5395745038986206, + "distance_to_border_px": 235.0 + }, + "edge_ratio": 1.0766555252850087, + "edge_lengths_px": [ + 34.36568069458008, + 34.78505325317383, + 35.12833786010742, + 37.0 + ] + }, + "confidence": 0.754806572372849 + }, + { + "observation_id": "e46d2095-2619-440d-8bfe-663c2d4446e5", + "type": "aruco", + "marker_id": 103, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1035.0, + 787.0 + ], + [ + 999.0, + 783.0 + ], + [ + 1003.0, + 750.0 + ], + [ + 1038.0, + 754.0 + ] + ], + "center_px": [ + 1018.75, + 768.5 + ], + "quality": { + "area_px": 1185.5, + "perimeter_px": 137.8269920349121, + "sharpness": { + "laplacian_var": 2152.720314487224 + }, + "contrast": { + "p05": 10.0, + "p95": 167.19999999999993, + "dynamic_range": 157.19999999999993, + "mean_gray": 92.37992831541219, + "std_gray": 65.92043992567754 + }, + "geometry": { + "distance_to_center_norm": 0.21420039236545563, + "distance_to_border_px": 293.0 + }, + "edge_ratio": 1.0931148314755494, + "edge_lengths_px": [ + 36.22154235839844, + 33.241539001464844, + 35.22782897949219, + 33.13608169555664 + ] + }, + "confidence": 0.7230103467414268 + }, + { + "observation_id": "00b7089b-54a7-4c6d-b1fa-3a065e1a7175", + "type": "aruco", + "marker_id": 83, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 255.0, + 783.0 + ], + [ + 222.0, + 779.0 + ], + [ + 235.0, + 747.0 + ], + [ + 268.0, + 750.0 + ] + ], + "center_px": [ + 245.0, + 764.75 + ], + "quality": { + "area_px": 1118.0, + "perimeter_px": 136.38574981689453, + "sharpness": { + "laplacian_var": 1510.6291484596854 + }, + "contrast": { + "p05": 7.0, + "p95": 139.89999999999998, + "dynamic_range": 132.89999999999998, + "mean_gray": 67.68199233716476, + "std_gray": 53.829822858530605 + }, + "geometry": { + "distance_to_center_norm": 0.6804566979408264, + "distance_to_border_px": 222.0 + }, + "edge_ratio": 1.070382925081377, + "edge_lengths_px": [ + 33.241539001464844, + 34.539833068847656, + 33.13608169555664, + 35.46829605102539 + ] + }, + "confidence": 0.6963240125272631 + }, + { + "observation_id": "66720fa6-cc63-47d0-ab0f-d95b9c48d180", + "type": "aruco", + "marker_id": 74, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 551.0, + 748.0 + ], + [ + 517.0, + 744.0 + ], + [ + 527.0, + 712.0 + ], + [ + 560.0, + 716.0 + ] + ], + "center_px": [ + 538.75, + 730.0 + ], + "quality": { + "area_px": 1110.0, + "perimeter_px": 134.24367141723633, + "sharpness": { + "laplacian_var": 1156.2808799569157 + }, + "contrast": { + "p05": 5.0, + "p95": 133.0, + "dynamic_range": 128.0, + "mean_gray": 63.15926892950392, + "std_gray": 55.41140423748503 + }, + "geometry": { + "distance_to_center_norm": 0.41955140233039856, + "distance_to_border_px": 332.0 + }, + "edge_ratio": 1.0298706574539795, + "edge_lengths_px": [ + 34.2344856262207, + 33.52610778808594, + 33.241539001464844, + 33.241539001464844 + ] + }, + "confidence": 0.718536832410984 + }, + { + "observation_id": "09ad6e09-503b-47b1-986f-4649676acd91", + "type": "aruco", + "marker_id": 52, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 462.0, + 736.0 + ], + [ + 428.0, + 733.0 + ], + [ + 438.0, + 701.0 + ], + [ + 471.0, + 705.0 + ] + ], + "center_px": [ + 449.75, + 718.75 + ], + "quality": { + "area_px": 1088.5, + "perimeter_px": 133.17976760864258, + "sharpness": { + "laplacian_var": 1402.953423031828 + }, + "contrast": { + "p05": 5.0, + "p95": 143.0, + "dynamic_range": 138.0, + "mean_gray": 52.592245989304814, + "std_gray": 54.26865034680293 + }, + "geometry": { + "distance_to_center_norm": 0.4908548593521118, + "distance_to_border_px": 344.0 + }, + "edge_ratio": 1.0573751051020355, + "edge_lengths_px": [ + 34.13209533691406, + 33.52610778808594, + 33.241539001464844, + 32.280025482177734 + ] + }, + "confidence": 0.6862906674889425 + }, + { + "observation_id": "c8fc42b1-1a50-47e7-91fe-48c7e3fdffe5", + "type": "aruco", + "marker_id": 51, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1020.0, + 701.0 + ], + [ + 986.0, + 698.0 + ], + [ + 989.0, + 666.0 + ], + [ + 1023.0, + 670.0 + ] + ], + "center_px": [ + 1004.5, + 683.75 + ], + "quality": { + "area_px": 1081.5, + "perimeter_px": 131.65172004699707, + "sharpness": { + "laplacian_var": 2587.490766222222 + }, + "contrast": { + "p05": 8.0, + "p95": 171.0, + "dynamic_range": 163.0, + "mean_gray": 62.81333333333333, + "std_gray": 63.23861548839355 + }, + "geometry": { + "distance_to_center_norm": 0.1366197019815445, + "distance_to_border_px": 379.0 + }, + "edge_ratio": 1.099203085678318, + "edge_lengths_px": [ + 34.13209533691406, + 32.140316009521484, + 34.2344856262207, + 31.14482307434082 + ] + }, + "confidence": 0.6559297452800281 + }, + { + "observation_id": "bacc0e1a-7fde-419b-838a-389623b121d0", + "type": "aruco", + "marker_id": 66, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1296.0, + 678.0 + ], + [ + 1262.0, + 674.0 + ], + [ + 1262.0, + 643.0 + ], + [ + 1297.0, + 647.0 + ] + ], + "center_px": [ + 1279.25, + 660.5 + ], + "quality": { + "area_px": 1071.5, + "perimeter_px": 131.4784393310547, + "sharpness": { + "laplacian_var": 2042.0665049660445 + }, + "contrast": { + "p05": 15.0, + "p95": 170.89999999999998, + "dynamic_range": 155.89999999999998, + "mean_gray": 61.50740242261104, + "std_gray": 59.78662946091715 + }, + "geometry": { + "distance_to_center_norm": 0.3098035752773285, + "distance_to_border_px": 402.0 + }, + "edge_ratio": 1.136381579983619, + "edge_lengths_px": [ + 34.2344856262207, + 31.0, + 35.22782897949219, + 31.016124725341797 + ] + }, + "confidence": 0.6286034074431499 + }, + { + "observation_id": "67b7df35-e2c2-4bc0-8419-301d0c8e984e", + "type": "aruco", + "marker_id": 210, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 745.0, + 691.0 + ], + [ + 751.0, + 660.0 + ], + [ + 785.0, + 663.0 + ], + [ + 779.0, + 694.0 + ] + ], + "center_px": [ + 765.0, + 677.0 + ], + "quality": { + "area_px": 1072.0, + "perimeter_px": 131.41480255126953, + "sharpness": { + "laplacian_var": 2480.0758828441794 + }, + "contrast": { + "p05": 5.0, + "p95": 163.0, + "dynamic_range": 158.0, + "mean_gray": 59.11185086551265, + "std_gray": 62.05058505683248 + }, + "geometry": { + "distance_to_center_norm": 0.21636399626731873, + "distance_to_border_px": 386.0 + }, + "edge_ratio": 1.0809743349171472, + "edge_lengths_px": [ + 31.575305938720703, + 34.13209533691406, + 31.575305938720703, + 34.13209533691406 + ] + }, + "confidence": 0.6611319469684201 + }, + { + "observation_id": "50e4ddbc-af24-41b8-b02b-713673afec60", + "type": "aruco", + "marker_id": 81, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 531.0, + 694.0 + ], + [ + 498.0, + 690.0 + ], + [ + 508.0, + 660.0 + ], + [ + 541.0, + 663.0 + ] + ], + "center_px": [ + 519.5, + 676.75 + ], + "quality": { + "area_px": 1041.5, + "perimeter_px": 130.57339096069336, + "sharpness": { + "laplacian_var": 1416.29722461617 + }, + "contrast": { + "p05": 5.0, + "p95": 144.0, + "dynamic_range": 139.0, + "mean_gray": 52.71468926553672, + "std_gray": 55.940903634815506 + }, + "geometry": { + "distance_to_center_norm": 0.4187542200088501, + "distance_to_border_px": 386.0 + }, + "edge_ratio": 1.0511897806934636, + "edge_lengths_px": [ + 33.241539001464844, + 31.62277603149414, + 33.13608169555664, + 32.572994232177734 + ] + }, + "confidence": 0.6605213883217984 + }, + { + "observation_id": "6126a896-4e2f-45c8-86ba-c05713cadd60", + "type": "aruco", + "marker_id": 95, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1168.0, + 693.0 + ], + [ + 1133.0, + 690.0 + ], + [ + 1135.0, + 659.0 + ], + [ + 1169.0, + 663.0 + ] + ], + "center_px": [ + 1151.25, + 676.25 + ], + "quality": { + "area_px": 1057.5, + "perimeter_px": 130.4439353942871, + "sharpness": { + "laplacian_var": 2344.0603509101147 + }, + "contrast": { + "p05": 13.0, + "p95": 172.0, + "dynamic_range": 159.0, + "mean_gray": 73.05616438356165, + "std_gray": 64.98242857607133 + }, + "geometry": { + "distance_to_center_norm": 0.21319137513637543, + "distance_to_border_px": 387.0 + }, + "edge_ratio": 1.1702945904069395, + "edge_lengths_px": [ + 35.12833786010742, + 31.064449310302734, + 34.2344856262207, + 30.01666259765625 + ] + }, + "confidence": 0.6024124231445473 + }, + { + "observation_id": "490207fd-1267-48cf-82f1-ca8684ed2d22", + "type": "aruco", + "marker_id": 101, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 348.0, + 693.0 + ], + [ + 316.0, + 689.0 + ], + [ + 328.0, + 659.0 + ], + [ + 359.0, + 662.0 + ] + ], + "center_px": [ + 337.75, + 675.75 + ], + "quality": { + "area_px": 1001.0, + "perimeter_px": 128.59861183166504, + "sharpness": { + "laplacian_var": 1657.4714991874469 + }, + "contrast": { + "p05": 6.0, + "p95": 144.0, + "dynamic_range": 138.0, + "mean_gray": 65.53857350800583, + "std_gray": 55.69563690810766 + }, + "geometry": { + "distance_to_center_norm": 0.5782226920127869, + "distance_to_border_px": 316.0 + }, + "edge_ratio": 1.056155247118644, + "edge_lengths_px": [ + 32.24903106689453, + 32.31098937988281, + 31.14482307434082, + 32.893768310546875 + ] + }, + "confidence": 0.6318515532199671 + }, + { + "observation_id": "09dca9b2-2b90-44e6-b7e8-2a011e32688c", + "type": "aruco", + "marker_id": 97, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1291.0, + 561.0 + ], + [ + 1258.0, + 558.0 + ], + [ + 1258.0, + 530.0 + ], + [ + 1291.0, + 534.0 + ] + ], + "center_px": [ + 1274.5, + 545.75 + ], + "quality": { + "area_px": 907.5, + "perimeter_px": 121.37762069702148, + "sharpness": { + "laplacian_var": 2807.217754501385 + }, + "contrast": { + "p05": 12.0, + "p95": 177.0, + "dynamic_range": 165.0, + "mean_gray": 90.91118421052632, + "std_gray": 68.34186515459007 + }, + "geometry": { + "distance_to_center_norm": 0.28557947278022766, + "distance_to_border_px": 519.0 + }, + "edge_ratio": 1.2311681111653645, + "edge_lengths_px": [ + 33.13608169555664, + 28.0, + 33.241539001464844, + 27.0 + ] + }, + "confidence": 0.4914032409654731 + }, + { + "observation_id": "9913d007-3844-466b-be03-c194f5962a6d", + "type": "aruco", + "marker_id": 55, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1158.0, + 571.0 + ], + [ + 1124.0, + 568.0 + ], + [ + 1126.0, + 541.0 + ], + [ + 1159.0, + 544.0 + ] + ], + "center_px": [ + 1141.75, + 556.0 + ], + "quality": { + "area_px": 909.0, + "perimeter_px": 121.36066246032715, + "sharpness": { + "laplacian_var": 3551.4175699316465 + }, + "contrast": { + "p05": 7.0, + "p95": 175.0, + "dynamic_range": 168.0, + "mean_gray": 73.19261637239165, + "std_gray": 66.84154961153135 + }, + "geometry": { + "distance_to_center_norm": 0.16564738750457764, + "distance_to_border_px": 509.0 + }, + "edge_ratio": 1.2632854992156286, + "edge_lengths_px": [ + 34.13209533691406, + 27.073972702026367, + 33.13608169555664, + 27.018512725830078 + ] + }, + "confidence": 0.4797015404485084 + }, + { + "observation_id": "fabe41f0-022a-4f7b-b208-e2ae693898ef", + "type": "aruco", + "marker_id": 82, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 397.0, + 569.0 + ], + [ + 365.0, + 566.0 + ], + [ + 376.0, + 539.0 + ], + [ + 407.0, + 542.0 + ] + ], + "center_px": [ + 386.25, + 554.0 + ], + "quality": { + "area_px": 882.0, + "perimeter_px": 121.23225975036621, + "sharpness": { + "laplacian_var": 1831.5783382505292 + }, + "contrast": { + "p05": 6.75, + "p95": 150.0, + "dynamic_range": 143.25, + "mean_gray": 67.8741610738255, + "std_gray": 59.42320014018287 + }, + "geometry": { + "distance_to_center_norm": 0.5210576057434082, + "distance_to_border_px": 365.0 + }, + "edge_ratio": 1.116279307016818, + "edge_lengths_px": [ + 32.140316009521484, + 29.154760360717773, + 31.14482307434082, + 28.792360305786133 + ] + }, + "confidence": 0.5267498880467387 + }, + { + "observation_id": "2e67c255-8a36-4a48-880b-9496416452e4", + "type": "aruco", + "marker_id": 73, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 351.0, + 562.0 + ], + [ + 321.0, + 559.0 + ], + [ + 332.0, + 531.0 + ], + [ + 362.0, + 534.0 + ] + ], + "center_px": [ + 341.5, + 546.5 + ], + "quality": { + "area_px": 873.0, + "perimeter_px": 120.46569061279297, + "sharpness": { + "laplacian_var": 2431.8382391255177 + }, + "contrast": { + "p05": 5.0, + "p95": 150.0, + "dynamic_range": 145.0, + "mean_gray": 74.05414551607446, + "std_gray": 57.07287868263392 + }, + "geometry": { + "distance_to_center_norm": 0.5615617036819458, + "distance_to_border_px": 321.0 + }, + "edge_ratio": 1.0022075452677388, + "edge_lengths_px": [ + 30.149627685546875, + 30.08321762084961, + 30.149627685546875, + 30.08321762084961 + ] + }, + "confidence": 0.5807180386419054 + }, + { + "observation_id": "d825a1d0-bd8b-4dc1-8115-bdeb67b4ab72", + "type": "aruco", + "marker_id": 79, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1021.0, + 525.0 + ], + [ + 989.0, + 522.0 + ], + [ + 992.0, + 495.0 + ], + [ + 1024.0, + 498.0 + ] + ], + "center_px": [ + 1006.5, + 510.0 + ], + "quality": { + "area_px": 873.0, + "perimeter_px": 118.61294174194336, + "sharpness": { + "laplacian_var": 4504.870848284849 + }, + "contrast": { + "p05": 6.0, + "p95": 180.0, + "dynamic_range": 174.0, + "mean_gray": 85.1781045751634, + "std_gray": 70.58871934217356 + }, + "geometry": { + "distance_to_center_norm": 0.050240520387887955, + "distance_to_border_px": 495.0 + }, + "edge_ratio": 1.1831014059015696, + "edge_lengths_px": [ + 32.140316009521484, + 27.166154861450195, + 32.140316009521484, + 27.166154861450195 + ] + }, + "confidence": 0.49192740123277356 + }, + { + "observation_id": "3b08d743-aac0-4354-aa3a-de3144747406", + "type": "aruco", + "marker_id": 54, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1252.0, + 514.0 + ], + [ + 1220.0, + 511.0 + ], + [ + 1220.0, + 484.0 + ], + [ + 1251.0, + 487.0 + ] + ], + "center_px": [ + 1235.75, + 499.0 + ], + "quality": { + "area_px": 849.0, + "perimeter_px": 117.30365180969238, + "sharpness": { + "laplacian_var": 2283.6213533003915 + }, + "contrast": { + "p05": 9.0, + "p95": 174.35000000000002, + "dynamic_range": 165.35000000000002, + "mean_gray": 48.146341463414636, + "std_gray": 54.984567161958566 + }, + "geometry": { + "distance_to_center_norm": 0.2531031668186188, + "distance_to_border_px": 484.0 + }, + "edge_ratio": 1.1903820744267217, + "edge_lengths_px": [ + 32.140316009521484, + 27.0, + 31.14482307434082, + 27.018512725830078 + ] + }, + "confidence": 0.4754775900608054 + }, + { + "observation_id": "416996ee-8a25-4807-9557-29d1de226ac2", + "type": "aruco", + "marker_id": 47, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1193.0, + 506.0 + ], + [ + 1161.0, + 503.0 + ], + [ + 1162.0, + 477.0 + ], + [ + 1194.0, + 480.0 + ] + ], + "center_px": [ + 1177.5, + 491.5 + ], + "quality": { + "area_px": 835.0, + "perimeter_px": 116.3190803527832, + "sharpness": { + "laplacian_var": 3457.407286200378 + }, + "contrast": { + "p05": 8.700000000000003, + "p95": 175.29999999999995, + "dynamic_range": 166.59999999999997, + "mean_gray": 67.48, + "std_gray": 64.339662795943 + }, + "geometry": { + "distance_to_center_norm": 0.20231616497039795, + "distance_to_border_px": 477.0 + }, + "edge_ratio": 1.2352526656211855, + "edge_lengths_px": [ + 32.140316009521484, + 26.019224166870117, + 32.140316009521484, + 26.019224166870117 + ] + }, + "confidence": 0.4506500428288729 + }, + { + "observation_id": "af8027d9-3382-48d2-b5a2-72e3c246d07b", + "type": "aruco", + "marker_id": 215, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 911.0, + 465.0 + ], + [ + 916.0, + 439.0 + ], + [ + 947.0, + 442.0 + ], + [ + 943.0, + 468.0 + ] + ], + "center_px": [ + 929.25, + 453.5 + ], + "quality": { + "area_px": 832.5, + "perimeter_px": 116.06743621826172, + "sharpness": { + "laplacian_var": 3145.2820056363016 + }, + "contrast": { + "p05": 5.600000000000001, + "p95": 170.0, + "dynamic_range": 164.4, + "mean_gray": 67.11467116357504, + "std_gray": 66.59634264655173 + }, + "geometry": { + "distance_to_center_norm": 0.08334723860025406, + "distance_to_border_px": 439.0 + }, + "edge_ratio": 1.2217914851828586, + "edge_lengths_px": [ + 26.476404190063477, + 31.14482307434082, + 26.305892944335938, + 32.140316009521484 + ] + }, + "confidence": 0.45425099677866587 + }, + { + "observation_id": "1f2362f1-4f75-451c-9819-2dc9d0f6c6a7", + "type": "aruco", + "marker_id": 96, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1063.0, + 466.0 + ], + [ + 1032.0, + 463.0 + ], + [ + 1035.0, + 438.0 + ], + [ + 1066.0, + 440.0 + ] + ], + "center_px": [ + 1049.0, + 451.75 + ], + "quality": { + "area_px": 798.0, + "perimeter_px": 113.5611343383789, + "sharpness": { + "laplacian_var": 3102.229913070718 + }, + "contrast": { + "p05": 7.0, + "p95": 173.79999999999995, + "dynamic_range": 166.79999999999995, + "mean_gray": 75.83185840707965, + "std_gray": 67.87858794830707 + }, + "geometry": { + "distance_to_center_norm": 0.11379126459360123, + "distance_to_border_px": 438.0 + }, + "edge_ratio": 1.2369188943307199, + "edge_lengths_px": [ + 31.14482307434082, + 25.179357528686523, + 31.064449310302734, + 26.172504425048828 + ] + }, + "confidence": 0.430100956852032 + }, + { + "observation_id": "3941878a-775b-42ee-ab72-50efaea6b0eb", + "type": "aruco", + "marker_id": 211, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 795.0, + 453.0 + ], + [ + 800.0, + 428.0 + ], + [ + 831.0, + 430.0 + ], + [ + 826.0, + 455.0 + ] + ], + "center_px": [ + 813.0, + 441.5 + ], + "quality": { + "area_px": 785.0, + "perimeter_px": 113.11909484863281, + "sharpness": { + "laplacian_var": 3028.7895059234447 + }, + "contrast": { + "p05": 5.0, + "p95": 170.0, + "dynamic_range": 165.0, + "mean_gray": 69.51624548736461, + "std_gray": 66.70851451928262 + }, + "geometry": { + "distance_to_center_norm": 0.16065120697021484, + "distance_to_border_px": 428.0 + }, + "edge_ratio": 1.2184479216900055, + "edge_lengths_px": [ + 25.495098114013672, + 31.064449310302734, + 25.495098114013672, + 31.064449310302734 + ] + }, + "confidence": 0.4295081669206363 + }, + { + "observation_id": "769738b2-470f-43f6-a52b-9917cc91ef4d", + "type": "aruco", + "marker_id": 86, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 461.0, + 415.0 + ], + [ + 432.0, + 411.0 + ], + [ + 442.0, + 388.0 + ], + [ + 470.0, + 390.0 + ] + ], + "center_px": [ + 451.25, + 401.0 + ], + "quality": { + "area_px": 712.5, + "perimeter_px": 108.99643135070801, + "sharpness": { + "laplacian_var": 2061.9360946745564 + }, + "contrast": { + "p05": 4.0, + "p95": 154.04999999999995, + "dynamic_range": 150.04999999999995, + "mean_gray": 65.625, + "std_gray": 61.092519292148516 + }, + "geometry": { + "distance_to_center_norm": 0.4788190424442291, + "distance_to_border_px": 388.0 + }, + "edge_ratio": 1.167253273157749, + "edge_lengths_px": [ + 29.27456283569336, + 25.079872131347656, + 28.07133674621582, + 26.570659637451172 + ] + }, + "confidence": 0.4069382463284863 + }, + { + "observation_id": "45ab6cb0-09c0-4378-b72c-e66ef1a60b52", + "type": "aruco", + "marker_id": 62, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1052.0, + 428.0 + ], + [ + 1022.0, + 425.0 + ], + [ + 1025.0, + 401.0 + ], + [ + 1055.0, + 404.0 + ] + ], + "center_px": [ + 1038.5, + 414.5 + ], + "quality": { + "area_px": 729.0, + "perimeter_px": 108.67280197143555, + "sharpness": { + "laplacian_var": 2547.5664047243354 + }, + "contrast": { + "p05": 6.25, + "p95": 166.0, + "dynamic_range": 159.75, + "mean_gray": 38.926877470355734, + "std_gray": 48.86620222903898 + }, + "geometry": { + "distance_to_center_norm": 0.13439396023750305, + "distance_to_border_px": 401.0 + }, + "edge_ratio": 1.2465336864646532, + "edge_lengths_px": [ + 30.149627685546875, + 24.1867733001709, + 30.149627685546875, + 24.1867733001709 + ] + }, + "confidence": 0.38988116027442876 + }, + { + "observation_id": "db53f052-f362-44a1-971e-12b824493d95", + "type": "aruco", + "marker_id": 84, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 518.0, + 374.0 + ], + [ + 489.0, + 372.0 + ], + [ + 498.0, + 349.0 + ], + [ + 526.0, + 351.0 + ] + ], + "center_px": [ + 507.75, + 361.5 + ], + "quality": { + "area_px": 672.5, + "perimeter_px": 106.18998908996582, + "sharpness": { + "laplacian_var": 2747.6113162129636 + }, + "contrast": { + "p05": 4.5, + "p95": 159.0, + "dynamic_range": 154.5, + "mean_gray": 70.52229299363057, + "std_gray": 59.676152134631494 + }, + "geometry": { + "distance_to_center_norm": 0.44141843914985657, + "distance_to_border_px": 349.0 + }, + "edge_ratio": 1.1937159984450838, + "edge_lengths_px": [ + 29.068883895874023, + 24.698177337646484, + 28.07133674621582, + 24.351591110229492 + ] + }, + "confidence": 0.3755778878035692 + }, + { + "observation_id": "dee97336-fa35-4236-b3ad-d81accbe046f", + "type": "aruco", + "marker_id": 85, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1232.0, + 345.0 + ], + [ + 1202.0, + 343.0 + ], + [ + 1202.0, + 321.0 + ], + [ + 1232.0, + 322.0 + ] + ], + "center_px": [ + 1217.0, + 332.75 + ], + "quality": { + "area_px": 675.0, + "perimeter_px": 105.08325576782227, + "sharpness": { + "laplacian_var": 2779.4463606379195 + }, + "contrast": { + "p05": 9.0, + "p95": 179.0, + "dynamic_range": 170.0, + "mean_gray": 107.91558441558442, + "std_gray": 66.17672305935757 + }, + "geometry": { + "distance_to_center_norm": 0.29974374175071716, + "distance_to_border_px": 321.0 + }, + "edge_ratio": 1.366663325916637, + "edge_lengths_px": [ + 30.066593170166016, + 22.0, + 30.01666259765625, + 23.0 + ] + }, + "confidence": 0.3292690975651811 + }, + { + "observation_id": "57f44237-7817-465c-a14c-029ed61940ca", + "type": "aruco", + "marker_id": 72, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 605.0, + 349.0 + ], + [ + 577.0, + 346.0 + ], + [ + 584.0, + 324.0 + ], + [ + 613.0, + 327.0 + ] + ], + "center_px": [ + 594.75, + 336.5 + ], + "quality": { + "area_px": 649.5, + "perimeter_px": 103.81120681762695, + "sharpness": { + "laplacian_var": 2272.1386578449906 + }, + "contrast": { + "p05": 3.950000000000003, + "p95": 160.0, + "dynamic_range": 156.05, + "mean_gray": 50.90652173913043, + "std_gray": 56.94930965789135 + }, + "geometry": { + "distance_to_center_norm": 0.3796025514602661, + "distance_to_border_px": 324.0 + }, + "edge_ratio": 1.262832894695099, + "edge_lengths_px": [ + 28.160255432128906, + 23.0867919921875, + 29.154760360717773, + 23.409399032592773 + ] + }, + "confidence": 0.34287988681554293 + }, + { + "observation_id": "6d210c89-4dfc-448c-8e67-d2852b0f599b", + "type": "aruco", + "marker_id": 60, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 498.0, + 345.0 + ], + [ + 469.0, + 343.0 + ], + [ + 478.0, + 321.0 + ], + [ + 506.0, + 324.0 + ] + ], + "center_px": [ + 487.75, + 333.25 + ], + "quality": { + "area_px": 634.0, + "perimeter_px": 103.47107124328613, + "sharpness": { + "laplacian_var": 2284.1576621181016 + }, + "contrast": { + "p05": 6.0, + "p95": 155.0, + "dynamic_range": 149.0, + "mean_gray": 87.62857142857143, + "std_gray": 60.95824960300681 + }, + "geometry": { + "distance_to_center_norm": 0.46804022789001465, + "distance_to_border_px": 321.0 + }, + "edge_ratio": 1.2935484043457481, + "edge_lengths_px": [ + 29.068883895874023, + 23.76972770690918, + 28.160255432128906, + 22.472204208374023 + ] + }, + "confidence": 0.3267497878291175 + }, + { + "observation_id": "f3f91423-f9a8-4939-b352-35d4d0fd81ec", + "type": "aruco", + "marker_id": 105, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1175.0, + 320.0 + ], + [ + 1146.0, + 319.0 + ], + [ + 1147.0, + 297.0 + ], + [ + 1177.0, + 299.0 + ] + ], + "center_px": [ + 1161.25, + 308.75 + ], + "quality": { + "area_px": 636.5, + "perimeter_px": 102.20156669616699, + "sharpness": { + "laplacian_var": 1906.9584979832518 + }, + "contrast": { + "p05": 11.05, + "p95": 160.95, + "dynamic_range": 149.89999999999998, + "mean_gray": 39.64253393665158, + "std_gray": 46.4767620707778 + }, + "geometry": { + "distance_to_center_norm": 0.278321772813797, + "distance_to_border_px": 297.0 + }, + "edge_ratio": 1.4252932698015266, + "edge_lengths_px": [ + 29.017236709594727, + 22.022714614868164, + 30.066593170166016, + 21.095022201538086 + ] + }, + "confidence": 0.29771650671754185 + }, + { + "observation_id": "c5de4fd8-3a81-4b18-bd2f-0c7975923873", + "type": "aruco", + "marker_id": 56, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 653.0, + 298.0 + ], + [ + 624.0, + 296.0 + ], + [ + 631.0, + 275.0 + ], + [ + 659.0, + 277.0 + ] + ], + "center_px": [ + 641.75, + 286.5 + ], + "quality": { + "area_px": 611.5, + "perimeter_px": 101.11649513244629, + "sharpness": { + "laplacian_var": 2085.4494378969903 + }, + "contrast": { + "p05": 5.0, + "p95": 154.59999999999997, + "dynamic_range": 149.59999999999997, + "mean_gray": 43.54079254079254, + "std_gray": 51.223322379059276 + }, + "geometry": { + "distance_to_center_norm": 0.36939603090286255, + "distance_to_border_px": 275.0 + }, + "edge_ratio": 1.3309727339726407, + "edge_lengths_px": [ + 29.068883895874023, + 22.135944366455078, + 28.07133674621582, + 21.840330123901367 + ] + }, + "confidence": 0.3062922750114328 + }, + { + "observation_id": "d354b3b3-a000-48a8-aac6-6349bc336dc6", + "type": "aruco", + "marker_id": 53, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 598.0, + 305.0 + ], + [ + 570.0, + 303.0 + ], + [ + 578.0, + 281.0 + ], + [ + 605.0, + 284.0 + ] + ], + "center_px": [ + 587.75, + 293.25 + ], + "quality": { + "area_px": 610.0, + "perimeter_px": 100.78283500671387, + "sharpness": { + "laplacian_var": 2821.998306398522 + }, + "contrast": { + "p05": 4.0, + "p95": 160.0, + "dynamic_range": 156.0, + "mean_gray": 82.67972350230414, + "std_gray": 62.39905177642013 + }, + "geometry": { + "distance_to_center_norm": 0.40546831488609314, + "distance_to_border_px": 281.0 + }, + "edge_ratio": 1.2681336870703048, + "edge_lengths_px": [ + 28.07133674621582, + 23.409399032592773, + 27.166154861450195, + 22.135944366455078 + ] + }, + "confidence": 0.3206812269187209 + }, + { + "observation_id": "9ca5ba84-94b8-48e4-b940-3fcc7e29dae8", + "type": "aruco", + "marker_id": 0, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 945.0, + 291.0 + ], + [ + 948.0, + 269.0 + ], + [ + 976.0, + 272.0 + ], + [ + 973.0, + 293.0 + ] + ], + "center_px": [ + 960.5, + 281.25 + ], + "quality": { + "area_px": 609.5, + "perimeter_px": 99.64839935302734, + "sharpness": { + "laplacian_var": 3550.7234911345977 + }, + "contrast": { + "p05": 4.0, + "p95": 164.0, + "dynamic_range": 160.0, + "mean_gray": 68.16121495327103, + "std_gray": 63.380026412558394 + }, + "geometry": { + "distance_to_center_norm": 0.2349172830581665, + "distance_to_border_px": 269.0 + }, + "edge_ratio": 1.3274871720727923, + "edge_lengths_px": [ + 22.203603744506836, + 28.160255432128906, + 21.21320343017578, + 28.07133674621582 + ] + }, + "confidence": 0.3060920978233394 + }, + { + "observation_id": "15029a08-159e-4700-acdf-1da58a94c227", + "type": "aruco", + "marker_id": 214, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 838.0, + 257.0 + ], + [ + 843.0, + 236.0 + ], + [ + 871.0, + 239.0 + ], + [ + 867.0, + 259.0 + ] + ], + "center_px": [ + 854.75, + 247.75 + ], + "quality": { + "area_px": 595.5, + "perimeter_px": 99.21224975585938, + "sharpness": { + "laplacian_var": 3935.1544606041784 + }, + "contrast": { + "p05": 6.0, + "p95": 171.39999999999998, + "dynamic_range": 165.39999999999998, + "mean_gray": 85.85611510791367, + "std_gray": 67.38086327724474 + }, + "geometry": { + "distance_to_center_norm": 0.28201329708099365, + "distance_to_border_px": 236.0 + }, + "edge_ratio": 1.4252192867407514, + "edge_lengths_px": [ + 21.587032318115234, + 28.160255432128906, + 20.39607810974121, + 29.068883895874023 + ] + }, + "confidence": 0.27855362588298643 + }, + { + "observation_id": "fb1be42b-0a65-4efd-be0a-c087ef1ca618", + "type": "aruco", + "marker_id": 57, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1295.0, + 260.0 + ], + [ + 1266.0, + 258.0 + ], + [ + 1266.0, + 238.0 + ], + [ + 1295.0, + 240.0 + ] + ], + "center_px": [ + 1280.5, + 249.0 + ], + "quality": { + "area_px": 580.0, + "perimeter_px": 98.13776779174805, + "sharpness": { + "laplacian_var": 3110.9833854671283 + }, + "contrast": { + "p05": 8.0, + "p95": 176.0, + "dynamic_range": 168.0, + "mean_gray": 74.41882352941177, + "std_gray": 63.35430621720181 + }, + "geometry": { + "distance_to_center_norm": 0.39302486181259155, + "distance_to_border_px": 238.0 + }, + "edge_ratio": 1.4534441947937011, + "edge_lengths_px": [ + 29.068883895874023, + 20.0, + 29.068883895874023, + 20.0 + ] + }, + "confidence": 0.26603475252212855 + }, + { + "observation_id": "022590f8-e95d-4709-854f-3eb3440e5bdb", + "type": "aruco", + "marker_id": 46, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 643.0, + 263.0 + ], + [ + 616.0, + 261.0 + ], + [ + 623.0, + 240.0 + ], + [ + 650.0, + 243.0 + ] + ], + "center_px": [ + 633.0, + 251.75 + ], + "quality": { + "area_px": 571.0, + "perimeter_px": 97.56569290161133, + "sharpness": { + "laplacian_var": 3130.2477908962655 + }, + "contrast": { + "p05": 3.0500000000000007, + "p95": 157.0, + "dynamic_range": 153.95, + "mean_gray": 76.37064676616916, + "std_gray": 61.40518261368904 + }, + "geometry": { + "distance_to_center_norm": 0.39575833082199097, + "distance_to_border_px": 240.0 + }, + "edge_ratio": 1.2820500611010577, + "edge_lengths_px": [ + 27.073972702026367, + 22.135944366455078, + 27.166154861450195, + 21.189620971679688 + ] + }, + "confidence": 0.29692028276941096 + }, + { + "observation_id": "52c87632-eda4-472b-8962-acfbe5742c37", + "type": "aruco", + "marker_id": 67, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 547.0, + 267.0 + ], + [ + 519.0, + 264.0 + ], + [ + 527.0, + 245.0 + ], + [ + 554.0, + 247.0 + ] + ], + "center_px": [ + 536.75, + 255.75 + ], + "quality": { + "area_px": 555.0, + "perimeter_px": 97.03937721252441, + "sharpness": { + "laplacian_var": 2636.894812623274 + }, + "contrast": { + "p05": 5.0, + "p95": 153.0, + "dynamic_range": 148.0, + "mean_gray": 53.36923076923077, + "std_gray": 53.63506389383221 + }, + "geometry": { + "distance_to_center_norm": 0.46288082003593445, + "distance_to_border_px": 245.0 + }, + "edge_ratio": 1.3659730319007104, + "edge_lengths_px": [ + 28.160255432128906, + 20.615528106689453, + 27.073972702026367, + 21.189620971679688 + ] + }, + "confidence": 0.2708691836215508 + }, + { + "observation_id": "fcdb8eed-b730-4c1e-b25d-745435a7ee37", + "type": "aruco", + "marker_id": 68, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 670.0, + 233.0 + ], + [ + 643.0, + 231.0 + ], + [ + 649.0, + 211.0 + ], + [ + 676.0, + 213.0 + ] + ], + "center_px": [ + 659.5, + 222.0 + ], + "quality": { + "area_px": 552.0, + "perimeter_px": 95.90917205810547, + "sharpness": { + "laplacian_var": 2713.9479986149586 + }, + "contrast": { + "p05": 4.0, + "p95": 154.0, + "dynamic_range": 150.0, + "mean_gray": 56.64736842105263, + "std_gray": 56.22508213863137 + }, + "geometry": { + "distance_to_center_norm": 0.39722105860710144, + "distance_to_border_px": 211.0 + }, + "edge_ratio": 1.296608115767546, + "edge_lengths_px": [ + 27.073972702026367, + 20.880613327026367, + 27.073972702026367, + 20.880613327026367 + ] + }, + "confidence": 0.2838174430075637 + }, + { + "observation_id": "1e6a7a38-81a8-453b-8f5c-27b3d5e73ef4", + "type": "aruco", + "marker_id": 59, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1194.0, + 232.0 + ], + [ + 1166.0, + 229.0 + ], + [ + 1167.0, + 210.0 + ], + [ + 1195.0, + 212.0 + ] + ], + "center_px": [ + 1180.5, + 220.75 + ], + "quality": { + "area_px": 548.5, + "perimeter_px": 95.28287506103516, + "sharpness": { + "laplacian_var": 2655.7682634276916 + }, + "contrast": { + "p05": 10.850000000000001, + "p95": 173.0, + "dynamic_range": 162.15, + "mean_gray": 92.17085427135679, + "std_gray": 65.98432092408721 + }, + "geometry": { + "distance_to_center_norm": 0.35225802659988403, + "distance_to_border_px": 210.0 + }, + "edge_ratio": 1.480070093411099, + "edge_lengths_px": [ + 28.160255432128906, + 19.02629852294922, + 28.07133674621582, + 20.02498435974121 + ] + }, + "confidence": 0.24706037119088006 + }, + { + "observation_id": "2d9ec8d0-ddaf-41c7-a688-4c8611eb1ed4", + "type": "aruco", + "marker_id": 50, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 624.0, + 229.0 + ], + [ + 597.0, + 227.0 + ], + [ + 603.0, + 208.0 + ], + [ + 630.0, + 209.0 + ] + ], + "center_px": [ + 613.5, + 218.25 + ], + "quality": { + "area_px": 535.5, + "perimeter_px": 94.89795684814453, + "sharpness": { + "laplacian_var": 2596.1278927409 + }, + "contrast": { + "p05": 5.0, + "p95": 155.0, + "dynamic_range": 150.0, + "mean_gray": 53.540983606557376, + "std_gray": 54.96563469968869 + }, + "geometry": { + "distance_to_center_norm": 0.4292945861816406, + "distance_to_border_px": 208.0 + }, + "edge_ratio": 1.3588037904863357, + "edge_lengths_px": [ + 27.073972702026367, + 19.92485809326172, + 27.018512725830078, + 20.880613327026367 + ] + }, + "confidence": 0.2627310892856904 + }, + { + "observation_id": "c2c914fe-c119-4ea1-9f3d-d8472094f30a", + "type": "aruco", + "marker_id": 98, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 510.0, + 218.0 + ], + [ + 483.0, + 217.0 + ], + [ + 491.0, + 197.0 + ], + [ + 517.0, + 199.0 + ] + ], + "center_px": [ + 500.25, + 207.75 + ], + "quality": { + "area_px": 528.0, + "perimeter_px": 94.88443756103516, + "sharpness": { + "laplacian_var": 2499.0051128888886 + }, + "contrast": { + "p05": 6.699999999999999, + "p95": 158.0, + "dynamic_range": 151.3, + "mean_gray": 65.18666666666667, + "std_gray": 57.68237011619948 + }, + "geometry": { + "distance_to_center_norm": 0.514991283416748, + "distance_to_border_px": 197.0 + }, + "edge_ratio": 1.3343492191002224, + "edge_lengths_px": [ + 27.018512725830078, + 21.540658950805664, + 26.07680892944336, + 20.248456954956055 + ] + }, + "confidence": 0.26379900775702514 + }, + { + "observation_id": "528be2d8-e331-47e6-a227-ec1164d875b0", + "type": "aruco", + "marker_id": 102, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1131.0, + 206.0 + ], + [ + 1103.0, + 205.0 + ], + [ + 1105.0, + 185.0 + ], + [ + 1132.0, + 187.0 + ] + ], + "center_px": [ + 1117.75, + 195.75 + ], + "quality": { + "area_px": 538.5, + "perimeter_px": 94.2178726196289, + "sharpness": { + "laplacian_var": 3350.041262327416 + }, + "contrast": { + "p05": 7.0, + "p95": 175.0, + "dynamic_range": 168.0, + "mean_gray": 91.86923076923077, + "std_gray": 65.72714247845134 + }, + "geometry": { + "distance_to_center_norm": 0.34379374980926514, + "distance_to_border_px": 185.0 + }, + "edge_ratio": 1.4725854764687838, + "edge_lengths_px": [ + 28.017850875854492, + 20.099750518798828, + 27.073972702026367, + 19.02629852294922 + ] + }, + "confidence": 0.24378890443824783 + }, + { + "observation_id": "a42c9c4e-799d-43ee-9b38-84de33e8683c", + "type": "aruco", + "marker_id": 92, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1087.0, + 207.0 + ], + [ + 1060.0, + 205.0 + ], + [ + 1061.0, + 185.0 + ], + [ + 1088.0, + 187.0 + ] + ], + "center_px": [ + 1074.0, + 196.0 + ], + "quality": { + "area_px": 542.0, + "perimeter_px": 94.19791412353516, + "sharpness": { + "laplacian_var": 2688.183555736845 + }, + "contrast": { + "p05": 6.0, + "p95": 174.39999999999998, + "dynamic_range": 168.39999999999998, + "mean_gray": 57.038167938931295, + "std_gray": 59.69456668156693 + }, + "geometry": { + "distance_to_center_norm": 0.3290175497531891, + "distance_to_border_px": 185.0 + }, + "edge_ratio": 1.35200968029002, + "edge_lengths_px": [ + 27.073972702026367, + 20.02498435974121, + 27.073972702026367, + 20.02498435974121 + ] + }, + "confidence": 0.2672564690926056 + }, + { + "observation_id": "9a239f10-a567-470e-b922-d1184228d0dd", + "type": "aruco", + "marker_id": 208, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 959.0, + 185.0 + ], + [ + 961.0, + 166.0 + ], + [ + 988.0, + 167.0 + ], + [ + 986.0, + 187.0 + ] + ], + "center_px": [ + 973.5, + 176.25 + ], + "quality": { + "area_px": 529.5, + "perimeter_px": 93.29720878601074, + "sharpness": { + "laplacian_var": 2866.367040734082 + }, + "contrast": { + "p05": 8.0, + "p95": 167.0, + "dynamic_range": 159.0, + "mean_gray": 65.65879265091864, + "std_gray": 61.81752087601232 + }, + "geometry": { + "distance_to_center_norm": 0.33047276735305786, + "distance_to_border_px": 166.0 + }, + "edge_ratio": 1.4171165240421113, + "edge_lengths_px": [ + 19.10497283935547, + 27.018512725830078, + 20.099750518798828, + 27.073972702026367 + ] + }, + "confidence": 0.24909737061926332 + }, + { + "observation_id": "a79676d9-ffe4-43cc-bd37-0074d4a6aade", + "type": "aruco", + "marker_id": 70, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 535.0, + 197.0 + ], + [ + 508.0, + 196.0 + ], + [ + 515.0, + 177.0 + ], + [ + 541.0, + 178.0 + ] + ], + "center_px": [ + 524.75, + 187.0 + ], + "quality": { + "area_px": 510.0, + "perimeter_px": 93.21105194091797, + "sharpness": { + "laplacian_var": 2356.581153513094 + }, + "contrast": { + "p05": 5.0, + "p95": 152.75, + "dynamic_range": 147.75, + "mean_gray": 68.62841530054645, + "std_gray": 57.51909790899614 + }, + "geometry": { + "distance_to_center_norm": 0.5087849497795105, + "distance_to_border_px": 177.0 + }, + "edge_ratio": 1.3560203339650045, + "edge_lengths_px": [ + 27.018512725830078, + 20.248456954956055, + 26.019224166870117, + 19.92485809326172 + ] + }, + "confidence": 0.2507337032372072 + }, + { + "observation_id": "21f74402-ef2b-4d15-8e7e-38d01dd7cc27", + "type": "aruco", + "marker_id": 48, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1245.0, + 182.0 + ], + [ + 1217.0, + 182.0 + ], + [ + 1218.0, + 162.0 + ], + [ + 1245.0, + 164.0 + ] + ], + "center_px": [ + 1231.25, + 172.5 + ], + "quality": { + "area_px": 523.0, + "perimeter_px": 93.09895706176758, + "sharpness": { + "laplacian_var": 2281.304167960825 + }, + "contrast": { + "p05": 7.0, + "p95": 170.59999999999997, + "dynamic_range": 163.59999999999997, + "mean_gray": 58.580976863753214, + "std_gray": 58.77587379120597 + }, + "geometry": { + "distance_to_center_norm": 0.4146914482116699, + "distance_to_border_px": 162.0 + }, + "edge_ratio": 1.5555555555555556, + "edge_lengths_px": [ + 28.0, + 20.02498435974121, + 27.073972702026367, + 18.0 + ] + }, + "confidence": 0.22414285714285712 + }, + { + "observation_id": "10f7aabf-7465-4be7-a657-198a1e8397e5", + "type": "aruco", + "marker_id": 90, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 529.0, + 164.0 + ], + [ + 504.0, + 162.0 + ], + [ + 512.0, + 143.0 + ], + [ + 537.0, + 146.0 + ] + ], + "center_px": [ + 520.5, + 153.75 + ], + "quality": { + "area_px": 482.5, + "perimeter_px": 90.57247352600098, + "sharpness": { + "laplacian_var": 2758.881835598129 + }, + "contrast": { + "p05": 5.0, + "p95": 159.0, + "dynamic_range": 154.0, + "mean_gray": 72.25373134328358, + "std_gray": 59.716830119405316 + }, + "geometry": { + "distance_to_center_norm": 0.5312128067016602, + "distance_to_border_px": 143.0 + }, + "edge_ratio": 1.2782881952607832, + "edge_lengths_px": [ + 25.079872131347656, + 20.615528106689453, + 25.179357528686523, + 19.697715759277344 + ] + }, + "confidence": 0.25163861158949646 + }, + { + "observation_id": "7727fafe-e3e4-43e5-8524-d98d196e3591", + "type": "aruco", + "marker_id": 71, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1205.0, + 132.0 + ], + [ + 1178.0, + 130.0 + ], + [ + 1179.0, + 112.0 + ], + [ + 1205.0, + 114.0 + ] + ], + "center_px": [ + 1191.75, + 122.0 + ], + "quality": { + "area_px": 478.0, + "perimeter_px": 89.17853736877441, + "sharpness": { + "laplacian_var": 2741.8830122448985 + }, + "contrast": { + "p05": 9.0, + "p95": 175.0, + "dynamic_range": 166.0, + "mean_gray": 93.20857142857143, + "std_gray": 64.92975928506378 + }, + "geometry": { + "distance_to_center_norm": 0.4339226484298706, + "distance_to_border_px": 112.0 + }, + "edge_ratio": 1.5041095945570204, + "edge_lengths_px": [ + 27.073972702026367, + 18.027755737304688, + 26.07680892944336, + 18.0 + ] + }, + "confidence": 0.21186399436572845 + }, + { + "observation_id": "7ee3a4bc-7b52-41cb-950a-20b01260bc6e", + "type": "aruco", + "marker_id": 76, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 703.0, + 143.0 + ], + [ + 676.0, + 142.0 + ], + [ + 681.0, + 125.0 + ], + [ + 707.0, + 125.0 + ] + ], + "center_px": [ + 691.75, + 133.75 + ], + "quality": { + "area_px": 466.0, + "perimeter_px": 89.17764663696289, + "sharpness": { + "laplacian_var": 2872.055905546892 + }, + "contrast": { + "p05": 6.0, + "p95": 154.3, + "dynamic_range": 148.3, + "mean_gray": 69.07462686567165, + "std_gray": 57.19140772352158 + }, + "geometry": { + "distance_to_center_norm": 0.44198277592658997, + "distance_to_border_px": 125.0 + }, + "edge_ratio": 1.52474288801341, + "edge_lengths_px": [ + 27.018512725830078, + 17.72004508972168, + 26.0, + 18.439088821411133 + ] + }, + "confidence": 0.2037501988754542 + }, + { + "observation_id": "e022a045-eea7-41c7-bae6-83f0635bec60", + "type": "aruco", + "marker_id": 63, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1153.0, + 107.0 + ], + [ + 1127.0, + 105.0 + ], + [ + 1128.0, + 87.0 + ], + [ + 1154.0, + 89.0 + ] + ], + "center_px": [ + 1140.5, + 97.0 + ], + "quality": { + "area_px": 470.0, + "perimeter_px": 88.2091293334961, + "sharpness": { + "laplacian_var": 2309.8146520582413 + }, + "contrast": { + "p05": 8.0, + "p95": 169.79999999999995, + "dynamic_range": 161.79999999999995, + "mean_gray": 52.44606413994169, + "std_gray": 55.12822985088051 + }, + "geometry": { + "distance_to_center_norm": 0.4342997074127197, + "distance_to_border_px": 87.0 + }, + "edge_ratio": 1.4464811543614844, + "edge_lengths_px": [ + 26.07680892944336, + 18.027755737304688, + 26.07680892944336, + 18.027755737304688 + ] + }, + "confidence": 0.21661763956520202 + }, + { + "observation_id": "8ecacfb8-be0e-40b4-b4ec-2cff640d08ad", + "type": "aruco", + "marker_id": 78, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1272.0, + 82.0 + ], + [ + 1246.0, + 80.0 + ], + [ + 1246.0, + 63.0 + ], + [ + 1272.0, + 64.0 + ] + ], + "center_px": [ + 1259.0, + 72.25 + ], + "quality": { + "area_px": 455.0, + "perimeter_px": 87.09603309631348, + "sharpness": { + "laplacian_var": 3246.8920287923224 + }, + "contrast": { + "p05": 6.0, + "p95": 174.0, + "dynamic_range": 168.0, + "mean_gray": 72.00586510263929, + "std_gray": 62.65906417567878 + }, + "geometry": { + "distance_to_center_norm": 0.5040153861045837, + "distance_to_border_px": 63.0 + }, + "edge_ratio": 1.53392993702608, + "edge_lengths_px": [ + 26.07680892944336, + 17.0, + 26.019224166870117, + 18.0 + ] + }, + "confidence": 0.19774914486734868 + }, + { + "observation_id": "799cfb43-82f0-4ef8-8886-816f2a801d8d", + "type": "aruco", + "marker_id": 91, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 541.0, + 102.0 + ], + [ + 517.0, + 100.0 + ], + [ + 524.0, + 82.0 + ], + [ + 548.0, + 84.0 + ] + ], + "center_px": [ + 532.5, + 92.0 + ], + "quality": { + "area_px": 446.0, + "perimeter_px": 86.79279327392578, + "sharpness": { + "laplacian_var": 1916.7514437720026 + }, + "contrast": { + "p05": 6.0, + "p95": 153.0, + "dynamic_range": 147.0, + "mean_gray": 63.132075471698116, + "std_gray": 57.312737255057534 + }, + "geometry": { + "distance_to_center_norm": 0.5622040629386902, + "distance_to_border_px": 82.0 + }, + "edge_ratio": 1.2469802777748424, + "edge_lengths_px": [ + 24.083189010620117, + 19.313207626342773, + 24.083189010620117, + 19.313207626342773 + ] + }, + "confidence": 0.2384426912219541 + }, + { + "observation_id": "2fae18a9-af61-4549-bcbb-ae6222ef5efe", + "type": "aruco", + "marker_id": 65, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1221.0, + 92.0 + ], + [ + 1194.0, + 91.0 + ], + [ + 1196.0, + 74.0 + ], + [ + 1221.0, + 75.0 + ] + ], + "center_px": [ + 1208.0, + 83.0 + ], + "quality": { + "area_px": 443.0, + "perimeter_px": 86.15574836730957, + "sharpness": { + "laplacian_var": 2662.925749126058 + }, + "contrast": { + "p05": 9.0, + "p95": 169.5, + "dynamic_range": 160.5, + "mean_gray": 78.45921450151057, + "std_gray": 62.9812277070855 + }, + "geometry": { + "distance_to_center_norm": 0.4720624089241028, + "distance_to_border_px": 74.0 + }, + "edge_ratio": 1.5893242779900045, + "edge_lengths_px": [ + 27.018512725830078, + 17.11724281311035, + 25.01999282836914, + 17.0 + ] + }, + "confidence": 0.18582320639236513 + }, + { + "observation_id": "5c030c89-9e4c-4bc3-871c-2870b4307860", + "type": "aruco", + "marker_id": 217, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 872.0, + 94.0 + ], + [ + 876.0, + 77.0 + ], + [ + 901.0, + 79.0 + ], + [ + 898.0, + 96.0 + ] + ], + "center_px": [ + 886.75, + 86.5 + ], + "quality": { + "area_px": 440.5, + "perimeter_px": 85.88360595703125, + "sharpness": { + "laplacian_var": 3511.539361634158 + }, + "contrast": { + "p05": 6.5, + "p95": 162.0, + "dynamic_range": 155.5, + "mean_gray": 63.54380664652568, + "std_gray": 57.98369691704775 + }, + "geometry": { + "distance_to_center_norm": 0.4170648753643036, + "distance_to_border_px": 77.0 + }, + "edge_ratio": 1.510589005342621, + "edge_lengths_px": [ + 17.464248657226562, + 25.079872131347656, + 17.262676239013672, + 26.07680892944336 + ] + }, + "confidence": 0.19440540453295524 + }, + { + "observation_id": "a2d0e427-2b76-4448-a841-700dc61a24d1", + "type": "aruco", + "marker_id": 88, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 566.0, + 71.0 + ], + [ + 541.0, + 69.0 + ], + [ + 549.0, + 53.0 + ], + [ + 572.0, + 55.0 + ] + ], + "center_px": [ + 557.0, + 62.0 + ], + "quality": { + "area_px": 398.0, + "perimeter_px": 83.14321517944336, + "sharpness": { + "laplacian_var": 2854.559126619733 + }, + "contrast": { + "p05": 6.0, + "p95": 152.0, + "dynamic_range": 146.0, + "mean_gray": 68.89562289562289, + "std_gray": 58.07720869147506 + }, + "geometry": { + "distance_to_center_norm": 0.5676265954971313, + "distance_to_border_px": 53.0 + }, + "edge_ratio": 1.4676885473293615, + "edge_lengths_px": [ + 25.079872131347656, + 17.8885440826416, + 23.0867919921875, + 17.0880069732666 + ] + }, + "confidence": 0.1807831326449605 + }, + { + "observation_id": "670fa414-ba14-4868-99a8-d6f92b629060", + "type": "aruco", + "marker_id": 100, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 722.0, + 56.0 + ], + [ + 698.0, + 54.0 + ], + [ + 704.0, + 38.0 + ], + [ + 728.0, + 40.0 + ] + ], + "center_px": [ + 713.0, + 47.0 + ], + "quality": { + "area_px": 396.0, + "perimeter_px": 82.34239196777344, + "sharpness": { + "laplacian_var": 2794.7242344885444 + }, + "contrast": { + "p05": 7.0, + "p95": 151.0, + "dynamic_range": 144.0, + "mean_gray": 73.58585858585859, + "std_gray": 57.34578384327422 + }, + "geometry": { + "distance_to_center_norm": 0.500624418258667, + "distance_to_border_px": 38.0 + }, + "edge_ratio": 1.4093620776429432, + "edge_lengths_px": [ + 24.083189010620117, + 17.0880069732666, + 24.083189010620117, + 17.0880069732666 + ] + }, + "confidence": 0.1423622809090734 + }, + { + "observation_id": "b8e74428-dbb4-4658-aa8a-8fd1d7ceb62d", + "type": "aruco", + "marker_id": 80, + "marker_size_m": 0.025, + "image_points_px": [ + [ + 1263.0, + 52.0 + ], + [ + 1238.0, + 50.0 + ], + [ + 1238.0, + 34.0 + ], + [ + 1263.0, + 36.0 + ] + ], + "center_px": [ + 1250.5, + 43.0 + ], + "quality": { + "area_px": 400.0, + "perimeter_px": 82.15974426269531, + "sharpness": { + "laplacian_var": 2377.573325929011 + }, + "contrast": { + "p05": 8.0, + "p95": 175.0, + "dynamic_range": 167.0, + "mean_gray": 68.40136054421768, + "std_gray": 63.51679405795462 + }, + "geometry": { + "distance_to_center_norm": 0.522648274898529, + "distance_to_border_px": 34.0 + }, + "edge_ratio": 1.5674920082092285, + "edge_lengths_px": [ + 25.079872131347656, + 16.0, + 25.079872131347656, + 16.0 + ] + }, + "confidence": 0.1156837370676591 + } + ], + "rejected_candidates": [ + { + "image_points_px": [ + [ + 1463.0, + 505.0 + ], + [ + 1478.0, + 509.0 + ], + [ + 1477.0, + 548.0 + ], + [ + 1460.0, + 543.0 + ] + ], + "center_px": [ + 1469.5, + 526.25 + ], + "area_px": 625.0 + }, + { + "image_points_px": [ + [ + 868.0, + 121.0 + ], + [ + 900.0, + 123.0 + ], + [ + 896.0, + 144.0 + ], + [ + 864.0, + 143.0 + ] + ], + "center_px": [ + 882.0, + 132.75 + ], + "area_px": 694.0 + }, + { + "image_points_px": [ + [ + 1789.0, + 163.0 + ], + [ + 1818.0, + 168.0 + ], + [ + 1821.0, + 188.0 + ], + [ + 1790.0, + 183.0 + ] + ], + "center_px": [ + 1804.5, + 175.5 + ], + "area_px": 590.0 + }, + { + "image_points_px": [ + [ + 1725.0, + 153.0 + ], + [ + 1756.0, + 158.0 + ], + [ + 1757.0, + 177.0 + ], + [ + 1727.0, + 173.0 + ] + ], + "center_px": [ + 1741.25, + 165.25 + ], + "area_px": 588.0 + }, + { + "image_points_px": [ + [ + 1755.0, + 137.0 + ], + [ + 1785.0, + 142.0 + ], + [ + 1787.0, + 161.0 + ], + [ + 1757.0, + 156.0 + ] + ], + "center_px": [ + 1771.0, + 149.0 + ], + "area_px": 560.0 + }, + { + "image_points_px": [ + [ + 1818.0, + 147.0 + ], + [ + 1847.0, + 152.0 + ], + [ + 1850.0, + 171.0 + ], + [ + 1820.0, + 167.0 + ] + ], + "center_px": [ + 1833.75, + 159.25 + ], + "area_px": 564.0 + }, + { + "image_points_px": [ + [ + 1846.0, + 132.0 + ], + [ + 1875.0, + 136.0 + ], + [ + 1879.0, + 155.0 + ], + [ + 1849.0, + 151.0 + ] + ], + "center_px": [ + 1862.25, + 143.5 + ], + "area_px": 546.5 + }, + { + "image_points_px": [ + [ + 1874.0, + 116.0 + ], + [ + 1903.0, + 121.0 + ], + [ + 1907.0, + 139.0 + ], + [ + 1877.0, + 135.0 + ] + ], + "center_px": [ + 1890.25, + 127.75 + ], + "area_px": 530.0 + }, + { + "image_points_px": [ + [ + 1784.0, + 122.0 + ], + [ + 1813.0, + 126.0 + ], + [ + 1816.0, + 145.0 + ], + [ + 1787.0, + 141.0 + ] + ], + "center_px": [ + 1800.0, + 133.5 + ], + "area_px": 539.0 + }, + { + "image_points_px": [ + [ + 1723.0, + 112.0 + ], + [ + 1752.0, + 117.0 + ], + [ + 1754.0, + 135.0 + ], + [ + 1724.0, + 131.0 + ] + ], + "center_px": [ + 1738.25, + 123.75 + ], + "area_px": 539.0 + }, + { + "image_points_px": [ + [ + 1752.0, + 97.0 + ], + [ + 1780.0, + 101.0 + ], + [ + 1783.0, + 119.0 + ], + [ + 1754.0, + 115.0 + ] + ], + "center_px": [ + 1767.25, + 108.0 + ], + "area_px": 503.0 + }, + { + "image_points_px": [ + [ + 1780.0, + 83.0 + ], + [ + 1808.0, + 86.0 + ], + [ + 1811.0, + 104.0 + ], + [ + 1782.0, + 100.0 + ] + ], + "center_px": [ + 1795.25, + 93.25 + ], + "area_px": 490.0 + }, + { + "image_points_px": [ + [ + 1776.0, + 45.0 + ], + [ + 1804.0, + 48.0 + ], + [ + 1807.0, + 66.0 + ], + [ + 1779.0, + 62.0 + ] + ], + "center_px": [ + 1791.5, + 55.25 + ], + "area_px": 479.5 + }, + { + "image_points_px": [ + [ + 1862.0, + 40.0 + ], + [ + 1890.0, + 44.0 + ], + [ + 1893.0, + 61.0 + ], + [ + 1865.0, + 57.0 + ] + ], + "center_px": [ + 1877.5, + 50.5 + ], + "area_px": 464.0 + }, + { + "image_points_px": [ + [ + 1717.0, + 36.0 + ], + [ + 1745.0, + 40.0 + ], + [ + 1747.0, + 56.0 + ], + [ + 1719.0, + 53.0 + ] + ], + "center_px": [ + 1732.0, + 46.25 + ], + "area_px": 455.0 + }, + { + "image_points_px": [ + [ + 1803.0, + 31.0 + ], + [ + 1831.0, + 35.0 + ], + [ + 1834.0, + 51.0 + ], + [ + 1806.0, + 47.0 + ] + ], + "center_px": [ + 1818.5, + 41.0 + ], + "area_px": 436.0 + }, + { + "image_points_px": [ + [ + 1831.0, + 17.0 + ], + [ + 1857.0, + 21.0 + ], + [ + 1861.0, + 37.0 + ], + [ + 1833.0, + 34.0 + ] + ], + "center_px": [ + 1845.5, + 27.25 + ], + "area_px": 435.0 + }, + { + "image_points_px": [ + [ + 1857.0, + 4.0 + ], + [ + 1884.0, + 8.0 + ], + [ + 1887.0, + 24.0 + ], + [ + 1859.0, + 20.0 + ] + ], + "center_px": [ + 1871.75, + 14.0 + ], + "area_px": 430.0 + }, + { + "image_points_px": [ + [ + 1773.0, + 8.0 + ], + [ + 1799.0, + 12.0 + ], + [ + 1802.0, + 29.0 + ], + [ + 1775.0, + 25.0 + ] + ], + "center_px": [ + 1787.25, + 18.5 + ], + "area_px": 440.5 + }, + { + "image_points_px": [ + [ + 1746.0, + 22.0 + ], + [ + 1773.0, + 26.0 + ], + [ + 1775.0, + 42.0 + ], + [ + 1747.0, + 38.0 + ] + ], + "center_px": [ + 1760.25, + 32.0 + ], + "area_px": 434.0 + }, + { + "image_points_px": [ + [ + 1842.0, + 93.0 + ], + [ + 1868.0, + 96.0 + ], + [ + 1871.0, + 112.0 + ], + [ + 1845.0, + 110.0 + ] + ], + "center_px": [ + 1856.5, + 102.75 + ], + "area_px": 421.5 + }, + { + "image_points_px": [ + [ + 1869.0, + 79.0 + ], + [ + 1895.0, + 82.0 + ], + [ + 1898.0, + 97.0 + ], + [ + 1872.0, + 95.0 + ] + ], + "center_px": [ + 1883.5, + 88.25 + ], + "area_px": 395.5 + }, + { + "image_points_px": [ + [ + 1809.0, + 70.0 + ], + [ + 1835.0, + 72.0 + ], + [ + 1838.0, + 88.0 + ], + [ + 1812.0, + 85.0 + ] + ], + "center_px": [ + 1823.5, + 78.75 + ], + "area_px": 395.5 + }, + { + "image_points_px": [ + [ + 1721.0, + 75.0 + ], + [ + 1747.0, + 77.0 + ], + [ + 1749.0, + 93.0 + ], + [ + 1723.0, + 90.0 + ] + ], + "center_px": [ + 1735.0, + 83.75 + ], + "area_px": 398.0 + }, + { + "image_points_px": [ + [ + 1750.0, + 60.0 + ], + [ + 1775.0, + 63.0 + ], + [ + 1778.0, + 78.0 + ], + [ + 1752.0, + 76.0 + ] + ], + "center_px": [ + 1763.75, + 69.25 + ], + "area_px": 389.0 + }, + { + "image_points_px": [ + [ + 640.0, + 19.0 + ], + [ + 666.0, + 19.0 + ], + [ + 660.0, + 35.0 + ], + [ + 636.0, + 34.0 + ] + ], + "center_px": [ + 650.5, + 26.75 + ], + "area_px": 390.0 + }, + { + "image_points_px": [ + [ + 893.0, + 584.0 + ], + [ + 896.0, + 589.0 + ], + [ + 888.0, + 624.0 + ], + [ + 888.0, + 600.0 + ] + ], + "center_px": [ + 891.25, + 599.25 + ], + "area_px": 132.5 + }, + { + "image_points_px": [ + [ + 1837.0, + 56.0 + ], + [ + 1862.0, + 58.0 + ], + [ + 1865.0, + 73.0 + ], + [ + 1839.0, + 71.0 + ] + ], + "center_px": [ + 1850.75, + 64.5 + ], + "area_px": 377.5 + }, + { + "image_points_px": [ + [ + 605.0, + 872.0 + ], + [ + 616.0, + 870.0 + ], + [ + 644.0, + 874.0 + ], + [ + 640.0, + 878.0 + ] + ], + "center_px": [ + 626.25, + 873.5 + ], + "area_px": 132.0 + }, + { + "image_points_px": [ + [ + 864.0, + 151.0 + ], + [ + 870.0, + 147.0 + ], + [ + 898.0, + 164.0 + ], + [ + 893.0, + 168.0 + ] + ], + "center_px": [ + 881.25, + 157.5 + ], + "area_px": 207.5 + }, + { + "image_points_px": [ + [ + 1760.0, + 995.0 + ], + [ + 1775.0, + 996.0 + ], + [ + 1791.0, + 1002.0 + ], + [ + 1773.0, + 1000.0 + ] + ], + "center_px": [ + 1774.75, + 998.25 + ], + "area_px": 69.0 + }, + { + "image_points_px": [ + [ + 1556.0, + 816.0 + ], + [ + 1560.0, + 814.0 + ], + [ + 1585.0, + 820.0 + ], + [ + 1576.0, + 821.0 + ] + ], + "center_px": [ + 1569.25, + 817.75 + ], + "area_px": 69.5 + } + ] +} \ No newline at end of file diff --git a/data/board/20260610_120248/cam2_camera_pose.json b/data/board/20260610_120248/cam2_camera_pose.json new file mode 100644 index 0000000..ee3a97d --- /dev/null +++ b/data/board/20260610_120248/cam2_camera_pose.json @@ -0,0 +1,943 @@ +{ + "schema_version": "1.0", + "created_utc": "2026-06-10T12:02:59Z", + "source": { + "detection_json": "/app/data/board/20260610_120248/cam2_aruco_detection.json", + "robot_json": "/app/scripts/robot_1781069752019.json" + }, + "camera": { + "camera_id": "cam2", + "camera_matrix": [ + [ + 1388.99072265625, + 0.0, + 933.082763671875 + ], + [ + 0.0, + 1394.8729248046875, + 562.4996948242188 + ], + [ + 0.0, + 0.0, + 1.0 + ] + ], + "distortion_coefficients": [ + 0.019531700760126114, + -0.11213663965463638, + 0.0026758278254419565, + 0.0007694826927036047, + 0.05339815095067024 + ] + }, + "estimation": { + "method": "single_camera_marker_center_lm", + "description": "Rigid init from per-marker pose estimates, followed by LM on normalized marker-center reprojection residuals.", + "marker_size_m": 0.025, + "num_used_markers": 53, + "used_marker_ids": [ + 69, + 64, + 75, + 58, + 61, + 77, + 103, + 83, + 74, + 52, + 51, + 66, + 81, + 95, + 101, + 97, + 55, + 82, + 73, + 79, + 54, + 47, + 96, + 86, + 62, + 84, + 85, + 72, + 60, + 105, + 56, + 53, + 57, + 46, + 67, + 68, + 59, + 50, + 98, + 102, + 92, + 70, + 48, + 90, + 71, + 76, + 63, + 78, + 91, + 65, + 88, + 100, + 80 + ], + "history": { + "iters": [ + 0, + 1, + 2, + 3 + ], + "rms": [ + 0.0098089322891034, + 0.0006224348764887226, + 0.000457076417739124, + 0.0004570757760240011 + ], + "lambda": [ + 0.001, + 0.0005, + 0.00025, + 0.000125 + ] + }, + "residual_rms_px": 0.8963221374429711, + "residual_median_px": 0.5257092931121689, + "residual_max_px": 3.553884504083572, + "sigma2_normalized": 2.2145336092961196e-07 + }, + "camera_pose": { + "world_to_camera": { + "rotation_matrix": [ + [ + 0.1273214966058731, + -0.9917626976966858, + -0.014000757597386837 + ], + [ + -0.8507838845252991, + -0.10194499045610428, + -0.5155327320098877 + ], + [ + 0.5098587870597839, + 0.0775500163435936, + -0.8567554950714111 + ] + ], + "translation_m": [ + -0.14239628612995148, + 0.19550246000289917, + 0.8796834945678711 + ], + "rvec_rad": [ + 2.01293100424637, + -1.7779865847805791, + 0.4784839291428882 + ] + }, + "camera_in_world": { + "position_m": [ + -0.26405394077301025, + -0.18951229751110077, + 0.852467954158783 + ], + "position_mm": [ + -264.053955078125, + -189.51229858398438, + 852.4679565429688 + ], + "orientation_deg": { + "roll": 174.82789611816406, + "pitch": -30.654422760009766, + "yaw": -81.48873138427734 + } + }, + "uncertainty": { + "pose_covariance_6x6": [ + [ + 2.1737714385940798e-07, + -1.069796204120656e-07, + -1.822709612812337e-08, + 4.4465269392839054e-10, + 4.038992001065628e-08, + 1.0315153750613931e-07 + ], + [ + -1.0697962041206613e-07, + 1.6365602287708485e-07, + -3.331609245296352e-08, + -3.195375683213487e-08, + -3.155241423579363e-08, + -7.068195561725462e-08 + ], + [ + -1.822709612812201e-08, + -3.33160924529644e-08, + 4.961985170831612e-07, + 7.183768454838181e-08, + -4.36553495187879e-08, + -9.81357996061553e-08 + ], + [ + 4.4465269392866423e-10, + -3.195375683213502e-08, + 7.183768454838173e-08, + 2.1881588403255675e-08, + -1.9196086643004987e-09, + -1.0576174222208573e-08 + ], + [ + 4.038992001065623e-08, + -3.1552414235793495e-08, + -4.365534951878817e-08, + -1.9196086643005538e-09, + 1.8021042627291756e-08, + 2.755332307456946e-08 + ], + [ + 1.031515375061392e-07, + -7.068195561725413e-08, + -9.813579960615683e-08, + -1.0576174222208857e-08, + 2.7553323074569514e-08, + 1.2129447832642325e-07 + ] + ], + "parameter_std": { + "rvec_std_deg": [ + 0.02671342486857649, + 0.023178676215835997, + 0.04035992619848322 + ], + "tvec_std_m": [ + 0.0001479242657688578, + 0.00013424247698583244, + 0.0003482735682282295 + ] + }, + "camera_center_std_m": [ + 0.00041665557631308004, + 0.0006146552677079256, + 0.00047719313400760167 + ], + "camera_center_std_mm": [ + 0.41665557631308003, + 0.6146552677079256, + 0.47719313400760166 + ], + "orientation_std_deg": { + "roll": 0.04044823865900689, + "pitch": 0.02888115814685653, + "yaw": 0.017334875097617372 + } + } + }, + "observations": { + "markers": [ + { + "marker_id": 69, + "observed_center_px": [ + 1151.25, + 929.0 + ], + "projected_center_px": [ + 1150.04443359375, + 929.0095825195312 + ], + "reprojection_error_px": 1.2056044892746156, + "confidence": 0.8986846169324365 + }, + { + "marker_id": 64, + "observed_center_px": [ + 1001.5, + 955.0 + ], + "projected_center_px": [ + 999.7368774414062, + 956.1192626953125 + ], + "reprojection_error_px": 2.0883845761114914, + "confidence": 0.8975282492831451 + }, + { + "marker_id": 75, + "observed_center_px": [ + 412.75, + 887.25 + ], + "projected_center_px": [ + 413.832763671875, + 889.554931640625 + ], + "reprojection_error_px": 2.546583404698634, + "confidence": 0.8508150578764381 + }, + { + "marker_id": 58, + "observed_center_px": [ + 1057.25, + 852.75 + ], + "projected_center_px": [ + 1056.2906494140625, + 852.7211303710938 + ], + "reprojection_error_px": 0.9597848728813188, + "confidence": 0.7784578751540552 + }, + { + "marker_id": 61, + "observed_center_px": [ + 209.5, + 856.0 + ], + "projected_center_px": [ + 212.21087646484375, + 858.298095703125 + ], + "reprojection_error_px": 3.553884504083572, + "confidence": 0.7468085604786412 + }, + { + "marker_id": 77, + "observed_center_px": [ + 438.75, + 825.5 + ], + "projected_center_px": [ + 438.9163818359375, + 825.9654541015625 + ], + "reprojection_error_px": 0.4942979223012041, + "confidence": 0.754806572372849 + }, + { + "marker_id": 103, + "observed_center_px": [ + 1018.75, + 768.5 + ], + "projected_center_px": [ + 1018.128662109375, + 768.266845703125 + ], + "reprojection_error_px": 0.6636427506404331, + "confidence": 0.7230103467414268 + }, + { + "marker_id": 83, + "observed_center_px": [ + 245.0, + 764.75 + ], + "projected_center_px": [ + 244.66259765625, + 764.5181274414062 + ], + "reprojection_error_px": 0.409396171204379, + "confidence": 0.6963240125272631 + }, + { + "marker_id": 74, + "observed_center_px": [ + 538.75, + 730.0 + ], + "projected_center_px": [ + 538.0648803710938, + 729.8526000976562 + ], + "reprojection_error_px": 0.7007964305870747, + "confidence": 0.718536832410984 + }, + { + "marker_id": 52, + "observed_center_px": [ + 449.75, + 718.75 + ], + "projected_center_px": [ + 449.18414306640625, + 718.4673461914062 + ], + "reprojection_error_px": 0.6325245013504803, + "confidence": 0.6862906674889425 + }, + { + "marker_id": 51, + "observed_center_px": [ + 1004.5, + 683.75 + ], + "projected_center_px": [ + 1004.3736572265625, + 683.275634765625 + ], + "reprojection_error_px": 0.4909021002028084, + "confidence": 0.6559297452800281 + }, + { + "marker_id": 66, + "observed_center_px": [ + 1279.25, + 660.5 + ], + "projected_center_px": [ + 1280.195556640625, + 659.7265014648438 + ], + "reprojection_error_px": 1.2216289717090456, + "confidence": 0.6286034074431499 + }, + { + "marker_id": 81, + "observed_center_px": [ + 519.5, + 676.75 + ], + "projected_center_px": [ + 519.2908325195312, + 676.2986450195312 + ], + "reprojection_error_px": 0.49746593177783605, + "confidence": 0.6605213883217984 + }, + { + "marker_id": 95, + "observed_center_px": [ + 1151.25, + 676.25 + ], + "projected_center_px": [ + 1151.655029296875, + 675.9148559570312 + ], + "reprojection_error_px": 0.5257092931121689, + "confidence": 0.6024124231445473 + }, + { + "marker_id": 101, + "observed_center_px": [ + 337.75, + 675.75 + ], + "projected_center_px": [ + 337.35394287109375, + 674.9082641601562 + ], + "reprojection_error_px": 0.930258283185334, + "confidence": 0.6318515532199671 + }, + { + "marker_id": 97, + "observed_center_px": [ + 1274.5, + 545.75 + ], + "projected_center_px": [ + 1275.181640625, + 545.5237426757812 + ], + "reprojection_error_px": 0.7182104972868464, + "confidence": 0.4914032409654731 + }, + { + "marker_id": 55, + "observed_center_px": [ + 1141.75, + 556.0 + ], + "projected_center_px": [ + 1142.1490478515625, + 555.7384033203125 + ], + "reprojection_error_px": 0.477149882804315, + "confidence": 0.4797015404485084 + }, + { + "marker_id": 82, + "observed_center_px": [ + 386.25, + 554.0 + ], + "projected_center_px": [ + 386.0714111328125, + 553.4258422851562 + ], + "reprojection_error_px": 0.6012911649092405, + "confidence": 0.5267498880467387 + }, + { + "marker_id": 73, + "observed_center_px": [ + 341.5, + 546.5 + ], + "projected_center_px": [ + 341.5302734375, + 545.7492065429688 + ], + "reprojection_error_px": 0.7514035507894555, + "confidence": 0.5807180386419054 + }, + { + "marker_id": 79, + "observed_center_px": [ + 1006.5, + 510.0 + ], + "projected_center_px": [ + 1006.5682373046875, + 509.50689697265625 + ], + "reprojection_error_px": 0.4978020945381666, + "confidence": 0.49192740123277356 + }, + { + "marker_id": 54, + "observed_center_px": [ + 1235.75, + 499.0 + ], + "projected_center_px": [ + 1236.3170166015625, + 499.0939636230469 + ], + "reprojection_error_px": 0.5747495010033346, + "confidence": 0.4754775900608054 + }, + { + "marker_id": 47, + "observed_center_px": [ + 1177.5, + 491.5 + ], + "projected_center_px": [ + 1177.807861328125, + 491.1806640625 + ], + "reprojection_error_px": 0.4435696544330922, + "confidence": 0.4506500428288729 + }, + { + "marker_id": 96, + "observed_center_px": [ + 1049.0, + 451.75 + ], + "projected_center_px": [ + 1049.171875, + 451.17999267578125 + ], + "reprojection_error_px": 0.5953565026839123, + "confidence": 0.430100956852032 + }, + { + "marker_id": 86, + "observed_center_px": [ + 451.25, + 401.0 + ], + "projected_center_px": [ + 451.4646911621094, + 401.15252685546875 + ], + "reprojection_error_px": 0.2633566720762147, + "confidence": 0.4069382463284863 + }, + { + "marker_id": 62, + "observed_center_px": [ + 1038.5, + 414.5 + ], + "projected_center_px": [ + 1038.5054931640625, + 413.8045959472656 + ], + "reprojection_error_px": 0.6954257483087687, + "confidence": 0.38988116027442876 + }, + { + "marker_id": 84, + "observed_center_px": [ + 507.75, + 361.5 + ], + "projected_center_px": [ + 507.8834228515625, + 361.3968505859375 + ], + "reprojection_error_px": 0.16864595737967153, + "confidence": 0.3755778878035692 + }, + { + "marker_id": 85, + "observed_center_px": [ + 1217.0, + 332.75 + ], + "projected_center_px": [ + 1217.3709716796875, + 332.08306884765625 + ], + "reprojection_error_px": 0.7631625967621365, + "confidence": 0.3292690975651811 + }, + { + "marker_id": 72, + "observed_center_px": [ + 594.75, + 336.5 + ], + "projected_center_px": [ + 594.7498779296875, + 336.6177978515625 + ], + "reprojection_error_px": 0.1177979148113496, + "confidence": 0.34287988681554293 + }, + { + "marker_id": 60, + "observed_center_px": [ + 487.75, + 333.25 + ], + "projected_center_px": [ + 487.4588928222656, + 333.3103332519531 + ], + "reprojection_error_px": 0.29729360944983707, + "confidence": 0.3267497878291175 + }, + { + "marker_id": 105, + "observed_center_px": [ + 1161.25, + 308.75 + ], + "projected_center_px": [ + 1161.2724609375, + 308.23345947265625 + ], + "reprojection_error_px": 0.5170286356691844, + "confidence": 0.29771650671754185 + }, + { + "marker_id": 56, + "observed_center_px": [ + 641.75, + 286.5 + ], + "projected_center_px": [ + 641.61181640625, + 286.5906982421875 + ], + "reprojection_error_px": 0.16529028016664332, + "confidence": 0.3062922750114328 + }, + { + "marker_id": 53, + "observed_center_px": [ + 587.75, + 293.25 + ], + "projected_center_px": [ + 587.6326904296875, + 293.2826232910156 + ], + "reprojection_error_px": 0.12176130092764918, + "confidence": 0.3206812269187209 + }, + { + "marker_id": 57, + "observed_center_px": [ + 1280.5, + 249.0 + ], + "projected_center_px": [ + 1280.7451171875, + 248.8118438720703 + ], + "reprojection_error_px": 0.3090067379288081, + "confidence": 0.26603475252212855 + }, + { + "marker_id": 46, + "observed_center_px": [ + 633.0, + 251.75 + ], + "projected_center_px": [ + 632.98974609375, + 251.6079864501953 + ], + "reprojection_error_px": 0.1423832536554501, + "confidence": 0.29692028276941096 + }, + { + "marker_id": 67, + "observed_center_px": [ + 536.75, + 255.75 + ], + "projected_center_px": [ + 536.5686645507812, + 255.48638916015625 + ], + "reprojection_error_px": 0.3199581535552627, + "confidence": 0.2708691836215508 + }, + { + "marker_id": 68, + "observed_center_px": [ + 659.5, + 222.0 + ], + "projected_center_px": [ + 659.6856689453125, + 221.6300048828125 + ], + "reprojection_error_px": 0.4139678055067181, + "confidence": 0.2838174430075637 + }, + { + "marker_id": 59, + "observed_center_px": [ + 1180.5, + 220.75 + ], + "projected_center_px": [ + 1180.892333984375, + 220.45875549316406 + ], + "reprojection_error_px": 0.4886198093177058, + "confidence": 0.24706037119088006 + }, + { + "marker_id": 50, + "observed_center_px": [ + 613.5, + 218.25 + ], + "projected_center_px": [ + 613.552001953125, + 218.05809020996094 + ], + "reprojection_error_px": 0.19883050732131563, + "confidence": 0.2627310892856904 + }, + { + "marker_id": 98, + "observed_center_px": [ + 500.25, + 207.75 + ], + "projected_center_px": [ + 500.1153259277344, + 207.15695190429688 + ], + "reprojection_error_px": 0.6081473090935368, + "confidence": 0.26379900775702514 + }, + { + "marker_id": 102, + "observed_center_px": [ + 1117.75, + 195.75 + ], + "projected_center_px": [ + 1117.8568115234375, + 195.6809539794922 + ], + "reprojection_error_px": 0.12718511896839535, + "confidence": 0.24378890443824783 + }, + { + "marker_id": 92, + "observed_center_px": [ + 1074.0, + 196.0 + ], + "projected_center_px": [ + 1073.92138671875, + 195.88784790039062 + ], + "reprojection_error_px": 0.13696036446973545, + "confidence": 0.2672564690926056 + }, + { + "marker_id": 70, + "observed_center_px": [ + 524.75, + 187.0 + ], + "projected_center_px": [ + 524.7186889648438, + 186.86972045898438 + ], + "reprojection_error_px": 0.13398932692493773, + "confidence": 0.2507337032372072 + }, + { + "marker_id": 48, + "observed_center_px": [ + 1231.25, + 172.5 + ], + "projected_center_px": [ + 1231.1085205078125, + 173.17733764648438 + ], + "reprojection_error_px": 0.6919557312824463, + "confidence": 0.22414285714285712 + }, + { + "marker_id": 90, + "observed_center_px": [ + 520.5, + 153.75 + ], + "projected_center_px": [ + 520.3079833984375, + 152.954345703125 + ], + "reprojection_error_px": 0.8184962647509533, + "confidence": 0.25163861158949646 + }, + { + "marker_id": 71, + "observed_center_px": [ + 1191.75, + 122.0 + ], + "projected_center_px": [ + 1191.556884765625, + 122.36849212646484 + ], + "reprojection_error_px": 0.41602877426242235, + "confidence": 0.21186399436572845 + }, + { + "marker_id": 76, + "observed_center_px": [ + 691.75, + 133.75 + ], + "projected_center_px": [ + 691.7788696289062, + 133.10496520996094 + ], + "reprojection_error_px": 0.6456805214917994, + "confidence": 0.2037501988754542 + }, + { + "marker_id": 63, + "observed_center_px": [ + 1140.5, + 97.0 + ], + "projected_center_px": [ + 1140.3216552734375, + 97.65435791015625 + ], + "reprojection_error_px": 0.6782264489657623, + "confidence": 0.21661763956520202 + }, + { + "marker_id": 78, + "observed_center_px": [ + 1259.0, + 72.25 + ], + "projected_center_px": [ + 1259.0037841796875, + 73.45796203613281 + ], + "reprojection_error_px": 1.207967963463451, + "confidence": 0.19774914486734868 + }, + { + "marker_id": 91, + "observed_center_px": [ + 532.5, + 92.0 + ], + "projected_center_px": [ + 532.4694213867188, + 92.04964447021484 + ], + "reprojection_error_px": 0.058306303373792674, + "confidence": 0.2384426912219541 + }, + { + "marker_id": 65, + "observed_center_px": [ + 1208.0, + 83.0 + ], + "projected_center_px": [ + 1207.8248291015625, + 83.76030731201172 + ], + "reprojection_error_px": 0.7802256419510231, + "confidence": 0.18582320639236513 + }, + { + "marker_id": 88, + "observed_center_px": [ + 557.0, + 62.0 + ], + "projected_center_px": [ + 557.0651245117188, + 62.67496109008789 + ], + "reprojection_error_px": 0.6780956239050944, + "confidence": 0.1807831326449605 + }, + { + "marker_id": 100, + "observed_center_px": [ + 713.0, + 47.0 + ], + "projected_center_px": [ + 712.95654296875, + 47.11394500732422 + ], + "reprojection_error_px": 0.12195072061771403, + "confidence": 0.1423622809090734 + }, + { + "marker_id": 80, + "observed_center_px": [ + 1250.5, + 43.0 + ], + "projected_center_px": [ + 1250.2398681640625, + 44.258975982666016 + ], + "reprojection_error_px": 1.285569561322169, + "confidence": 0.1156837370676591 + } + ] + }, + "qa": { + "sanity_notes": [] + } +} \ No newline at end of file diff --git a/data/board/20260610_120248/cam2_debug.jpg b/data/board/20260610_120248/cam2_debug.jpg new file mode 100644 index 0000000..dd67adb Binary files /dev/null and b/data/board/20260610_120248/cam2_debug.jpg differ diff --git a/data/calibration/20260610_092149/cam0_calibration.npz b/data/calibration/20260610_092149/cam0_calibration.npz index 464243a..af8c507 100644 Binary files a/data/calibration/20260610_092149/cam0_calibration.npz and b/data/calibration/20260610_092149/cam0_calibration.npz differ diff --git a/data/calibration/20260610_092149/cam1_calibration.npz b/data/calibration/20260610_092149/cam1_calibration.npz index 5740b5f..0f3c988 100644 Binary files a/data/calibration/20260610_092149/cam1_calibration.npz and b/data/calibration/20260610_092149/cam1_calibration.npz differ diff --git a/data/calibration/20260610_092149/cam2_calibration.npz b/data/calibration/20260610_092149/cam2_calibration.npz index 4276a56..cbc3dba 100644 Binary files a/data/calibration/20260610_092149/cam2_calibration.npz and b/data/calibration/20260610_092149/cam2_calibration.npz differ