Saltar al contenido principal

configuration

Ver en Git


Referencia de Configuración

Los experimentos se definen como archivos YAML en la carpeta experiments/.


Ejemplo Completo

experiment_name: "baseline_jpm"
engine: "delineate-anything"
aoi_wkt: "POLYGON((-62.27 -33.50, -62.21 -33.50, -62.21 -33.47, -62.27 -33.47, -62.27 -33.50))"
reference_path: "data/input/reference_output.geojson"
device: "cpu"

engine_params:
conf: 0.05
iou: 0.5
tile_size: 1024
n_scenes: 10
start_date: "2025-07-01"
composite_method: "mean"

postprocess_params:
spectral_split: true
split_max_area_m2: 800000
split_n_clusters: 3
simplify_tolerance: 20.0
min_area_m2: 50000
buffer_distance: -5.0
merge_overlaps: true
remove_holes_below_m2: 10000

Campos Requeridos

ParámetroTipoDescripción
experiment_namestringNombre único del experimento (máx 128 caracteres).
enginestringIdentificador del engine de detección. Ver Engines Disponibles.
aoi_wktstringÁrea de Interés como WKT Polygon o MultiPolygon en EPSG:4326 (lon/lat).
reference_pathstringPath al GeoJSON de referencia con los polígonos ground-truth.
engine_paramsdictHiperparámetros específicos del engine.
postprocess_paramsdictConfiguración del pipeline de post-procesamiento.

Parámetros del Engine (delineate-anything)

ParámetroTipoDefaultDescripción
conffloat0.005Threshold de confianza YOLO. Más bajo = más detecciones, más ruido.
ioufloat0.3Threshold IoU de NMS. Más bajo = supresión más agresiva.
tile_sizeint512Tamaño de tile en pixels para inferencia tileada.
tile_overlapfloat0.5Fracción de overlap entre tiles adyacentes (0.0–1.0).
model_sizestring"large"Variante del modelo: "large" o "small".
n_scenesint1Cantidad de escenas Sentinel-2 para el composite.
start_datestringFecha de inicio de búsqueda de imágenes (YYYY-MM-DD).
composite_methodstring"mean"Método de composición: "mean" o "median".
detection_modestring"tiled"Estrategia de detección: "tiled", "notile" o "spectral".

Parámetros de Post-Procesamiento

Se aplican en orden fijo: spectral split → buffer → merge → remove holes → simplify → filter.

ParámetroTipoDefaultRangoDescripción
simplify_tolerancefloat10.0[0, 200]Tolerancia Douglas-Peucker en metros. 0 = sin simplificación.
min_area_m2float50000[0, 10M]Área mínima de polígono en m². Los más chicos se eliminan.
buffer_distancefloat0.0[-100, 100]Buffer en metros. Positivo expande, negativo achica.
merge_overlapsboolfalseMergear todos los polígonos que se superponen.
spectral_splitboolfalseDividir polígonos grandes por clustering espectral.
split_max_area_m2float500000[0, 100M]Polígonos más grandes que esto son candidatos a split.
split_n_clustersint4Cantidad de clusters K-means para el split espectral.
remove_holes_below_m2float0[0, 10M]Remover huecos interiores más chicos que esta área.

Campos Opcionales

ParámetroTipoDefaultDescripción
devicestring"cpu"Dispositivo de cómputo: "cpu" o "cuda".
fine_tuneboolfalseFine-tunear el modelo con datos de referencia antes de inferencia.
fine_tune_epochsint50Cantidad de epochs de fine-tuning.
fine_tune_lrfloat0.001Learning rate del fine-tuning.
fine_tune_batch_sizeint8Batch size del fine-tuning.
param_griddictnullGrilla de parámetros para expansión de sweep.

Engines Disponibles

EngineKeyGPU NecesariaDescripción
Delineate-Anythingdelineate-anythingRecomendadaSegmentación de instancias YOLO, agnóstico a resolución.

Engines adicionales (todavía no integrados):

EngineKeyGPU NecesariaDescripción
Embedding ClusteringembeddingNoK-means no supervisado sobre embeddings pre-computados.
EnsembleensembleDependeConsenso multi-engine (voto/unión/intersección).
Fields of The WorldftwSegmentación semántica con modelos pre-entrenados.
GeoAIgeoaiNoMask R-CNN, requiere fine-tuning.
DINOv3dinov3Backbone ViT + cabezal DPT con fine-tuning LoRA.
Prithvi-EO-2.0prithviRecomendadaFoundation model de NASA/IBM.

Para ambientes sin GPU, delineate-anything funciona (inferencia más lenta) y embedding es nativamente CPU.


Sweeps

Grilla de Parámetros

Definí una key param_grid para correr automáticamente todas las combinaciones:

experiment_name: "full_sweep"
engine: "delineate-anything"
aoi_wkt: "POLYGON((......))"
reference_path: "data/input/reference_output.geojson"
device: "cpu"

engine_params:
tile_size: 1024
n_scenes: 5
start_date: "2025-01-01"

postprocess_params:
simplify_tolerance: 10.0
min_area_m2: 30000

param_grid:
detection_mode: ["tiled", "notile", "spectral"]
conf: [0.01, 0.05, 0.2]
split_n_clusters: [2, 3, 4]
min_area_m2: [30000, 50000]

Esto produce 3 × 3 × 3 × 2 = 54 experimentos. Máximo 200 combinaciones permitidas.

Cada experimento recibe un nombre único derivado de los parámetros variados: delineate-anything_conf_0.01_detection_mode_tiled_....

Múltiples Configs

Alternativamente, pasá múltiples archivos YAML:

python3 -m model.cli sweep --config exp_a.yaml exp_b.yaml exp_c.yaml

Métricas de Evaluación

Todas las áreas se calculan en coordenadas proyectadas UTM (metros²).

MétricaFórmulaInterpretación
reference_coverageintersección / área_referenciaCuánto de la referencia está cubierto (tipo recall).
prediction_precisionintersección / área_predicciónCuánto de la predicción se superpone con la referencia (tipo precision).
iouintersección / área_uniónCalidad general del overlap.