2026-05-05 13:15:09 +00:00
|
|
|
{
|
2026-05-06 13:24:17 +00:00
|
|
|
"schema": "multispec_module_params_v3",
|
2026-05-12 22:28:24 +00:00
|
|
|
"saved_at": "2026-05-12 14:20:13",
|
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-07 19:24:19 +00:00
|
|
|
"exposure_time_us": 2000,
|
2026-05-06 13:24:17 +00:00
|
|
|
"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-07 19:24:19 +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-07 19:24:19 +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,
|
2026-05-12 13:24:08 +00:00
|
|
|
"dy": 1,
|
2026-05-05 13:15:09 +00:00
|
|
|
"theta_deg": 0.0
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"homographies": {
|
2026-05-06 13:24:17 +00:00
|
|
|
"re_to_rgb": [
|
|
|
|
|
[
|
2026-05-12 13:24:08 +00:00
|
|
|
1.050733077272978,
|
|
|
|
|
0.04605606157188822,
|
|
|
|
|
-29.324436886060216
|
2026-05-06 13:24:17 +00:00
|
|
|
],
|
|
|
|
|
[
|
2026-05-12 13:24:08 +00:00
|
|
|
-0.0006574806439193652,
|
|
|
|
|
1.0543997737520296,
|
|
|
|
|
14.764772434233967
|
2026-05-06 13:24:17 +00:00
|
|
|
],
|
|
|
|
|
[
|
2026-05-12 13:24:08 +00:00
|
|
|
2.9808004869914425e-05,
|
|
|
|
|
4.923907858473237e-05,
|
2026-05-06 13:24:17 +00:00
|
|
|
1.0
|
|
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
"nir_to_rgb": [
|
|
|
|
|
[
|
2026-05-12 13:24:08 +00:00
|
|
|
0.9558631674418693,
|
|
|
|
|
-0.03589571258849329,
|
|
|
|
|
15.945493687241475
|
2026-05-06 13:24:17 +00:00
|
|
|
],
|
|
|
|
|
[
|
2026-05-12 13:24:08 +00:00
|
|
|
-0.006564602087683463,
|
|
|
|
|
0.9523096250606489,
|
|
|
|
|
25.562927061709274
|
2026-05-06 13:24:17 +00:00
|
|
|
],
|
|
|
|
|
[
|
2026-05-12 13:24:08 +00:00
|
|
|
-1.9551531458452607e-05,
|
|
|
|
|
-3.195760232703846e-05,
|
|
|
|
|
0.9999999999999999
|
2026-05-06 13:24:17 +00:00
|
|
|
]
|
|
|
|
|
]
|
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-08 13:02:01 +00:00
|
|
|
"interval_s": 0.25,
|
2026-05-06 13:24:17 +00:00
|
|
|
"verbose": true,
|
2026-05-07 12:55:08 +00:00
|
|
|
"metering_mode": "reference_patches",
|
2026-05-08 17:50:20 +00:00
|
|
|
"spectral_control_mode": "shared",
|
2026-05-06 13:24:17 +00:00
|
|
|
"control_metric": "p50",
|
2026-05-07 12:55:08 +00:00
|
|
|
"target_value": 0.5,
|
2026-05-12 22:28:24 +00:00
|
|
|
"deadband": 0.055,
|
|
|
|
|
"p95_limit": 0.975,
|
|
|
|
|
"saturation_limit_pct": 5.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,
|
2026-05-07 12:55:08 +00:00
|
|
|
"reference_patches": [
|
|
|
|
|
{
|
|
|
|
|
"name": "black_reference",
|
|
|
|
|
"type": "black",
|
|
|
|
|
"roles": [
|
|
|
|
|
"rgb",
|
|
|
|
|
"re",
|
|
|
|
|
"nir"
|
|
|
|
|
],
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.26875,
|
|
|
|
|
"y0": 0.8175,
|
|
|
|
|
"x1": 0.328906,
|
|
|
|
|
"y1": 0.985
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"target_value": 0.08,
|
|
|
|
|
"weight": 0.7,
|
|
|
|
|
"roi_pct_by_role": {
|
|
|
|
|
"rgb": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.26875,
|
|
|
|
|
"y0": 0.8175,
|
|
|
|
|
"x1": 0.328906,
|
|
|
|
|
"y1": 0.985
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"re": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.235156,
|
|
|
|
|
"y0": 0.8175,
|
|
|
|
|
"x1": 0.289062,
|
|
|
|
|
"y1": 0.985
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"nir": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.3,
|
|
|
|
|
"y0": 0.83125,
|
|
|
|
|
"x1": 0.360938,
|
2026-05-12 13:24:08 +00:00
|
|
|
"y1": 0.9925
|
2026-05-07 12:55:08 +00:00
|
|
|
}
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"roi_list_by_role": {
|
|
|
|
|
"rgb": [
|
|
|
|
|
{
|
|
|
|
|
"name": "rgb_legacy_01",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.26875,
|
|
|
|
|
"y0": 0.8175,
|
|
|
|
|
"x1": 0.328906,
|
|
|
|
|
"y1": 0.985
|
|
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-07 14:36:25",
|
|
|
|
|
"updated_at": "2026-05-12 14:16:15"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "black_rgb_02",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
|
|
|
|
"x0": 0.813281,
|
2026-05-12 13:24:08 +00:00
|
|
|
"y0": 0.8275,
|
2026-05-12 22:28:24 +00:00
|
|
|
"x1": 0.873437,
|
2026-05-12 13:24:08 +00:00
|
|
|
"y1": 0.9875
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
2026-05-12 22:28:24 +00:00
|
|
|
"created_at": "2026-05-12 14:16:20",
|
|
|
|
|
"updated_at": "2026-05-12 14:16:32"
|
2026-05-07 19:24:19 +00:00
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"re": [
|
|
|
|
|
{
|
|
|
|
|
"name": "re_legacy_01",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.235156,
|
|
|
|
|
"y0": 0.8175,
|
|
|
|
|
"x1": 0.289062,
|
|
|
|
|
"y1": 0.985
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-07 14:36:25",
|
2026-05-12 22:28:24 +00:00
|
|
|
"updated_at": "2026-05-12 14:17:39"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "black_re_02",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
|
|
|
|
"x0": 0.79375,
|
|
|
|
|
"y0": 0.83,
|
|
|
|
|
"x1": 0.85625,
|
|
|
|
|
"y1": 0.99125
|
|
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-12 14:17:42",
|
|
|
|
|
"updated_at": "2026-05-12 14:17:49"
|
2026-05-07 19:24:19 +00:00
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"nir": [
|
|
|
|
|
{
|
|
|
|
|
"name": "nir_legacy_01",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.3,
|
|
|
|
|
"y0": 0.83125,
|
|
|
|
|
"x1": 0.360938,
|
2026-05-12 13:24:08 +00:00
|
|
|
"y1": 0.9925
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-07 14:36:25",
|
2026-05-12 22:28:24 +00:00
|
|
|
"updated_at": "2026-05-12 14:19:03"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "black_nir_02",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
|
|
|
|
"x0": 0.851562,
|
|
|
|
|
"y0": 0.82,
|
|
|
|
|
"x1": 0.910156,
|
|
|
|
|
"y1": 0.97625
|
|
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-12 14:19:04",
|
|
|
|
|
"updated_at": "2026-05-12 14:19:16"
|
2026-05-07 19:24:19 +00:00
|
|
|
}
|
|
|
|
|
]
|
2026-05-07 12:55:08 +00:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "gray_reference",
|
|
|
|
|
"type": "gray",
|
|
|
|
|
"roles": [
|
|
|
|
|
"rgb",
|
|
|
|
|
"re",
|
|
|
|
|
"nir"
|
|
|
|
|
],
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.198437,
|
2026-05-12 13:24:08 +00:00
|
|
|
"y0": 0.82625,
|
2026-05-12 22:28:24 +00:00
|
|
|
"x1": 0.257812,
|
|
|
|
|
"y1": 0.985
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
2026-05-08 13:02:01 +00:00
|
|
|
"target_value": 0.35,
|
2026-05-07 12:55:08 +00:00
|
|
|
"target_value_by_role": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"rgb": 0.285,
|
|
|
|
|
"re": 0.22,
|
|
|
|
|
"nir": 0.27
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"weight": 1.0,
|
|
|
|
|
"roi_pct_by_role": {
|
|
|
|
|
"rgb": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.198437,
|
2026-05-12 13:24:08 +00:00
|
|
|
"y0": 0.82625,
|
2026-05-12 22:28:24 +00:00
|
|
|
"x1": 0.257812,
|
|
|
|
|
"y1": 0.985
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"re": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.163281,
|
|
|
|
|
"y0": 0.8175,
|
|
|
|
|
"x1": 0.221875,
|
|
|
|
|
"y1": 0.98625
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"nir": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.228906,
|
|
|
|
|
"y0": 0.8325,
|
|
|
|
|
"x1": 0.290625,
|
|
|
|
|
"y1": 0.99125
|
2026-05-07 12:55:08 +00:00
|
|
|
}
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"roi_list_by_role": {
|
|
|
|
|
"rgb": [
|
|
|
|
|
{
|
|
|
|
|
"name": "rgb_legacy_01",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.198437,
|
2026-05-12 13:24:08 +00:00
|
|
|
"y0": 0.82625,
|
2026-05-12 22:28:24 +00:00
|
|
|
"x1": 0.257812,
|
|
|
|
|
"y1": 0.985
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-07 14:36:25",
|
2026-05-12 22:28:24 +00:00
|
|
|
"updated_at": "2026-05-12 14:16:46"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "gray_rgb_02",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
|
|
|
|
"x0": 0.744531,
|
|
|
|
|
"y0": 0.8275,
|
|
|
|
|
"x1": 0.804688,
|
|
|
|
|
"y1": 0.98625
|
|
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-12 14:16:48",
|
|
|
|
|
"updated_at": "2026-05-12 14:16:59"
|
2026-05-07 19:24:19 +00:00
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"re": [
|
|
|
|
|
{
|
|
|
|
|
"name": "re_legacy_01",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.163281,
|
|
|
|
|
"y0": 0.8175,
|
|
|
|
|
"x1": 0.221875,
|
|
|
|
|
"y1": 0.98625
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-07 14:36:25",
|
2026-05-12 22:28:24 +00:00
|
|
|
"updated_at": "2026-05-12 14:18:03"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "gray_re_02",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
|
|
|
|
"x0": 0.722656,
|
|
|
|
|
"y0": 0.83,
|
|
|
|
|
"x1": 0.7875,
|
|
|
|
|
"y1": 0.99125
|
|
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-12 14:18:05",
|
|
|
|
|
"updated_at": "2026-05-12 14:18:15"
|
2026-05-07 19:24:19 +00:00
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"nir": [
|
|
|
|
|
{
|
|
|
|
|
"name": "nir_legacy_01",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.228906,
|
|
|
|
|
"y0": 0.8325,
|
|
|
|
|
"x1": 0.290625,
|
|
|
|
|
"y1": 0.99125
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-07 14:36:25",
|
2026-05-12 22:28:24 +00:00
|
|
|
"updated_at": "2026-05-12 14:19:24"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "gray_nir_02",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
|
|
|
|
"x0": 0.782031,
|
|
|
|
|
"y0": 0.8225,
|
|
|
|
|
"x1": 0.84375,
|
|
|
|
|
"y1": 0.98
|
|
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-12 14:19:25",
|
|
|
|
|
"updated_at": "2026-05-12 14:19:30"
|
2026-05-07 19:24:19 +00:00
|
|
|
}
|
|
|
|
|
]
|
2026-05-07 12:55:08 +00:00
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "white_reference",
|
|
|
|
|
"type": "white",
|
|
|
|
|
"roles": [
|
|
|
|
|
"rgb",
|
|
|
|
|
"re",
|
|
|
|
|
"nir"
|
|
|
|
|
],
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.126562,
|
|
|
|
|
"y0": 0.8225,
|
|
|
|
|
"x1": 0.189062,
|
|
|
|
|
"y1": 0.9825
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"target_value": 0.82,
|
|
|
|
|
"weight": 0.8,
|
|
|
|
|
"roi_pct_by_role": {
|
|
|
|
|
"rgb": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.126562,
|
|
|
|
|
"y0": 0.8225,
|
|
|
|
|
"x1": 0.189062,
|
|
|
|
|
"y1": 0.9825
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"re": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.090625,
|
|
|
|
|
"y0": 0.8175,
|
|
|
|
|
"x1": 0.148438,
|
|
|
|
|
"y1": 0.985
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"nir": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.154688,
|
|
|
|
|
"y0": 0.83125,
|
|
|
|
|
"x1": 0.21875,
|
|
|
|
|
"y1": 0.99625
|
2026-05-07 12:55:08 +00:00
|
|
|
}
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"roi_list_by_role": {
|
|
|
|
|
"rgb": [
|
|
|
|
|
{
|
|
|
|
|
"name": "rgb_legacy_01",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.126562,
|
|
|
|
|
"y0": 0.8225,
|
|
|
|
|
"x1": 0.189062,
|
|
|
|
|
"y1": 0.9825
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-07 14:36:25",
|
2026-05-12 22:28:24 +00:00
|
|
|
"updated_at": "2026-05-12 14:17:12"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "white_rgb_02",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
|
|
|
|
"x0": 0.675,
|
|
|
|
|
"y0": 0.83,
|
|
|
|
|
"x1": 0.735156,
|
|
|
|
|
"y1": 0.985
|
|
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-12 14:17:13",
|
|
|
|
|
"updated_at": "2026-05-12 14:17:23"
|
2026-05-07 19:24:19 +00:00
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"re": [
|
|
|
|
|
{
|
|
|
|
|
"name": "re_legacy_01",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.090625,
|
|
|
|
|
"y0": 0.8175,
|
|
|
|
|
"x1": 0.148438,
|
|
|
|
|
"y1": 0.985
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-07 14:36:25",
|
2026-05-12 22:28:24 +00:00
|
|
|
"updated_at": "2026-05-12 14:18:29"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "white_re_02",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
|
|
|
|
"x0": 0.648438,
|
|
|
|
|
"y0": 0.83,
|
|
|
|
|
"x1": 0.714063,
|
|
|
|
|
"y1": 0.99125
|
|
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-12 14:18:31",
|
|
|
|
|
"updated_at": "2026-05-12 14:18:45"
|
2026-05-07 19:24:19 +00:00
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"nir": [
|
|
|
|
|
{
|
|
|
|
|
"name": "nir_legacy_01",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"x0": 0.154688,
|
|
|
|
|
"y0": 0.83125,
|
|
|
|
|
"x1": 0.21875,
|
|
|
|
|
"y1": 0.99625
|
2026-05-07 19:24:19 +00:00
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-07 14:36:25",
|
2026-05-12 22:28:24 +00:00
|
|
|
"updated_at": "2026-05-12 14:19:45"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "white_nir_02",
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"roi_pct": {
|
|
|
|
|
"x0": 0.713281,
|
|
|
|
|
"y0": 0.825,
|
|
|
|
|
"x1": 0.775,
|
|
|
|
|
"y1": 0.98125
|
|
|
|
|
},
|
|
|
|
|
"created_at": "2026-05-12 14:19:46",
|
|
|
|
|
"updated_at": "2026-05-12 14:19:54"
|
2026-05-07 19:24:19 +00:00
|
|
|
}
|
|
|
|
|
]
|
2026-05-07 12:55:08 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
2026-05-12 22:28:24 +00:00
|
|
|
"exp_apply_threshold_us": 15,
|
2026-05-07 12:55:08 +00:00
|
|
|
"gain_apply_threshold": 0.05,
|
2026-05-08 17:50:20 +00:00
|
|
|
"apply_same_spectral_to_both": true,
|
2026-05-07 12:55:08 +00:00
|
|
|
"spectral_roles": [
|
|
|
|
|
"re",
|
|
|
|
|
"nir"
|
|
|
|
|
],
|
|
|
|
|
"dark_limit_pct": 35.0,
|
|
|
|
|
"control_strategy": "ratio",
|
2026-05-12 22:28:24 +00:00
|
|
|
"ratio_alpha": 0.42,
|
|
|
|
|
"ratio_min": 0.72,
|
|
|
|
|
"ratio_max": 1.38,
|
2026-05-08 16:25:26 +00:00
|
|
|
"reduce_fast_factor": 0.8,
|
2026-05-12 22:28:24 +00:00
|
|
|
"factor_min": 0.62,
|
|
|
|
|
"factor_max": 1.42,
|
2026-05-07 12:55:08 +00:00
|
|
|
"gain_return_enabled": true,
|
|
|
|
|
"gain_reduce_on_saturation": true,
|
2026-05-12 22:28:24 +00:00
|
|
|
"gain_increase_required_cycles": 3,
|
|
|
|
|
"gain_decrease_required_cycles": 1,
|
|
|
|
|
"gain_step_up": 0.3,
|
2026-05-07 12:55:08 +00:00
|
|
|
"gain_step_down": 0.5,
|
|
|
|
|
"gain_hard_reset_on_saturation": false,
|
|
|
|
|
"exp_high_ratio_for_gain": 0.95,
|
|
|
|
|
"exp_low_ratio_for_gain_return": 0.75,
|
2026-05-06 13:24:17 +00:00
|
|
|
"role_limits": {
|
|
|
|
|
"rgb": {
|
|
|
|
|
"exp_min_us": 100,
|
|
|
|
|
"exp_max_us": 80000,
|
|
|
|
|
"gain_min": 1.0,
|
2026-05-07 12:55:08 +00:00
|
|
|
"gain_max": 2.0
|
2026-05-06 13:24:17 +00:00
|
|
|
},
|
|
|
|
|
"re": {
|
|
|
|
|
"exp_min_us": 100,
|
2026-05-12 22:28:24 +00:00
|
|
|
"exp_max_us": 3500,
|
2026-05-06 13:24:17 +00:00
|
|
|
"gain_min": 1.0,
|
2026-05-07 12:55:08 +00:00
|
|
|
"gain_max": 2.0
|
2026-05-06 13:24:17 +00:00
|
|
|
},
|
|
|
|
|
"nir": {
|
|
|
|
|
"exp_min_us": 100,
|
2026-05-12 22:28:24 +00:00
|
|
|
"exp_max_us": 3500,
|
2026-05-06 13:24:17 +00:00
|
|
|
"gain_min": 1.0,
|
2026-05-07 12:55:08 +00:00
|
|
|
"gain_max": 2.0
|
2026-05-06 13:24:17 +00:00
|
|
|
}
|
|
|
|
|
},
|
2026-05-07 12:55:08 +00:00
|
|
|
"ready_required_cycles": 3,
|
|
|
|
|
"patch_control_mode": "gray_primary",
|
|
|
|
|
"patch_require_order": true,
|
|
|
|
|
"patch_min_separation": 0.08,
|
2026-05-12 22:28:24 +00:00
|
|
|
"patch_white_sat_limit_pct": 5.0,
|
|
|
|
|
"patch_white_p95_limit": 0.985,
|
2026-05-07 12:55:08 +00:00
|
|
|
"patch_black_dark_limit_pct": 80.0,
|
|
|
|
|
"patch_black_max_p50": 0.2,
|
|
|
|
|
"patch_gray_min_p50": 0.08,
|
2026-05-07 19:24:19 +00:00
|
|
|
"patch_gray_max_p50": 0.85,
|
|
|
|
|
"patch_roi_contract": "multi_roi_by_role_v1",
|
|
|
|
|
"patch_roi_reduce_method": "median_valid_rois",
|
|
|
|
|
"patch_roi_outlier_reject": true,
|
2026-05-08 16:25:26 +00:00
|
|
|
"patch_roi_max_p50_delta": 0.12,
|
|
|
|
|
"global_saturation_guard_enabled": true,
|
|
|
|
|
"global_guard_roi_pct": {
|
|
|
|
|
"x0": 0.05,
|
|
|
|
|
"y0": 0.05,
|
|
|
|
|
"x1": 0.95,
|
2026-05-12 22:28:24 +00:00
|
|
|
"y1": 0.76
|
2026-05-08 16:25:26 +00:00
|
|
|
},
|
|
|
|
|
"global_guard_sat_threshold": 0.985,
|
|
|
|
|
"global_guard_near_sat_threshold": 0.94,
|
2026-05-12 22:28:24 +00:00
|
|
|
"global_guard_sat_pct_soft": 0.50,
|
|
|
|
|
"global_guard_sat_pct_hard": 1.5,
|
|
|
|
|
"global_guard_sat_pct_extreme": 5.0,
|
|
|
|
|
"global_guard_blob_pct_soft": 0.20,
|
|
|
|
|
"global_guard_blob_pct_hard": 0.80,
|
|
|
|
|
"global_guard_blob_pct_extreme": 2.2,
|
2026-05-08 16:25:26 +00:00
|
|
|
"global_guard_min_blob_px": 48,
|
|
|
|
|
"global_guard_downsample_max_side": 320,
|
2026-05-12 22:28:24 +00:00
|
|
|
"global_guard_reduce_factor_soft": 0.96,
|
|
|
|
|
"global_guard_reduce_factor_hard": 0.82,
|
|
|
|
|
"global_guard_reduce_factor_extreme": 0.62,
|
2026-05-08 16:25:26 +00:00
|
|
|
"sun_guard_enabled": true,
|
2026-05-12 22:28:24 +00:00
|
|
|
"sun_guard_p99_threshold": 0.96,
|
|
|
|
|
"sun_guard_near_sat_pct_threshold": 2.0,
|
|
|
|
|
"sun_guard_freeze_increase_cycles": 1,
|
2026-05-08 16:25:26 +00:00
|
|
|
"sun_guard_allow_decrease": true,
|
|
|
|
|
"guard_force_apply_enabled": true,
|
2026-05-12 22:28:24 +00:00
|
|
|
"guard_force_apply_soft": false,
|
2026-05-08 16:25:26 +00:00
|
|
|
"guard_force_apply_hard": true,
|
|
|
|
|
"guard_force_apply_extreme": true,
|
|
|
|
|
"guard_force_apply_on_patch_saturation": true,
|
2026-05-12 22:28:24 +00:00
|
|
|
"guard_freeze_cycles_soft": 1,
|
|
|
|
|
"guard_freeze_cycles_hard": 2,
|
|
|
|
|
"guard_freeze_cycles_extreme": 3,
|
2026-05-08 16:25:26 +00:00
|
|
|
"guard_reapply_min_exp_on_emergency": true,
|
2026-05-12 22:28:24 +00:00
|
|
|
"guard_min_exp_margin_us": 80,
|
|
|
|
|
"patch_two_roi_soften_risk": true,
|
|
|
|
|
"patch_two_roi_white_risk_percentile": 75,
|
|
|
|
|
"patch_two_roi_other_risk_percentile": 50,
|
|
|
|
|
"patch_white_single_roi_saturation_reject": true,
|
|
|
|
|
"patch_white_roi_reject_sat_pct": 5.0,
|
|
|
|
|
"patch_white_roi_reject_p95": 0.995
|
2026-05-07 12:55:08 +00:00
|
|
|
},
|
|
|
|
|
"radiometric_normalization": {
|
2026-05-08 13:02:01 +00:00
|
|
|
"enabled": false,
|
2026-05-07 12:55:08 +00:00
|
|
|
"method": "exposure_gain_reference",
|
|
|
|
|
"apply_stage": "after_dark_before_flat_gain",
|
|
|
|
|
"reference_controls": {
|
|
|
|
|
"rgb": {
|
2026-05-07 19:24:19 +00:00
|
|
|
"exposure_time_us": 3000,
|
2026-05-07 12:55:08 +00:00
|
|
|
"analogue_gain": 1.0
|
|
|
|
|
},
|
|
|
|
|
"re": {
|
2026-05-07 19:24:19 +00:00
|
|
|
"exposure_time_us": 7000,
|
2026-05-07 12:55:08 +00:00
|
|
|
"analogue_gain": 1.0
|
|
|
|
|
},
|
|
|
|
|
"nir": {
|
2026-05-07 19:24:19 +00:00
|
|
|
"exposure_time_us": 7000,
|
2026-05-07 12:55:08 +00:00
|
|
|
"analogue_gain": 1.0
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"clip_output": true
|
|
|
|
|
},
|
|
|
|
|
"patch_normalization": {
|
|
|
|
|
"enabled": true,
|
|
|
|
|
"apply_when_metering_mode": "reference_patches",
|
|
|
|
|
"apply_stage": "after_fusion",
|
|
|
|
|
"method": "gray_scale_with_white_guard",
|
|
|
|
|
"space": "multispec_tensor",
|
|
|
|
|
"targets": {
|
|
|
|
|
"black": 0.06,
|
|
|
|
|
"gray": 0.4,
|
|
|
|
|
"white": 0.78
|
|
|
|
|
},
|
|
|
|
|
"white_guard_max": 0.92,
|
|
|
|
|
"scale_min": 0.35,
|
|
|
|
|
"scale_max": 2.5,
|
|
|
|
|
"clip_output": true,
|
|
|
|
|
"require_valid_gray": true,
|
|
|
|
|
"use_black_for_offset": false,
|
|
|
|
|
"save_patch_stats": true
|
2026-05-05 17:39:58 +00:00
|
|
|
},
|
|
|
|
|
"rgb_calibration": {
|
2026-05-12 22:28:24 +00:00
|
|
|
"enabled": false,
|
2026-05-05 17:39:58 +00:00
|
|
|
"gains": {
|
2026-05-07 12:55:08 +00:00
|
|
|
"R": 1.2500000000000002,
|
2026-05-05 17:39:58 +00:00
|
|
|
"G": 1.0,
|
2026-05-07 12:55:08 +00:00
|
|
|
"B": 1.5500000000000005
|
2026-05-05 17:39:58 +00:00
|
|
|
}
|
2026-05-06 13:24:17 +00:00
|
|
|
},
|
|
|
|
|
"flatfield_config": {
|
2026-05-12 13:24:08 +00:00
|
|
|
"enabled": true,
|
2026-05-07 12:55:08 +00:00
|
|
|
"subtract_dark": true,
|
2026-05-06 13:24:17 +00:00
|
|
|
"schema": "multispec_flatfield_v1",
|
2026-05-12 13:24:08 +00:00
|
|
|
"created_at": "2026-05-08 15:26:18",
|
2026-05-06 13:24:17 +00:00
|
|
|
"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
|
|
|
|
|
],
|
2026-05-12 13:24:08 +00:00
|
|
|
"gain_min": 0.6047894954681396,
|
|
|
|
|
"gain_max": 1.7825754880905151,
|
|
|
|
|
"gain_mean": 1.077973484992981,
|
|
|
|
|
"gain_std": 0.3330462872982025
|
2026-05-06 13:24:17 +00:00
|
|
|
},
|
|
|
|
|
"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
|
|
|
|
|
],
|
2026-05-12 13:24:08 +00:00
|
|
|
"gain_min": 0.535053014755249,
|
|
|
|
|
"gain_max": 1.6048510074615479,
|
|
|
|
|
"gain_mean": 1.0092605352401733,
|
|
|
|
|
"gain_std": 0.29722487926483154
|
2026-05-06 13:24:17 +00:00
|
|
|
},
|
|
|
|
|
"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
|
|
|
|
|
],
|
2026-05-12 13:24:08 +00:00
|
|
|
"gain_min": 0.5684313178062439,
|
|
|
|
|
"gain_max": 1.6688997745513916,
|
|
|
|
|
"gain_mean": 1.0110775232315063,
|
|
|
|
|
"gain_std": 0.3016279637813568
|
2026-05-06 13:24:17 +00:00
|
|
|
},
|
|
|
|
|
"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,
|
2026-05-07 12:55:08 +00:00
|
|
|
1280
|
2026-05-06 13:24:17 +00:00
|
|
|
],
|
2026-05-12 13:24:08 +00:00
|
|
|
"gain_min": 0.7832612991333008,
|
|
|
|
|
"gain_max": 1.8540745973587036,
|
|
|
|
|
"gain_mean": 1.099328637123108,
|
|
|
|
|
"gain_std": 0.259878933429718
|
2026-05-06 13:24:17 +00:00
|
|
|
},
|
|
|
|
|
"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,
|
2026-05-07 12:55:08 +00:00
|
|
|
1280
|
2026-05-06 13:24:17 +00:00
|
|
|
],
|
2026-05-12 13:24:08 +00:00
|
|
|
"gain_min": 0.7467380166053772,
|
|
|
|
|
"gain_max": 1.8378677368164062,
|
|
|
|
|
"gain_mean": 1.0630955696105957,
|
|
|
|
|
"gain_std": 0.23178784549236298
|
2026-05-06 13:24:17 +00:00
|
|
|
}
|
|
|
|
|
},
|
2026-05-12 13:24:08 +00:00
|
|
|
"exp_gain_correct_during_flat_capture": false,
|
2026-05-06 13:24:17 +00:00
|
|
|
"smooth_ksize": 31,
|
|
|
|
|
"min_gain": 0.25,
|
|
|
|
|
"max_gain": 4.0,
|
|
|
|
|
"notes": ""
|
2026-05-05 13:15:09 +00:00
|
|
|
}
|
|
|
|
|
}
|