agrobot_base/Python/OAK/datasets/oak-fcc-3/calibration/module_params.json

250 lines
5.8 KiB
JSON
Raw Normal View History

2026-05-05 13:15:09 +00:00
{
2026-05-06 13:24:17 +00:00
"schema": "multispec_module_params_v3",
"saved_at": "2026-05-06 10:16:07",
2026-05-05 13:15:09 +00:00
"frame_type": "RAW_BRUTO",
"capture_mode_requested": "AUTO",
"capture_mode_effective": "AUTO",
"raw_policy": "allow_single",
2026-05-06 13:24:17 +00:00
"sensor_width": 1280,
"sensor_height": 800,
"bayer_pattern": "RGGB",
2026-05-05 13:15:09 +00:00
"camera_settings": {
"rgb": {
2026-05-05 13:15:09 +00:00
"ae_enable": false,
"awb_enable": false,
2026-05-06 13:24:17 +00:00
"exposure_time_us": 2000,
"analogue_gain": 1.0,
"colour_gains": [
1.0,
1.0
]
2026-05-05 13:15:09 +00:00
},
"re": {
2026-05-05 13:15:09 +00:00
"ae_enable": false,
"awb_enable": false,
2026-05-05 19:49:36 +00:00
"exposure_time_us": 5000,
2026-05-05 13:15:09 +00:00
"analogue_gain": 1.0,
"colour_gains": null
},
"nir": {
"ae_enable": false,
"awb_enable": false,
2026-05-06 13:24:17 +00:00
"exposure_time_us": 5000,
2026-05-05 13:15:09 +00:00
"analogue_gain": 1.0,
"colour_gains": null
2026-05-05 13:15:09 +00:00
}
},
"fusion_config": {
2026-05-06 13:24:17 +00:00
"alignment_mode": "homography",
2026-05-05 13:15:09 +00:00
"baseline_mm": 75.0,
"reference_camera": "rgb",
2026-05-05 13:15:09 +00:00
"manual_offsets": {
"re": {
2026-05-06 13:24:17 +00:00
"dx": 0,
"dy": 0,
2026-05-05 13:15:09 +00:00
"theta_deg": 0.0
},
"nir": {
2026-05-06 13:24:17 +00:00
"dx": 0,
"dy": 0,
2026-05-05 13:15:09 +00:00
"theta_deg": 0.0
}
},
"homographies": {
2026-05-06 13:24:17 +00:00
"re_to_rgb": [
[
0.9836077983170345,
-0.00414576215755023,
-7.995670153079967
],
[
-0.009155951570825544,
0.9872093474367271,
65.61737450021248
],
[
-8.515127189657688e-06,
-3.4530877754475106e-06,
1.0
]
],
"nir_to_rgb": [
[
0.9950840771095427,
-0.01203311522937068,
-0.37678489564225515
],
[
0.005818513521498549,
0.9844634830519817,
40.58679770900771
],
[
1.1689856045746963e-05,
-1.643688958474221e-05,
1.0
]
]
2026-05-05 13:15:09 +00:00
},
"crop_valid_common": true,
"resize_after_crop": true,
"target_size": null
},
"radiometric_config": {
2026-05-06 13:24:17 +00:00
"enabled": true,
2026-05-05 13:15:09 +00:00
"interval_s": 0.5,
2026-05-06 13:24:17 +00:00
"verbose": true,
"metering_mode": "global",
"spectral_control_mode": "shared",
"global_roi_pct": {
"x0": 0.082812,
"y0": 0.08,
"x1": 0.903125,
"y1": 0.905
},
"control_metric": "p50",
"target_value": 0.4,
"deadband": 0.04,
"p95_limit": 0.94,
"saturation_limit_pct": 1.0,
"dark_limit_pct": 35.0,
2026-05-05 13:15:09 +00:00
"alpha": 0.18,
2026-05-06 13:24:17 +00:00
"exp_step_gain": 0.55,
"prefer_exposure": true,
2026-05-05 13:15:09 +00:00
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
2026-05-06 13:24:17 +00:00
"gain_max": 4.0,
"role_limits": {
"rgb": {
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 4.0
},
"re": {
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 3.0
},
"nir": {
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 3.0
}
},
"exp_apply_threshold_us": 80,
"gain_apply_threshold": 0.05,
"apply_same_spectral_to_both": true,
"spectral_roles": [
"re",
"nir"
]
},
"rgb_calibration": {
"enabled": true,
"gains": {
2026-05-06 13:24:17 +00:00
"R": 1.0,
"G": 1.0,
2026-05-06 13:24:17 +00:00
"B": 1.0
}
2026-05-06 13:24:17 +00:00
},
"flatfield_config": {
"enabled": true,
"schema": "multispec_flatfield_v1",
"created_at": "2026-05-06 10:14:01",
"json_file": "calibration/flatfield_maps_v1.json",
"npz_file": "calibration/flatfield_maps_v1.npz",
"apply_before_fusion": true,
"apply_after_decode": true,
"apply_space": "native_camera_space",
"map_type": "gain",
"formula": "channel_corrected = max(channel_linear - dark, 0) * gain_map",
"channels": [
"R",
"G",
"B",
"RE",
"NIR"
],
"channel_maps": {
"R": {
"gain_key": "gain_R",
"flat_norm_key": "flat_norm_R",
"white_median_key": "white_median_R",
"dark_median_key": "dark_median_R",
"shape": [
400,
640
],
"gain_min": 0.5480560660362244,
"gain_max": 1.6087802648544312,
"gain_mean": 1.0039905309677124,
"gain_std": 0.28920215368270874
},
"G": {
"gain_key": "gain_G",
"flat_norm_key": "flat_norm_G",
"white_median_key": "white_median_G",
"dark_median_key": "dark_median_G",
"shape": [
400,
640
],
"gain_min": 0.5317091345787048,
"gain_max": 1.8951553106307983,
"gain_mean": 1.0328274965286255,
"gain_std": 0.3529214859008789
},
"B": {
"gain_key": "gain_B",
"flat_norm_key": "flat_norm_B",
"white_median_key": "white_median_B",
"dark_median_key": "dark_median_B",
"shape": [
400,
640
],
"gain_min": 0.5656915903091431,
"gain_max": 1.8551995754241943,
"gain_mean": 1.0326939821243286,
"gain_std": 0.3330632746219635
},
"RE": {
"gain_key": "gain_RE",
"flat_norm_key": "flat_norm_RE",
"white_median_key": "white_median_RE",
"dark_median_key": "dark_median_RE",
"shape": [
800,
1600
],
"gain_min": 0.955564022064209,
"gain_max": 4.0,
"gain_mean": 1.2053359746932983,
"gain_std": 0.28413665294647217
},
"NIR": {
"gain_key": "gain_NIR",
"flat_norm_key": "flat_norm_NIR",
"white_median_key": "white_median_NIR",
"dark_median_key": "dark_median_NIR",
"shape": [
800,
1600
],
"gain_min": 0.8534727096557617,
"gain_max": 4.0,
"gain_mean": 1.146588921546936,
"gain_std": 0.4995245635509491
}
},
"exp_gain_correct_during_flat_capture": true,
"smooth_ksize": 31,
"min_gain": 0.25,
"max_gain": 4.0,
"notes": ""
2026-05-05 13:15:09 +00:00
}
}