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

963 lines
25 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-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-13 15:37:34 +00:00
"bayer_pattern": "BGGR",
"rgb_processing": {
2026-06-08 10:36:41 +00:00
"mode": "bayer_planes",
"demosaic_algorithm": "ea",
"enhancement": {
"enabled": true,
"backend": "hybrid",
"preset": "soft",
"apply_to_preview_input": false,
"use_u8_pipeline": true,
"auto_stretch": {
"enabled": false,
"low_pct": 0.2,
"high_pct": 99.8
},
"clip_output": true,
"save_debug": false
}
2026-05-13 15:37:34 +00:00
},
2026-05-05 13:15:09 +00:00
"camera_settings": {
"rgb": {
2026-05-15 10:51:17 +00:00
"ae_enable": true,
"awb_enable": true,
2026-05-07 19:24:19 +00:00
"exposure_time_us": 2000,
2026-05-06 13:24:17 +00:00
"analogue_gain": 1.0,
"colour_gains": [
1.0,
1.0
]
2026-05-05 13:15:09 +00:00
},
"re": {
2026-05-15 10:51:17 +00:00
"ae_enable": true,
2026-05-05 13:15:09 +00:00
"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
},
"nir": {
2026-05-15 10:51:17 +00:00
"ae_enable": true,
"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 13:15:09 +00:00
}
},
"fusion_config": {
2026-05-21 22:57:35 +00:00
"use_remap_cache": true,
"use_remap_for_rgb": false,
"use_remap_for_spec": true,
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,
2026-05-21 22:57:35 +00:00
"dy": 0,
2026-05-05 13:15:09 +00:00
"theta_deg": 0.0
}
},
2026-05-21 22:57:35 +00:00
"homography_calibration_size": [1280, 800],
"homography_profile": "baixa",
"homography_profile_by_role": {
"re": "baixa",
"nir": "baixa"
},
"homography_profiles": {
"baixa": {
"description": "Plano mais baixo/distante da câmera, normalmente mais próximo do chão.",
"depth": 120.0,
"homography_calibration_size": [1280, 800],
"homography_source": "all_valid_triplets",
"homography_stats": {
"re_total_points": 267,
"re_inliers": 267,
"re_inlier_pct": 100.0,
"nir_total_points": 282,
"nir_inliers": 276,
"nir_inlier_pct": 97.87234042553192,
"re_frames_used": 13,
"nir_frames_used": 13,
"common_frames_used": 13,
"overlap_common_pct": 92.09267578125
},
"homographies": {
"re_to_rgb": [
[
1.014814963583485,
0.015257560646391,
-27.5415127674596
],
[
0.000064618247568,
1.020756196943496,
51.80289590472656
],
[
0.000003411885963,
0.0000210631067,
1.0
]
],
"nir_to_rgb": [
[
0.993261705358079,
0.008537634512529,
-19.84130896890106
],
[
-0.004568701240477,
1.002385627262319,
37.83216994660247
],
[
-0.00000725852956,
0.000011588890195,
1.0
]
]
}
},
"media": {
"description": "Plano médio, calibrado com ChArUco a aproximadamente 66 cm da lente.",
"depth": 66.0,
"homography_calibration_size": [1280, 800],
"homography_source": "all_valid_triplets",
"homography_stats": {
"min_common_frame": 4,
"min_total_points": 30,
"re_total_points": 681,
"re_inliers": 666,
"re_inlier_pct": 97.79735682819384,
"nir_total_points": 682,
"nir_inliers": 662,
"nir_inlier_pct": 97.0674486803519,
"re_frames_used": 10,
"nir_frames_used": 10,
"common_frames_used": 10,
"overlap_re_pct": 92.06279296874999,
"overlap_nir_pct": 92.97744140625001,
"overlap_common_pct": 90.9361328125
},
"homographies": {
"re_to_rgb": [
[
1.0178493693104127,
0.01417807024780309,
-21.68597109171115
],
[
0.0010063750504059967,
1.0231248578982763,
57.68510361307461
],
[
0.000003886299643192958,
0.0000197941570901694,
1.0
]
],
"nir_to_rgb": [
[
0.9967828768745967,
0.007204312783804796,
-27.956111536702632
],
[
-0.0033537915240536544,
1.005150033976991,
43.58722588915352
],
[
-0.000005956433574512551,
0.000010346309041666395,
1.0
]
]
}
},
"alta": {
"description": "Plano mais alto/próximo da câmera, calibrado com ChArUco acima do plano médio.",
"depth": 36.0,
"homography_calibration_size": [1280, 800],
"homography_source": "all_valid_triplets",
"homography_stats": {
"min_common_frame": 4,
"min_total_points": 30,
"re_total_points": 336,
"re_inliers": 305,
"re_inlier_pct": 90.77380952380952,
"nir_total_points": 333,
"nir_inliers": 330,
"nir_inlier_pct": 99.09909909909909,
"re_frames_used": 5,
"nir_frames_used": 5,
"common_frames_used": 5,
"overlap_re_pct": 91.26904296875,
"overlap_nir_pct": 90.83525390625,
"overlap_common_pct": 88.8357421875
},
"homographies": {
"re_to_rgb": [
[
1.022058360214937,
0.013411355134898,
-11.893143823943664
],
[
0.001034227529954,
1.026408605195186,
69.3538160647828
],
[
0.000003600847244,
0.000019493014216,
1.0
]
],
"nir_to_rgb": [
[
1.001478266241777,
0.007623070623269,
-43.01507447243508
],
[
-0.002877662918552,
1.008411842924782,
55.15260407195015
],
[
-0.000005444722264,
0.000009647719914,
1.0
]
]
}
}
2026-05-05 13:15:09 +00:00
},
"crop_valid_common": true,
"resize_after_crop": true,
2026-06-08 10:36:41 +00:00
"target_size": [640, 400]
2026-05-05 13:15:09 +00:00
},
"radiometric_config": {
2026-05-15 10:51:17 +00:00
"enabled": false,
"interval_s": 0.25,
2026-05-06 13:24:17 +00:00
"verbose": true,
"metering_mode": "reference_patches",
"spectral_control_mode": "shared",
2026-05-06 13:24:17 +00:00
"control_metric": "p50",
"target_value": 0.5,
"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,
"reference_patches": [
{
"name": "black_reference",
"type": "black",
"roles": [
"rgb",
"re",
"nir"
],
"roi_pct": {
"x0": 0.26875,
"y0": 0.8175,
"x1": 0.328906,
"y1": 0.985
},
"target_value": 0.08,
"weight": 0.7,
"roi_pct_by_role": {
"rgb": {
"x0": 0.26875,
"y0": 0.8175,
"x1": 0.328906,
"y1": 0.985
},
"re": {
"x0": 0.235156,
"y0": 0.8175,
"x1": 0.289062,
"y1": 0.985
},
"nir": {
"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
},
"roi_list_by_role": {
"rgb": [
{
"name": "rgb_legacy_01",
"enabled": true,
"roi_pct": {
"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,
"x1": 0.873437,
2026-05-12 13:24:08 +00:00
"y1": 0.9875
2026-05-07 19:24:19 +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": {
"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",
"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": {
"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",
"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
}
]
}
},
{
"name": "gray_reference",
"type": "gray",
"roles": [
"rgb",
"re",
"nir"
],
"roi_pct": {
"x0": 0.198437,
2026-05-12 13:24:08 +00:00
"y0": 0.82625,
"x1": 0.257812,
"y1": 0.985
},
"target_value": 0.35,
"target_value_by_role": {
"rgb": 0.285,
"re": 0.22,
"nir": 0.27
},
"weight": 1.0,
"roi_pct_by_role": {
"rgb": {
"x0": 0.198437,
2026-05-12 13:24:08 +00:00
"y0": 0.82625,
"x1": 0.257812,
"y1": 0.985
},
"re": {
"x0": 0.163281,
"y0": 0.8175,
"x1": 0.221875,
"y1": 0.98625
},
"nir": {
"x0": 0.228906,
"y0": 0.8325,
"x1": 0.290625,
"y1": 0.99125
}
2026-05-07 19:24:19 +00:00
},
"roi_list_by_role": {
"rgb": [
{
"name": "rgb_legacy_01",
"enabled": true,
"roi_pct": {
"x0": 0.198437,
2026-05-12 13:24:08 +00:00
"y0": 0.82625,
"x1": 0.257812,
"y1": 0.985
2026-05-07 19:24:19 +00:00
},
"created_at": "2026-05-07 14:36:25",
"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": {
"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",
"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": {
"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",
"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
}
]
}
},
{
"name": "white_reference",
"type": "white",
"roles": [
"rgb",
"re",
"nir"
],
"roi_pct": {
"x0": 0.126562,
"y0": 0.8225,
"x1": 0.189062,
"y1": 0.9825
},
"target_value": 0.82,
"weight": 0.8,
"roi_pct_by_role": {
"rgb": {
"x0": 0.126562,
"y0": 0.8225,
"x1": 0.189062,
"y1": 0.9825
},
"re": {
"x0": 0.090625,
"y0": 0.8175,
"x1": 0.148438,
"y1": 0.985
},
"nir": {
"x0": 0.154688,
"y0": 0.83125,
"x1": 0.21875,
"y1": 0.99625
}
2026-05-07 19:24:19 +00:00
},
"roi_list_by_role": {
"rgb": [
{
"name": "rgb_legacy_01",
"enabled": true,
"roi_pct": {
"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",
"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": {
"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",
"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": {
"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",
"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
}
]
}
}
],
"exp_apply_threshold_us": 15,
"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.42,
"ratio_min": 0.72,
"ratio_max": 1.38,
"reduce_fast_factor": 0.8,
"factor_min": 0.62,
"factor_max": 1.42,
"gain_return_enabled": true,
"gain_reduce_on_saturation": true,
"gain_increase_required_cycles": 3,
"gain_decrease_required_cycles": 1,
"gain_step_up": 0.3,
"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,
"gain_max": 2.0
2026-05-06 13:24:17 +00:00
},
"re": {
"exp_min_us": 100,
"exp_max_us": 3500,
2026-05-06 13:24:17 +00:00
"gain_min": 1.0,
"gain_max": 2.0
2026-05-06 13:24:17 +00:00
},
"nir": {
"exp_min_us": 100,
"exp_max_us": 3500,
2026-05-06 13:24:17 +00:00
"gain_min": 1.0,
"gain_max": 2.0
2026-05-06 13:24:17 +00:00
}
},
"ready_required_cycles": 3,
"patch_control_mode": "gray_primary",
"patch_require_order": true,
"patch_min_separation": 0.08,
"patch_white_sat_limit_pct": 5.0,
"patch_white_p95_limit": 0.985,
"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,
"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,
"y1": 0.76
},
"global_guard_sat_threshold": 0.985,
"global_guard_near_sat_threshold": 0.94,
"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,
"global_guard_min_blob_px": 48,
"global_guard_downsample_max_side": 320,
"global_guard_reduce_factor_soft": 0.96,
"global_guard_reduce_factor_hard": 0.82,
"global_guard_reduce_factor_extreme": 0.62,
"sun_guard_enabled": true,
"sun_guard_p99_threshold": 0.96,
"sun_guard_near_sat_pct_threshold": 2.0,
"sun_guard_freeze_increase_cycles": 1,
"sun_guard_allow_decrease": true,
"guard_force_apply_enabled": true,
"guard_force_apply_soft": false,
"guard_force_apply_hard": true,
"guard_force_apply_extreme": true,
"guard_force_apply_on_patch_saturation": true,
"guard_freeze_cycles_soft": 1,
"guard_freeze_cycles_hard": 2,
"guard_freeze_cycles_extreme": 3,
"guard_reapply_min_exp_on_emergency": true,
"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
},
"radiometric_normalization": {
2026-05-15 10:51:17 +00:00
"enabled": true,
"method": "oak_ae_frame_controls_v1",
"apply_stage": "after_dark_before_flat_gain",
2026-05-15 10:51:17 +00:00
"control_source": "stream_meta.frame_controls",
"role_mapping_source": "camera_info",
"factor_model": "exposure_time_us_x_iso",
"iso_base": 100.0,
"reference_mode": "fixed",
"reference_controls": {
"rgb": {
2026-05-26 11:01:47 +00:00
"exposure_time_us": 3000,
2026-05-21 22:57:35 +00:00
"sensitivity_iso": 100
2026-05-15 10:51:17 +00:00
},
"re": {
2026-05-26 11:01:47 +00:00
"exposure_time_us": 4000,
2026-05-21 22:57:35 +00:00
"sensitivity_iso": 100
2026-05-15 10:51:17 +00:00
},
"nir": {
2026-05-26 11:01:47 +00:00
"exposure_time_us": 4000,
2026-05-21 22:57:35 +00:00
"sensitivity_iso": 100
2026-05-15 10:51:17 +00:00
}
},
"scale_limits": {
"default": {
"min": 0.15,
2026-05-21 22:57:35 +00:00
"max": 3.0
2026-05-15 10:51:17 +00:00
},
"rgb": {
"min": 0.15,
2026-05-21 22:57:35 +00:00
"max": 3.0
},
"re": {
2026-05-15 10:51:17 +00:00
"min": 0.15,
2026-05-26 11:01:47 +00:00
"max": 3.0
},
"nir": {
2026-05-15 10:51:17 +00:00
"min": 0.15,
2026-05-26 11:01:47 +00:00
"max": 3.0
}
},
2026-05-15 10:51:17 +00:00
"missing_controls_policy": "skip",
"invalid_controls_policy": "skip",
"clip_output": false,
"save_debug": true
},
"patch_normalization": {
2026-05-15 10:51:17 +00:00
"enabled": false,
"apply_when_metering_mode": "reference_patches",
"apply_stage": "after_fusion",
"method": "gray_scale_with_white_guard",
"space": "multispec_tensor",
2026-05-13 15:37:34 +00:00
"targets_by_patch_channel": {
"black": {
"R": 0.06,
"G": 0.06,
"B": 0.06,
"RE": 0.06,
"NIR": 0.06
},
"gray": {
"R": 0.34,
"G": 0.34,
"B": 0.34,
"RE": 0.24,
"NIR": 0.30
},
"white": {
"R": 0.78,
"G": 0.78,
"B": 0.78,
"RE": 0.78,
"NIR": 0.78
}
},
2026-05-13 15:37:34 +00:00
"white_guard_max": 0.92,
2026-05-13 15:37:34 +00:00
"white_guard_max_by_channel": {
"R": 0.92,
"G": 0.92,
"B": 0.92,
"RE": 0.88,
"NIR": 0.88
},
"scale_min": 0.35,
"scale_max": 2.5,
"clip_output": true,
"require_valid_gray": true,
"use_black_for_offset": false,
2026-05-13 15:37:34 +00:00
"save_patch_stats": true,
"rgb_saturation_guard_enabled": true,
"rgb_saturation_guard_mode": "fade_strength",
"rgb_saturation_soft_start": 0.88,
"rgb_saturation_hard": 0.97,
"rgb_saturation_threshold": 0.97
},
"rgb_calibration": {
2026-05-26 11:01:47 +00:00
"enabled": false,
"gains": {
2026-05-21 22:57:35 +00:00
"R": 1.061,
"G": 1.0,
2026-05-21 22:57:35 +00:00
"B": 1.452
}
2026-05-06 13:24:17 +00:00
},
"flatfield_config": {
2026-05-12 13:24:08 +00:00
"enabled": true,
2026-05-21 22:57:35 +00:00
"subtract_dark": false,
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",
2026-05-21 22:57:35 +00:00
"apply_before_fusion": false,
"apply_after_decode": false,
"apply_space": "final_tensor_space",
2026-05-06 13:24:17 +00:00
"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,
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,
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-21 22:57:35 +00:00
"exp_gain_correct_during_flat_capture": true,
2026-05-06 13:24:17 +00:00
"smooth_ksize": 31,
"min_gain": 0.25,
"max_gain": 4.0,
2026-05-13 15:37:34 +00:00
"notes": "",
2026-05-21 22:57:35 +00:00
"strength": 0.25,
2026-05-13 15:37:34 +00:00
"strength_by_channel": {
2026-05-21 22:57:35 +00:00
"R": 0.5,
"G": 0.5,
"B": 0.5,
2026-05-13 15:37:34 +00:00
"RE": 0.25,
"NIR": 0.25
},
"gain_min_runtime": 0.75,
"gain_max_runtime": 1.35,
"runtime_smooth_ksize": 81,
2026-05-21 22:57:35 +00:00
"fast_runtime": true,
"saturation_guard_enabled": false,
2026-05-13 15:37:34 +00:00
"saturation_guard_mode": "fade_strength",
"saturation_guard_threshold": 0.97,
"saturation_guard_soft_start": 0.88,
2026-05-21 22:57:35 +00:00
"saturation_guard_hard": 0.97,
"clip_output": true
2026-05-05 13:15:09 +00:00
}
}