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,
|
2026-05-05 17:39:58 +00:00
|
|
|
"bayer_pattern": "RGGB",
|
2026-05-05 13:15:09 +00:00
|
|
|
"camera_settings": {
|
2026-05-05 17:39:58 +00:00
|
|
|
"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,
|
2026-05-05 17:39:58 +00:00
|
|
|
"colour_gains": [
|
|
|
|
|
1.0,
|
|
|
|
|
1.0
|
|
|
|
|
]
|
2026-05-05 13:15:09 +00:00
|
|
|
},
|
2026-05-05 17:39:58 +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
|
|
|
|
|
},
|
2026-05-05 17:39:58 +00:00
|
|
|
"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,
|
2026-05-05 17:39:58 +00:00
|
|
|
"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,
|
2026-05-05 17:39:58 +00:00
|
|
|
"reference_camera": "rgb",
|
2026-05-05 13:15:09 +00:00
|
|
|
"manual_offsets": {
|
2026-05-05 17:39:58 +00:00
|
|
|
"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
|
|
|
|
|
},
|
2026-05-05 17:39:58 +00:00
|
|
|
"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"
|
|
|
|
|
]
|
2026-05-05 17:39:58 +00:00
|
|
|
},
|
|
|
|
|
"rgb_calibration": {
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"gains": {
|
2026-05-06 13:24:17 +00:00
|
|
|
"R": 1.0,
|
2026-05-05 17:39:58 +00:00
|
|
|
"G": 1.0,
|
2026-05-06 13:24:17 +00:00
|
|
|
"B": 1.0
|
2026-05-05 17:39:58 +00:00
|
|
|
}
|
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
|
|
|
}
|
|
|
|
|
}
|