Saltar a contenido

Etapas del Pipeline

El pipeline de FSCL-Vision Data se ejecuta en 6 etapas secuenciales. Cada etapa procesa la salida de la anterior.

Resumen de Etapas

Etapa Script Entrada Salida
1 01_fetch_observations.py Configuración YAML observations.json
2 02_download_images.py observations.json Imágenes + metadatos
3 03_deduplicate.py observations.json observations_deduplicated.json
4 04_assess_quality.py Imágenes descargadas observations_quality.json
5 05_select_samples.py observations_quality.json observations_selected.json
6 06_organize_dataset.py observations_selected.json Dataset final

Documentación por Etapa

  1. Obtención de Observaciones - Consulta a iNaturalist API
  2. Descarga de Imágenes - Descarga paralela con metadatos
  3. Deduplicación - Clustering espacio-temporal
  4. Evaluación de Calidad - Métricas de calidad de imagen
  5. Selección de Muestras - Muestreo representativo
  6. Organización del Dataset - Estructura final y manifests

Ejecución

Pipeline Completo

python scripts/helpers/run_full_pipeline.py --config config/mi_config.yaml

Por Etapas

python scripts/01_fetch_observations.py --config config/mi_config.yaml
python scripts/02_download_images.py --config config/mi_config.yaml
python scripts/03_deduplicate.py --config config/mi_config.yaml
python scripts/04_assess_quality.py --config config/mi_config.yaml
python scripts/05_select_samples.py --config config/mi_config.yaml
python scripts/06_organize_dataset.py --config config/mi_config.yaml

Saltar Etapas

El script run_full_pipeline.py permite saltar etapas:

# Saltar fetch (usar observaciones existentes)
python scripts/helpers/run_full_pipeline.py --config config/mi_config.yaml --skip-fetch

# Saltar descarga (usar imágenes existentes)
python scripts/helpers/run_full_pipeline.py --config config/mi_config.yaml --skip-download

Flujo de Datos

config.yaml
    |
    v
+-------------------+
| 01_fetch          |--> observations.json
+-------------------+
    |
    v
+-------------------+
| 02_download       |--> raw/{species}/*.jpg
+-------------------+
    |
    v
+-------------------+
| 03_deduplicate    |--> observations_deduplicated.json
+-------------------+
    |
    v
+-------------------+
| 04_assess_quality |--> observations_quality.json
+-------------------+
    |
    v
+-------------------+
| 05_select_samples |--> observations_selected.json
+-------------------+
    |
    v
+-------------------+
| 06_organize       |--> final_datasets/{name}/
+-------------------+

Archivos Intermedios

Todos los archivos intermedios se guardan en data/{dataset}/cache/:

Archivo Etapa Descripción
observations.json 1 Observaciones crudas de iNaturalist
fetch_stats.json 1 Estadísticas de obtención
download_stats.json 2 Estadísticas de descarga
observations_deduplicated.json 3 Observaciones únicas
deduplication_stats.json 3 Estadísticas de deduplicación
observations_quality.json 4 Observaciones con métricas
quality_stats.json 4 Estadísticas de calidad
observations_selected.json 5 Observaciones seleccionadas
selection_stats.json 5 Estadísticas de selección

Reanudación

Si el pipeline se interrumpe, se puede reanudar desde cualquier etapa. Los archivos intermedios permiten continuar sin repetir trabajo (MUY IMPORTANTE en nuestra zona, sopla una brisa y nos quedamos sin energía eléctrica...).

Logs

Cada etapa genera logs en data/{dataset}/logs/:

logs/
├── fetch_observations.log
├── download_images.log
├── deduplicate.log
├── assess_quality.log
├── select_samples.log
└── organize_dataset.log