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

785 lines
20 KiB
JSON

{
"global_scene_mode": {
"radiometric_config": {
"enabled": true,
"interval_s": 0.5,
"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,
"alpha": 0.18,
"exp_step_gain": 0.55,
"prefer_exposure": true,
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"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"
],
"control_strategy": "ratio",
"ratio_alpha": 0.55,
"ratio_min": 0.55,
"ratio_max": 1.85,
"reduce_fast_factor": 0.75,
"factor_min": 0.72,
"factor_max": 1.28,
"gain_return_enabled": true,
"gain_reduce_on_saturation": true,
"gain_increase_required_cycles": 5,
"gain_decrease_required_cycles": 2,
"gain_step_up": 0.2,
"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,
"ready_required_cycles": 3,
"global_roi_pct_by_role": {
"rgb": {
"x0": 0.08,
"y0": 0.08,
"x1": 0.92,
"y1": 0.92
},
"re": {
"x0": 0.08,
"y0": 0.08,
"x1": 0.92,
"y1": 0.92
},
"nir": {
"x0": 0.08,
"y0": 0.08,
"x1": 0.92,
"y1": 0.92
}
}
}
},
"three_reference_patches_mode": {
"radiometric_config": {
"enabled": true,
"interval_s": 0.5,
"verbose": true,
"metering_mode": "reference_patches",
"spectral_control_mode": "shared",
"control_metric": "p50",
"target_value": 0.5,
"deadband": 0.035,
"p95_limit": 0.92,
"saturation_limit_pct": 0.5,
"alpha": 0.18,
"exp_step_gain": 0.55,
"prefer_exposure": true,
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 4.0,
"reference_patches": [
{
"name": "black_reference",
"type": "black",
"roles": [
"rgb",
"re",
"nir"
],
"roi_pct": {
"x0": 0.365625,
"y0": 0.8225,
"x1": 0.432812,
"y1": 0.995
},
"target_value": 0.08,
"weight": 0.7,
"roi_pct_by_role": {
"rgb": {
"x0": 0.365625,
"y0": 0.8225,
"x1": 0.432812,
"y1": 0.995
},
"re": {
"x0": 0.395313,
"y0": 0.745,
"x1": 0.4625,
"y1": 0.9225
},
"nir": {
"x0": 0.353125,
"y0": 0.78,
"x1": 0.420312,
"y1": 0.9525
}
},
"roi_list_by_role": {
"rgb": [
{
"name": "rgb_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.365625,
"y0": 0.8225,
"x1": 0.432812,
"y1": 0.995
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:19:46"
}
],
"re": [
{
"name": "re_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.395313,
"y0": 0.745,
"x1": 0.4625,
"y1": 0.9225
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:14"
}
],
"nir": [
{
"name": "nir_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.353125,
"y0": 0.78,
"x1": 0.420312,
"y1": 0.9525
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:47"
}
]
}
},
{
"name": "gray_reference",
"type": "gray",
"roles": [
"rgb",
"re",
"nir"
],
"roi_pct": {
"x0": 0.29375,
"y0": 0.825,
"x1": 0.3625,
"y1": 0.995
},
"target_value": 0.5,
"weight": 1.0,
"roi_pct_by_role": {
"rgb": {
"x0": 0.29375,
"y0": 0.825,
"x1": 0.3625,
"y1": 0.995
},
"re": {
"x0": 0.325,
"y0": 0.75,
"x1": 0.389062,
"y1": 0.915
},
"nir": {
"x0": 0.284375,
"y0": 0.79,
"x1": 0.35,
"y1": 0.9525
}
},
"roi_list_by_role": {
"rgb": [
{
"name": "rgb_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.29375,
"y0": 0.825,
"x1": 0.3625,
"y1": 0.995
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:19:29"
}
],
"re": [
{
"name": "re_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.325,
"y0": 0.75,
"x1": 0.389062,
"y1": 0.915
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:22"
}
],
"nir": [
{
"name": "nir_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.284375,
"y0": 0.79,
"x1": 0.35,
"y1": 0.9525
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:53"
}
]
}
},
{
"name": "white_reference",
"type": "white",
"roles": [
"rgb",
"re",
"nir"
],
"roi_pct": {
"x0": 0.220312,
"y0": 0.8225,
"x1": 0.2875,
"y1": 0.995
},
"target_value": 0.82,
"weight": 0.8,
"roi_pct_by_role": {
"rgb": {
"x0": 0.220312,
"y0": 0.8225,
"x1": 0.2875,
"y1": 0.995
},
"re": {
"x0": 0.25,
"y0": 0.7525,
"x1": 0.315625,
"y1": 0.9225
},
"nir": {
"x0": 0.214062,
"y0": 0.785,
"x1": 0.282813,
"y1": 0.9525
}
},
"roi_list_by_role": {
"rgb": [
{
"name": "rgb_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.220312,
"y0": 0.8225,
"x1": 0.2875,
"y1": 0.995
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:19:04"
}
],
"re": [
{
"name": "re_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.25,
"y0": 0.7525,
"x1": 0.315625,
"y1": 0.9225
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:27"
}
],
"nir": [
{
"name": "nir_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.214062,
"y0": 0.785,
"x1": 0.282813,
"y1": 0.9525
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:21:02"
}
]
}
}
],
"exp_apply_threshold_us": 80,
"gain_apply_threshold": 0.05,
"apply_same_spectral_to_both": true,
"spectral_roles": [
"re",
"nir"
],
"dark_limit_pct": 35.0,
"control_strategy": "ratio",
"ratio_alpha": 0.55,
"ratio_min": 0.55,
"ratio_max": 1.85,
"reduce_fast_factor": 0.75,
"factor_min": 0.72,
"factor_max": 1.28,
"gain_return_enabled": true,
"gain_reduce_on_saturation": true,
"gain_increase_required_cycles": 5,
"gain_decrease_required_cycles": 2,
"gain_step_up": 0.2,
"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,
"role_limits": {
"rgb": {
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 2.0
},
"re": {
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 2.0
},
"nir": {
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 2.0
}
},
"ready_required_cycles": 3,
"patch_control_mode": "gray_primary",
"patch_require_order": true,
"patch_min_separation": 0.08,
"patch_white_sat_limit_pct": 0.5,
"patch_white_p95_limit": 0.9,
"patch_black_dark_limit_pct": 80.0,
"patch_black_max_p50": 0.2,
"patch_gray_min_p50": 0.08,
"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,
"patch_roi_max_p50_delta": 0.12
}
},
"legacy_patch_mode": {
"radiometric_config": {
"enabled": true,
"metering_mode": "legacy_patch",
"spectral_control_mode": "independent",
"strip_y0_pct": 0.95,
"strip_y1_pct": 1.0,
"patch_x0_pct": 0.35,
"patch_x1_pct": 0.75,
"control_metric": "mean",
"target_value": 0.7,
"deadband": 0.03,
"interval_s": 0.5,
"alpha": 0.2,
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 8.0,
"exp_step_gain": 0.65,
"prefer_exposure": true,
"verbose": true
}
},
"schema": "multispec_radiometric_config_profiles_v3",
"saved_at": "2026-05-08 09:21:09",
"active_profile": "three_reference_patches_mode",
"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
},
"radiometric_config": {
"enabled": true,
"interval_s": 0.5,
"verbose": true,
"metering_mode": "reference_patches",
"spectral_control_mode": "shared",
"control_metric": "p50",
"target_value": 0.5,
"deadband": 0.035,
"p95_limit": 0.92,
"saturation_limit_pct": 0.5,
"alpha": 0.18,
"exp_step_gain": 0.55,
"prefer_exposure": true,
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 4.0,
"reference_patches": [
{
"name": "black_reference",
"type": "black",
"roles": [
"rgb",
"re",
"nir"
],
"roi_pct": {
"x0": 0.365625,
"y0": 0.8225,
"x1": 0.432812,
"y1": 0.995
},
"target_value": 0.08,
"weight": 0.7,
"roi_pct_by_role": {
"rgb": {
"x0": 0.365625,
"y0": 0.8225,
"x1": 0.432812,
"y1": 0.995
},
"re": {
"x0": 0.395313,
"y0": 0.745,
"x1": 0.4625,
"y1": 0.9225
},
"nir": {
"x0": 0.353125,
"y0": 0.78,
"x1": 0.420312,
"y1": 0.9525
}
},
"roi_list_by_role": {
"rgb": [
{
"name": "rgb_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.365625,
"y0": 0.8225,
"x1": 0.432812,
"y1": 0.995
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:19:46"
}
],
"re": [
{
"name": "re_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.395313,
"y0": 0.745,
"x1": 0.4625,
"y1": 0.9225
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:14"
}
],
"nir": [
{
"name": "nir_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.353125,
"y0": 0.78,
"x1": 0.420312,
"y1": 0.9525
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:47"
}
]
}
},
{
"name": "gray_reference",
"type": "gray",
"roles": [
"rgb",
"re",
"nir"
],
"roi_pct": {
"x0": 0.29375,
"y0": 0.825,
"x1": 0.3625,
"y1": 0.995
},
"target_value": 0.5,
"weight": 1.0,
"roi_pct_by_role": {
"rgb": {
"x0": 0.29375,
"y0": 0.825,
"x1": 0.3625,
"y1": 0.995
},
"re": {
"x0": 0.325,
"y0": 0.75,
"x1": 0.389062,
"y1": 0.915
},
"nir": {
"x0": 0.284375,
"y0": 0.79,
"x1": 0.35,
"y1": 0.9525
}
},
"roi_list_by_role": {
"rgb": [
{
"name": "rgb_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.29375,
"y0": 0.825,
"x1": 0.3625,
"y1": 0.995
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:19:29"
}
],
"re": [
{
"name": "re_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.325,
"y0": 0.75,
"x1": 0.389062,
"y1": 0.915
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:22"
}
],
"nir": [
{
"name": "nir_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.284375,
"y0": 0.79,
"x1": 0.35,
"y1": 0.9525
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:53"
}
]
}
},
{
"name": "white_reference",
"type": "white",
"roles": [
"rgb",
"re",
"nir"
],
"roi_pct": {
"x0": 0.220312,
"y0": 0.8225,
"x1": 0.2875,
"y1": 0.995
},
"target_value": 0.82,
"weight": 0.8,
"roi_pct_by_role": {
"rgb": {
"x0": 0.220312,
"y0": 0.8225,
"x1": 0.2875,
"y1": 0.995
},
"re": {
"x0": 0.25,
"y0": 0.7525,
"x1": 0.315625,
"y1": 0.9225
},
"nir": {
"x0": 0.214062,
"y0": 0.785,
"x1": 0.282813,
"y1": 0.9525
}
},
"roi_list_by_role": {
"rgb": [
{
"name": "rgb_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.220312,
"y0": 0.8225,
"x1": 0.2875,
"y1": 0.995
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:19:04"
}
],
"re": [
{
"name": "re_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.25,
"y0": 0.7525,
"x1": 0.315625,
"y1": 0.9225
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:20:27"
}
],
"nir": [
{
"name": "nir_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.214062,
"y0": 0.785,
"x1": 0.282813,
"y1": 0.9525
},
"created_at": "2026-05-07 14:36:25",
"updated_at": "2026-05-08 09:21:02"
}
]
}
}
],
"exp_apply_threshold_us": 80,
"gain_apply_threshold": 0.05,
"apply_same_spectral_to_both": true,
"spectral_roles": [
"re",
"nir"
],
"dark_limit_pct": 35.0,
"control_strategy": "ratio",
"ratio_alpha": 0.55,
"ratio_min": 0.55,
"ratio_max": 1.85,
"reduce_fast_factor": 0.75,
"factor_min": 0.72,
"factor_max": 1.28,
"gain_return_enabled": true,
"gain_reduce_on_saturation": true,
"gain_increase_required_cycles": 5,
"gain_decrease_required_cycles": 2,
"gain_step_up": 0.2,
"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,
"role_limits": {
"rgb": {
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 2.0
},
"re": {
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 2.0
},
"nir": {
"exp_min_us": 100,
"exp_max_us": 80000,
"gain_min": 1.0,
"gain_max": 2.0
}
},
"ready_required_cycles": 3,
"patch_control_mode": "gray_primary",
"patch_require_order": true,
"patch_min_separation": 0.08,
"patch_white_sat_limit_pct": 0.5,
"patch_white_p95_limit": 0.9,
"patch_black_dark_limit_pct": 80.0,
"patch_black_max_p50": 0.2,
"patch_gray_min_p50": 0.08,
"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,
"patch_roi_max_p50_delta": 0.12
}
}