agrobot_base/Python/OAK/datasets/oak-fcc-3/config.json

216 lines
5.2 KiB
JSON

{
"camera": "oak-fcc-3",
"modelo": "segformer_b1",
"model_name": "2026_08_28_linear_demosaic",
"main_class_name": "erva",
"es_classes": "",
"model_to_use": "geral",
"raw_size": [1280, 800],
"resolucao": [960, 600],
"roi_inicio": 0.0,
"roi_tamanho": 1.0,
"shaves": 3,
"source_channels": ["R", "G", "B", "RE", "NIR"],
"channels": 5,
"input_channels": ["R", "G", "B", "RE", "NIR"],
"derived_channels": {
"epsilon": 1e-6,
"clip_min": -1.0,
"clip_max": 1.0
},
"backbone": "nvidia/mit-b1",
"fusion_mode": "stacked",
"stats_source_tag": "stacked_raw5",
"module_params_json": "calibration/module_params.json",
"ckpt_test": "best_score",
"multi_head": true,
"heads": {
"semantic": {
"enabled": true,
"type": "multiclass",
"num_classes": 3,
"mask_dir": "masks",
"classes": {"chao": 0, "cana": 1, "erva": 2},
"ignore_index": 255,
"loss_weight": 0.20
},
"vegetation": {
"enabled": true,
"type": "binary",
"num_classes": 2,
"mask_dir": "masks_vegetation",
"classes": {"background": 0, "vegetation": 1},
"ignore_index": 255,
"loss_weight": 0.15
},
"cana": {
"enabled": true,
"type": "binary",
"num_classes": 2,
"mask_dir": "masks_cana",
"classes": {"not_cana": 0, "cana": 1},
"ignore_index": 255,
"loss_weight": 0.35
},
"target": {
"enabled": true,
"type": "binary",
"num_classes": 2,
"mask_dir": "__derived_target__",
"classes": {"background": 0, "target": 1},
"ignore_index": 255,
"loss_weight": 0.30,
"derived": true
}
},
"training_v2": {
"model": {
"decoder_mode": "shared_light",
"spectral_input_init": "zero_extra"
},
"augmentation": {
"enabled": true,
"horizontal_flip_p": 0.5,
"vertical_flip_p": 0.0,
"affine_p": 0.7,
"rotate_deg": 5.0,
"scale_min": 0.9,
"scale_max": 1.1,
"translate_frac": 0.04,
"crop_p": 0.45,
"crop_scale_min": 0.7,
"crop_scale_max": 1.0,
"crop_focus_target_p": 0.55,
"crop_focus_cana_p": 0.25,
"global_gain_p": 0.35,
"global_gain_min": 0.92,
"global_gain_max": 1.08,
"band_gain_p": 0.25,
"band_gain_min": 0.96,
"band_gain_max": 1.04,
"rgb_gamma_p": 0.2,
"rgb_gamma_min": 0.94,
"rgb_gamma_max": 1.06,
"noise_p": 0.2,
"noise_sigma_min": 0.001,
"noise_sigma_max": 0.008,
"blur_p": 0.12,
"blur_kernel": 3,
"sensor_channel_dropout_p": 0.0,
"clip_physical": true
},
"sampler": {
"mode": "diverse",
"samples_per_epoch": 0,
"tiny_target_pct": 0.005,
"small_target_pct": 0.02,
"medium_target_pct": 0.1
},
"class_weighting": {
"method": "log_inverse",
"log_offset": 1.02,
"power": 0.5,
"min_weight": 0.25,
"max_weight": 4.0
},
"loss": {
"dice_reduction": "per_image",
"dice_smooth": 1.0,
"boundary_weight": 0.0,
"ohem_ratio": 0.0,
"safety": {
"enabled": true,
"weight": 0.08,
"cana_weight": 1.0,
"ground_weight": 0.2
}
},
"optimizer": {
"encoder_lr": null,
"patch_lr_mult": 2.0,
"heads_lr_mult": 5.0,
"weight_decay": null,
"no_decay_bias": true,
"no_decay_norm": true,
"betas": [
0.9,
0.999
],
"eps": 1e-08
},
"scheduler": {
"mode": "poly",
"warmup_ratio": 0.05,
"warmup_start_factor": 0.1,
"poly_power": 1.0,
"min_lr_ratio": 0.02
},
"optimization": {
"grad_clip_norm": 1.0,
"matmul_precision": "high",
"cudnn_benchmark": true,
"persistent_workers": true,
"prefetch_factor": 2
},
"target_distillation": {
"enabled": false,
"mode": "cross_head",
"start_epoch": 8,
"rampup_epochs": 12,
"hard_weight": 0.75,
"distill_weight": 0.25,
"teacher_confidence_min": 0.6,
"detach_teacher": true,
"w_sem_erva": 0.45,
"w_veg_not_cana": 0.35,
"w_veg_suppressed": 0.2,
"cana_suppression_power": 1.5
},
"metrics": {
"target_thresholds": [
0.3,
0.4,
0.5,
0.6,
0.7,
0.8,
0.9
],
"ece_bins": 15,
"scenario_metrics": true,
"group_metrics": true,
"rich_train_metrics": false,
"operational_threshold": {
"max_cana_spray_rate": 0.02,
"max_ground_spray_rate": 0.03,
"max_weed_miss_rate": 0.2,
"score_weights": {
"target_iou": 0.35,
"target_f1": 0.2,
"cana_safety": 0.25,
"ground_safety": 0.1,
"weed_recall": 0.1
}
}
},
"selection_score": {
"target_iou": 0.4,
"cana_iou": 0.2,
"target_f1": 0.1,
"vegetation_miou": 0.1,
"semantic_miou": 0.05,
"cana_safety": 0.15
},
"checkpoint": {
"early_stop_min_delta": 0.0005,
"save_best_safety": true,
"save_best_legacy": true,
"save_best_operational": true
},
"data": {
"validate_npy_content": true,
"skip_corrupt_samples": true,
"max_corrupt_fraction": 0.005
}
}
}