Saltar a contenido

Documentación de FSCL-Vision Data Pipeline

Bienvenido a la documentación detallada del pipeline de datos para FSCL-Vision.

Contenido

Guías Generales

  • Configuración - Guía completa de parámetros de configuración YAML

Etapas del Pipeline

El pipeline se ejecuta en 6 etapas secuenciales:

Etapa Script Descripción
1 01_fetch_observations Obtención de observaciones desde iNaturalist
2 02_download_images Descarga paralela de imágenes
3 03_deduplicate Deduplicación espacio-temporal
4 04_assess_quality Evaluación de calidad de imágenes
5 05_select_samples Selección de muestras representativas
6 06_organize_dataset Organización del dataset final

Referencia de Módulos

Documentación técnica de cada módulo del código fuente:

Módulo Descripción
api_client Cliente para iNaturalist API v1
image_downloader Descarga paralela de imágenes
deduplicator Clustering espacio-temporal
quality_assessor Evaluación de calidad de imágenes
sample_selector Selección de muestras representativas
dataset_organizer Organización y generación de manifests

Utilidades

Módulo Descripción
logger Sistema de logging estructurado
rate_limiter Control de tasa de llamadas API
geo_utils Utilidades geográficas
image_utils Procesamiento de imágenes
local_cache Caché local para respuestas API

Flujo del Pipeline

+---------------------------------------------------------------------+
|                        FSCL-Vision Data Pipeline                    |
+---------------------------------------------------------------------+
                                    |
                                    v
+---------------------------------------------------------------------+
|  1. FETCH OBSERVATIONS                                              |
|     - Consulta iNaturalist API                                      |
|     - Aplica filtros geograficos y taxonomicos                      |
|     - Respeta rate-limiting                                         |
|     - Cachea respuestas localmente                                  |
|     Salida: observations.json                                       |
+---------------------------------------------------------------------+
                                    |
                                    v
+---------------------------------------------------------------------+
|  2. DOWNLOAD IMAGES                                                 |
|     - Descarga imagenes en paralelo                                 |
|     - Valida integridad de archivos                                 |
|     - Guarda metadatos por imagen                                   |
|     Salida: raw/{species}/*.jpg + *.json                            |
+---------------------------------------------------------------------+
                                    |
                                    v
+---------------------------------------------------------------------+
|  3. DEDUPLICATE                                                     |
|     - Agrupa por especie                                            |
|     - Clustering DBSCAN espacio-temporal                            |
|     - Selecciona mejor observacion por cluster                      |
|     Salida: observations_deduplicated.json                          |
+---------------------------------------------------------------------+
                                    |
                                    v
+---------------------------------------------------------------------+
|  4. ASSESS QUALITY                                                  |
|     - Evalua nitidez, exposicion, contraste                         |
|     - Calcula score compuesto                                       |
|     - Filtra por umbrales de calidad                                |
|     Salida: observations_quality.json                               |
+---------------------------------------------------------------------+
                                    |
                                    v
+---------------------------------------------------------------------+
|  5. SELECT SAMPLES                                                  |
|     - Aplica metodo de seleccion (quality/clustering/stratified)    |
|     - Balancea entre especies si esta configurado                   |
|     - Filtra especies con minimo insuficiente                       |
|     Salida: observations_selected.json                              |
+---------------------------------------------------------------------+
                                    |
                                    v
+---------------------------------------------------------------------+
|  6. ORGANIZE DATASET                                                |
|     - Crea estructura de directorios                                |
|     - Copia imagenes seleccionadas                                  |
|     - Genera manifests y metadatos                                  |
|     - Valida integridad del dataset                                 |
|     Salida: final_datasets/{dataset_name}/                          |
+---------------------------------------------------------------------+

Inicio Rápido

  1. Configurar: Crear o modificar un archivo YAML en config/
  2. Ejecutar: python scripts/helpers/run_full_pipeline.py --config config/mi_config.yaml
  3. Validar: python scripts/helpers/validate_dataset.py --dataset data/final_datasets/mi_dataset/

Para más detalles, consultar la Guía de Configuración.