Ce dépôt fournit un template infra + data pour lancer le pipeline de classification et guider les bénévoles sur les 3 tâches ML :
- Qualité d'image (filtrage)
- YOLOv8 (détection + crop)
- Classification hiérarchique (règne → espèce)
Les pipelines existants d'export sont conservés et intégrés.
- Entrée : API quotidienne (à venir) ou CSV (
data/raw/observations.csv). - Filtrage qualité (ML) → on garde les images utilisables.
- Détection YOLOv8 (ML) → bboxes + crops.
- Classification hiérarchique (ML) → taxonomie.
- Label Studio : boucle d'annotation/correction si besoin.
- Dataviz : CSV compatible Metabase (puis dashboard).
- Exports : CSV d'annotations (base de données plus tard).
biolit/ # Lib Python (taxref, observations, dataviz)
cmd/ # Script export existant (export INPN)
pipelines/ # Orchestration (ingestion CSV + export)
ml/ # Dossiers des 3 tâches ML
dataviz/ # Docs dataviz
infra/ # Docker Compose (Label Studio)
data/ # Workspace local (non versionné)
data/raw/: CSV brut + images du jour (dump API)data/staging/: images filtrées qualité + métadonnéesdata/crops/: crops issus de YOLOv8data/label-studio/files/: images à annoterdata/exports/: sorties CSV (annotations, qualité, etc.)data/dataviz/: CSV pour Metabase
Ce projet utilise uv pour la gestion des dépendances.
uv syncSi besoin :
source .venv/bin/activate- Récupération quotidienne depuis l'API (à venir) ou CSV local.
- Qualité : si l'image est mauvaise → stop.
- YOLOv8 : détection + crop.
- si aucune détection → Label Studio (CROP)
- si crop manuel → retour vers annotation
- Classification : prédiction + probabilité.
- certitude faible → Label Studio (pré-annotations + probas)
- certitude forte → export direct
- Export CSV :
data/exports/annotations.csv - Dataviz :
data/dataviz/observations.csv(Metabase)
Placez votre CSV dans data/raw/observations.csv, puis :
uv run pipelines/run.py ingest-csv --input-path data/raw/observations.csvRésultat : data/export_biolit.csv (utilisé par biolit.observations).
uv run pipelines/run.py export-inpnSorties principales :
data/biolit_valid_observations.parquetdata/observations_missing_taxref.csvdata/biolit_observation_missing_nom.csvdata/biolit_observation_validated_non_identifiable.csvdata/distribution_images.html
docker compose -f infra/docker-compose.yml upLes images à annoter sont montées depuis data/label-studio/files.
Il est possible de lancer l'ensemble en local pour les premiers tests. L'objectif est d'étudier les sorties de chaque modèle avant d'automatiser le workflow complet.
pre-commit run --all-filestox -vv